Message ID | 20191210151111.21510-1-mihail.atanassov@arm.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | drm: remove drm_bridge->dev | expand |
Am 10.12.19 um 16:11 schrieb Mihail Atanassov: > As suggested in [1], the 'dev' field is a bit repetitive, since it 1:1 > follows the setting and NULLing of the 'encoder' field. Therefore, use > drm_bridge->encoder->dev in place of drm_bridge->dev. > > [1] https://patchwork.freedesktop.org/patch/343824/ > > Cc: Daniel Vetter <daniel@ffwll.ch> > Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> > Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com> Nice. Acked-by: Thomas Zimmermann > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- > drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +- > drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +- > drivers/gpu/drm/bridge/cdns-dsi.c | 2 +- > drivers/gpu/drm/bridge/dumb-vga-dac.c | 2 +- > .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +- > drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +- > drivers/gpu/drm/bridge/panel.c | 2 +- > drivers/gpu/drm/bridge/parade-ps8622.c | 2 +- > drivers/gpu/drm/bridge/sii902x.c | 6 +++--- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +++--- > drivers/gpu/drm/bridge/tc358764.c | 4 ++-- > drivers/gpu/drm/bridge/tc358767.c | 6 +++--- > drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +- > drivers/gpu/drm/bridge/ti-tfp410.c | 6 +++--- > drivers/gpu/drm/drm_bridge.c | 10 ++++------ > drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- > drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- > drivers/gpu/drm/msm/edp/edp_bridge.c | 2 +- > drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 ++- > include/drm/drm_bridge.h | 2 -- > 22 files changed, 35 insertions(+), 38 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > index 9e13e466e72c..009cf1fef8d4 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > @@ -863,7 +863,7 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) > adv->connector.polled = DRM_CONNECTOR_POLL_CONNECT | > DRM_CONNECTOR_POLL_DISCONNECT; > > - ret = drm_connector_init(bridge->dev, &adv->connector, > + ret = drm_connector_init(bridge->encoder->dev, &adv->connector, > &adv7511_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > index 9917ce0d86a0..5b806d23fcb3 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > @@ -541,7 +541,7 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge) > return err; > } > > - err = drm_connector_init(bridge->dev, &anx6345->connector, > + err = drm_connector_init(bridge->encoder->dev, &anx6345->connector, > &anx6345_connector_funcs, > DRM_MODE_CONNECTOR_eDP); > if (err) { > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > index 41867be03751..7463537950cb 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > @@ -908,7 +908,7 @@ static int anx78xx_bridge_attach(struct drm_bridge *bridge) > return err; > } > > - err = drm_connector_init(bridge->dev, &anx78xx->connector, > + err = drm_connector_init(bridge->encoder->dev, &anx78xx->connector, > &anx78xx_connector_funcs, > DRM_MODE_CONNECTOR_DisplayPort); > if (err) { > diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c > index 3a5bd4e7fd1e..32863e3ad537 100644 > --- a/drivers/gpu/drm/bridge/cdns-dsi.c > +++ b/drivers/gpu/drm/bridge/cdns-dsi.c > @@ -651,7 +651,7 @@ static int cdns_dsi_bridge_attach(struct drm_bridge *bridge) > struct cdns_dsi *dsi = input_to_dsi(input); > struct cdns_dsi_output *output = &dsi->output; > > - if (!drm_core_check_feature(bridge->dev, DRIVER_ATOMIC)) { > + if (!drm_core_check_feature(bridge->encoder->dev, DRIVER_ATOMIC)) { > dev_err(dsi->base.dev, > "cdns-dsi driver is only compatible with DRM devices supporting atomic updates"); > return -ENOTSUPP; > diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c > index cc33dc411b9e..67ad6cecf68d 100644 > --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c > +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c > @@ -112,7 +112,7 @@ static int dumb_vga_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(&vga->connector, > &dumb_vga_con_helper_funcs); > - ret = drm_connector_init_with_ddc(bridge->dev, &vga->connector, > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &vga->connector, > &dumb_vga_con_funcs, > DRM_MODE_CONNECTOR_VGA, > vga->ddc); > diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > index e8a49f6146c6..c914f01e4707 100644 > --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > @@ -223,7 +223,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge) > drm_connector_helper_add(connector, > &ge_b850v3_lvds_connector_helper_funcs); > > - ret = drm_connector_init(bridge->dev, connector, > + ret = drm_connector_init(bridge->encoder->dev, connector, > &ge_b850v3_lvds_connector_funcs, > DRM_MODE_CONNECTOR_DisplayPort); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c > index 57ff01339559..3999bb864eb9 100644 > --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c > +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c > @@ -247,7 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge) > } > > ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD; > - ret = drm_connector_init(bridge->dev, &ptn_bridge->connector, > + ret = drm_connector_init(bridge->encoder->dev, &ptn_bridge->connector, > &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > if (ret) { > DRM_ERROR("Failed to initialize connector with drm\n"); > diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c > index f66777e24968..4ba4e9d9537a 100644 > --- a/drivers/gpu/drm/bridge/panel.c > +++ b/drivers/gpu/drm/bridge/panel.c > @@ -67,7 +67,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge) > drm_connector_helper_add(connector, > &panel_bridge_connector_helper_funcs); > > - ret = drm_connector_init(bridge->dev, connector, > + ret = drm_connector_init(bridge->encoder->dev, connector, > &panel_bridge_connector_funcs, > panel_bridge->connector_type); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c > index 10c47c008b40..c32af9c2bbcc 100644 > --- a/drivers/gpu/drm/bridge/parade-ps8622.c > +++ b/drivers/gpu/drm/bridge/parade-ps8622.c > @@ -487,7 +487,7 @@ static int ps8622_attach(struct drm_bridge *bridge) > } > > ps8622->connector.polled = DRM_CONNECTOR_POLL_HPD; > - ret = drm_connector_init(bridge->dev, &ps8622->connector, > + ret = drm_connector_init(bridge->encoder->dev, &ps8622->connector, > &ps8622_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > if (ret) { > DRM_ERROR("Failed to initialize connector with drm\n"); > diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c > index b70e8c5cf2e1..6ca297d78a26 100644 > --- a/drivers/gpu/drm/bridge/sii902x.c > +++ b/drivers/gpu/drm/bridge/sii902x.c > @@ -402,7 +402,7 @@ static void sii902x_bridge_mode_set(struct drm_bridge *bridge, > static int sii902x_bridge_attach(struct drm_bridge *bridge) > { > struct sii902x *sii902x = bridge_to_sii902x(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > drm_connector_helper_add(&sii902x->connector, > @@ -820,8 +820,8 @@ static irqreturn_t sii902x_interrupt(int irq, void *data) > > mutex_unlock(&sii902x->mutex); > > - if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.dev) > - drm_helper_hpd_irq_event(sii902x->bridge.dev); > + if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.encoder) > + drm_helper_hpd_irq_event(sii902x->bridge.encoder->dev); > > return IRQ_HANDLED; > } > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > index dbe38a54870b..99274ca0fdf6 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -2346,7 +2346,7 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); > > - drm_connector_init_with_ddc(bridge->dev, connector, > + drm_connector_init_with_ddc(bridge->encoder->dev, connector, > &dw_hdmi_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA, > hdmi->ddc); > @@ -2554,8 +2554,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) > if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { > dev_dbg(hdmi->dev, "EVENT=%s\n", > phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); > - if (hdmi->bridge.dev) > - drm_helper_hpd_irq_event(hdmi->bridge.dev); > + if (hdmi->bridge.encoder) > + drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); > } > > hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); > diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c > index 96207fcfde19..e35e17b1f396 100644 > --- a/drivers/gpu/drm/bridge/tc358764.c > +++ b/drivers/gpu/drm/bridge/tc358764.c > @@ -352,7 +352,7 @@ static void tc358764_enable(struct drm_bridge *bridge) > static int tc358764_attach(struct drm_bridge *bridge) > { > struct tc358764 *ctx = bridge_to_tc358764(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; > @@ -378,7 +378,7 @@ static int tc358764_attach(struct drm_bridge *bridge) > static void tc358764_detach(struct drm_bridge *bridge) > { > struct tc358764 *ctx = bridge_to_tc358764(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > > drm_connector_unregister(&ctx->connector); > drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); > diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c > index 3709e5ace724..ab1524c00777 100644 > --- a/drivers/gpu/drm/bridge/tc358767.c > +++ b/drivers/gpu/drm/bridge/tc358767.c > @@ -1407,7 +1407,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge) > { > u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; > struct tc_data *tc = bridge_to_tc(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > /* Create DP/eDP connector */ > @@ -1514,7 +1514,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > dev_err(tc->dev, "syserr %x\n", stat); > } > > - if (tc->hpd_pin >= 0 && tc->bridge.dev) { > + if (tc->hpd_pin >= 0 && tc->bridge.encoder) { > /* > * H is triggered when the GPIO goes high. > * > @@ -1528,7 +1528,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > h ? "H" : "", lc ? "LC" : ""); > > if (h || lc) > - drm_kms_helper_hotplug_event(tc->bridge.dev); > + drm_kms_helper_hotplug_event(tc->bridge.encoder->dev); > } > > regmap_write(tc->regmap, INTSTS_G, val); > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > index 9a2dd986afa5..8a4e64cfca1e 100644 > --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > @@ -275,7 +275,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) > .node = NULL, > }; > > - ret = drm_connector_init(bridge->dev, &pdata->connector, > + ret = drm_connector_init(bridge->encoder->dev, &pdata->connector, > &ti_sn_bridge_connector_funcs, > DRM_MODE_CONNECTOR_eDP); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c > index aa3198dc9903..76229367e2f4 100644 > --- a/drivers/gpu/drm/bridge/ti-tfp410.c > +++ b/drivers/gpu/drm/bridge/ti-tfp410.c > @@ -135,7 +135,7 @@ static int tfp410_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(&dvi->connector, > &tfp410_con_helper_funcs); > - ret = drm_connector_init_with_ddc(bridge->dev, &dvi->connector, > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &dvi->connector, > &tfp410_con_funcs, > dvi->connector_type, > dvi->ddc); > @@ -179,8 +179,8 @@ static void tfp410_hpd_work_func(struct work_struct *work) > > dvi = container_of(work, struct tfp410, hpd_work.work); > > - if (dvi->bridge.dev) > - drm_helper_hpd_irq_event(dvi->bridge.dev); > + if (dvi->bridge.encoder) > + drm_helper_hpd_irq_event(dvi->bridge.encoder->dev); > } > > static irqreturn_t tfp410_hpd_irq_thread(int irq, void *arg) > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > index c2cf0c90fa26..eaa20804b038 100644 > --- a/drivers/gpu/drm/drm_bridge.c > +++ b/drivers/gpu/drm/drm_bridge.c > @@ -119,13 +119,12 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > if (!encoder || !bridge) > return -EINVAL; > > - if (previous && (!previous->dev || previous->encoder != encoder)) > + if (previous && (previous->encoder != encoder)) > return -EINVAL; > > - if (bridge->dev) > + if (bridge->encoder) > return -EBUSY; > > - bridge->dev = encoder->dev; > bridge->encoder = encoder; > > if (previous) > @@ -137,7 +136,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > ret = bridge->funcs->attach(bridge); > if (ret < 0) { > list_del(&bridge->chain_node); > - bridge->dev = NULL; > bridge->encoder = NULL; > return ret; > } > @@ -152,14 +150,14 @@ void drm_bridge_detach(struct drm_bridge *bridge) > if (WARN_ON(!bridge)) > return; > > - if (WARN_ON(!bridge->dev)) > + if (WARN_ON(!bridge->encoder)) > return; > > if (bridge->funcs->detach) > bridge->funcs->detach(bridge); > > list_del(&bridge->chain_node); > - bridge->dev = NULL; > + bridge->encoder = NULL; > } > > /** > diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c > index a63790d32d75..17a66ef3dfd4 100644 > --- a/drivers/gpu/drm/i2c/tda998x_drv.c > +++ b/drivers/gpu/drm/i2c/tda998x_drv.c > @@ -1360,7 +1360,7 @@ static int tda998x_bridge_attach(struct drm_bridge *bridge) > { > struct tda998x_priv *priv = bridge_to_tda998x_priv(bridge); > > - return tda998x_connector_init(priv, bridge->dev); > + return tda998x_connector_init(priv, bridge->encoder->dev); > } > > static void tda998x_bridge_detach(struct drm_bridge *bridge) > diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c > index 42fff811653e..c08d7ede9fb8 100644 > --- a/drivers/gpu/drm/mcde/mcde_dsi.c > +++ b/drivers/gpu/drm/mcde/mcde_dsi.c > @@ -846,7 +846,7 @@ static void mcde_dsi_bridge_disable(struct drm_bridge *bridge) > static int mcde_dsi_bridge_attach(struct drm_bridge *bridge) > { > struct mcde_dsi *d = bridge_to_mcde_dsi(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) { > diff --git a/drivers/gpu/drm/msm/edp/edp_bridge.c b/drivers/gpu/drm/msm/edp/edp_bridge.c > index b65b5cc2dba2..301dd7a80bde 100644 > --- a/drivers/gpu/drm/msm/edp/edp_bridge.c > +++ b/drivers/gpu/drm/msm/edp/edp_bridge.c > @@ -47,7 +47,7 @@ static void edp_bridge_mode_set(struct drm_bridge *bridge, > const struct drm_display_mode *mode, > const struct drm_display_mode *adjusted_mode) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct drm_connector *connector; > struct edp_bridge *edp_bridge = to_edp_bridge(bridge); > struct msm_edp *edp = edp_bridge->edp; > diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > index ba81338a9bf8..07c098dce310 100644 > --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > @@ -20,7 +20,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge) > > static void msm_hdmi_power_on(struct drm_bridge *bridge) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > struct hdmi *hdmi = hdmi_bridge->hdmi; > const struct hdmi_platform_config *config = hdmi->config; > @@ -56,7 +56,7 @@ static void msm_hdmi_power_on(struct drm_bridge *bridge) > > static void power_off(struct drm_bridge *bridge) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > struct hdmi *hdmi = hdmi_bridge->hdmi; > const struct hdmi_platform_config *config = hdmi->config; > diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c > index 2cf44b91853c..83538125a722 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c > +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c > @@ -622,7 +622,8 @@ static int rcar_lvds_attach(struct drm_bridge *bridge) > if (!lvds->panel) > return 0; > > - ret = drm_connector_init(bridge->dev, connector, &rcar_lvds_conn_funcs, > + ret = drm_connector_init(bridge->encoder->dev, connector, > + &rcar_lvds_conn_funcs, > DRM_MODE_CONNECTOR_LVDS); > if (ret < 0) > return ret; > diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h > index 694e153a7531..695d0898df38 100644 > --- a/include/drm/drm_bridge.h > +++ b/include/drm/drm_bridge.h > @@ -380,8 +380,6 @@ struct drm_bridge_timings { > * struct drm_bridge - central DRM bridge control structure > */ > struct drm_bridge { > - /** @dev: DRM device this bridge belongs to */ > - struct drm_device *dev; > /** @encoder: encoder to which this bridge is connected */ > struct drm_encoder *encoder; > /** @chain_node: used to form a bridge chain */ >
Am 10.12.19 um 16:25 schrieb Thomas Zimmermann: > > > Am 10.12.19 um 16:11 schrieb Mihail Atanassov: >> As suggested in [1], the 'dev' field is a bit repetitive, since it 1:1 >> follows the setting and NULLing of the 'encoder' field. Therefore, use >> drm_bridge->encoder->dev in place of drm_bridge->dev. >> >> [1] https://patchwork.freedesktop.org/patch/343824/ >> >> Cc: Daniel Vetter <daniel@ffwll.ch> >> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> >> Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com> > > Nice. > > Acked-by: Thomas Zimmermann Acked-by: Thomas Zimmermann <tzimmermann@suse.de> > >> --- >> drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- >> drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +- >> drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +- >> drivers/gpu/drm/bridge/cdns-dsi.c | 2 +- >> drivers/gpu/drm/bridge/dumb-vga-dac.c | 2 +- >> .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +- >> drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +- >> drivers/gpu/drm/bridge/panel.c | 2 +- >> drivers/gpu/drm/bridge/parade-ps8622.c | 2 +- >> drivers/gpu/drm/bridge/sii902x.c | 6 +++--- >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +++--- >> drivers/gpu/drm/bridge/tc358764.c | 4 ++-- >> drivers/gpu/drm/bridge/tc358767.c | 6 +++--- >> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +- >> drivers/gpu/drm/bridge/ti-tfp410.c | 6 +++--- >> drivers/gpu/drm/drm_bridge.c | 10 ++++------ >> drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- >> drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- >> drivers/gpu/drm/msm/edp/edp_bridge.c | 2 +- >> drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 ++-- >> drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 ++- >> include/drm/drm_bridge.h | 2 -- >> 22 files changed, 35 insertions(+), 38 deletions(-) >> >> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> index 9e13e466e72c..009cf1fef8d4 100644 >> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> @@ -863,7 +863,7 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) >> adv->connector.polled = DRM_CONNECTOR_POLL_CONNECT | >> DRM_CONNECTOR_POLL_DISCONNECT; >> >> - ret = drm_connector_init(bridge->dev, &adv->connector, >> + ret = drm_connector_init(bridge->encoder->dev, &adv->connector, >> &adv7511_connector_funcs, >> DRM_MODE_CONNECTOR_HDMIA); >> if (ret) { >> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c >> index 9917ce0d86a0..5b806d23fcb3 100644 >> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c >> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c >> @@ -541,7 +541,7 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge) >> return err; >> } >> >> - err = drm_connector_init(bridge->dev, &anx6345->connector, >> + err = drm_connector_init(bridge->encoder->dev, &anx6345->connector, >> &anx6345_connector_funcs, >> DRM_MODE_CONNECTOR_eDP); >> if (err) { >> diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c >> index 41867be03751..7463537950cb 100644 >> --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c >> +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c >> @@ -908,7 +908,7 @@ static int anx78xx_bridge_attach(struct drm_bridge *bridge) >> return err; >> } >> >> - err = drm_connector_init(bridge->dev, &anx78xx->connector, >> + err = drm_connector_init(bridge->encoder->dev, &anx78xx->connector, >> &anx78xx_connector_funcs, >> DRM_MODE_CONNECTOR_DisplayPort); >> if (err) { >> diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c >> index 3a5bd4e7fd1e..32863e3ad537 100644 >> --- a/drivers/gpu/drm/bridge/cdns-dsi.c >> +++ b/drivers/gpu/drm/bridge/cdns-dsi.c >> @@ -651,7 +651,7 @@ static int cdns_dsi_bridge_attach(struct drm_bridge *bridge) >> struct cdns_dsi *dsi = input_to_dsi(input); >> struct cdns_dsi_output *output = &dsi->output; >> >> - if (!drm_core_check_feature(bridge->dev, DRIVER_ATOMIC)) { >> + if (!drm_core_check_feature(bridge->encoder->dev, DRIVER_ATOMIC)) { >> dev_err(dsi->base.dev, >> "cdns-dsi driver is only compatible with DRM devices supporting atomic updates"); >> return -ENOTSUPP; >> diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c >> index cc33dc411b9e..67ad6cecf68d 100644 >> --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c >> +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c >> @@ -112,7 +112,7 @@ static int dumb_vga_attach(struct drm_bridge *bridge) >> >> drm_connector_helper_add(&vga->connector, >> &dumb_vga_con_helper_funcs); >> - ret = drm_connector_init_with_ddc(bridge->dev, &vga->connector, >> + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &vga->connector, >> &dumb_vga_con_funcs, >> DRM_MODE_CONNECTOR_VGA, >> vga->ddc); >> diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c >> index e8a49f6146c6..c914f01e4707 100644 >> --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c >> +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c >> @@ -223,7 +223,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge) >> drm_connector_helper_add(connector, >> &ge_b850v3_lvds_connector_helper_funcs); >> >> - ret = drm_connector_init(bridge->dev, connector, >> + ret = drm_connector_init(bridge->encoder->dev, connector, >> &ge_b850v3_lvds_connector_funcs, >> DRM_MODE_CONNECTOR_DisplayPort); >> if (ret) { >> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c >> index 57ff01339559..3999bb864eb9 100644 >> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c >> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c >> @@ -247,7 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge) >> } >> >> ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD; >> - ret = drm_connector_init(bridge->dev, &ptn_bridge->connector, >> + ret = drm_connector_init(bridge->encoder->dev, &ptn_bridge->connector, >> &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS); >> if (ret) { >> DRM_ERROR("Failed to initialize connector with drm\n"); >> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c >> index f66777e24968..4ba4e9d9537a 100644 >> --- a/drivers/gpu/drm/bridge/panel.c >> +++ b/drivers/gpu/drm/bridge/panel.c >> @@ -67,7 +67,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge) >> drm_connector_helper_add(connector, >> &panel_bridge_connector_helper_funcs); >> >> - ret = drm_connector_init(bridge->dev, connector, >> + ret = drm_connector_init(bridge->encoder->dev, connector, >> &panel_bridge_connector_funcs, >> panel_bridge->connector_type); >> if (ret) { >> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c >> index 10c47c008b40..c32af9c2bbcc 100644 >> --- a/drivers/gpu/drm/bridge/parade-ps8622.c >> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c >> @@ -487,7 +487,7 @@ static int ps8622_attach(struct drm_bridge *bridge) >> } >> >> ps8622->connector.polled = DRM_CONNECTOR_POLL_HPD; >> - ret = drm_connector_init(bridge->dev, &ps8622->connector, >> + ret = drm_connector_init(bridge->encoder->dev, &ps8622->connector, >> &ps8622_connector_funcs, DRM_MODE_CONNECTOR_LVDS); >> if (ret) { >> DRM_ERROR("Failed to initialize connector with drm\n"); >> diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c >> index b70e8c5cf2e1..6ca297d78a26 100644 >> --- a/drivers/gpu/drm/bridge/sii902x.c >> +++ b/drivers/gpu/drm/bridge/sii902x.c >> @@ -402,7 +402,7 @@ static void sii902x_bridge_mode_set(struct drm_bridge *bridge, >> static int sii902x_bridge_attach(struct drm_bridge *bridge) >> { >> struct sii902x *sii902x = bridge_to_sii902x(bridge); >> - struct drm_device *drm = bridge->dev; >> + struct drm_device *drm = bridge->encoder->dev; >> int ret; >> >> drm_connector_helper_add(&sii902x->connector, >> @@ -820,8 +820,8 @@ static irqreturn_t sii902x_interrupt(int irq, void *data) >> >> mutex_unlock(&sii902x->mutex); >> >> - if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.dev) >> - drm_helper_hpd_irq_event(sii902x->bridge.dev); >> + if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.encoder) >> + drm_helper_hpd_irq_event(sii902x->bridge.encoder->dev); >> >> return IRQ_HANDLED; >> } >> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >> index dbe38a54870b..99274ca0fdf6 100644 >> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >> @@ -2346,7 +2346,7 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) >> >> drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); >> >> - drm_connector_init_with_ddc(bridge->dev, connector, >> + drm_connector_init_with_ddc(bridge->encoder->dev, connector, >> &dw_hdmi_connector_funcs, >> DRM_MODE_CONNECTOR_HDMIA, >> hdmi->ddc); >> @@ -2554,8 +2554,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) >> if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { >> dev_dbg(hdmi->dev, "EVENT=%s\n", >> phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); >> - if (hdmi->bridge.dev) >> - drm_helper_hpd_irq_event(hdmi->bridge.dev); >> + if (hdmi->bridge.encoder) >> + drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); >> } >> >> hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); >> diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c >> index 96207fcfde19..e35e17b1f396 100644 >> --- a/drivers/gpu/drm/bridge/tc358764.c >> +++ b/drivers/gpu/drm/bridge/tc358764.c >> @@ -352,7 +352,7 @@ static void tc358764_enable(struct drm_bridge *bridge) >> static int tc358764_attach(struct drm_bridge *bridge) >> { >> struct tc358764 *ctx = bridge_to_tc358764(bridge); >> - struct drm_device *drm = bridge->dev; >> + struct drm_device *drm = bridge->encoder->dev; >> int ret; >> >> ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; >> @@ -378,7 +378,7 @@ static int tc358764_attach(struct drm_bridge *bridge) >> static void tc358764_detach(struct drm_bridge *bridge) >> { >> struct tc358764 *ctx = bridge_to_tc358764(bridge); >> - struct drm_device *drm = bridge->dev; >> + struct drm_device *drm = bridge->encoder->dev; >> >> drm_connector_unregister(&ctx->connector); >> drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); >> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c >> index 3709e5ace724..ab1524c00777 100644 >> --- a/drivers/gpu/drm/bridge/tc358767.c >> +++ b/drivers/gpu/drm/bridge/tc358767.c >> @@ -1407,7 +1407,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge) >> { >> u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; >> struct tc_data *tc = bridge_to_tc(bridge); >> - struct drm_device *drm = bridge->dev; >> + struct drm_device *drm = bridge->encoder->dev; >> int ret; >> >> /* Create DP/eDP connector */ >> @@ -1514,7 +1514,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) >> dev_err(tc->dev, "syserr %x\n", stat); >> } >> >> - if (tc->hpd_pin >= 0 && tc->bridge.dev) { >> + if (tc->hpd_pin >= 0 && tc->bridge.encoder) { >> /* >> * H is triggered when the GPIO goes high. >> * >> @@ -1528,7 +1528,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) >> h ? "H" : "", lc ? "LC" : ""); >> >> if (h || lc) >> - drm_kms_helper_hotplug_event(tc->bridge.dev); >> + drm_kms_helper_hotplug_event(tc->bridge.encoder->dev); >> } >> >> regmap_write(tc->regmap, INTSTS_G, val); >> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c >> index 9a2dd986afa5..8a4e64cfca1e 100644 >> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c >> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c >> @@ -275,7 +275,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) >> .node = NULL, >> }; >> >> - ret = drm_connector_init(bridge->dev, &pdata->connector, >> + ret = drm_connector_init(bridge->encoder->dev, &pdata->connector, >> &ti_sn_bridge_connector_funcs, >> DRM_MODE_CONNECTOR_eDP); >> if (ret) { >> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c >> index aa3198dc9903..76229367e2f4 100644 >> --- a/drivers/gpu/drm/bridge/ti-tfp410.c >> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c >> @@ -135,7 +135,7 @@ static int tfp410_attach(struct drm_bridge *bridge) >> >> drm_connector_helper_add(&dvi->connector, >> &tfp410_con_helper_funcs); >> - ret = drm_connector_init_with_ddc(bridge->dev, &dvi->connector, >> + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &dvi->connector, >> &tfp410_con_funcs, >> dvi->connector_type, >> dvi->ddc); >> @@ -179,8 +179,8 @@ static void tfp410_hpd_work_func(struct work_struct *work) >> >> dvi = container_of(work, struct tfp410, hpd_work.work); >> >> - if (dvi->bridge.dev) >> - drm_helper_hpd_irq_event(dvi->bridge.dev); >> + if (dvi->bridge.encoder) >> + drm_helper_hpd_irq_event(dvi->bridge.encoder->dev); >> } >> >> static irqreturn_t tfp410_hpd_irq_thread(int irq, void *arg) >> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c >> index c2cf0c90fa26..eaa20804b038 100644 >> --- a/drivers/gpu/drm/drm_bridge.c >> +++ b/drivers/gpu/drm/drm_bridge.c >> @@ -119,13 +119,12 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, >> if (!encoder || !bridge) >> return -EINVAL; >> >> - if (previous && (!previous->dev || previous->encoder != encoder)) >> + if (previous && (previous->encoder != encoder)) >> return -EINVAL; >> >> - if (bridge->dev) >> + if (bridge->encoder) >> return -EBUSY; >> >> - bridge->dev = encoder->dev; >> bridge->encoder = encoder; >> >> if (previous) >> @@ -137,7 +136,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, >> ret = bridge->funcs->attach(bridge); >> if (ret < 0) { >> list_del(&bridge->chain_node); >> - bridge->dev = NULL; >> bridge->encoder = NULL; >> return ret; >> } >> @@ -152,14 +150,14 @@ void drm_bridge_detach(struct drm_bridge *bridge) >> if (WARN_ON(!bridge)) >> return; >> >> - if (WARN_ON(!bridge->dev)) >> + if (WARN_ON(!bridge->encoder)) >> return; >> >> if (bridge->funcs->detach) >> bridge->funcs->detach(bridge); >> >> list_del(&bridge->chain_node); >> - bridge->dev = NULL; >> + bridge->encoder = NULL; >> } >> >> /** >> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c >> index a63790d32d75..17a66ef3dfd4 100644 >> --- a/drivers/gpu/drm/i2c/tda998x_drv.c >> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c >> @@ -1360,7 +1360,7 @@ static int tda998x_bridge_attach(struct drm_bridge *bridge) >> { >> struct tda998x_priv *priv = bridge_to_tda998x_priv(bridge); >> >> - return tda998x_connector_init(priv, bridge->dev); >> + return tda998x_connector_init(priv, bridge->encoder->dev); >> } >> >> static void tda998x_bridge_detach(struct drm_bridge *bridge) >> diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c >> index 42fff811653e..c08d7ede9fb8 100644 >> --- a/drivers/gpu/drm/mcde/mcde_dsi.c >> +++ b/drivers/gpu/drm/mcde/mcde_dsi.c >> @@ -846,7 +846,7 @@ static void mcde_dsi_bridge_disable(struct drm_bridge *bridge) >> static int mcde_dsi_bridge_attach(struct drm_bridge *bridge) >> { >> struct mcde_dsi *d = bridge_to_mcde_dsi(bridge); >> - struct drm_device *drm = bridge->dev; >> + struct drm_device *drm = bridge->encoder->dev; >> int ret; >> >> if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) { >> diff --git a/drivers/gpu/drm/msm/edp/edp_bridge.c b/drivers/gpu/drm/msm/edp/edp_bridge.c >> index b65b5cc2dba2..301dd7a80bde 100644 >> --- a/drivers/gpu/drm/msm/edp/edp_bridge.c >> +++ b/drivers/gpu/drm/msm/edp/edp_bridge.c >> @@ -47,7 +47,7 @@ static void edp_bridge_mode_set(struct drm_bridge *bridge, >> const struct drm_display_mode *mode, >> const struct drm_display_mode *adjusted_mode) >> { >> - struct drm_device *dev = bridge->dev; >> + struct drm_device *dev = bridge->encoder->dev; >> struct drm_connector *connector; >> struct edp_bridge *edp_bridge = to_edp_bridge(bridge); >> struct msm_edp *edp = edp_bridge->edp; >> diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c >> index ba81338a9bf8..07c098dce310 100644 >> --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c >> +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c >> @@ -20,7 +20,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge) >> >> static void msm_hdmi_power_on(struct drm_bridge *bridge) >> { >> - struct drm_device *dev = bridge->dev; >> + struct drm_device *dev = bridge->encoder->dev; >> struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); >> struct hdmi *hdmi = hdmi_bridge->hdmi; >> const struct hdmi_platform_config *config = hdmi->config; >> @@ -56,7 +56,7 @@ static void msm_hdmi_power_on(struct drm_bridge *bridge) >> >> static void power_off(struct drm_bridge *bridge) >> { >> - struct drm_device *dev = bridge->dev; >> + struct drm_device *dev = bridge->encoder->dev; >> struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); >> struct hdmi *hdmi = hdmi_bridge->hdmi; >> const struct hdmi_platform_config *config = hdmi->config; >> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c >> index 2cf44b91853c..83538125a722 100644 >> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c >> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c >> @@ -622,7 +622,8 @@ static int rcar_lvds_attach(struct drm_bridge *bridge) >> if (!lvds->panel) >> return 0; >> >> - ret = drm_connector_init(bridge->dev, connector, &rcar_lvds_conn_funcs, >> + ret = drm_connector_init(bridge->encoder->dev, connector, >> + &rcar_lvds_conn_funcs, >> DRM_MODE_CONNECTOR_LVDS); >> if (ret < 0) >> return ret; >> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h >> index 694e153a7531..695d0898df38 100644 >> --- a/include/drm/drm_bridge.h >> +++ b/include/drm/drm_bridge.h >> @@ -380,8 +380,6 @@ struct drm_bridge_timings { >> * struct drm_bridge - central DRM bridge control structure >> */ >> struct drm_bridge { >> - /** @dev: DRM device this bridge belongs to */ >> - struct drm_device *dev; >> /** @encoder: encoder to which this bridge is connected */ >> struct drm_encoder *encoder; >> /** @chain_node: used to form a bridge chain */ >> >
Hi Am 10.12.19 um 16:11 schrieb Mihail Atanassov: > As suggested in [1], the 'dev' field is a bit repetitive, since it 1:1 > follows the setting and NULLing of the 'encoder' field. Therefore, use > drm_bridge->encoder->dev in place of drm_bridge->dev. > > [1] https://patchwork.freedesktop.org/patch/343824/ > > Cc: Daniel Vetter <daniel@ffwll.ch> > Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> > Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com> Do you need help with merging the patch? Best regards Thomas > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- > drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +- > drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +- > drivers/gpu/drm/bridge/cdns-dsi.c | 2 +- > drivers/gpu/drm/bridge/dumb-vga-dac.c | 2 +- > .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +- > drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +- > drivers/gpu/drm/bridge/panel.c | 2 +- > drivers/gpu/drm/bridge/parade-ps8622.c | 2 +- > drivers/gpu/drm/bridge/sii902x.c | 6 +++--- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +++--- > drivers/gpu/drm/bridge/tc358764.c | 4 ++-- > drivers/gpu/drm/bridge/tc358767.c | 6 +++--- > drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +- > drivers/gpu/drm/bridge/ti-tfp410.c | 6 +++--- > drivers/gpu/drm/drm_bridge.c | 10 ++++------ > drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- > drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- > drivers/gpu/drm/msm/edp/edp_bridge.c | 2 +- > drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 ++- > include/drm/drm_bridge.h | 2 -- > 22 files changed, 35 insertions(+), 38 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > index 9e13e466e72c..009cf1fef8d4 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > @@ -863,7 +863,7 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) > adv->connector.polled = DRM_CONNECTOR_POLL_CONNECT | > DRM_CONNECTOR_POLL_DISCONNECT; > > - ret = drm_connector_init(bridge->dev, &adv->connector, > + ret = drm_connector_init(bridge->encoder->dev, &adv->connector, > &adv7511_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > index 9917ce0d86a0..5b806d23fcb3 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > @@ -541,7 +541,7 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge) > return err; > } > > - err = drm_connector_init(bridge->dev, &anx6345->connector, > + err = drm_connector_init(bridge->encoder->dev, &anx6345->connector, > &anx6345_connector_funcs, > DRM_MODE_CONNECTOR_eDP); > if (err) { > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > index 41867be03751..7463537950cb 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > @@ -908,7 +908,7 @@ static int anx78xx_bridge_attach(struct drm_bridge *bridge) > return err; > } > > - err = drm_connector_init(bridge->dev, &anx78xx->connector, > + err = drm_connector_init(bridge->encoder->dev, &anx78xx->connector, > &anx78xx_connector_funcs, > DRM_MODE_CONNECTOR_DisplayPort); > if (err) { > diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c > index 3a5bd4e7fd1e..32863e3ad537 100644 > --- a/drivers/gpu/drm/bridge/cdns-dsi.c > +++ b/drivers/gpu/drm/bridge/cdns-dsi.c > @@ -651,7 +651,7 @@ static int cdns_dsi_bridge_attach(struct drm_bridge *bridge) > struct cdns_dsi *dsi = input_to_dsi(input); > struct cdns_dsi_output *output = &dsi->output; > > - if (!drm_core_check_feature(bridge->dev, DRIVER_ATOMIC)) { > + if (!drm_core_check_feature(bridge->encoder->dev, DRIVER_ATOMIC)) { > dev_err(dsi->base.dev, > "cdns-dsi driver is only compatible with DRM devices supporting atomic updates"); > return -ENOTSUPP; > diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c > index cc33dc411b9e..67ad6cecf68d 100644 > --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c > +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c > @@ -112,7 +112,7 @@ static int dumb_vga_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(&vga->connector, > &dumb_vga_con_helper_funcs); > - ret = drm_connector_init_with_ddc(bridge->dev, &vga->connector, > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &vga->connector, > &dumb_vga_con_funcs, > DRM_MODE_CONNECTOR_VGA, > vga->ddc); > diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > index e8a49f6146c6..c914f01e4707 100644 > --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > @@ -223,7 +223,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge) > drm_connector_helper_add(connector, > &ge_b850v3_lvds_connector_helper_funcs); > > - ret = drm_connector_init(bridge->dev, connector, > + ret = drm_connector_init(bridge->encoder->dev, connector, > &ge_b850v3_lvds_connector_funcs, > DRM_MODE_CONNECTOR_DisplayPort); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c > index 57ff01339559..3999bb864eb9 100644 > --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c > +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c > @@ -247,7 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge) > } > > ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD; > - ret = drm_connector_init(bridge->dev, &ptn_bridge->connector, > + ret = drm_connector_init(bridge->encoder->dev, &ptn_bridge->connector, > &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > if (ret) { > DRM_ERROR("Failed to initialize connector with drm\n"); > diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c > index f66777e24968..4ba4e9d9537a 100644 > --- a/drivers/gpu/drm/bridge/panel.c > +++ b/drivers/gpu/drm/bridge/panel.c > @@ -67,7 +67,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge) > drm_connector_helper_add(connector, > &panel_bridge_connector_helper_funcs); > > - ret = drm_connector_init(bridge->dev, connector, > + ret = drm_connector_init(bridge->encoder->dev, connector, > &panel_bridge_connector_funcs, > panel_bridge->connector_type); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c > index 10c47c008b40..c32af9c2bbcc 100644 > --- a/drivers/gpu/drm/bridge/parade-ps8622.c > +++ b/drivers/gpu/drm/bridge/parade-ps8622.c > @@ -487,7 +487,7 @@ static int ps8622_attach(struct drm_bridge *bridge) > } > > ps8622->connector.polled = DRM_CONNECTOR_POLL_HPD; > - ret = drm_connector_init(bridge->dev, &ps8622->connector, > + ret = drm_connector_init(bridge->encoder->dev, &ps8622->connector, > &ps8622_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > if (ret) { > DRM_ERROR("Failed to initialize connector with drm\n"); > diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c > index b70e8c5cf2e1..6ca297d78a26 100644 > --- a/drivers/gpu/drm/bridge/sii902x.c > +++ b/drivers/gpu/drm/bridge/sii902x.c > @@ -402,7 +402,7 @@ static void sii902x_bridge_mode_set(struct drm_bridge *bridge, > static int sii902x_bridge_attach(struct drm_bridge *bridge) > { > struct sii902x *sii902x = bridge_to_sii902x(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > drm_connector_helper_add(&sii902x->connector, > @@ -820,8 +820,8 @@ static irqreturn_t sii902x_interrupt(int irq, void *data) > > mutex_unlock(&sii902x->mutex); > > - if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.dev) > - drm_helper_hpd_irq_event(sii902x->bridge.dev); > + if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.encoder) > + drm_helper_hpd_irq_event(sii902x->bridge.encoder->dev); > > return IRQ_HANDLED; > } > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > index dbe38a54870b..99274ca0fdf6 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -2346,7 +2346,7 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); > > - drm_connector_init_with_ddc(bridge->dev, connector, > + drm_connector_init_with_ddc(bridge->encoder->dev, connector, > &dw_hdmi_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA, > hdmi->ddc); > @@ -2554,8 +2554,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) > if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { > dev_dbg(hdmi->dev, "EVENT=%s\n", > phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); > - if (hdmi->bridge.dev) > - drm_helper_hpd_irq_event(hdmi->bridge.dev); > + if (hdmi->bridge.encoder) > + drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); > } > > hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); > diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c > index 96207fcfde19..e35e17b1f396 100644 > --- a/drivers/gpu/drm/bridge/tc358764.c > +++ b/drivers/gpu/drm/bridge/tc358764.c > @@ -352,7 +352,7 @@ static void tc358764_enable(struct drm_bridge *bridge) > static int tc358764_attach(struct drm_bridge *bridge) > { > struct tc358764 *ctx = bridge_to_tc358764(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; > @@ -378,7 +378,7 @@ static int tc358764_attach(struct drm_bridge *bridge) > static void tc358764_detach(struct drm_bridge *bridge) > { > struct tc358764 *ctx = bridge_to_tc358764(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > > drm_connector_unregister(&ctx->connector); > drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); > diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c > index 3709e5ace724..ab1524c00777 100644 > --- a/drivers/gpu/drm/bridge/tc358767.c > +++ b/drivers/gpu/drm/bridge/tc358767.c > @@ -1407,7 +1407,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge) > { > u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; > struct tc_data *tc = bridge_to_tc(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > /* Create DP/eDP connector */ > @@ -1514,7 +1514,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > dev_err(tc->dev, "syserr %x\n", stat); > } > > - if (tc->hpd_pin >= 0 && tc->bridge.dev) { > + if (tc->hpd_pin >= 0 && tc->bridge.encoder) { > /* > * H is triggered when the GPIO goes high. > * > @@ -1528,7 +1528,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > h ? "H" : "", lc ? "LC" : ""); > > if (h || lc) > - drm_kms_helper_hotplug_event(tc->bridge.dev); > + drm_kms_helper_hotplug_event(tc->bridge.encoder->dev); > } > > regmap_write(tc->regmap, INTSTS_G, val); > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > index 9a2dd986afa5..8a4e64cfca1e 100644 > --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > @@ -275,7 +275,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) > .node = NULL, > }; > > - ret = drm_connector_init(bridge->dev, &pdata->connector, > + ret = drm_connector_init(bridge->encoder->dev, &pdata->connector, > &ti_sn_bridge_connector_funcs, > DRM_MODE_CONNECTOR_eDP); > if (ret) { > diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c > index aa3198dc9903..76229367e2f4 100644 > --- a/drivers/gpu/drm/bridge/ti-tfp410.c > +++ b/drivers/gpu/drm/bridge/ti-tfp410.c > @@ -135,7 +135,7 @@ static int tfp410_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(&dvi->connector, > &tfp410_con_helper_funcs); > - ret = drm_connector_init_with_ddc(bridge->dev, &dvi->connector, > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &dvi->connector, > &tfp410_con_funcs, > dvi->connector_type, > dvi->ddc); > @@ -179,8 +179,8 @@ static void tfp410_hpd_work_func(struct work_struct *work) > > dvi = container_of(work, struct tfp410, hpd_work.work); > > - if (dvi->bridge.dev) > - drm_helper_hpd_irq_event(dvi->bridge.dev); > + if (dvi->bridge.encoder) > + drm_helper_hpd_irq_event(dvi->bridge.encoder->dev); > } > > static irqreturn_t tfp410_hpd_irq_thread(int irq, void *arg) > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > index c2cf0c90fa26..eaa20804b038 100644 > --- a/drivers/gpu/drm/drm_bridge.c > +++ b/drivers/gpu/drm/drm_bridge.c > @@ -119,13 +119,12 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > if (!encoder || !bridge) > return -EINVAL; > > - if (previous && (!previous->dev || previous->encoder != encoder)) > + if (previous && (previous->encoder != encoder)) > return -EINVAL; > > - if (bridge->dev) > + if (bridge->encoder) > return -EBUSY; > > - bridge->dev = encoder->dev; > bridge->encoder = encoder; > > if (previous) > @@ -137,7 +136,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > ret = bridge->funcs->attach(bridge); > if (ret < 0) { > list_del(&bridge->chain_node); > - bridge->dev = NULL; > bridge->encoder = NULL; > return ret; > } > @@ -152,14 +150,14 @@ void drm_bridge_detach(struct drm_bridge *bridge) > if (WARN_ON(!bridge)) > return; > > - if (WARN_ON(!bridge->dev)) > + if (WARN_ON(!bridge->encoder)) > return; > > if (bridge->funcs->detach) > bridge->funcs->detach(bridge); > > list_del(&bridge->chain_node); > - bridge->dev = NULL; > + bridge->encoder = NULL; > } > > /** > diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c > index a63790d32d75..17a66ef3dfd4 100644 > --- a/drivers/gpu/drm/i2c/tda998x_drv.c > +++ b/drivers/gpu/drm/i2c/tda998x_drv.c > @@ -1360,7 +1360,7 @@ static int tda998x_bridge_attach(struct drm_bridge *bridge) > { > struct tda998x_priv *priv = bridge_to_tda998x_priv(bridge); > > - return tda998x_connector_init(priv, bridge->dev); > + return tda998x_connector_init(priv, bridge->encoder->dev); > } > > static void tda998x_bridge_detach(struct drm_bridge *bridge) > diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c > index 42fff811653e..c08d7ede9fb8 100644 > --- a/drivers/gpu/drm/mcde/mcde_dsi.c > +++ b/drivers/gpu/drm/mcde/mcde_dsi.c > @@ -846,7 +846,7 @@ static void mcde_dsi_bridge_disable(struct drm_bridge *bridge) > static int mcde_dsi_bridge_attach(struct drm_bridge *bridge) > { > struct mcde_dsi *d = bridge_to_mcde_dsi(bridge); > - struct drm_device *drm = bridge->dev; > + struct drm_device *drm = bridge->encoder->dev; > int ret; > > if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) { > diff --git a/drivers/gpu/drm/msm/edp/edp_bridge.c b/drivers/gpu/drm/msm/edp/edp_bridge.c > index b65b5cc2dba2..301dd7a80bde 100644 > --- a/drivers/gpu/drm/msm/edp/edp_bridge.c > +++ b/drivers/gpu/drm/msm/edp/edp_bridge.c > @@ -47,7 +47,7 @@ static void edp_bridge_mode_set(struct drm_bridge *bridge, > const struct drm_display_mode *mode, > const struct drm_display_mode *adjusted_mode) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct drm_connector *connector; > struct edp_bridge *edp_bridge = to_edp_bridge(bridge); > struct msm_edp *edp = edp_bridge->edp; > diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > index ba81338a9bf8..07c098dce310 100644 > --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > @@ -20,7 +20,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge) > > static void msm_hdmi_power_on(struct drm_bridge *bridge) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > struct hdmi *hdmi = hdmi_bridge->hdmi; > const struct hdmi_platform_config *config = hdmi->config; > @@ -56,7 +56,7 @@ static void msm_hdmi_power_on(struct drm_bridge *bridge) > > static void power_off(struct drm_bridge *bridge) > { > - struct drm_device *dev = bridge->dev; > + struct drm_device *dev = bridge->encoder->dev; > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > struct hdmi *hdmi = hdmi_bridge->hdmi; > const struct hdmi_platform_config *config = hdmi->config; > diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c > index 2cf44b91853c..83538125a722 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c > +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c > @@ -622,7 +622,8 @@ static int rcar_lvds_attach(struct drm_bridge *bridge) > if (!lvds->panel) > return 0; > > - ret = drm_connector_init(bridge->dev, connector, &rcar_lvds_conn_funcs, > + ret = drm_connector_init(bridge->encoder->dev, connector, > + &rcar_lvds_conn_funcs, > DRM_MODE_CONNECTOR_LVDS); > if (ret < 0) > return ret; > diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h > index 694e153a7531..695d0898df38 100644 > --- a/include/drm/drm_bridge.h > +++ b/include/drm/drm_bridge.h > @@ -380,8 +380,6 @@ struct drm_bridge_timings { > * struct drm_bridge - central DRM bridge control structure > */ > struct drm_bridge { > - /** @dev: DRM device this bridge belongs to */ > - struct drm_device *dev; > /** @encoder: encoder to which this bridge is connected */ > struct drm_encoder *encoder; > /** @chain_node: used to form a bridge chain */ >
Hi, On Wednesday, 11 December 2019 07:38:29 GMT Thomas Zimmermann wrote: > Hi > > Am 10.12.19 um 16:11 schrieb Mihail Atanassov: > > As suggested in [1], the 'dev' field is a bit repetitive, since it 1:1 > > follows the setting and NULLing of the 'encoder' field. Therefore, use > > drm_bridge->encoder->dev in place of drm_bridge->dev. > > > > [1] https://patchwork.freedesktop.org/patch/343824/ > > > > Cc: Daniel Vetter <daniel@ffwll.ch> > > Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> > > Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com> > > Do you need help with merging the patch? I've push rights to drm-misc-next, I'll handle it Soon(tm)/today. Thanks for the offer, though :). > > Best regards > Thomas > > > --- > > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- > > drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +- > > drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +- > > drivers/gpu/drm/bridge/cdns-dsi.c | 2 +- > > drivers/gpu/drm/bridge/dumb-vga-dac.c | 2 +- > > .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +- > > drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +- > > drivers/gpu/drm/bridge/panel.c | 2 +- > > drivers/gpu/drm/bridge/parade-ps8622.c | 2 +- > > drivers/gpu/drm/bridge/sii902x.c | 6 +++--- > > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +++--- > > drivers/gpu/drm/bridge/tc358764.c | 4 ++-- > > drivers/gpu/drm/bridge/tc358767.c | 6 +++--- > > drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +- > > drivers/gpu/drm/bridge/ti-tfp410.c | 6 +++--- > > drivers/gpu/drm/drm_bridge.c | 10 ++++------ > > drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- > > drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- > > drivers/gpu/drm/msm/edp/edp_bridge.c | 2 +- > > drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 ++-- > > drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 ++- > > include/drm/drm_bridge.h | 2 -- > > 22 files changed, 35 insertions(+), 38 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > > index 9e13e466e72c..009cf1fef8d4 100644 > > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > > @@ -863,7 +863,7 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) > > adv->connector.polled = DRM_CONNECTOR_POLL_CONNECT | > > DRM_CONNECTOR_POLL_DISCONNECT; > > > > - ret = drm_connector_init(bridge->dev, &adv->connector, > > + ret = drm_connector_init(bridge->encoder->dev, &adv->connector, > > &adv7511_connector_funcs, > > DRM_MODE_CONNECTOR_HDMIA); > > if (ret) { > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > > index 9917ce0d86a0..5b806d23fcb3 100644 > > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c > > @@ -541,7 +541,7 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge) > > return err; > > } > > > > - err = drm_connector_init(bridge->dev, &anx6345->connector, > > + err = drm_connector_init(bridge->encoder->dev, &anx6345->connector, > > &anx6345_connector_funcs, > > DRM_MODE_CONNECTOR_eDP); > > if (err) { > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > > index 41867be03751..7463537950cb 100644 > > --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > > +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c > > @@ -908,7 +908,7 @@ static int anx78xx_bridge_attach(struct drm_bridge *bridge) > > return err; > > } > > > > - err = drm_connector_init(bridge->dev, &anx78xx->connector, > > + err = drm_connector_init(bridge->encoder->dev, &anx78xx->connector, > > &anx78xx_connector_funcs, > > DRM_MODE_CONNECTOR_DisplayPort); > > if (err) { > > diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c > > index 3a5bd4e7fd1e..32863e3ad537 100644 > > --- a/drivers/gpu/drm/bridge/cdns-dsi.c > > +++ b/drivers/gpu/drm/bridge/cdns-dsi.c > > @@ -651,7 +651,7 @@ static int cdns_dsi_bridge_attach(struct drm_bridge *bridge) > > struct cdns_dsi *dsi = input_to_dsi(input); > > struct cdns_dsi_output *output = &dsi->output; > > > > - if (!drm_core_check_feature(bridge->dev, DRIVER_ATOMIC)) { > > + if (!drm_core_check_feature(bridge->encoder->dev, DRIVER_ATOMIC)) { > > dev_err(dsi->base.dev, > > "cdns-dsi driver is only compatible with DRM devices supporting atomic updates"); > > return -ENOTSUPP; > > diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c > > index cc33dc411b9e..67ad6cecf68d 100644 > > --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c > > +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c > > @@ -112,7 +112,7 @@ static int dumb_vga_attach(struct drm_bridge *bridge) > > > > drm_connector_helper_add(&vga->connector, > > &dumb_vga_con_helper_funcs); > > - ret = drm_connector_init_with_ddc(bridge->dev, &vga->connector, > > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &vga->connector, > > &dumb_vga_con_funcs, > > DRM_MODE_CONNECTOR_VGA, > > vga->ddc); > > diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > > index e8a49f6146c6..c914f01e4707 100644 > > --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > > +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c > > @@ -223,7 +223,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(connector, > > &ge_b850v3_lvds_connector_helper_funcs); > > > > - ret = drm_connector_init(bridge->dev, connector, > > + ret = drm_connector_init(bridge->encoder->dev, connector, > > &ge_b850v3_lvds_connector_funcs, > > DRM_MODE_CONNECTOR_DisplayPort); > > if (ret) { > > diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c > > index 57ff01339559..3999bb864eb9 100644 > > --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c > > +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c > > @@ -247,7 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge) > > } > > > > ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD; > > - ret = drm_connector_init(bridge->dev, &ptn_bridge->connector, > > + ret = drm_connector_init(bridge->encoder->dev, &ptn_bridge->connector, > > &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > > if (ret) { > > DRM_ERROR("Failed to initialize connector with drm\n"); > > diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c > > index f66777e24968..4ba4e9d9537a 100644 > > --- a/drivers/gpu/drm/bridge/panel.c > > +++ b/drivers/gpu/drm/bridge/panel.c > > @@ -67,7 +67,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge) > > drm_connector_helper_add(connector, > > &panel_bridge_connector_helper_funcs); > > > > - ret = drm_connector_init(bridge->dev, connector, > > + ret = drm_connector_init(bridge->encoder->dev, connector, > > &panel_bridge_connector_funcs, > > panel_bridge->connector_type); > > if (ret) { > > diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c > > index 10c47c008b40..c32af9c2bbcc 100644 > > --- a/drivers/gpu/drm/bridge/parade-ps8622.c > > +++ b/drivers/gpu/drm/bridge/parade-ps8622.c > > @@ -487,7 +487,7 @@ static int ps8622_attach(struct drm_bridge *bridge) > > } > > > > ps8622->connector.polled = DRM_CONNECTOR_POLL_HPD; > > - ret = drm_connector_init(bridge->dev, &ps8622->connector, > > + ret = drm_connector_init(bridge->encoder->dev, &ps8622->connector, > > &ps8622_connector_funcs, DRM_MODE_CONNECTOR_LVDS); > > if (ret) { > > DRM_ERROR("Failed to initialize connector with drm\n"); > > diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c > > index b70e8c5cf2e1..6ca297d78a26 100644 > > --- a/drivers/gpu/drm/bridge/sii902x.c > > +++ b/drivers/gpu/drm/bridge/sii902x.c > > @@ -402,7 +402,7 @@ static void sii902x_bridge_mode_set(struct drm_bridge *bridge, > > static int sii902x_bridge_attach(struct drm_bridge *bridge) > > { > > struct sii902x *sii902x = bridge_to_sii902x(bridge); > > - struct drm_device *drm = bridge->dev; > > + struct drm_device *drm = bridge->encoder->dev; > > int ret; > > > > drm_connector_helper_add(&sii902x->connector, > > @@ -820,8 +820,8 @@ static irqreturn_t sii902x_interrupt(int irq, void *data) > > > > mutex_unlock(&sii902x->mutex); > > > > - if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.dev) > > - drm_helper_hpd_irq_event(sii902x->bridge.dev); > > + if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.encoder) > > + drm_helper_hpd_irq_event(sii902x->bridge.encoder->dev); > > > > return IRQ_HANDLED; > > } > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > > index dbe38a54870b..99274ca0fdf6 100644 > > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > > @@ -2346,7 +2346,7 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) > > > > drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); > > > > - drm_connector_init_with_ddc(bridge->dev, connector, > > + drm_connector_init_with_ddc(bridge->encoder->dev, connector, > > &dw_hdmi_connector_funcs, > > DRM_MODE_CONNECTOR_HDMIA, > > hdmi->ddc); > > @@ -2554,8 +2554,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) > > if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { > > dev_dbg(hdmi->dev, "EVENT=%s\n", > > phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); > > - if (hdmi->bridge.dev) > > - drm_helper_hpd_irq_event(hdmi->bridge.dev); > > + if (hdmi->bridge.encoder) > > + drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); > > } > > > > hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); > > diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c > > index 96207fcfde19..e35e17b1f396 100644 > > --- a/drivers/gpu/drm/bridge/tc358764.c > > +++ b/drivers/gpu/drm/bridge/tc358764.c > > @@ -352,7 +352,7 @@ static void tc358764_enable(struct drm_bridge *bridge) > > static int tc358764_attach(struct drm_bridge *bridge) > > { > > struct tc358764 *ctx = bridge_to_tc358764(bridge); > > - struct drm_device *drm = bridge->dev; > > + struct drm_device *drm = bridge->encoder->dev; > > int ret; > > > > ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; > > @@ -378,7 +378,7 @@ static int tc358764_attach(struct drm_bridge *bridge) > > static void tc358764_detach(struct drm_bridge *bridge) > > { > > struct tc358764 *ctx = bridge_to_tc358764(bridge); > > - struct drm_device *drm = bridge->dev; > > + struct drm_device *drm = bridge->encoder->dev; > > > > drm_connector_unregister(&ctx->connector); > > drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); > > diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c > > index 3709e5ace724..ab1524c00777 100644 > > --- a/drivers/gpu/drm/bridge/tc358767.c > > +++ b/drivers/gpu/drm/bridge/tc358767.c > > @@ -1407,7 +1407,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge) > > { > > u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; > > struct tc_data *tc = bridge_to_tc(bridge); > > - struct drm_device *drm = bridge->dev; > > + struct drm_device *drm = bridge->encoder->dev; > > int ret; > > > > /* Create DP/eDP connector */ > > @@ -1514,7 +1514,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > > dev_err(tc->dev, "syserr %x\n", stat); > > } > > > > - if (tc->hpd_pin >= 0 && tc->bridge.dev) { > > + if (tc->hpd_pin >= 0 && tc->bridge.encoder) { > > /* > > * H is triggered when the GPIO goes high. > > * > > @@ -1528,7 +1528,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) > > h ? "H" : "", lc ? "LC" : ""); > > > > if (h || lc) > > - drm_kms_helper_hotplug_event(tc->bridge.dev); > > + drm_kms_helper_hotplug_event(tc->bridge.encoder->dev); > > } > > > > regmap_write(tc->regmap, INTSTS_G, val); > > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > index 9a2dd986afa5..8a4e64cfca1e 100644 > > --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > > @@ -275,7 +275,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) > > .node = NULL, > > }; > > > > - ret = drm_connector_init(bridge->dev, &pdata->connector, > > + ret = drm_connector_init(bridge->encoder->dev, &pdata->connector, > > &ti_sn_bridge_connector_funcs, > > DRM_MODE_CONNECTOR_eDP); > > if (ret) { > > diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c > > index aa3198dc9903..76229367e2f4 100644 > > --- a/drivers/gpu/drm/bridge/ti-tfp410.c > > +++ b/drivers/gpu/drm/bridge/ti-tfp410.c > > @@ -135,7 +135,7 @@ static int tfp410_attach(struct drm_bridge *bridge) > > > > drm_connector_helper_add(&dvi->connector, > > &tfp410_con_helper_funcs); > > - ret = drm_connector_init_with_ddc(bridge->dev, &dvi->connector, > > + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &dvi->connector, > > &tfp410_con_funcs, > > dvi->connector_type, > > dvi->ddc); > > @@ -179,8 +179,8 @@ static void tfp410_hpd_work_func(struct work_struct *work) > > > > dvi = container_of(work, struct tfp410, hpd_work.work); > > > > - if (dvi->bridge.dev) > > - drm_helper_hpd_irq_event(dvi->bridge.dev); > > + if (dvi->bridge.encoder) > > + drm_helper_hpd_irq_event(dvi->bridge.encoder->dev); > > } > > > > static irqreturn_t tfp410_hpd_irq_thread(int irq, void *arg) > > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > > index c2cf0c90fa26..eaa20804b038 100644 > > --- a/drivers/gpu/drm/drm_bridge.c > > +++ b/drivers/gpu/drm/drm_bridge.c > > @@ -119,13 +119,12 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > > if (!encoder || !bridge) > > return -EINVAL; > > > > - if (previous && (!previous->dev || previous->encoder != encoder)) > > + if (previous && (previous->encoder != encoder)) > > return -EINVAL; > > > > - if (bridge->dev) > > + if (bridge->encoder) > > return -EBUSY; > > > > - bridge->dev = encoder->dev; > > bridge->encoder = encoder; > > > > if (previous) > > @@ -137,7 +136,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, > > ret = bridge->funcs->attach(bridge); > > if (ret < 0) { > > list_del(&bridge->chain_node); > > - bridge->dev = NULL; > > bridge->encoder = NULL; > > return ret; > > } > > @@ -152,14 +150,14 @@ void drm_bridge_detach(struct drm_bridge *bridge) > > if (WARN_ON(!bridge)) > > return; > > > > - if (WARN_ON(!bridge->dev)) > > + if (WARN_ON(!bridge->encoder)) > > return; > > > > if (bridge->funcs->detach) > > bridge->funcs->detach(bridge); > > > > list_del(&bridge->chain_node); > > - bridge->dev = NULL; > > + bridge->encoder = NULL; > > } > > > > /** > > diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c > > index a63790d32d75..17a66ef3dfd4 100644 > > --- a/drivers/gpu/drm/i2c/tda998x_drv.c > > +++ b/drivers/gpu/drm/i2c/tda998x_drv.c > > @@ -1360,7 +1360,7 @@ static int tda998x_bridge_attach(struct drm_bridge *bridge) > > { > > struct tda998x_priv *priv = bridge_to_tda998x_priv(bridge); > > > > - return tda998x_connector_init(priv, bridge->dev); > > + return tda998x_connector_init(priv, bridge->encoder->dev); > > } > > > > static void tda998x_bridge_detach(struct drm_bridge *bridge) > > diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c > > index 42fff811653e..c08d7ede9fb8 100644 > > --- a/drivers/gpu/drm/mcde/mcde_dsi.c > > +++ b/drivers/gpu/drm/mcde/mcde_dsi.c > > @@ -846,7 +846,7 @@ static void mcde_dsi_bridge_disable(struct drm_bridge *bridge) > > static int mcde_dsi_bridge_attach(struct drm_bridge *bridge) > > { > > struct mcde_dsi *d = bridge_to_mcde_dsi(bridge); > > - struct drm_device *drm = bridge->dev; > > + struct drm_device *drm = bridge->encoder->dev; > > int ret; > > > > if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) { > > diff --git a/drivers/gpu/drm/msm/edp/edp_bridge.c b/drivers/gpu/drm/msm/edp/edp_bridge.c > > index b65b5cc2dba2..301dd7a80bde 100644 > > --- a/drivers/gpu/drm/msm/edp/edp_bridge.c > > +++ b/drivers/gpu/drm/msm/edp/edp_bridge.c > > @@ -47,7 +47,7 @@ static void edp_bridge_mode_set(struct drm_bridge *bridge, > > const struct drm_display_mode *mode, > > const struct drm_display_mode *adjusted_mode) > > { > > - struct drm_device *dev = bridge->dev; > > + struct drm_device *dev = bridge->encoder->dev; > > struct drm_connector *connector; > > struct edp_bridge *edp_bridge = to_edp_bridge(bridge); > > struct msm_edp *edp = edp_bridge->edp; > > diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > > index ba81338a9bf8..07c098dce310 100644 > > --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > > +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c > > @@ -20,7 +20,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge) > > > > static void msm_hdmi_power_on(struct drm_bridge *bridge) > > { > > - struct drm_device *dev = bridge->dev; > > + struct drm_device *dev = bridge->encoder->dev; > > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > > struct hdmi *hdmi = hdmi_bridge->hdmi; > > const struct hdmi_platform_config *config = hdmi->config; > > @@ -56,7 +56,7 @@ static void msm_hdmi_power_on(struct drm_bridge *bridge) > > > > static void power_off(struct drm_bridge *bridge) > > { > > - struct drm_device *dev = bridge->dev; > > + struct drm_device *dev = bridge->encoder->dev; > > struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); > > struct hdmi *hdmi = hdmi_bridge->hdmi; > > const struct hdmi_platform_config *config = hdmi->config; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c > > index 2cf44b91853c..83538125a722 100644 > > --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c > > +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c > > @@ -622,7 +622,8 @@ static int rcar_lvds_attach(struct drm_bridge *bridge) > > if (!lvds->panel) > > return 0; > > > > - ret = drm_connector_init(bridge->dev, connector, &rcar_lvds_conn_funcs, > > + ret = drm_connector_init(bridge->encoder->dev, connector, > > + &rcar_lvds_conn_funcs, > > DRM_MODE_CONNECTOR_LVDS); > > if (ret < 0) > > return ret; > > diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h > > index 694e153a7531..695d0898df38 100644 > > --- a/include/drm/drm_bridge.h > > +++ b/include/drm/drm_bridge.h > > @@ -380,8 +380,6 @@ struct drm_bridge_timings { > > * struct drm_bridge - central DRM bridge control structure > > */ > > struct drm_bridge { > > - /** @dev: DRM device this bridge belongs to */ > > - struct drm_device *dev; > > /** @encoder: encoder to which this bridge is connected */ > > struct drm_encoder *encoder; > > /** @chain_node: used to form a bridge chain */ > > > >
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 9e13e466e72c..009cf1fef8d4 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -863,7 +863,7 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) adv->connector.polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; - ret = drm_connector_init(bridge->dev, &adv->connector, + ret = drm_connector_init(bridge->encoder->dev, &adv->connector, &adv7511_connector_funcs, DRM_MODE_CONNECTOR_HDMIA); if (ret) { diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c index 9917ce0d86a0..5b806d23fcb3 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c @@ -541,7 +541,7 @@ static int anx6345_bridge_attach(struct drm_bridge *bridge) return err; } - err = drm_connector_init(bridge->dev, &anx6345->connector, + err = drm_connector_init(bridge->encoder->dev, &anx6345->connector, &anx6345_connector_funcs, DRM_MODE_CONNECTOR_eDP); if (err) { diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c index 41867be03751..7463537950cb 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c @@ -908,7 +908,7 @@ static int anx78xx_bridge_attach(struct drm_bridge *bridge) return err; } - err = drm_connector_init(bridge->dev, &anx78xx->connector, + err = drm_connector_init(bridge->encoder->dev, &anx78xx->connector, &anx78xx_connector_funcs, DRM_MODE_CONNECTOR_DisplayPort); if (err) { diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c index 3a5bd4e7fd1e..32863e3ad537 100644 --- a/drivers/gpu/drm/bridge/cdns-dsi.c +++ b/drivers/gpu/drm/bridge/cdns-dsi.c @@ -651,7 +651,7 @@ static int cdns_dsi_bridge_attach(struct drm_bridge *bridge) struct cdns_dsi *dsi = input_to_dsi(input); struct cdns_dsi_output *output = &dsi->output; - if (!drm_core_check_feature(bridge->dev, DRIVER_ATOMIC)) { + if (!drm_core_check_feature(bridge->encoder->dev, DRIVER_ATOMIC)) { dev_err(dsi->base.dev, "cdns-dsi driver is only compatible with DRM devices supporting atomic updates"); return -ENOTSUPP; diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c index cc33dc411b9e..67ad6cecf68d 100644 --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c @@ -112,7 +112,7 @@ static int dumb_vga_attach(struct drm_bridge *bridge) drm_connector_helper_add(&vga->connector, &dumb_vga_con_helper_funcs); - ret = drm_connector_init_with_ddc(bridge->dev, &vga->connector, + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &vga->connector, &dumb_vga_con_funcs, DRM_MODE_CONNECTOR_VGA, vga->ddc); diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c index e8a49f6146c6..c914f01e4707 100644 --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -223,7 +223,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge) drm_connector_helper_add(connector, &ge_b850v3_lvds_connector_helper_funcs); - ret = drm_connector_init(bridge->dev, connector, + ret = drm_connector_init(bridge->encoder->dev, connector, &ge_b850v3_lvds_connector_funcs, DRM_MODE_CONNECTOR_DisplayPort); if (ret) { diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c index 57ff01339559..3999bb864eb9 100644 --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c @@ -247,7 +247,7 @@ static int ptn3460_bridge_attach(struct drm_bridge *bridge) } ptn_bridge->connector.polled = DRM_CONNECTOR_POLL_HPD; - ret = drm_connector_init(bridge->dev, &ptn_bridge->connector, + ret = drm_connector_init(bridge->encoder->dev, &ptn_bridge->connector, &ptn3460_connector_funcs, DRM_MODE_CONNECTOR_LVDS); if (ret) { DRM_ERROR("Failed to initialize connector with drm\n"); diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index f66777e24968..4ba4e9d9537a 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -67,7 +67,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge) drm_connector_helper_add(connector, &panel_bridge_connector_helper_funcs); - ret = drm_connector_init(bridge->dev, connector, + ret = drm_connector_init(bridge->encoder->dev, connector, &panel_bridge_connector_funcs, panel_bridge->connector_type); if (ret) { diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c index 10c47c008b40..c32af9c2bbcc 100644 --- a/drivers/gpu/drm/bridge/parade-ps8622.c +++ b/drivers/gpu/drm/bridge/parade-ps8622.c @@ -487,7 +487,7 @@ static int ps8622_attach(struct drm_bridge *bridge) } ps8622->connector.polled = DRM_CONNECTOR_POLL_HPD; - ret = drm_connector_init(bridge->dev, &ps8622->connector, + ret = drm_connector_init(bridge->encoder->dev, &ps8622->connector, &ps8622_connector_funcs, DRM_MODE_CONNECTOR_LVDS); if (ret) { DRM_ERROR("Failed to initialize connector with drm\n"); diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c index b70e8c5cf2e1..6ca297d78a26 100644 --- a/drivers/gpu/drm/bridge/sii902x.c +++ b/drivers/gpu/drm/bridge/sii902x.c @@ -402,7 +402,7 @@ static void sii902x_bridge_mode_set(struct drm_bridge *bridge, static int sii902x_bridge_attach(struct drm_bridge *bridge) { struct sii902x *sii902x = bridge_to_sii902x(bridge); - struct drm_device *drm = bridge->dev; + struct drm_device *drm = bridge->encoder->dev; int ret; drm_connector_helper_add(&sii902x->connector, @@ -820,8 +820,8 @@ static irqreturn_t sii902x_interrupt(int irq, void *data) mutex_unlock(&sii902x->mutex); - if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.dev) - drm_helper_hpd_irq_event(sii902x->bridge.dev); + if ((status & SII902X_HOTPLUG_EVENT) && sii902x->bridge.encoder) + drm_helper_hpd_irq_event(sii902x->bridge.encoder->dev); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index dbe38a54870b..99274ca0fdf6 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -2346,7 +2346,7 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); - drm_connector_init_with_ddc(bridge->dev, connector, + drm_connector_init_with_ddc(bridge->encoder->dev, connector, &dw_hdmi_connector_funcs, DRM_MODE_CONNECTOR_HDMIA, hdmi->ddc); @@ -2554,8 +2554,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { dev_dbg(hdmi->dev, "EVENT=%s\n", phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); - if (hdmi->bridge.dev) - drm_helper_hpd_irq_event(hdmi->bridge.dev); + if (hdmi->bridge.encoder) + drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); } hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index 96207fcfde19..e35e17b1f396 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -352,7 +352,7 @@ static void tc358764_enable(struct drm_bridge *bridge) static int tc358764_attach(struct drm_bridge *bridge) { struct tc358764 *ctx = bridge_to_tc358764(bridge); - struct drm_device *drm = bridge->dev; + struct drm_device *drm = bridge->encoder->dev; int ret; ctx->connector.polled = DRM_CONNECTOR_POLL_HPD; @@ -378,7 +378,7 @@ static int tc358764_attach(struct drm_bridge *bridge) static void tc358764_detach(struct drm_bridge *bridge) { struct tc358764 *ctx = bridge_to_tc358764(bridge); - struct drm_device *drm = bridge->dev; + struct drm_device *drm = bridge->encoder->dev; drm_connector_unregister(&ctx->connector); drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c index 3709e5ace724..ab1524c00777 100644 --- a/drivers/gpu/drm/bridge/tc358767.c +++ b/drivers/gpu/drm/bridge/tc358767.c @@ -1407,7 +1407,7 @@ static int tc_bridge_attach(struct drm_bridge *bridge) { u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; struct tc_data *tc = bridge_to_tc(bridge); - struct drm_device *drm = bridge->dev; + struct drm_device *drm = bridge->encoder->dev; int ret; /* Create DP/eDP connector */ @@ -1514,7 +1514,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) dev_err(tc->dev, "syserr %x\n", stat); } - if (tc->hpd_pin >= 0 && tc->bridge.dev) { + if (tc->hpd_pin >= 0 && tc->bridge.encoder) { /* * H is triggered when the GPIO goes high. * @@ -1528,7 +1528,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg) h ? "H" : "", lc ? "LC" : ""); if (h || lc) - drm_kms_helper_hotplug_event(tc->bridge.dev); + drm_kms_helper_hotplug_event(tc->bridge.encoder->dev); } regmap_write(tc->regmap, INTSTS_G, val); diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index 9a2dd986afa5..8a4e64cfca1e 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -275,7 +275,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) .node = NULL, }; - ret = drm_connector_init(bridge->dev, &pdata->connector, + ret = drm_connector_init(bridge->encoder->dev, &pdata->connector, &ti_sn_bridge_connector_funcs, DRM_MODE_CONNECTOR_eDP); if (ret) { diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c index aa3198dc9903..76229367e2f4 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -135,7 +135,7 @@ static int tfp410_attach(struct drm_bridge *bridge) drm_connector_helper_add(&dvi->connector, &tfp410_con_helper_funcs); - ret = drm_connector_init_with_ddc(bridge->dev, &dvi->connector, + ret = drm_connector_init_with_ddc(bridge->encoder->dev, &dvi->connector, &tfp410_con_funcs, dvi->connector_type, dvi->ddc); @@ -179,8 +179,8 @@ static void tfp410_hpd_work_func(struct work_struct *work) dvi = container_of(work, struct tfp410, hpd_work.work); - if (dvi->bridge.dev) - drm_helper_hpd_irq_event(dvi->bridge.dev); + if (dvi->bridge.encoder) + drm_helper_hpd_irq_event(dvi->bridge.encoder->dev); } static irqreturn_t tfp410_hpd_irq_thread(int irq, void *arg) diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index c2cf0c90fa26..eaa20804b038 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -119,13 +119,12 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, if (!encoder || !bridge) return -EINVAL; - if (previous && (!previous->dev || previous->encoder != encoder)) + if (previous && (previous->encoder != encoder)) return -EINVAL; - if (bridge->dev) + if (bridge->encoder) return -EBUSY; - bridge->dev = encoder->dev; bridge->encoder = encoder; if (previous) @@ -137,7 +136,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, ret = bridge->funcs->attach(bridge); if (ret < 0) { list_del(&bridge->chain_node); - bridge->dev = NULL; bridge->encoder = NULL; return ret; } @@ -152,14 +150,14 @@ void drm_bridge_detach(struct drm_bridge *bridge) if (WARN_ON(!bridge)) return; - if (WARN_ON(!bridge->dev)) + if (WARN_ON(!bridge->encoder)) return; if (bridge->funcs->detach) bridge->funcs->detach(bridge); list_del(&bridge->chain_node); - bridge->dev = NULL; + bridge->encoder = NULL; } /** diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index a63790d32d75..17a66ef3dfd4 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -1360,7 +1360,7 @@ static int tda998x_bridge_attach(struct drm_bridge *bridge) { struct tda998x_priv *priv = bridge_to_tda998x_priv(bridge); - return tda998x_connector_init(priv, bridge->dev); + return tda998x_connector_init(priv, bridge->encoder->dev); } static void tda998x_bridge_detach(struct drm_bridge *bridge) diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c index 42fff811653e..c08d7ede9fb8 100644 --- a/drivers/gpu/drm/mcde/mcde_dsi.c +++ b/drivers/gpu/drm/mcde/mcde_dsi.c @@ -846,7 +846,7 @@ static void mcde_dsi_bridge_disable(struct drm_bridge *bridge) static int mcde_dsi_bridge_attach(struct drm_bridge *bridge) { struct mcde_dsi *d = bridge_to_mcde_dsi(bridge); - struct drm_device *drm = bridge->dev; + struct drm_device *drm = bridge->encoder->dev; int ret; if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) { diff --git a/drivers/gpu/drm/msm/edp/edp_bridge.c b/drivers/gpu/drm/msm/edp/edp_bridge.c index b65b5cc2dba2..301dd7a80bde 100644 --- a/drivers/gpu/drm/msm/edp/edp_bridge.c +++ b/drivers/gpu/drm/msm/edp/edp_bridge.c @@ -47,7 +47,7 @@ static void edp_bridge_mode_set(struct drm_bridge *bridge, const struct drm_display_mode *mode, const struct drm_display_mode *adjusted_mode) { - struct drm_device *dev = bridge->dev; + struct drm_device *dev = bridge->encoder->dev; struct drm_connector *connector; struct edp_bridge *edp_bridge = to_edp_bridge(bridge); struct msm_edp *edp = edp_bridge->edp; diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c index ba81338a9bf8..07c098dce310 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c @@ -20,7 +20,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge) static void msm_hdmi_power_on(struct drm_bridge *bridge) { - struct drm_device *dev = bridge->dev; + struct drm_device *dev = bridge->encoder->dev; struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); struct hdmi *hdmi = hdmi_bridge->hdmi; const struct hdmi_platform_config *config = hdmi->config; @@ -56,7 +56,7 @@ static void msm_hdmi_power_on(struct drm_bridge *bridge) static void power_off(struct drm_bridge *bridge) { - struct drm_device *dev = bridge->dev; + struct drm_device *dev = bridge->encoder->dev; struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); struct hdmi *hdmi = hdmi_bridge->hdmi; const struct hdmi_platform_config *config = hdmi->config; diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c index 2cf44b91853c..83538125a722 100644 --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c @@ -622,7 +622,8 @@ static int rcar_lvds_attach(struct drm_bridge *bridge) if (!lvds->panel) return 0; - ret = drm_connector_init(bridge->dev, connector, &rcar_lvds_conn_funcs, + ret = drm_connector_init(bridge->encoder->dev, connector, + &rcar_lvds_conn_funcs, DRM_MODE_CONNECTOR_LVDS); if (ret < 0) return ret; diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 694e153a7531..695d0898df38 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -380,8 +380,6 @@ struct drm_bridge_timings { * struct drm_bridge - central DRM bridge control structure */ struct drm_bridge { - /** @dev: DRM device this bridge belongs to */ - struct drm_device *dev; /** @encoder: encoder to which this bridge is connected */ struct drm_encoder *encoder; /** @chain_node: used to form a bridge chain */
As suggested in [1], the 'dev' field is a bit repetitive, since it 1:1 follows the setting and NULLing of the 'encoder' field. Therefore, use drm_bridge->encoder->dev in place of drm_bridge->dev. [1] https://patchwork.freedesktop.org/patch/343824/ Cc: Daniel Vetter <daniel@ffwll.ch> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com> --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 2 +- drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 +- drivers/gpu/drm/bridge/cdns-dsi.c | 2 +- drivers/gpu/drm/bridge/dumb-vga-dac.c | 2 +- .../gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 2 +- drivers/gpu/drm/bridge/nxp-ptn3460.c | 2 +- drivers/gpu/drm/bridge/panel.c | 2 +- drivers/gpu/drm/bridge/parade-ps8622.c | 2 +- drivers/gpu/drm/bridge/sii902x.c | 6 +++--- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +++--- drivers/gpu/drm/bridge/tc358764.c | 4 ++-- drivers/gpu/drm/bridge/tc358767.c | 6 +++--- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +- drivers/gpu/drm/bridge/ti-tfp410.c | 6 +++--- drivers/gpu/drm/drm_bridge.c | 10 ++++------ drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- drivers/gpu/drm/msm/edp/edp_bridge.c | 2 +- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 ++-- drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 ++- include/drm/drm_bridge.h | 2 -- 22 files changed, 35 insertions(+), 38 deletions(-)