1. 08 Jun, 2013 4 commits
    • Sylwester Nawrocki's avatar
      [media] exynos4-is: Remove "sysreg" clock handling · 6301b132
      Sylwester Nawrocki authored
      The "sysreg" clock is required by multiple subsystems and none of the
      other drivers handles this clock explicitly. It is currently assumed
      that this clock is always on, left in its default state after system
      reset.
      Remove handling of this clock from the FIMC-IS driver to avoid breaking
      other subsystems.
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      6301b132
    • Sylwester Nawrocki's avatar
      [media] exynos4-is: Fix reported colorspace at FIMC-IS-ISP subdev · ac2a4a86
      Sylwester Nawrocki authored
      The FIMC-IS-ISP handles only Bayer formats thus V4L2_COLORSPACE_SRGB
      should be used. This change applies to the code first added in v3.10.
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      ac2a4a86
    • Sylwester Nawrocki's avatar
      [media] exynos4-is: Ensure fimc-is clocks are not enabled until properly configured · b4155d7d
      Sylwester Nawrocki authored
      Use clk_prepare_enable/clk_unprepare_disable instead of preparing the
      clocks during the driver initalization and then using just clk_disable/
      clk_enable. The clock framework doesn't guarantee a clock will not get
      enabled during e.g. clk_set_parent if clk_prepare has been called on it.
      So we ensure clk_prepare() is called only when it is safe to enable
      the clocks, i.e. the parent clocks and the clocks' frequencies are set.
      It must be ensured the FIMC-IS clocks have proper frequencies before they
      are enabled, otherwise the whole system will hang.
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: default avatarKyunmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      b4155d7d
    • Sylwester Nawrocki's avatar
      [media] exynos4-is: Prevent NULL pointer dereference when firmware isn't loaded · 3cf138a6
      Sylwester Nawrocki authored
      Ensure the firmware isn't accessed in the driver when the firmware loading
      routine has not completed. This fixes a potential kernel crash:
      [   96.510000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
      [   96.520000] pgd = ee604000
      [   96.520000] [00000000] *pgd=6e947831, *pte=00000000, *ppte=00000000
      [   96.530000] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
      [   96.530000] Modules linked in:
      [   96.530000] CPU: 2 PID: 2787 Comm: camera_test Not tainted 3.10.0-rc1-00269-gcdbde37-dirty #2158
      [   96.545000] task: ee42e400 ti: edfcc000 task.ti: edfcc000
      [   96.545000] PC is at fimc_is_start_firmware+0x14/0x94
      [   96.545000] LR is at fimc_isp_subdev_s_power+0x13c/0x1f8
      	...
      [   96.745000] [<c03e0354>] (fimc_is_start_firmware+0x14/0x94) from [<c03e1cc4>] (fimc_isp_subdev_s_power+0x13c/0x1f8)
      [   96.745000] [<c03e1cc4>] (fimc_isp_subdev_s_power+0x13c/0x1f8) from [<c03ed088>] (__subdev_set_power+0x70/0x84)
      [   96.745000] [<c03ed088>] (__subdev_set_power+0x70/0x84) from [<c03ed164>] (fimc_pipeline_s_power+0xc8/0x164)
      [   96.745000] [<c03ed164>] (fimc_pipeline_s_power+0xc8/0x164) from [<c03ee2b8>] (__fimc_pipeline_open+0x90/0x268)
      [   96.745000] [<c03ee2b8>] (__fimc_pipeline_open+0x90/0x268) from [<c03ec5f0>] (fimc_capture_open+0xe4/0x1ec)
      [   96.745000] [<c03ec5f0>] (fimc_capture_open+0xe4/0x1ec) from [<c03c5560>] (v4l2_open+0xa8/0xe4)
      [   96.745000] [<c03c5560>] (v4l2_open+0xa8/0xe4) from [<c0112900>] (chrdev_open+0x9c/0x158)
      [   96.745000] [<c0112900>] (chrdev_open+0x9c/0x158) from [<c010d3e0>] (do_dentry_open+0x1f4/0x27c)
      [   96.745000] [<c010d3e0>] (do_dentry_open+0x1f4/0x27c) from [<c010d558>] (finish_open+0x34/0x50)
      [   96.745000] [<c010d558>] (finish_open+0x34/0x50) from [<c011bea0>] (do_last+0x59c/0xbcc)
      [   96.745000] [<c011bea0>] (do_last+0x59c/0xbcc) from [<c011c580>] (path_openat+0xb0/0x484)
      [   96.745000] [<c011c580>] (path_openat+0xb0/0x484) from [<c011ca58>] (do_filp_open+0x30/0x84)
      [   96.745000] [<c011ca58>] (do_filp_open+0x30/0x84) from [<c010d060>] (do_sys_open+0xe8/0x170)
      [   96.745000] [<c010d060>] (do_sys_open+0xe8/0x170) from [<c000f040>] (ret_fast_syscall+0x0/0x30)
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      3cf138a6
  2. 03 Jun, 2013 12 commits
  3. 27 May, 2013 2 commits
  4. 21 May, 2013 12 commits
  5. 07 May, 2013 2 commits
  6. 30 Apr, 2013 2 commits
    • Mauro Carvalho Chehab's avatar
      Merge branch 'devel-for-v3.10' into v4l_for_linus · df90e225
      Mauro Carvalho Chehab authored
      * patchwork: (831 commits)
        [media] cx88: make core less verbose
        [media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
        [media] s5c73m3: fix indentation of the help section in Kconfig
        [media] cx25821-alsa: get rid of a __must_check warning
        [media] cx25821-video: declare cx25821_vidioc_s_std as static
        [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap
        [media] r820t: Remove a warning for an unused value
        [media] dib0090: Fix a warning at dib0090_set_EFUSE
        [media] dib8000: fix a warning
        [media] dib8000: Fix sub-channel range
        [media] dib8000: store dtv_property_cache in a temp var
        [media] dib8000: warning fix: declare internal functions as static
        [media] r820t: quiet gcc warning on n_ring
        [media] r820t: memory leak in release()
        [media] r820t: precendence bug in r820t_xtal_check()
        [media] videodev2.h: Remove the unused old V4L1 buffer types
        [media] anysee: Grammar s/report the/report to/
        [media] anysee: Initialize ret = 0 in anysee_frontend_attach()
        [media] media: videobuf2: fix the length check for mmap
        [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0
        ...
      
      Conflicts:
      	drivers/media/pci/cx25821/cx25821-video.c
      	drivers/media/platform/Kconfig
      df90e225
    • Mauro Carvalho Chehab's avatar
      Merge tag 'v3.9' into v4l_for_linus · aad797c8
      Mauro Carvalho Chehab authored
      Linux 3.9
      
      * tag 'v3.9': (1099 commits)
        Linux 3.9
        vm: add no-mmu vm_iomap_memory() stub
        efivars: only check for duplicates on the registered list
        TTY: fix atime/mtime regression
        aio: fix possible invalid memory access when DEBUG is enabled
        parisc: use spin_lock_irqsave/spin_unlock_irqrestore for PTE updates
        parisc: disable -mlong-calls compiler option for kernel modules
        parisc: uaccess: fix compiler warnings caused by __put_user casting
        parisc: Change kunmap macro to static inline function
        parisc: Provide __ucmpdi2 to resolve undefined references in 32 bit builds.
        sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching.
        Revert "gpio: pxa: set initcall level to module init"
        efi: Check EFI revision in setup_efi_vars
        x86, efi: Fix a build warning
        Revert "MIPS: page.h: Provide more readable definition for PAGE_MASK."
        kernel/hz.bc: ignore.
        Linux 3.9-rc8
        events: Protect access via task_subsys_state_check()
        net: fix incorrect credentials passing
        x86, microcode: Verify the family before dispatching microcode patching
        ...
      aad797c8
  7. 29 Apr, 2013 1 commit
  8. 28 Apr, 2013 2 commits
    • Mauro Carvalho Chehab's avatar
      [media] cx88: make core less verbose · 02615ed5
      Mauro Carvalho Chehab authored
      Along the time, several debug messages were added at cx88-cards.
      While those are still useful to track some troubles with
      tuners, they're too verbose:
      [ 5768.281801] cx88[0]: Calling XC2028/3028 callback
      [ 5768.287388] cx88[0]: Calling XC2028/3028 callback
      [ 5768.292575] cx88[0]: Calling XC2028/3028 callback
      [ 5768.299408] cx88[0]: Calling XC2028/3028 callback
      [ 5768.306244] cx88[0]: Calling XC2028/3028 callback
      ...
      
      and, most of the time, useless.
      
      So, disable them, except if core_debug modprobe parameter
      is used.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      02615ed5
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: fix oops at em28xx_dvb_bus_ctrl() · a3b60209
      Mauro Carvalho Chehab authored
      em28xx is oopsing with some DVB devices:
      
      [10856.061884] general protection fault: 0000 [#1] SMP
      [10856.067041] Modules linked in: rc_hauppauge em28xx_rc xc5000 drxk em28xx_dvb dvb_core em28xx videobuf2_vmalloc videobuf2_memops videobuf2_core rc_pixelview_new tuner_xc2028 tuner cx8800 cx88xx tveeprom btcx_risc videobuf_dma_sg videobuf_core rc_core v4l2_common videodev ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_CHECKSUM be2iscsi iscsi_boot_sysfs iptable_mangle bnx2i cnic uio cxgb4i cxgb4 tun bridge cxgb3i cxgb3 stp ip6t_REJECT mdio libcxgbi nf_conntrack_ipv6 llc nf_defrag_ipv6 ib_iser rdma_cm ib_addr xt_conntrack iw_cm ib_cm ib_sa nf_conntrack ib_mad ib_core bnep bluetooth iscsi_tcp libiscsi_tcp ip6table_filter libiscsi ip6_tables scsi_transport_iscsi xfs libcrc32c snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm tg3 snd_page_alloc snd_timer
      [10856.139176]  snd ptp iTCO_wdt soundcore pps_core iTCO_vendor_support lpc_ich mfd_core coretemp nfsd hp_wmi crc32c_intel microcode serio_raw rfkill sparse_keymap nfs_acl lockd sunrpc kvm_intel kvm uinput binfmt_misc firewire_ohci nouveau mxm_wmi i2c_algo_bit drm_kms_helper firewire_core crc_itu_t ttm drm i2c_core wmi [last unloaded: dib0070]
      [10856.168969] CPU 1
      [10856.170799] Pid: 13606, comm: dvbv5-zap Not tainted 3.9.0-rc5+ #26 Hewlett-Packard HP Z400 Workstation/0AE4h
      [10856.181187] RIP: 0010:[<ffffffffa0459e47>]  [<ffffffffa0459e47>] em28xx_write_regs_req+0x37/0x1c0 [em28xx]
      [10856.191028] RSP: 0018:ffff880118401a58  EFLAGS: 00010282
      [10856.196533] RAX: 00020000012d0000 RBX: ffff88010804aec8 RCX: ffff880118401b14
      [10856.203852] RDX: 0000000000000048 RSI: 0000000000000000 RDI: ffff88010804aec8
      [10856.211174] RBP: ffff880118401ac8 R08: 0000000000000001 R09: 0000000000000000
      [10856.218496] R10: 0000000000000000 R11: 0000000000000006 R12: 0000000000000048
      [10856.226026] R13: ffff880118401b14 R14: ffff88011752b258 R15: ffff88011752b258
      [10856.233352] FS:  00007f26636d2740(0000) GS:ffff88011fc20000(0000) knlGS:0000000000000000
      [10856.241626] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [10856.247565] CR2: 00007f2663716e20 CR3: 00000000c7eb1000 CR4: 00000000000007e0
      [10856.254889] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [10856.262215] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [10856.269542] Process dvbv5-zap (pid: 13606, threadinfo ffff880118400000, task ffff8800cd625d40)
      [10856.278340] Stack:
      [10856.280564]  ffff88011ffe8de8 0000000000000002 0000000000000000 ffff88011ffe9b00
      [10856.288191]  ffff880118401b14 00ff88011ffe9b08 ffff880100000048 ffffffff8112a52a
      [10856.295893]  0000000000000001 ffff88010804aec8 0000000000000048 ffff880118401b14
      [10856.303521] Call Trace:
      [10856.306182]  [<ffffffff8112a52a>] ? __alloc_pages_nodemask+0x15a/0x960
      [10856.312912]  [<ffffffffa045a002>] em28xx_write_regs+0x32/0xa0 [em28xx]
      [10856.319638]  [<ffffffffa045a221>] em28xx_write_reg+0x21/0x30 [em28xx]
      [10856.326279]  [<ffffffffa045a2cc>] em28xx_gpio_set+0x9c/0x100 [em28xx]
      [10856.332919]  [<ffffffffa045a3ac>] em28xx_set_mode+0x7c/0x80 [em28xx]
      [10856.339472]  [<ffffffffa03ef032>] em28xx_dvb_bus_ctrl+0x32/0x40 [em28xx_dvb]
      
      This is caused by commit c7a45e5b,
      that added support for two I2C buses. A partial fix was applied
      at 3de09fbb, but it doesn't cover
      all cases, as the DVB core fills fe->dvb->priv with adapter->priv.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      a3b60209
  9. 27 Apr, 2013 3 commits