1. 09 6月, 2013 3 次提交
    • S
      [media] exynos4-is: Remove "sysreg" clock handling · 6301b132
      Sylwester Nawrocki 提交于
      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: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6301b132
    • S
      [media] exynos4-is: Ensure fimc-is clocks are not enabled until properly configured · b4155d7d
      Sylwester Nawrocki 提交于
      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: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NKyunmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      b4155d7d
    • S
      [media] exynos4-is: Prevent NULL pointer dereference when firmware isn't loaded · 3cf138a6
      Sylwester Nawrocki 提交于
      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: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      3cf138a6
  2. 25 4月, 2013 4 次提交
  3. 15 4月, 2013 2 次提交
  4. 05 4月, 2013 1 次提交