Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/imx: switch to use media bus formats

imx-drm internally misused the V4L2_PIX_FMT constants, which are supposed to
describe the pixel format of frame buffers in memory, to describe the pixel
format on the bus between the display controller and the encoder hardware.
Now that MEDIA_BUS_FMT constants are available to drm drivers, use those
instead.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Tested-by: Emil Renner Berthing <kernel@esmil.dk>

+18 -18
+1 -1
drivers/gpu/drm/imx/dw_hdmi-imx.c
··· 123 123 124 124 static void dw_hdmi_imx_encoder_prepare(struct drm_encoder *encoder) 125 125 { 126 - imx_drm_panel_format(encoder, V4L2_PIX_FMT_RGB24); 126 + imx_drm_panel_format(encoder, MEDIA_BUS_FMT_RGB888_1X24); 127 127 } 128 128 129 129 static struct drm_encoder_helper_funcs dw_hdmi_imx_encoder_helper_funcs = {
+3 -3
drivers/gpu/drm/imx/imx-ldb.c
··· 168 168 switch (imx_ldb_ch->chno) { 169 169 case 0: 170 170 pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ? 171 - V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666; 171 + MEDIA_BUS_FMT_RGB888_1X24 : MEDIA_BUS_FMT_RGB666_1X18; 172 172 break; 173 173 case 1: 174 174 pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ? 175 - V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666; 175 + MEDIA_BUS_FMT_RGB888_1X24 : MEDIA_BUS_FMT_RGB666_1X18; 176 176 break; 177 177 default: 178 178 dev_err(ldb->dev, "unable to config di%d panel format\n", 179 179 imx_ldb_ch->chno); 180 - pixel_fmt = V4L2_PIX_FMT_RGB24; 180 + pixel_fmt = MEDIA_BUS_FMT_RGB888_1X24; 181 181 } 182 182 183 183 imx_drm_panel_format(encoder, pixel_fmt);
+2 -2
drivers/gpu/drm/imx/imx-tve.c
··· 301 301 302 302 switch (tve->mode) { 303 303 case TVE_MODE_VGA: 304 - imx_drm_panel_format_pins(encoder, IPU_PIX_FMT_GBR24, 304 + imx_drm_panel_format_pins(encoder, MEDIA_BUS_FMT_YUV8_1X24, 305 305 tve->hsync_pin, tve->vsync_pin); 306 306 break; 307 307 case TVE_MODE_TVOUT: 308 - imx_drm_panel_format(encoder, V4L2_PIX_FMT_YUV444); 308 + imx_drm_panel_format(encoder, MEDIA_BUS_FMT_YUV8_1X24); 309 309 break; 310 310 } 311 311 }
+4 -4
drivers/gpu/drm/imx/parallel-display.c
··· 225 225 ret = of_property_read_string(np, "interface-pix-fmt", &fmt); 226 226 if (!ret) { 227 227 if (!strcmp(fmt, "rgb24")) 228 - imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB24; 228 + imxpd->interface_pix_fmt = MEDIA_BUS_FMT_RGB888_1X24; 229 229 else if (!strcmp(fmt, "rgb565")) 230 - imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB565; 230 + imxpd->interface_pix_fmt = MEDIA_BUS_FMT_RGB565_1X16; 231 231 else if (!strcmp(fmt, "bgr666")) 232 - imxpd->interface_pix_fmt = V4L2_PIX_FMT_BGR666; 232 + imxpd->interface_pix_fmt = MEDIA_BUS_FMT_RGB666_1X18; 233 233 else if (!strcmp(fmt, "lvds666")) 234 234 imxpd->interface_pix_fmt = 235 - v4l2_fourcc('L', 'V', 'D', '6'); 235 + MEDIA_BUS_FMT_RGB666_1X24_CPADHI; 236 236 } 237 237 238 238 panel_node = of_parse_phandle(np, "fsl,panel", 0);
+8 -8
drivers/gpu/ipu-v3/ipu-dc.c
··· 147 147 writel(reg2, priv->dc_tmpl_reg + word * 8 + 4); 148 148 } 149 149 150 - static int ipu_pixfmt_to_map(u32 fmt) 150 + static int ipu_bus_format_to_map(u32 fmt) 151 151 { 152 152 switch (fmt) { 153 - case V4L2_PIX_FMT_RGB24: 153 + case MEDIA_BUS_FMT_RGB888_1X24: 154 154 return IPU_DC_MAP_RGB24; 155 - case V4L2_PIX_FMT_RGB565: 155 + case MEDIA_BUS_FMT_RGB565_1X16: 156 156 return IPU_DC_MAP_RGB565; 157 - case IPU_PIX_FMT_GBR24: 157 + case MEDIA_BUS_FMT_GBR888_1X24: 158 158 return IPU_DC_MAP_GBR24; 159 - case V4L2_PIX_FMT_BGR666: 159 + case MEDIA_BUS_FMT_RGB666_1X18: 160 160 return IPU_DC_MAP_BGR666; 161 - case v4l2_fourcc('L', 'V', 'D', '6'): 161 + case MEDIA_BUS_FMT_RGB666_1X24_CPADHI: 162 162 return IPU_DC_MAP_LVDS666; 163 - case V4L2_PIX_FMT_BGR24: 163 + case MEDIA_BUS_FMT_BGR888_1X24: 164 164 return IPU_DC_MAP_BGR24; 165 165 default: 166 166 return -EINVAL; ··· 176 176 177 177 dc->di = ipu_di_get_num(di); 178 178 179 - map = ipu_pixfmt_to_map(pixel_fmt); 179 + map = ipu_bus_format_to_map(pixel_fmt); 180 180 if (map < 0) { 181 181 dev_dbg(priv->dev, "IPU_DISP: No MAP\n"); 182 182 return map;