OMAPDSS: SDI: Maintain copy of data pairs in driver data
The SDI driver currently relies on the omap_dss_device struct to configure the number of data pairs as specified by the panel. This makes the SDI interface driver dependent on the omap_dss_device struct. Make the SDI driver data maintain it's own data lines field. A panel driver is expected to call omapdss_sdi_set_datapairs() before enabling the interface. Even though we configure the number of data pairs here, this function would be finally mapped to a generic interface op called set_data_lines. The datapairs argument type has been changed from u8 to int at some places to be in sync with the 'set_data_lines' ops of other interfaces. Signed-off-by: Archit Taneja <archit@ti.com>
This commit is contained in:
parent
c6b393d4bc
commit
889b4fd7ee
5 changed files with 13 additions and 3 deletions
|
@ -601,6 +601,7 @@ static int acx_panel_power_on(struct omap_dss_device *dssdev)
|
|||
mutex_lock(&md->mutex);
|
||||
|
||||
omapdss_sdi_set_timings(dssdev, &dssdev->panel.timings);
|
||||
omapdss_sdi_set_datapairs(dssdev, dssdev->phy.sdi.datapairs);
|
||||
|
||||
r = omapdss_sdi_display_enable(dssdev);
|
||||
if (r) {
|
||||
|
|
|
@ -144,7 +144,7 @@ static void dss_restore_context(void)
|
|||
#undef SR
|
||||
#undef RR
|
||||
|
||||
void dss_sdi_init(u8 datapairs)
|
||||
void dss_sdi_init(int datapairs)
|
||||
{
|
||||
u32 l;
|
||||
|
||||
|
|
|
@ -279,7 +279,7 @@ void dss_dump_clocks(struct seq_file *s);
|
|||
void dss_debug_dump_clocks(struct seq_file *s);
|
||||
#endif
|
||||
|
||||
void dss_sdi_init(u8 datapairs);
|
||||
void dss_sdi_init(int datapairs);
|
||||
int dss_sdi_enable(void);
|
||||
void dss_sdi_disable(void);
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ static struct {
|
|||
|
||||
struct dss_lcd_mgr_config mgr_config;
|
||||
struct omap_video_timings timings;
|
||||
int datapairs;
|
||||
} sdi;
|
||||
|
||||
static void sdi_config_lcd_manager(struct omap_dss_device *dssdev)
|
||||
|
@ -106,7 +107,8 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev)
|
|||
|
||||
sdi_config_lcd_manager(dssdev);
|
||||
|
||||
dss_sdi_init(dssdev->phy.sdi.datapairs);
|
||||
dss_sdi_init(sdi.datapairs);
|
||||
|
||||
r = dss_sdi_enable();
|
||||
if (r)
|
||||
goto err_sdi_enable;
|
||||
|
@ -164,6 +166,12 @@ void omapdss_sdi_set_timings(struct omap_dss_device *dssdev,
|
|||
}
|
||||
EXPORT_SYMBOL(omapdss_sdi_set_timings);
|
||||
|
||||
void omapdss_sdi_set_datapairs(struct omap_dss_device *dssdev, int datapairs)
|
||||
{
|
||||
sdi.datapairs = datapairs;
|
||||
}
|
||||
EXPORT_SYMBOL(omapdss_sdi_set_datapairs);
|
||||
|
||||
static int __init sdi_init_display(struct omap_dss_device *dssdev)
|
||||
{
|
||||
DSSDBG("SDI init\n");
|
||||
|
|
|
@ -749,6 +749,7 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
|
|||
void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);
|
||||
void omapdss_sdi_set_timings(struct omap_dss_device *dssdev,
|
||||
struct omap_video_timings *timings);
|
||||
void omapdss_sdi_set_datapairs(struct omap_dss_device *dssdev, int datapairs);
|
||||
|
||||
int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
|
||||
void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);
|
||||
|
|
Loading…
Reference in a new issue