Commit d6a48965 authored by Russell King's avatar Russell King
Browse files

drm/armada: improve efficiency of armada_drm_plane_calc_addrs()



Lookup the drm_format_info structure once when computing all the
framebuffer plane addresses by using drm_format_info(), rather than
repetitive lookups via drm_format_plane_cpp().

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 9c898c49
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -168,8 +168,9 @@ static void armada_drm_crtc_update(struct armada_crtc *dcrtc)
void armada_drm_plane_calc_addrs(u32 *addrs, struct drm_framebuffer *fb,
	int x, int y)
{
	const struct drm_format_info *format = fb->format;
	unsigned int num_planes = format->num_planes;
	u32 addr = drm_fb_obj(fb)->dev_addr;
	int num_planes = fb->format->num_planes;
	int i;

	if (num_planes > 3)
@@ -177,7 +178,7 @@ void armada_drm_plane_calc_addrs(u32 *addrs, struct drm_framebuffer *fb,

	for (i = 0; i < num_planes; i++)
		addrs[i] = addr + fb->offsets[i] + y * fb->pitches[i] +
			     x * fb->format->cpp[i];
			     x * format->cpp[i];
	for (; i < 3; i++)
		addrs[i] = 0;
}