aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/samsung/s6dr171.c
diff options
context:
space:
mode:
authorDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-21 23:04:45 +0200
committerDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-21 23:04:45 +0200
commit0a1182796f6475b8cb2ff1781dad873a744b3197 (patch)
treee15b5256dac226c49a25b5e24594cd638e2fec2c /drivers/video/samsung/s6dr171.c
parent633018c13fe06461d9c60692fbb114734aa37802 (diff)
downloadkernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.zip
kernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.tar.gz
kernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.tar.bz2
samsung opensource update3
Diffstat (limited to 'drivers/video/samsung/s6dr171.c')
-rw-r--r--drivers/video/samsung/s6dr171.c49
1 files changed, 10 insertions, 39 deletions
diff --git a/drivers/video/samsung/s6dr171.c b/drivers/video/samsung/s6dr171.c
index b48e40a..167f658 100644
--- a/drivers/video/samsung/s6dr171.c
+++ b/drivers/video/samsung/s6dr171.c
@@ -76,10 +76,9 @@ struct lcd_info {
unsigned int irq;
unsigned int connected;
+ struct dsim_global *dsim;
};
-static struct mipi_ddi_platform_data *ddi_pd;
-
static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len)
{
int size;
@@ -94,11 +93,11 @@ static int s6e8ax0_write(struct lcd_info *lcd, const unsigned char *seq, int len
wbuf = seq;
if (size == 1)
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_NO_PARA, wbuf[0], 0);
+ lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_NO_PARA, wbuf[0], 0);
else if (size == 2)
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
+ lcd->dsim->ops->cmd_write(lcd->dsim, DCS_WR_1_PARA, wbuf[0], wbuf[1]);
else
- ddi_pd->cmd_write(ddi_pd->dsim_base, DCS_LONG_WR, (unsigned int)wbuf, size);
+ lcd->dsim->ops->cmd_write(lcd->dsim, DCS_LONG_WR, (unsigned int)wbuf, size);
mutex_unlock(&lcd->lock);
@@ -114,44 +113,14 @@ static int _s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf
mutex_lock(&lcd->lock);
- if (ddi_pd->cmd_read)
- ret = ddi_pd->cmd_read(ddi_pd->dsim_base, addr, count, buf);
+ if (lcd->dsim->ops->cmd_read)
+ ret = lcd->dsim->ops->cmd_read(lcd->dsim, addr, count, buf);
mutex_unlock(&lcd->lock);
return ret;
}
-static int s6e8ax0_set_link(void *pd, unsigned int dsim_base,
- unsigned char (*cmd_write) (unsigned int dsim_base, unsigned int data0,
- unsigned int data1, unsigned int data2),
- int (*cmd_read) (u32 reg_base, u8 addr, u16 count, u8 *buf))
-{
- struct mipi_ddi_platform_data *temp_pd = NULL;
-
- temp_pd = (struct mipi_ddi_platform_data *) pd;
- if (temp_pd == NULL) {
- printk(KERN_ERR "mipi_ddi_platform_data is null.\n");
- return -EPERM;
- }
-
- ddi_pd = temp_pd;
-
- ddi_pd->dsim_base = dsim_base;
-
- if (cmd_write)
- ddi_pd->cmd_write = cmd_write;
- else
- printk(KERN_WARNING "cmd_write function is null.\n");
-
- if (cmd_read)
- ddi_pd->cmd_read = cmd_read;
- else
- printk(KERN_WARNING "cmd_read function is null.\n");
-
- return 0;
-}
-
static int s6e8ax0_read(struct lcd_info *lcd, const u8 addr, u16 count, u8 *buf, u8 retry_cnt)
{
int ret = 0;
@@ -424,6 +393,8 @@ void s6e8ax0_early_suspend(void)
{
struct lcd_info *lcd = g_lcd;
+ set_dsim_lcd_enabled(0);
+
dev_info(&lcd->ld->dev, "+%s\n", __func__);
s6e8ax0_power(lcd, FB_BLANK_POWERDOWN);
dev_info(&lcd->ld->dev, "-%s\n", __func__);
@@ -439,7 +410,7 @@ void s6e8ax0_late_resume(void)
s6e8ax0_power(lcd, FB_BLANK_UNBLANK);
dev_info(&lcd->ld->dev, "-%s\n", __func__);
- set_dsim_lcd_enabled();
+ set_dsim_lcd_enabled(1);
return ;
}
@@ -496,6 +467,7 @@ static int s6e8ax0_probe(struct device *dev)
}
lcd->dev = dev;
+ lcd->dsim = (struct dsim_global *)dev_get_drvdata(dev->parent);
lcd->bd->props.max_brightness = MAX_BRIGHTNESS;
lcd->bd->props.brightness = DEFAULT_BRIGHTNESS;
lcd->bl = DEFAULT_GAMMA_LEVEL;
@@ -577,7 +549,6 @@ static void s6e8ax0_shutdown(struct device *dev)
static struct mipi_lcd_driver s6e8ax0_mipi_driver = {
.name = "s6e8aa0",
- .set_link = s6e8ax0_set_link,
.probe = s6e8ax0_probe,
.remove = __devexit_p(s6e8ax0_remove),
.shutdown = s6e8ax0_shutdown,