提交 30534604 编写于 作者: L Laurent Pinchart

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: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
上级 917de180
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册