Message ID | 20200514011707.6512-2-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | [1/2] drm: bridge: dw-hdmi: Pass dw_hdmi pointer to .mode_valid() operation | expand |
On 14/05/2020 03:17, Laurent Pinchart wrote: > The meson-dw-hdmi driver needs to access its own context from the > .mode_valid() operation. It currently gets it from the dev_private field > of the drm_device retrieved from the connector, which is a hack. Use the > dw_hdmi context passed to the .mode_valid() operation instead. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > --- > drivers/gpu/drm/meson/meson_dw_hdmi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c > index 174d45ecdeda..808e73fe8b3e 100644 > --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c > @@ -634,7 +634,9 @@ dw_hdmi_mode_valid(struct dw_hdmi *hdmi, > struct drm_connector *connector, > const struct drm_display_mode *mode) > { > - struct meson_drm *priv = connector->dev->dev_private; > + struct device *dev = dw_hdmi_device(hdmi); > + struct meson_dw_hdmi *dw_hdmi = dev_get_drvdata(dev); > + struct meson_drm *priv = dw_hdmi->priv; With *data passed, it would only be a matter of dw_hdmi = data; > bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported; > unsigned int phy_freq; > unsigned int vclk_freq; > @@ -693,7 +695,7 @@ dw_hdmi_mode_valid(struct dw_hdmi *hdmi, > if (mode->flags & DRM_MODE_FLAG_DBLCLK) > venc_freq /= 2; > > - dev_dbg(connector->dev->dev, "%s: vclk:%d phy=%d venc=%d hdmi=%d\n", > + dev_dbg(dev, "%s: vclk:%d phy=%d venc=%d hdmi=%d\n", > __func__, phy_freq, vclk_freq, venc_freq, hdmi_freq); > > return meson_vclk_vic_supported_freq(priv, phy_freq, vclk_freq); > Neil
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c index 174d45ecdeda..808e73fe8b3e 100644 --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c @@ -634,7 +634,9 @@ dw_hdmi_mode_valid(struct dw_hdmi *hdmi, struct drm_connector *connector, const struct drm_display_mode *mode) { - struct meson_drm *priv = connector->dev->dev_private; + struct device *dev = dw_hdmi_device(hdmi); + struct meson_dw_hdmi *dw_hdmi = dev_get_drvdata(dev); + struct meson_drm *priv = dw_hdmi->priv; bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported; unsigned int phy_freq; unsigned int vclk_freq; @@ -693,7 +695,7 @@ dw_hdmi_mode_valid(struct dw_hdmi *hdmi, if (mode->flags & DRM_MODE_FLAG_DBLCLK) venc_freq /= 2; - dev_dbg(connector->dev->dev, "%s: vclk:%d phy=%d venc=%d hdmi=%d\n", + dev_dbg(dev, "%s: vclk:%d phy=%d venc=%d hdmi=%d\n", __func__, phy_freq, vclk_freq, venc_freq, hdmi_freq); return meson_vclk_vic_supported_freq(priv, phy_freq, vclk_freq);
The meson-dw-hdmi driver needs to access its own context from the .mode_valid() operation. It currently gets it from the dev_private field of the drm_device retrieved from the connector, which is a hack. Use the dw_hdmi context passed to the .mode_valid() operation instead. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- drivers/gpu/drm/meson/meson_dw_hdmi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)