mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-21 10:05:00 +08:00
drm: rcar-du: Fix hardware plane allocation
The hardware plane allocator loops over all planes to find free candidates. However, instead of looping over the number of hardware planes, it loops over the number of software planes, which happens to be larger by one unit. This has no effect in practise as the extra plane is always cleared in the mask of free planes, but it should still be fixed for correctness. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
This commit is contained in:
parent
917de18037
commit
3053460482
@ -54,7 +54,7 @@ int rcar_du_plane_reserve(struct rcar_du_plane *plane,
|
||||
|
||||
mutex_lock(&rgrp->planes.lock);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(rgrp->planes.planes); ++i) {
|
||||
for (i = 0; i < RCAR_DU_NUM_HW_PLANES; ++i) {
|
||||
if (!(rgrp->planes.free & (1 << i)))
|
||||
continue;
|
||||
|
||||
@ -63,7 +63,7 @@ int rcar_du_plane_reserve(struct rcar_du_plane *plane,
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == ARRAY_SIZE(rgrp->planes.planes))
|
||||
if (i == RCAR_DU_NUM_HW_PLANES)
|
||||
goto done;
|
||||
|
||||
rgrp->planes.free &= ~(1 << i);
|
||||
|
Loading…
Reference in New Issue
Block a user