]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00220732-1 Remove clk_disable in VPU driver interrupt handling
authorHongzhang Yang <Hongzhang.Yang@freescale.com>
Mon, 20 Aug 2012 08:11:21 +0000 (16:11 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:15 +0000 (08:35 +0200)
commitd203b9144b15f99e2c1134b6f7bbf46632434d8c
tree042e71ceadac2dc9f155f78291696a6800478263
parent48baaa9e0c254f060667d0dbba52473be2071e03
ENGR00220732-1 Remove clk_disable in VPU driver interrupt handling

Original design is VPU lib API StartOneFrame() enables clock, and VPU
driver disables clock after codec done interrupt has been received.
However there are known issues of interrupt handling as below:
- VPU interrupt handling callback is not scheduled in time causing work
  queue overflow
- JPU done interrupt is not received because JPU issues it while JPU
  buffer empty interrupt is still being served
- VPU finishes a frame (!vpu_IsBusy) but VPU done interrupt is not
  received

All above will cause clk_disable in interrupt handling not called,
thus VPU clock count increases by 1.
So I plan to resolve clock unbalance issue first by removing
clk_disable from VPU driver interrupt handling. Interrupt problem
will not affect clock issue any longer.

1.    Driver: remove clk_disable from vpu_worker_callback
2.1.  Lib: remove clk_enable from API GetOutputInfo
2.2.  Lib: avoid disabling VPU clock when VPU is busy in SWReset
3.    Test: replace GetOutputInfo with SWReset in decoder_close /
      encoder_close

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
drivers/mxc/vpu/mxc_vpu.c