aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_encoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_encoder.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_encoder.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c b/drivers/gpu/drm/omapdrm/omap_encoder.c
index ec0f451e3b36..7bbf3700e393 100644
--- a/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -77,16 +77,16 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder,
77 } 77 }
78 } 78 }
79 79
80 if (dssdev->driver->set_hdmi_mode) 80 if (dssdev->ops->hdmi.set_hdmi_mode)
81 dssdev->driver->set_hdmi_mode(dssdev, hdmi_mode); 81 dssdev->ops->hdmi.set_hdmi_mode(dssdev, hdmi_mode);
82 82
83 if (hdmi_mode && dssdev->driver->set_hdmi_infoframe) { 83 if (hdmi_mode && dssdev->ops->hdmi.set_infoframe) {
84 struct hdmi_avi_infoframe avi; 84 struct hdmi_avi_infoframe avi;
85 85
86 r = drm_hdmi_avi_infoframe_from_display_mode(&avi, adjusted_mode, 86 r = drm_hdmi_avi_infoframe_from_display_mode(&avi, adjusted_mode,
87 false); 87 false);
88 if (r == 0) 88 if (r == 0)
89 dssdev->driver->set_hdmi_infoframe(dssdev, &avi); 89 dssdev->ops->hdmi.set_infoframe(dssdev, &avi);
90 } 90 }
91} 91}
92 92
@@ -94,9 +94,8 @@ static void omap_encoder_disable(struct drm_encoder *encoder)
94{ 94{
95 struct omap_encoder *omap_encoder = to_omap_encoder(encoder); 95 struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
96 struct omap_dss_device *dssdev = omap_encoder->dssdev; 96 struct omap_dss_device *dssdev = omap_encoder->dssdev;
97 const struct omap_dss_driver *dssdrv = dssdev->driver;
98 97
99 dssdrv->disable(dssdev); 98 dssdev->ops->disable(dssdev);
100} 99}
101 100
102static int omap_encoder_update(struct drm_encoder *encoder, 101static int omap_encoder_update(struct drm_encoder *encoder,
@@ -106,15 +105,14 @@ static int omap_encoder_update(struct drm_encoder *encoder,
106 struct drm_device *dev = encoder->dev; 105 struct drm_device *dev = encoder->dev;
107 struct omap_encoder *omap_encoder = to_omap_encoder(encoder); 106 struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
108 struct omap_dss_device *dssdev = omap_encoder->dssdev; 107 struct omap_dss_device *dssdev = omap_encoder->dssdev;
109 const struct omap_dss_driver *dssdrv = dssdev->driver;
110 int ret; 108 int ret;
111 109
112 if (dssdrv->check_timings) { 110 if (dssdev->ops->check_timings) {
113 ret = dssdrv->check_timings(dssdev, vm); 111 ret = dssdev->ops->check_timings(dssdev, vm);
114 } else { 112 } else {
115 struct videomode t = {0}; 113 struct videomode t = {0};
116 114
117 dssdrv->get_timings(dssdev, &t); 115 dssdev->ops->get_timings(dssdev, &t);
118 116
119 if (memcmp(vm, &t, sizeof(*vm))) 117 if (memcmp(vm, &t, sizeof(*vm)))
120 ret = -EINVAL; 118 ret = -EINVAL;
@@ -127,8 +125,8 @@ static int omap_encoder_update(struct drm_encoder *encoder,
127 return ret; 125 return ret;
128 } 126 }
129 127
130 if (dssdrv->set_timings) 128 if (dssdev->ops->set_timings)
131 dssdrv->set_timings(dssdev, vm); 129 dssdev->ops->set_timings(dssdev, vm);
132 130
133 return 0; 131 return 0;
134} 132}
@@ -137,13 +135,12 @@ static void omap_encoder_enable(struct drm_encoder *encoder)
137{ 135{
138 struct omap_encoder *omap_encoder = to_omap_encoder(encoder); 136 struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
139 struct omap_dss_device *dssdev = omap_encoder->dssdev; 137 struct omap_dss_device *dssdev = omap_encoder->dssdev;
140 const struct omap_dss_driver *dssdrv = dssdev->driver;
141 int r; 138 int r;
142 139
143 omap_encoder_update(encoder, omap_crtc_channel(encoder->crtc), 140 omap_encoder_update(encoder, omap_crtc_channel(encoder->crtc),
144 omap_crtc_timings(encoder->crtc)); 141 omap_crtc_timings(encoder->crtc));
145 142
146 r = dssdrv->enable(dssdev); 143 r = dssdev->ops->enable(dssdev);
147 if (r) 144 if (r)
148 dev_err(encoder->dev->dev, 145 dev_err(encoder->dev->dev,
149 "Failed to enable display '%s': %d\n", 146 "Failed to enable display '%s': %d\n",