Skip to content

Commit 73c98bf

Browse files
committed
Merge tag 'drm-next-20230814' of git://git.kernel.org/pub/scm/linux/kernel/git/pinchartl/linux into drm-next
Renesas R-Car DU miscellaneous changes Signed-off-by: Dave Airlie <airlied@redhat.com> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230814130531.GC22929@pendragon.ideasonboard.com
2 parents e1f9c84 + 9701845 commit 73c98bf

File tree

4 files changed

+50
-23
lines changed

4 files changed

+50
-23
lines changed

drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,10 @@ static int rcar_du_probe(struct platform_device *pdev)
696696
/* DRM/KMS objects */
697697
ret = rcar_du_modeset_init(rcdu);
698698
if (ret < 0) {
699+
/*
700+
* Don't use dev_err_probe(), as it would overwrite the probe
701+
* deferral reason recorded in rcar_du_modeset_init().
702+
*/
699703
if (ret != -EPROBE_DEFER)
700704
dev_err(&pdev->dev,
701705
"failed to initialize DRM/KMS (%d)\n", ret);
@@ -710,7 +714,7 @@ static int rcar_du_probe(struct platform_device *pdev)
710714
if (ret)
711715
goto error;
712716

713-
DRM_INFO("Device %s probed\n", dev_name(&pdev->dev));
717+
drm_info(&rcdu->ddev, "Device %s probed\n", dev_name(&pdev->dev));
714718

715719
drm_fbdev_generic_setup(&rcdu->ddev, 32);
716720

drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,8 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
935935
/* Initialize the Color Management Modules. */
936936
ret = rcar_du_cmm_init(rcdu);
937937
if (ret)
938-
return ret;
938+
return dev_err_probe(rcdu->dev, ret,
939+
"failed to initialize CMM\n");
939940

940941
/* Create the CRTCs. */
941942
for (swindex = 0, hwindex = 0; swindex < rcdu->num_crtcs; ++hwindex) {
@@ -955,7 +956,8 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
955956
/* Initialize the encoders. */
956957
ret = rcar_du_encoders_init(rcdu);
957958
if (ret < 0)
958-
return ret;
959+
return dev_err_probe(rcdu->dev, ret,
960+
"failed to initialize encoders\n");
959961

960962
if (ret == 0) {
961963
dev_err(rcdu->dev, "error: no encoder could be initialized\n");

drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ static const u32 rcar_du_vsp_formats[] = {
123123
DRM_FORMAT_RGB888,
124124
DRM_FORMAT_BGRA8888,
125125
DRM_FORMAT_BGRX8888,
126+
DRM_FORMAT_ABGR8888,
127+
DRM_FORMAT_XBGR8888,
126128
DRM_FORMAT_ARGB8888,
127129
DRM_FORMAT_XRGB8888,
128130
DRM_FORMAT_UYVY,
@@ -155,6 +157,8 @@ static const u32 rcar_du_vsp_formats_gen4[] = {
155157
DRM_FORMAT_RGB888,
156158
DRM_FORMAT_BGRA8888,
157159
DRM_FORMAT_BGRX8888,
160+
DRM_FORMAT_ABGR8888,
161+
DRM_FORMAT_XBGR8888,
158162
DRM_FORMAT_ARGB8888,
159163
DRM_FORMAT_XRGB8888,
160164
DRM_FORMAT_RGBX1010102,
@@ -177,6 +181,41 @@ static const u32 rcar_du_vsp_formats_gen4[] = {
177181
DRM_FORMAT_Y212,
178182
};
179183

184+
static u32 rcar_du_vsp_state_get_format(struct rcar_du_vsp_plane_state *state)
185+
{
186+
u32 fourcc = state->format->fourcc;
187+
188+
if (state->state.pixel_blend_mode == DRM_MODE_BLEND_PIXEL_NONE) {
189+
switch (fourcc) {
190+
case DRM_FORMAT_ARGB1555:
191+
fourcc = DRM_FORMAT_XRGB1555;
192+
break;
193+
194+
case DRM_FORMAT_ARGB4444:
195+
fourcc = DRM_FORMAT_XRGB4444;
196+
break;
197+
198+
case DRM_FORMAT_ARGB8888:
199+
fourcc = DRM_FORMAT_XRGB8888;
200+
break;
201+
202+
case DRM_FORMAT_ABGR8888:
203+
fourcc = DRM_FORMAT_XBGR8888;
204+
break;
205+
206+
case DRM_FORMAT_BGRA8888:
207+
fourcc = DRM_FORMAT_BGRX8888;
208+
break;
209+
210+
case DRM_FORMAT_RGBA1010102:
211+
fourcc = DRM_FORMAT_RGBX1010102;
212+
break;
213+
}
214+
}
215+
216+
return fourcc;
217+
}
218+
180219
static void rcar_du_vsp_plane_setup(struct rcar_du_vsp_plane *plane)
181220
{
182221
struct rcar_du_vsp_plane_state *state =
@@ -190,7 +229,7 @@ static void rcar_du_vsp_plane_setup(struct rcar_du_vsp_plane *plane)
190229
.alpha = state->state.alpha >> 8,
191230
.zpos = state->state.zpos,
192231
};
193-
u32 fourcc = state->format->fourcc;
232+
u32 fourcc = rcar_du_vsp_state_get_format(state);
194233
unsigned int i;
195234

196235
cfg.src.left = state->state.src.x1 >> 16;
@@ -207,22 +246,6 @@ static void rcar_du_vsp_plane_setup(struct rcar_du_vsp_plane *plane)
207246
cfg.mem[i] = sg_dma_address(state->sg_tables[i].sgl)
208247
+ fb->offsets[i];
209248

210-
if (state->state.pixel_blend_mode == DRM_MODE_BLEND_PIXEL_NONE) {
211-
switch (fourcc) {
212-
case DRM_FORMAT_ARGB1555:
213-
fourcc = DRM_FORMAT_XRGB1555;
214-
break;
215-
216-
case DRM_FORMAT_ARGB4444:
217-
fourcc = DRM_FORMAT_XRGB4444;
218-
break;
219-
220-
case DRM_FORMAT_ARGB8888:
221-
fourcc = DRM_FORMAT_XRGB8888;
222-
break;
223-
}
224-
}
225-
226249
format = rcar_du_format_info(fourcc);
227250
cfg.pixelformat = format->v4l2;
228251

drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,7 +1001,6 @@ static int rcar_mipi_dsi_get_clocks(struct rcar_mipi_dsi *dsi)
10011001
static int rcar_mipi_dsi_probe(struct platform_device *pdev)
10021002
{
10031003
struct rcar_mipi_dsi *dsi;
1004-
struct resource *mem;
10051004
int ret;
10061005

10071006
dsi = devm_kzalloc(&pdev->dev, sizeof(*dsi), GFP_KERNEL);
@@ -1018,8 +1017,7 @@ static int rcar_mipi_dsi_probe(struct platform_device *pdev)
10181017
return ret;
10191018

10201019
/* Acquire resources. */
1021-
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1022-
dsi->mmio = devm_ioremap_resource(dsi->dev, mem);
1020+
dsi->mmio = devm_platform_ioremap_resource(pdev, 0);
10231021
if (IS_ERR(dsi->mmio))
10241022
return PTR_ERR(dsi->mmio);
10251023

0 commit comments

Comments
 (0)