X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fvideo%2Frockchip%2Frga%2Frga_drv.c;h=fe356cf5042edcaefdd5bb103190a801f10323e0;hb=a26084749b4fa2ea42705e5c3ed398b445e9c3ce;hp=d897c8795619c72816e1115f7a934c8393977b66;hpb=1f99b9f4f8a8b4c022fb9f48389a051b1910e7af;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/video/rockchip/rga/rga_drv.c b/drivers/video/rockchip/rga/rga_drv.c index d897c8795619..fe356cf5042e 100755 --- a/drivers/video/rockchip/rga/rga_drv.c +++ b/drivers/video/rockchip/rga/rga_drv.c @@ -733,10 +733,13 @@ static void rga_del_running_list_timeout(void) while(!list_empty(&rga_service.running)) { reg = list_entry(rga_service.running.next, struct rga_reg, status_link); - - if(reg->MMU_base != NULL) + + if(reg->MMU_len != 0) { - kfree(reg->MMU_base); + if (rga_mmu_buf.back + reg->MMU_len > 2*rga_mmu_buf.size) + rga_mmu_buf.back = reg->MMU_len + rga_mmu_buf.size; + else + rga_mmu_buf.back += reg->MMU_len; } atomic_sub(1, ®->session->task_running);