mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
drm/imx: imx-drm alignment and plane offset fixes
Fix an accidental partial revert of commit94dfec48fc
("drm/imx: Add 8 pixel alignment fix") and plane offset calculations for capture of non-aligned resolutions. -----BEGIN PGP SIGNATURE----- iI0EABYIADUWIQRRO6F6WdpH1R0vGibVhaclGDdiwAUCYR0BNhcccC56YWJlbEBw ZW5ndXRyb25peC5kZQAKCRDVhaclGDdiwJU1AP9gtT4FQnIwfMBHzCEkMfLmC50K Kj0Piu6STOikM8/NdgD8DbL/WJnY3CBE/vyuKmYYn5cvf50tES7UbysIjEFa+wA= =i/1n -----END PGP SIGNATURE----- Merge tag 'imx-drm-fixes-2021-08-18' of git://git.pengutronix.de/pza/linux into drm-fixes drm/imx: imx-drm alignment and plane offset fixes Fix an accidental partial revert of commit94dfec48fc
("drm/imx: Add 8 pixel alignment fix") and plane offset calculations for capture of non-aligned resolutions. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Philipp Zabel <p.zabel@pengutronix.de> Link: https://patchwork.freedesktop.org/patch/msgid/85a41af99beb2c9e7d6020435a135bf9f205a5ff.camel@pengutronix.de
This commit is contained in:
commit
9fe4f5a24f
@ -683,7 +683,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
|
||||
break;
|
||||
}
|
||||
|
||||
ipu_dmfc_config_wait4eot(ipu_plane->dmfc, drm_rect_width(dst));
|
||||
ipu_dmfc_config_wait4eot(ipu_plane->dmfc, ALIGN(drm_rect_width(dst), 8));
|
||||
|
||||
width = ipu_src_rect_width(new_state);
|
||||
height = drm_rect_height(&new_state->src) >> 16;
|
||||
|
@ -585,21 +585,21 @@ static const struct ipu_rgb def_bgra_16 = {
|
||||
.bits_per_pixel = 16,
|
||||
};
|
||||
|
||||
#define Y_OFFSET(pix, x, y) ((x) + pix->width * (y))
|
||||
#define U_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * ((y) / 2) / 2) + (x) / 2)
|
||||
#define V_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * pix->height / 4) + \
|
||||
(pix->width * ((y) / 2) / 2) + (x) / 2)
|
||||
#define U2_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * (y) / 2) + (x) / 2)
|
||||
#define V2_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * pix->height / 2) + \
|
||||
(pix->width * (y) / 2) + (x) / 2)
|
||||
#define UV_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * ((y) / 2)) + (x))
|
||||
#define UV2_OFFSET(pix, x, y) ((pix->width * pix->height) + \
|
||||
(pix->width * y) + (x))
|
||||
#define Y_OFFSET(pix, x, y) ((x) + pix->bytesperline * (y))
|
||||
#define U_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
|
||||
#define V_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * pix->height / 4) + \
|
||||
(pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
|
||||
#define U2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * (y) / 2) + (x) / 2)
|
||||
#define V2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * pix->height / 2) + \
|
||||
(pix->bytesperline * (y) / 2) + (x) / 2)
|
||||
#define UV_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * ((y) / 2)) + (x))
|
||||
#define UV2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \
|
||||
(pix->bytesperline * y) + (x))
|
||||
|
||||
#define NUM_ALPHA_CHANNELS 7
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user