1. 08 Jun, 2013 2 commits
    • 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 4 commits
  10. 26 Apr, 2013 1 commit