aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2012-08-13 12:53:29 -0400
committerArchit Taneja <archit@ti.com>2012-08-16 08:39:41 -0400
commit6e883324b2ef9971ec208da2bf2f49268c36f2bb (patch)
tree8c9714be88beaa8bb8411eaf35f8098e65f8bcf6 /drivers/video/omap2
parent0b3ffe397ab2cfae526568880ab4621ff8f113c9 (diff)
OMAPDSS: RFBI: Maitain copy of rfbi timings in driver data
The RFBI driver currently relies on the omap_dss_device struct to receive the rfbi specific timings requested by the panel driver. This makes the RFBI interface driver dependent on the omap_dss_device struct. Make the RFBI driver data maintain it's own rfbi specific timings field. The panel driver is expected to call omapdss_rfbi_set_interface_timings() to configure the rfbi timings before the interface is enabled. Signed-off-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/displays/panel-n8x0.c1
-rw-r--r--drivers/video/omap2/dss/rfbi.c12
2 files changed, 10 insertions, 3 deletions
diff --git a/drivers/video/omap2/displays/panel-n8x0.c b/drivers/video/omap2/displays/panel-n8x0.c
index 3ffd987ad8b2..17ae85e0033f 100644
--- a/drivers/video/omap2/displays/panel-n8x0.c
+++ b/drivers/video/omap2/displays/panel-n8x0.c
@@ -307,6 +307,7 @@ static int n8x0_panel_power_on(struct omap_dss_device *dssdev)
307 dssdev->panel.timings.y_res); 307 dssdev->panel.timings.y_res);
308 omapdss_rfbi_set_pixel_size(dssdev, dssdev->ctrl.pixel_size); 308 omapdss_rfbi_set_pixel_size(dssdev, dssdev->ctrl.pixel_size);
309 omapdss_rfbi_set_data_lines(dssdev, dssdev->phy.rfbi.data_lines); 309 omapdss_rfbi_set_data_lines(dssdev, dssdev->phy.rfbi.data_lines);
310 omapdss_rfbi_set_interface_timings(dssdev, &dssdev->ctrl.rfbi_timings);
310 311
311 r = omapdss_rfbi_display_enable(dssdev); 312 r = omapdss_rfbi_display_enable(dssdev);
312 if (r) 313 if (r)
diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c
index 698d5b92f8e2..5a9c0e9d8710 100644
--- a/drivers/video/omap2/dss/rfbi.c
+++ b/drivers/video/omap2/dss/rfbi.c
@@ -115,6 +115,7 @@ static struct {
115 struct omap_video_timings timings; 115 struct omap_video_timings timings;
116 int pixel_size; 116 int pixel_size;
117 int data_lines; 117 int data_lines;
118 struct rfbi_timings intf_timings;
118} rfbi; 119} rfbi;
119 120
120static inline void rfbi_write_reg(const struct rfbi_reg idx, u32 val) 121static inline void rfbi_write_reg(const struct rfbi_reg idx, u32 val)
@@ -799,6 +800,13 @@ void omapdss_rfbi_set_data_lines(struct omap_dss_device *dssdev, int data_lines)
799} 800}
800EXPORT_SYMBOL(omapdss_rfbi_set_data_lines); 801EXPORT_SYMBOL(omapdss_rfbi_set_data_lines);
801 802
803void omapdss_rfbi_set_interface_timings(struct omap_dss_device *dssdev,
804 struct rfbi_timings *timings)
805{
806 rfbi.intf_timings = *timings;
807}
808EXPORT_SYMBOL(omapdss_rfbi_set_interface_timings);
809
802static void rfbi_dump_regs(struct seq_file *s) 810static void rfbi_dump_regs(struct seq_file *s)
803{ 811{
804#define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, rfbi_read_reg(r)) 812#define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, rfbi_read_reg(r))
@@ -907,9 +915,7 @@ int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev)
907 rfbi_configure(dssdev->phy.rfbi.channel, rfbi.pixel_size, 915 rfbi_configure(dssdev->phy.rfbi.channel, rfbi.pixel_size,
908 rfbi.data_lines); 916 rfbi.data_lines);
909 917
910 rfbi_set_timings(dssdev->phy.rfbi.channel, 918 rfbi_set_timings(dssdev->phy.rfbi.channel, &rfbi.intf_timings);
911 &dssdev->ctrl.rfbi_timings);
912
913 919
914 return 0; 920 return 0;
915err1: 921err1: