@@ -476,6 +476,29 @@ static void taal_get_timings(struct omap_dss_device *dssdev,
*timings = dssdev->panel.timings;
}
+static void taal_set_timings(struct omap_dss_device *dssdev,
+ struct omap_video_timings *timings)
+{
+ /* TAAL panel's timing struct has only x_res and y_res
+ * other timing parameters are not set
+ */
+ dssdev->panel.timings.x_res = timings->x_res;
+ dssdev->panel.timings.y_res = timings->y_res;
+}
+
+static int taal_check_timings(struct omap_dss_device *dssdev,
+ struct omap_video_timings *timings)
+{
+ /* TAAL panel's timing struct has only x_res and y_res
+ * other timing parameters are not set
+ */
+ if (!timings || timings->x_res != dssdev->panel.timings.x_res ||
+ timings->y_res != dssdev->panel.timings.y_res)
+ return -EINVAL;
+
+ return 0;
+}
+
static void taal_get_resolution(struct omap_dss_device *dssdev,
u16 *xres, u16 *yres)
{
@@ -1563,6 +1586,8 @@ static struct omap_dss_driver taal_driver = {
.memory_read = taal_memory_read,
.get_timings = taal_get_timings,
+ .set_timings = taal_set_timings,
+ .check_timings = taal_check_timings,
.driver = {
.name = "taal",