Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 83568
b: refs/heads/master
c: dfcffa4
h: refs/heads/master
v: v3
  • Loading branch information
Magnus Damm authored and Linus Torvalds committed Feb 6, 2008
1 parent 7ec3302 commit aacf2d0
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 625fcaf97340b9409e41fcefbbd18e02e3a9e9dd
refs/heads/master: dfcffa467b4112fa6f1631c9d6bf7759c3bbe75a
41 changes: 25 additions & 16 deletions trunk/drivers/video/sm501fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,7 @@ static void sm501fb_panel_power(struct sm501fb_info *fbi, int to)
{
unsigned long control;
void __iomem *ctrl_reg = fbi->regs + SM501_DC_PANEL_CONTROL;
struct sm501_platdata_fbsub *pd = fbi->pdata->fb_pnl;

control = readl(ctrl_reg);

Expand All @@ -657,26 +658,34 @@ static void sm501fb_panel_power(struct sm501fb_info *fbi, int to)
sm501fb_sync_regs(fbi);
mdelay(10);

control |= SM501_DC_PANEL_CONTROL_BIAS; /* VBIASEN */
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);

control |= SM501_DC_PANEL_CONTROL_FPEN;
writel(control, ctrl_reg);
if (pd->flags & SM501FB_FLAG_PANEL_USE_VBIASEN) {
control |= SM501_DC_PANEL_CONTROL_BIAS; /* VBIASEN */
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);
}

if (pd->flags & SM501FB_FLAG_PANEL_USE_FPEN) {
control |= SM501_DC_PANEL_CONTROL_FPEN;
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);
}
} else if (!to && (control & SM501_DC_PANEL_CONTROL_VDD) != 0) {
/* disable panel power */
if (pd->flags & SM501FB_FLAG_PANEL_USE_FPEN) {
control &= ~SM501_DC_PANEL_CONTROL_FPEN;
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);
}

control &= ~SM501_DC_PANEL_CONTROL_FPEN;
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);

control &= ~SM501_DC_PANEL_CONTROL_BIAS;
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);
if (pd->flags & SM501FB_FLAG_PANEL_USE_VBIASEN) {
control &= ~SM501_DC_PANEL_CONTROL_BIAS;
writel(control, ctrl_reg);
sm501fb_sync_regs(fbi);
mdelay(10);
}

control &= ~SM501_DC_PANEL_CONTROL_DATA;
writel(control, ctrl_reg);
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/linux/sm501.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ extern unsigned long sm501_gpio_get(struct device *dev,
#define SM501FB_FLAG_DISABLE_AT_EXIT (1<<1)
#define SM501FB_FLAG_USE_HWCURSOR (1<<2)
#define SM501FB_FLAG_USE_HWACCEL (1<<3)
#define SM501FB_FLAG_PANEL_USE_FPEN (1<<4)
#define SM501FB_FLAG_PANEL_USE_VBIASEN (1<<5)

struct sm501_platdata_fbsub {
struct fb_videomode *def_mode;
Expand Down

0 comments on commit aacf2d0

Please sign in to comment.