diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_dpi.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_hdmi.c | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_plane.c | 8 |
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 | ||
271 | static const struct drm_encoder_funcs vc4_dpi_encoder_funcs = { | 263 | static 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 | }, |