aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/vc4')
-rw-r--r--drivers/gpu/drm/vc4/vc4_dpi.c14
-rw-r--r--drivers/gpu/drm/vc4/vc4_hdmi.c13
-rw-r--r--drivers/gpu/drm/vc4/vc4_plane.c8
3 files changed, 18 insertions, 17 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
index 9817dbfa4ac3..9cb2d3e6e1c0 100644
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -236,14 +236,12 @@ static struct drm_connector *vc4_dpi_connector_init(struct drm_device *dev,
236{ 236{
237 struct drm_connector *connector = NULL; 237 struct drm_connector *connector = NULL;
238 struct vc4_dpi_connector *dpi_connector; 238 struct vc4_dpi_connector *dpi_connector;
239 int ret = 0;
240 239
241 dpi_connector = devm_kzalloc(dev->dev, sizeof(*dpi_connector), 240 dpi_connector = devm_kzalloc(dev->dev, sizeof(*dpi_connector),
242 GFP_KERNEL); 241 GFP_KERNEL);
243 if (!dpi_connector) { 242 if (!dpi_connector)
244 ret = -ENOMEM; 243 return ERR_PTR(-ENOMEM);
245 goto fail; 244
246 }
247 connector = &dpi_connector->base; 245 connector = &dpi_connector->base;
248 246
249 dpi_connector->encoder = dpi->encoder; 247 dpi_connector->encoder = dpi->encoder;
@@ -260,12 +258,6 @@ static struct drm_connector *vc4_dpi_connector_init(struct drm_device *dev,
260 drm_mode_connector_attach_encoder(connector, dpi->encoder); 258 drm_mode_connector_attach_encoder(connector, dpi->encoder);
261 259
262 return connector; 260 return connector;
263
264 fail:
265 if (connector)
266 vc4_dpi_connector_destroy(connector);
267
268 return ERR_PTR(ret);
269} 261}
270 262
271static const struct drm_encoder_funcs vc4_dpi_encoder_funcs = { 263static const struct drm_encoder_funcs vc4_dpi_encoder_funcs = {
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index fd2644d231ff..26b6b067567c 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -465,12 +465,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
465 if (IS_ERR(hdmi->hd_regs)) 465 if (IS_ERR(hdmi->hd_regs))
466 return PTR_ERR(hdmi->hd_regs); 466 return PTR_ERR(hdmi->hd_regs);
467 467
468 ddc_node = of_parse_phandle(dev->of_node, "ddc", 0);
469 if (!ddc_node) {
470 DRM_ERROR("Failed to find ddc node in device tree\n");
471 return -ENODEV;
472 }
473
474 hdmi->pixel_clock = devm_clk_get(dev, "pixel"); 468 hdmi->pixel_clock = devm_clk_get(dev, "pixel");
475 if (IS_ERR(hdmi->pixel_clock)) { 469 if (IS_ERR(hdmi->pixel_clock)) {
476 DRM_ERROR("Failed to get pixel clock\n"); 470 DRM_ERROR("Failed to get pixel clock\n");
@@ -482,7 +476,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
482 return PTR_ERR(hdmi->hsm_clock); 476 return PTR_ERR(hdmi->hsm_clock);
483 } 477 }
484 478
479 ddc_node = of_parse_phandle(dev->of_node, "ddc", 0);
480 if (!ddc_node) {
481 DRM_ERROR("Failed to find ddc node in device tree\n");
482 return -ENODEV;
483 }
484
485 hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); 485 hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node);
486 of_node_put(ddc_node);
486 if (!hdmi->ddc) { 487 if (!hdmi->ddc) {
487 DRM_DEBUG("Failed to get ddc i2c adapter by node\n"); 488 DRM_DEBUG("Failed to get ddc i2c adapter by node\n");
488 return -EPROBE_DEFER; 489 return -EPROBE_DEFER;
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index 4037b52fde31..b12deef2527d 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -94,6 +94,14 @@ static const struct hvs_format {
94 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = true, 94 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = true,
95 }, 95 },
96 { 96 {
97 .drm = DRM_FORMAT_ABGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
98 .pixel_order = HVS_PIXEL_ORDER_ARGB, .has_alpha = true,
99 },
100 {
101 .drm = DRM_FORMAT_XBGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
102 .pixel_order = HVS_PIXEL_ORDER_ARGB, .has_alpha = false,
103 },
104 {
97 .drm = DRM_FORMAT_RGB565, .hvs = HVS_PIXEL_FORMAT_RGB565, 105 .drm = DRM_FORMAT_RGB565, .hvs = HVS_PIXEL_FORMAT_RGB565,
98 .pixel_order = HVS_PIXEL_ORDER_XRGB, .has_alpha = false, 106 .pixel_order = HVS_PIXEL_ORDER_XRGB, .has_alpha = false,
99 }, 107 },