Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 271443
b: refs/heads/master
c: bb36dbf
h: refs/heads/master
i:
  271441: c10dc0c
  271439: c689bd3
v: v3
  • Loading branch information
Tomi Valkeinen committed Sep 30, 2011
1 parent a106180 commit 761395d
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 53 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: 0373cac6cc7eef7ada03269288088e3cbee232c0
refs/heads/master: bb36dbfd23033282991ac47d9eac8ad26514a0d1
76 changes: 30 additions & 46 deletions trunk/drivers/video/omap2/displays/panel-taal.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,6 @@ struct taal_data {

struct delayed_work te_timeout_work;

bool use_dsi_bl;

bool cabc_broken;
unsigned cabc_mode;

Expand Down Expand Up @@ -541,7 +539,6 @@ static int taal_bl_update_status(struct backlight_device *dev)
{
struct omap_dss_device *dssdev = dev_get_drvdata(&dev->dev);
struct taal_data *td = dev_get_drvdata(&dssdev->dev);
struct nokia_dsi_panel_data *panel_data = get_panel_data(dssdev);
int r;
int level;

Expand All @@ -555,23 +552,16 @@ static int taal_bl_update_status(struct backlight_device *dev)

mutex_lock(&td->lock);

if (td->use_dsi_bl) {
if (td->enabled) {
dsi_bus_lock(dssdev);
if (td->enabled) {
dsi_bus_lock(dssdev);

r = taal_wake_up(dssdev);
if (!r)
r = taal_dcs_write_1(td, DCS_BRIGHTNESS, level);
r = taal_wake_up(dssdev);
if (!r)
r = taal_dcs_write_1(td, DCS_BRIGHTNESS, level);

dsi_bus_unlock(dssdev);
} else {
r = 0;
}
dsi_bus_unlock(dssdev);
} else {
if (!panel_data->set_backlight)
r = -EINVAL;
else
r = panel_data->set_backlight(dssdev, level);
r = 0;
}

mutex_unlock(&td->lock);
Expand Down Expand Up @@ -950,7 +940,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
{
struct backlight_properties props;
struct taal_data *td;
struct backlight_device *bldev;
struct backlight_device *bldev = NULL;
struct nokia_dsi_panel_data *panel_data = get_panel_data(dssdev);
struct panel_config *panel_config = NULL;
int r, i;
Expand Down Expand Up @@ -1011,35 +1001,26 @@ static int taal_probe(struct omap_dss_device *dssdev)

taal_hw_reset(dssdev);

/* if no platform set_backlight() defined, presume DSI backlight
* control */
memset(&props, 0, sizeof(struct backlight_properties));
if (!panel_data->set_backlight)
td->use_dsi_bl = true;

if (td->use_dsi_bl)
if (panel_data->use_dsi_backlight) {
memset(&props, 0, sizeof(struct backlight_properties));
props.max_brightness = 255;
else
props.max_brightness = 127;

props.type = BACKLIGHT_RAW;
bldev = backlight_device_register(dev_name(&dssdev->dev), &dssdev->dev,
dssdev, &taal_bl_ops, &props);
if (IS_ERR(bldev)) {
r = PTR_ERR(bldev);
goto err_bl;
}

td->bldev = bldev;
props.type = BACKLIGHT_RAW;
bldev = backlight_device_register(dev_name(&dssdev->dev),
&dssdev->dev, dssdev, &taal_bl_ops, &props);
if (IS_ERR(bldev)) {
r = PTR_ERR(bldev);
goto err_bl;
}

td->bldev = bldev;

bldev->props.fb_blank = FB_BLANK_UNBLANK;
bldev->props.power = FB_BLANK_UNBLANK;
if (td->use_dsi_bl)
bldev->props.fb_blank = FB_BLANK_UNBLANK;
bldev->props.power = FB_BLANK_UNBLANK;
bldev->props.brightness = 255;
else
bldev->props.brightness = 127;

taal_bl_update_status(bldev);
taal_bl_update_status(bldev);
}

if (panel_data->use_ext_te) {
int gpio = panel_data->ext_te_gpio;
Expand Down Expand Up @@ -1097,7 +1078,8 @@ static int taal_probe(struct omap_dss_device *dssdev)
if (panel_data->use_ext_te)
gpio_free(panel_data->ext_te_gpio);
err_gpio:
backlight_device_unregister(bldev);
if (bldev != NULL)
backlight_device_unregister(bldev);
err_bl:
destroy_workqueue(td->workqueue);
err_wq:
Expand Down Expand Up @@ -1126,9 +1108,11 @@ static void __exit taal_remove(struct omap_dss_device *dssdev)
}

bldev = td->bldev;
bldev->props.power = FB_BLANK_POWERDOWN;
taal_bl_update_status(bldev);
backlight_device_unregister(bldev);
if (bldev != NULL) {
bldev->props.power = FB_BLANK_POWERDOWN;
taal_bl_update_status(bldev);
backlight_device_unregister(bldev);
}

taal_cancel_ulps_work(dssdev);
taal_cancel_esd_work(dssdev);
Expand Down
8 changes: 2 additions & 6 deletions trunk/include/video/omap-panel-nokia-dsi.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ struct omap_dss_device;
* @ext_te_gpio: external TE GPIO
* @esd_interval: interval of ESD checks, 0 = disabled (ms)
* @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
* @max_backlight_level: maximum backlight level
* @set_backlight: pointer to backlight set function
* @get_backlight: pointer to backlight get function
* @use_dsi_backlight: true if panel uses DSI command to control backlight
*/
struct nokia_dsi_panel_data {
const char *name;
Expand All @@ -25,9 +23,7 @@ struct nokia_dsi_panel_data {
unsigned esd_interval;
unsigned ulps_timeout;

int max_backlight_level;
int (*set_backlight)(struct omap_dss_device *dssdev, int level);
int (*get_backlight)(struct omap_dss_device *dssdev);
bool use_dsi_backlight;
};

#endif /* __OMAP_NOKIA_DSI_PANEL_H */

0 comments on commit 761395d

Please sign in to comment.