Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184875
b: refs/heads/master
c: 37ac60e
h: refs/heads/master
i:
  184873: d93202d
  184871: 5e2b862
v: v3
  • Loading branch information
Tomi Valkeinen committed Feb 24, 2010
1 parent b931e89 commit 218e5d6
Show file tree
Hide file tree
Showing 16 changed files with 466 additions and 539 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: 18946f62c6cc8cf051bafca8b7fa72309e8a1067
refs/heads/master: 37ac60e414052f1d9301368437db8f0cb9e323fe
18 changes: 11 additions & 7 deletions trunk/arch/arm/plat-omap/include/plat/display.h
Original file line number Diff line number Diff line change
Expand Up @@ -462,12 +462,6 @@ struct omap_dss_device {

enum omap_dss_display_state state;

int (*enable)(struct omap_dss_device *dssdev);
void (*disable)(struct omap_dss_device *dssdev);

int (*suspend)(struct omap_dss_device *dssdev);
int (*resume)(struct omap_dss_device *dssdev);

int (*check_timings)(struct omap_dss_device *dssdev,
struct omap_video_timings *timings);
void (*set_timings)(struct omap_dss_device *dssdev,
Expand Down Expand Up @@ -571,11 +565,21 @@ int omap_dsi_update(struct omap_dss_device *dssdev,
u16 x, u16 y, u16 w, u16 h,
void (*callback)(int, void *), void *data);

int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
void omapdss_dsi_display_disable(struct omap_dss_device *dssdev);

int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
void omapdss_dpi_display_disable(struct omap_dss_device *dssdev);

int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);

int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);
int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
u16 *x, u16 *y, u16 *w, u16 *h);
int omap_rfbi_update(struct omap_dss_device *dssdev,
u16 x, u16 y, u16 w, u16 h,
void (*callback)(void *), void *data);


#endif
56 changes: 49 additions & 7 deletions trunk/drivers/video/omap2/displays/panel-generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,35 @@ static struct omap_video_timings generic_panel_timings = {
.vbp = 7,
};

static int generic_panel_power_on(struct omap_dss_device *dssdev)
{
int r;

r = omapdss_dpi_display_enable(dssdev);
if (r)
goto err0;

if (dssdev->platform_enable) {
r = dssdev->platform_enable(dssdev);
if (r)
goto err1;
}

return 0;
err1:
omapdss_dpi_display_disable(dssdev);
err0:
return r;
}

static void generic_panel_power_off(struct omap_dss_device *dssdev)
{
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);

omapdss_dpi_display_disable(dssdev);
}

static int generic_panel_probe(struct omap_dss_device *dssdev)
{
dssdev->panel.config = OMAP_DSS_LCD_TFT;
Expand All @@ -51,27 +80,40 @@ static int generic_panel_enable(struct omap_dss_device *dssdev)
{
int r = 0;

if (dssdev->platform_enable)
r = dssdev->platform_enable(dssdev);
r = generic_panel_power_on(dssdev);
if (r)
return r;

return r;
dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;

return 0;
}

static void generic_panel_disable(struct omap_dss_device *dssdev)
{
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);
generic_panel_power_off(dssdev);

dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
}

static int generic_panel_suspend(struct omap_dss_device *dssdev)
{
generic_panel_disable(dssdev);
generic_panel_power_off(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
return 0;
}

static int generic_panel_resume(struct omap_dss_device *dssdev)
{
return generic_panel_enable(dssdev);
int r = 0;

r = generic_panel_power_on(dssdev);
if (r)
return r;

dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;

return 0;
}

static struct omap_dss_driver generic_driver = {
Expand Down
67 changes: 53 additions & 14 deletions trunk/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,41 @@ static struct omap_video_timings sharp_lq_timings = {
.vbp = 2,
};

static int sharp_lq_panel_power_on(struct omap_dss_device *dssdev)
{
int r;

r = omapdss_dpi_display_enable(dssdev);
if (r)
goto err0;

/* wait couple of vsyncs until enabling the LCD */
msleep(50);

if (dssdev->platform_enable) {
r = dssdev->platform_enable(dssdev);
if (r)
goto err1;
}

return 0;
err1:
omapdss_dpi_display_disable(dssdev);
err0:
return r;
}

static void sharp_lq_panel_power_off(struct omap_dss_device *dssdev)
{
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);

/* wait at least 5 vsyncs after disabling the LCD */
msleep(100);

omapdss_dpi_display_disable(dssdev);
}

static int sharp_lq_panel_probe(struct omap_dss_device *dssdev)
{

Expand All @@ -58,36 +93,40 @@ static int sharp_lq_panel_enable(struct omap_dss_device *dssdev)
{
int r = 0;

r = sharp_lq_panel_power_on(dssdev);
if (r)
return r;

/* wait couple of vsyncs until enabling the LCD */
msleep(50);

if (dssdev->platform_enable)
r = dssdev->platform_enable(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;

return r;
return 0;
}

static void sharp_lq_panel_disable(struct omap_dss_device *dssdev)
{
sharp_lq_panel_power_off(dssdev);

if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);

/* wait at least 5 vsyncs after disabling the LCD */

msleep(100);
dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
}

static int sharp_lq_panel_suspend(struct omap_dss_device *dssdev)
{
sharp_lq_panel_disable(dssdev);
sharp_lq_panel_power_off(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
return 0;
}

static int sharp_lq_panel_resume(struct omap_dss_device *dssdev)
{
return sharp_lq_panel_enable(dssdev);
int r = 0;

r = sharp_lq_panel_power_on(dssdev);
if (r)
return r;

dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;

return 0;
}

static struct omap_dss_driver sharp_lq_driver = {
Expand Down
42 changes: 36 additions & 6 deletions trunk/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/regulator/consumer.h>
#include <linux/err.h>

#include <plat/display.h>
Expand Down Expand Up @@ -54,38 +53,69 @@ static void sharp_ls_panel_remove(struct omap_dss_device *dssdev)
{
}

static int sharp_ls_panel_enable(struct omap_dss_device *dssdev)
static int sharp_ls_power_on(struct omap_dss_device *dssdev)
{
int r = 0;

r = omapdss_dpi_display_enable(dssdev);
if (r)
goto err0;

/* wait couple of vsyncs until enabling the LCD */
msleep(50);

if (dssdev->platform_enable)
if (dssdev->platform_enable) {
r = dssdev->platform_enable(dssdev);
if (r)
goto err1;
}

return 0;
err1:
omapdss_dpi_display_disable(dssdev);
err0:
return r;
}

static void sharp_ls_panel_disable(struct omap_dss_device *dssdev)
static void sharp_ls_power_off(struct omap_dss_device *dssdev)
{
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);

/* wait at least 5 vsyncs after disabling the LCD */

msleep(100);

omapdss_dpi_display_disable(dssdev);
}

static int sharp_ls_panel_enable(struct omap_dss_device *dssdev)
{
int r;
r = sharp_ls_power_on(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
return r;
}

static void sharp_ls_panel_disable(struct omap_dss_device *dssdev)
{
sharp_ls_power_off(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
}

static int sharp_ls_panel_suspend(struct omap_dss_device *dssdev)
{
sharp_ls_panel_disable(dssdev);
sharp_ls_power_off(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
return 0;
}

static int sharp_ls_panel_resume(struct omap_dss_device *dssdev)
{
return sharp_ls_panel_enable(dssdev);
int r;
r = sharp_ls_power_on(dssdev);
dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
return r;
}

static struct omap_dss_driver sharp_ls_driver = {
Expand Down
Loading

0 comments on commit 218e5d6

Please sign in to comment.