Skip to content

Commit fb8d617

Browse files
author
Laurent Pinchart
committed
drm/bridge: Centralize error message when bridge attach fails
Being informed of a failure to attach a bridge is useful, and many drivers prints an error message in that case. Move the message to drm_bridge_attach() to avoid code duplication. Suggested-by: Stephen Boyd <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> Reviewed-by: Jyri Sarha <[email protected]>
1 parent 5e7ef0b commit fb8d617

File tree

26 files changed

+33
-103
lines changed

26 files changed

+33
-103
lines changed

drivers/gpu/drm/bridge/analogix/analogix_dp_core.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,7 +1583,6 @@ static int analogix_dp_create_bridge(struct drm_device *drm_dev,
15831583
struct analogix_dp_device *dp)
15841584
{
15851585
struct drm_bridge *bridge;
1586-
int ret;
15871586

15881587
bridge = devm_kzalloc(drm_dev->dev, sizeof(*bridge), GFP_KERNEL);
15891588
if (!bridge) {
@@ -1596,13 +1595,7 @@ static int analogix_dp_create_bridge(struct drm_device *drm_dev,
15961595
bridge->driver_private = dp;
15971596
bridge->funcs = &analogix_dp_bridge_funcs;
15981597

1599-
ret = drm_bridge_attach(dp->encoder, bridge, NULL, 0);
1600-
if (ret) {
1601-
DRM_ERROR("failed to attach drm bridge\n");
1602-
return -EINVAL;
1603-
}
1604-
1605-
return 0;
1598+
return drm_bridge_attach(dp->encoder, bridge, NULL, 0);
16061599
}
16071600

16081601
static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp)

drivers/gpu/drm/bridge/analogix/anx7625.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,11 +1359,8 @@ static int anx7625_bridge_attach(struct drm_bridge *bridge,
13591359
err = drm_bridge_attach(bridge->encoder,
13601360
ctx->pdata.panel_bridge,
13611361
&ctx->bridge, flags);
1362-
if (err) {
1363-
DRM_DEV_ERROR(dev,
1364-
"Fail to attach panel bridge: %d\n", err);
1362+
if (err)
13651363
return err;
1366-
}
13671364
}
13681365

13691366
ctx->bridge_attached = 1;

drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3474,7 +3474,6 @@ struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev,
34743474
ret = drm_bridge_attach(encoder, &hdmi->bridge, NULL, 0);
34753475
if (ret) {
34763476
dw_hdmi_remove(hdmi);
3477-
DRM_ERROR("Failed to initialize bridge with drm\n");
34783477
return ERR_PTR(ret);
34793478
}
34803479

drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,15 +1229,7 @@ EXPORT_SYMBOL_GPL(dw_mipi_dsi_remove);
12291229
*/
12301230
int dw_mipi_dsi_bind(struct dw_mipi_dsi *dsi, struct drm_encoder *encoder)
12311231
{
1232-
int ret;
1233-
1234-
ret = drm_bridge_attach(encoder, &dsi->bridge, NULL, 0);
1235-
if (ret) {
1236-
DRM_ERROR("Failed to initialize bridge with drm\n");
1237-
return ret;
1238-
}
1239-
1240-
return ret;
1232+
return drm_bridge_attach(encoder, &dsi->bridge, NULL, 0);
12411233
}
12421234
EXPORT_SYMBOL_GPL(dw_mipi_dsi_bind);
12431235

drivers/gpu/drm/drm_bridge.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <drm/drm_atomic_state_helper.h>
2929
#include <drm/drm_bridge.h>
3030
#include <drm/drm_encoder.h>
31+
#include <drm/drm_print.h>
3132

3233
#include "drm_crtc_internal.h"
3334

@@ -225,6 +226,15 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
225226
bridge->dev = NULL;
226227
bridge->encoder = NULL;
227228
list_del(&bridge->chain_node);
229+
230+
#ifdef CONFIG_OF
231+
DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",
232+
bridge->of_node, encoder->name, ret);
233+
#else
234+
DRM_ERROR("failed to attach bridge to encoder %s: %d\n",
235+
encoder->name, ret);
236+
#endif
237+
228238
return ret;
229239
}
230240
EXPORT_SYMBOL(drm_bridge_attach);

drivers/gpu/drm/exynos/exynos_dp.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,8 @@ static int exynos_dp_bridge_attach(struct analogix_dp_plat_data *plat_data,
109109
if (dp->ptn_bridge) {
110110
ret = drm_bridge_attach(&dp->encoder, dp->ptn_bridge, bridge,
111111
0);
112-
if (ret) {
113-
DRM_DEV_ERROR(dp->dev,
114-
"Failed to attach bridge to drm\n");
112+
if (ret)
115113
return ret;
116-
}
117114
}
118115

119116
return 0;

drivers/gpu/drm/exynos/exynos_hdmi.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -970,11 +970,8 @@ static int hdmi_create_connector(struct drm_encoder *encoder)
970970
drm_connector_helper_add(connector, &hdmi_connector_helper_funcs);
971971
drm_connector_attach_encoder(connector, encoder);
972972

973-
if (hdata->bridge) {
973+
if (hdata->bridge)
974974
ret = drm_bridge_attach(encoder, hdata->bridge, NULL, 0);
975-
if (ret)
976-
DRM_DEV_ERROR(hdata->dev, "Failed to attach bridge\n");
977-
}
978975

979976
cec_fill_conn_info_from_drm(&conn_info, connector);
980977

drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -769,16 +769,9 @@ static int dsi_bridge_init(struct drm_device *dev, struct dw_dsi *dsi)
769769
{
770770
struct drm_encoder *encoder = &dsi->encoder;
771771
struct drm_bridge *bridge = dsi->bridge;
772-
int ret;
773772

774773
/* associate the bridge to dsi encoder */
775-
ret = drm_bridge_attach(encoder, bridge, NULL, 0);
776-
if (ret) {
777-
DRM_ERROR("failed to attach external bridge\n");
778-
return ret;
779-
}
780-
781-
return 0;
774+
return drm_bridge_attach(encoder, bridge, NULL, 0);
782775
}
783776

784777
static int dsi_bind(struct device *dev, struct device *master, void *data)

drivers/gpu/drm/imx/dcss/dcss-kms.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,8 @@ static int dcss_kms_bridge_connector_init(struct dcss_kms_dev *kms)
9393

9494
ret = drm_bridge_attach(encoder, bridge, NULL,
9595
DRM_BRIDGE_ATTACH_NO_CONNECTOR);
96-
if (ret < 0) {
97-
dev_err(ddev->dev, "Unable to attach bridge %pOF\n",
98-
bridge->of_node);
96+
if (ret < 0)
9997
return ret;
100-
}
10198

10299
kms->connector = drm_bridge_connector_init(ddev, encoder);
103100
if (IS_ERR(kms->connector)) {

drivers/gpu/drm/imx/imx-ldb.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -465,10 +465,8 @@ static int imx_ldb_register(struct drm_device *drm,
465465

466466
if (imx_ldb_ch->bridge) {
467467
ret = drm_bridge_attach(encoder, imx_ldb_ch->bridge, NULL, 0);
468-
if (ret) {
469-
DRM_ERROR("Failed to initialize bridge with drm\n");
468+
if (ret)
470469
return ret;
471-
}
472470
} else {
473471
/*
474472
* We want to add the connector whenever there is no bridge

0 commit comments

Comments
 (0)