aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/displays
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-24 08:01:49 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-05-11 07:20:47 -0400
commit1663d2f70a9404b822fb0e8fbc40d42fdfeed0bd (patch)
treec1d0ee8cdce2df9a961300219916dbecc0e87b36 /drivers/video/omap2/displays
parent33a410be6f4b760f0abe3ec05ac808f1c391bd41 (diff)
OMAP: DSS2: Taal: Clean up ESD queueing
Separate the code which queues/cancels ESD work into their own functions. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/displays')
-rw-r--r--drivers/video/omap2/displays/panel-taal.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 788104c9998a..bbfd5feed33f 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -420,6 +420,22 @@ static int taal_set_update_window(struct taal_data *td,
420 return r; 420 return r;
421} 421}
422 422
423static void taal_queue_esd_work(struct omap_dss_device *dssdev)
424{
425 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
426
427 if (td->esd_interval > 0)
428 queue_delayed_work(td->esd_wq, &td->esd_work,
429 msecs_to_jiffies(td->esd_interval));
430}
431
432static void taal_cancel_esd_work(struct omap_dss_device *dssdev)
433{
434 struct taal_data *td = dev_get_drvdata(&dssdev->dev);
435
436 cancel_delayed_work(&td->esd_work);
437}
438
423static int taal_bl_update_status(struct backlight_device *dev) 439static int taal_bl_update_status(struct backlight_device *dev)
424{ 440{
425 struct omap_dss_device *dssdev = dev_get_drvdata(&dev->dev); 441 struct omap_dss_device *dssdev = dev_get_drvdata(&dev->dev);
@@ -841,7 +857,7 @@ static void __exit taal_remove(struct omap_dss_device *dssdev)
841 taal_bl_update_status(bldev); 857 taal_bl_update_status(bldev);
842 backlight_device_unregister(bldev); 858 backlight_device_unregister(bldev);
843 859
844 cancel_delayed_work(&td->esd_work); 860 taal_cancel_esd_work(dssdev);
845 destroy_workqueue(td->esd_wq); 861 destroy_workqueue(td->esd_wq);
846 862
847 /* reset, to be sure that the panel is in a valid state */ 863 /* reset, to be sure that the panel is in a valid state */
@@ -983,9 +999,7 @@ static int taal_enable(struct omap_dss_device *dssdev)
983 if (r) 999 if (r)
984 goto err; 1000 goto err;
985 1001
986 if (td->esd_interval > 0) 1002 taal_queue_esd_work(dssdev);
987 queue_delayed_work(td->esd_wq, &td->esd_work,
988 msecs_to_jiffies(td->esd_interval));
989 1003
990 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; 1004 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
991 1005
@@ -1006,7 +1020,7 @@ static void taal_disable(struct omap_dss_device *dssdev)
1006 1020
1007 mutex_lock(&td->lock); 1021 mutex_lock(&td->lock);
1008 1022
1009 cancel_delayed_work(&td->esd_work); 1023 taal_cancel_esd_work(dssdev);
1010 1024
1011 dsi_bus_lock(); 1025 dsi_bus_lock();
1012 1026
@@ -1034,7 +1048,7 @@ static int taal_suspend(struct omap_dss_device *dssdev)
1034 goto err; 1048 goto err;
1035 } 1049 }
1036 1050
1037 cancel_delayed_work(&td->esd_work); 1051 taal_cancel_esd_work(dssdev);
1038 1052
1039 dsi_bus_lock(); 1053 dsi_bus_lock();
1040 1054
@@ -1076,9 +1090,7 @@ static int taal_resume(struct omap_dss_device *dssdev)
1076 dssdev->state = OMAP_DSS_DISPLAY_DISABLED; 1090 dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
1077 } else { 1091 } else {
1078 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; 1092 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
1079 if (td->esd_interval > 0) 1093 taal_queue_esd_work(dssdev);
1080 queue_delayed_work(td->esd_wq, &td->esd_work,
1081 msecs_to_jiffies(td->esd_interval));
1082 } 1094 }
1083 1095
1084 mutex_unlock(&td->lock); 1096 mutex_unlock(&td->lock);
@@ -1521,8 +1533,7 @@ static void taal_esd_work(struct work_struct *work)
1521 1533
1522 dsi_bus_unlock(); 1534 dsi_bus_unlock();
1523 1535
1524 queue_delayed_work(td->esd_wq, &td->esd_work, 1536 taal_queue_esd_work(dssdev);
1525 msecs_to_jiffies(td->esd_interval));
1526 1537
1527 mutex_unlock(&td->lock); 1538 mutex_unlock(&td->lock);
1528 return; 1539 return;
@@ -1535,8 +1546,7 @@ err:
1535 1546
1536 dsi_bus_unlock(); 1547 dsi_bus_unlock();
1537 1548
1538 queue_delayed_work(td->esd_wq, &td->esd_work, 1549 taal_queue_esd_work(dssdev);
1539 msecs_to_jiffies(td->esd_interval));
1540 1550
1541 mutex_unlock(&td->lock); 1551 mutex_unlock(&td->lock);
1542} 1552}