1. 25 5月, 2014 1 次提交
  2. 24 5月, 2014 16 次提交
  3. 23 4月, 2014 1 次提交
  4. 15 4月, 2014 1 次提交
    • L
      [media] media: davinci: vpif_capture: fix releasing of active buffers · e6ba3db1
      Lad, Prabhakar 提交于
      from commit-id: b3379c62
      "vb2: only call start_streaming if sufficient buffers are queued"
      the vb2 framework warns on (WARN_ON()) if all the active buffers
      are not released when streaming is stopped, initially the vb2 silently
      released the buffer internally if the buffer was not released by
      the driver.
      Also this patch moves the disabling of interrupts from relase() callback
      to stop_streaming() callback as which needs to be done ideally.
      
      This patch fixes following issue:
      
      WARNING: CPU: 0 PID: 2049 at drivers/media/v4l2-core/videobuf2-core.c:2011 __vb2_queue_cancel+0x1a0/0x218()
      Modules linked in:
      CPU: 0 PID: 2049 Comm: vpif_capture Tainted: G        W    3.14.0-rc5-00414-ged97a6fe #89
      [<c000e3f0>] (unwind_backtrace) from [<c000c618>] (show_stack+0x10/0x14)
      [<c000c618>] (show_stack) from [<c001adb0>] (warn_slowpath_common+0x68/0x88)
      [<c001adb0>] (warn_slowpath_common) from [<c001adec>] (warn_slowpath_null+0x1c/0x24)
      [<c001adec>] (warn_slowpath_null) from [<c0252e0c>] (__vb2_queue_cancel+0x1a0/0x218)
      [<c0252e0c>] (__vb2_queue_cancel) from [<c02533a4>] (vb2_queue_release+0x14/0x24)
      [<c02533a4>] (vb2_queue_release) from [<c025a65c>] (vpif_release+0x60/0x230)
      [<c025a65c>] (vpif_release) from [<c023fe5c>] (v4l2_release+0x34/0x74)
      [<c023fe5c>] (v4l2_release) from [<c00b4a00>] (__fput+0x80/0x224)
      [<c00b4a00>] (__fput) from [<c00341e8>] (task_work_run+0xa0/0xd0)
      [<c00341e8>] (task_work_run) from [<c001cc28>] (do_exit+0x244/0x918)
      [<c001cc28>] (do_exit) from [<c001d344>] (do_group_exit+0x48/0xdc)
      [<c001d344>] (do_group_exit) from [<c0029894>] (get_signal_to_deliver+0x2a0/0x5bc)
      [<c0029894>] (get_signal_to_deliver) from [<c000b888>] (do_signal+0x78/0x3a0)
      [<c000b888>] (do_signal) from [<c000bc54>] (do_work_pending+0xa4/0xb4)
      [<c000bc54>] (do_work_pending) from [<c00096dc>] (work_pending+0xc/0x20)
      ---[ end trace 5faa75e8c2f8a6a1 ]---
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 2049 at drivers/media/v4l2-core/videobuf2-core.c:1095 vb2_buffer_done+0x1e0/0x224()
      Modules linked in:
      CPU: 0 PID: 2049 Comm: vpif_capture Tainted: G        W    3.14.0-rc5-00414-ged97a6fe #89
      [<c000e3f0>] (unwind_backtrace) from [<c000c618>] (show_stack+0x10/0x14)
      [<c000c618>] (show_stack) from [<c001adb0>] (warn_slowpath_common+0x68/0x88)
      [<c001adb0>] (warn_slowpath_common) from [<c001adec>] (warn_slowpath_null+0x1c/0x24)
      [<c001adec>] (warn_slowpath_null) from [<c0252c28>] (vb2_buffer_done+0x1e0/0x224)
      [<c0252c28>] (vb2_buffer_done) from [<c0252e3c>] (__vb2_queue_cancel+0x1d0/0x218)
      [<c0252e3c>] (__vb2_queue_cancel) from [<c02533a4>] (vb2_queue_release+0x14/0x24)
      [<c02533a4>] (vb2_queue_release) from [<c025a65c>] (vpif_release+0x60/0x230)
      [<c025a65c>] (vpif_release) from [<c023fe5c>] (v4l2_release+0x34/0x74)
      [<c023fe5c>] (v4l2_release) from [<c00b4a00>] (__fput+0x80/0x224)
      [<c00b4a00>] (__fput) from [<c00341e8>] (task_work_run+0xa0/0xd0)
      [<c00341e8>] (task_work_run) from [<c001cc28>] (do_exit+0x244/0x918)
      [<c001cc28>] (do_exit) from [<c001d344>] (do_group_exit+0x48/0xdc)
      [<c001d344>] (do_group_exit) from [<c0029894>] (get_signal_to_deliver+0x2a0/0x5bc)
      [<c0029894>] (get_signal_to_deliver) from [<c000b888>] (do_signal+0x78/0x3a0)
      [<c000b888>] (do_signal) from [<c000bc54>] (do_work_pending+0xa4/0xb4)
      [<c000bc54>] (do_work_pending) from [<c00096dc>] (work_pending+0xc/0x20)
      ---[ end trace 5faa75e8c2f8a6a2 ]---
      Signed-off-by: NLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      e6ba3db1
  5. 11 3月, 2014 1 次提交
    • H
      [media] vb2: only call start_streaming if sufficient buffers are queued · b3379c62
      Hans Verkuil 提交于
      In commit 02f142ec support was added to
      start_streaming to return -ENOBUFS if insufficient buffers were queued
      for the DMA engine to start. The vb2 core would attempt calling
      start_streaming again if another buffer would be queued up.
      
      Later analysis uncovered problems with the queue management if start_streaming
      would return an error: the buffers are enqueued to the driver before the
      start_streaming op is called, so after an error they are never returned to
      the vb2 core. The solution for this is to let the driver return them to
      the vb2 core in case of an error while starting the DMA engine. However,
      in the case of -ENOBUFS that would be weird: it is not a real error, it
      just says that more buffers are needed. Requiring start_streaming to give
      them back only to have them requeued again the next time the application
      calls QBUF is inefficient.
      
      This patch changes this mechanism: it adds a 'min_buffers_needed' field
      to vb2_queue that drivers can set with the minimum number of buffers
      required to start the DMA engine. The start_streaming op is only called
      if enough buffers are queued. The -ENOBUFS handling has been dropped in
      favor of this new method.
      
      Drivers are expected to return buffers back to vb2 core with state QUEUED
      if start_streaming would return an error. The vb2 core checks for this
      and produces a warning if that didn't happen and it will forcefully
      reclaim such buffers to ensure that the internal vb2 core state remains
      consistent and all buffer-related resources have been correctly freed
      and all op calls have been balanced.
      
      __reqbufs() has been updated to check that at least min_buffers_needed
      buffers could be allocated. If fewer buffers were allocated then __reqbufs
      will free what was allocated and return -ENOMEM. Based on a suggestion from
      Pawel Osciak.
      
      __create_bufs() doesn't do that check, since the use of __create_bufs
      assumes some advance scenario where the user might want more control.
      Instead streamon will check if enough buffers were allocated to prevent
      streaming with fewer than the minimum required number of buffers.
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      b3379c62
  6. 06 3月, 2014 1 次提交
  7. 07 1月, 2014 1 次提交
  8. 04 10月, 2013 1 次提交
  9. 26 8月, 2013 1 次提交
  10. 18 8月, 2013 1 次提交
  11. 31 7月, 2013 1 次提交
  12. 27 7月, 2013 1 次提交
  13. 21 6月, 2013 4 次提交
  14. 17 6月, 2013 1 次提交
  15. 27 5月, 2013 1 次提交
  16. 21 5月, 2013 1 次提交
  17. 24 3月, 2013 2 次提交
  18. 23 3月, 2013 1 次提交
    • L
      [media] davinci: vpif: Fix module build for capture and display · ced9b21f
      Lad, Prabhakar 提交于
      export the symbols which are used by two modules vpif_capture and
      vpif_display. renamed "ch_params" to "vpif_ch_params" so as to avoid
      name collision.
      This patch fixes following error:
      ERROR: "ch_params" [drivers/media/platform/davinci/vpif_display.ko] undefined!
      ERROR: "vpif_ch_params_count" [drivers/media/platform/davinci/vpif_display.ko] undefined!
      ERROR: "vpif_base" [drivers/media/platform/davinci/vpif_display.ko] undefined!
      ERROR: "ch_params" [drivers/media/platform/davinci/vpif_capture.ko] undefined!
      ERROR: "vpif_ch_params_count" [drivers/media/platform/davinci/vpif_capture.ko] undefined!
      ERROR: "vpif_base" [drivers/media/platform/davinci/vpif_capture.ko] undefined!
      make[1]: *** [__modpost] Error 1
      Reported-by: NSekhar Nori <nsekhar@ti.com>
      Signed-off-by: NLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ced9b21f
  19. 06 3月, 2013 1 次提交
  20. 21 12月, 2012 1 次提交
  21. 22 11月, 2012 1 次提交