summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHongzhang Yang <Hongzhang.Yang@freescale.com>2012-08-20 16:11:21 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2012-08-22 10:26:34 +0800
commitc359a559d8ead4a1ad3c4e73205ca2a6d7c47649 (patch)
tree10251dc3b2a3f5c94ca7cbfb7eea31b0531857e0 /drivers
parent0ee148e5511a049e61c0aca84d35ef3885faa168 (diff)
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mxc/vpu/mxc_vpu.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/mxc/vpu/mxc_vpu.c b/drivers/mxc/vpu/mxc_vpu.c
index 890456802331..92a1d0dc98c7 100644
--- a/drivers/mxc/vpu/mxc_vpu.c
+++ b/drivers/mxc/vpu/mxc_vpu.c
@@ -180,7 +180,6 @@ static inline void vpu_worker_callback(struct work_struct *w)
* codec is done.
*/
if (codec_done) {
- clk_disable(vpu_clk);
codec_done = 0;
}