diff options
author | Jani Nikula <ext-jani.1.nikula@nokia.com> | 2010-04-12 02:36:05 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-08-03 08:18:48 -0400 |
commit | ee52c0ae68c42c5a0c26462b141a521fcc70849a (patch) | |
tree | 323bc1e083e5e35d09ec1f5fbb529f364a0ca26c /drivers/video/omap2 | |
parent | f2a8b75c137acb048a627379cf7e93b8b7c29191 (diff) |
OMAP: DSS2: Taal: Ensure panel is enabled in enable_te() and run_test()
Bail out from taal_enable_te() and taal_run_test() if panel is not
enabled.
Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index 2c2f1924b2c3..4e594bb50f4b 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c | |||
@@ -946,11 +946,8 @@ static int taal_sync(struct omap_dss_device *dssdev) | |||
946 | 946 | ||
947 | static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable) | 947 | static int _taal_enable_te(struct omap_dss_device *dssdev, bool enable) |
948 | { | 948 | { |
949 | struct taal_data *td = dev_get_drvdata(&dssdev->dev); | ||
950 | int r; | 949 | int r; |
951 | 950 | ||
952 | td->te_enabled = enable; | ||
953 | |||
954 | if (enable) | 951 | if (enable) |
955 | r = taal_dcs_write_1(DCS_TEAR_ON, 0); | 952 | r = taal_dcs_write_1(DCS_TEAR_ON, 0); |
956 | else | 953 | else |
@@ -973,11 +970,22 @@ static int taal_enable_te(struct omap_dss_device *dssdev, bool enable) | |||
973 | mutex_lock(&td->lock); | 970 | mutex_lock(&td->lock); |
974 | dsi_bus_lock(); | 971 | dsi_bus_lock(); |
975 | 972 | ||
976 | r = _taal_enable_te(dssdev, enable); | 973 | if (td->enabled) { |
974 | r = _taal_enable_te(dssdev, enable); | ||
975 | if (r) | ||
976 | goto err; | ||
977 | } | ||
978 | |||
979 | td->te_enabled = enable; | ||
977 | 980 | ||
978 | dsi_bus_unlock(); | 981 | dsi_bus_unlock(); |
979 | mutex_unlock(&td->lock); | 982 | mutex_unlock(&td->lock); |
980 | 983 | ||
984 | return 0; | ||
985 | err: | ||
986 | dsi_bus_unlock(); | ||
987 | mutex_unlock(&td->lock); | ||
988 | |||
981 | return r; | 989 | return r; |
982 | } | 990 | } |
983 | 991 | ||
@@ -1077,23 +1085,30 @@ static int taal_run_test(struct omap_dss_device *dssdev, int test_num) | |||
1077 | int r; | 1085 | int r; |
1078 | 1086 | ||
1079 | mutex_lock(&td->lock); | 1087 | mutex_lock(&td->lock); |
1088 | |||
1089 | if (!td->enabled) { | ||
1090 | r = -ENODEV; | ||
1091 | goto err1; | ||
1092 | } | ||
1093 | |||
1080 | dsi_bus_lock(); | 1094 | dsi_bus_lock(); |
1081 | 1095 | ||
1082 | r = taal_dcs_read_1(DCS_GET_ID1, &id1); | 1096 | r = taal_dcs_read_1(DCS_GET_ID1, &id1); |
1083 | if (r) | 1097 | if (r) |
1084 | goto err; | 1098 | goto err2; |
1085 | r = taal_dcs_read_1(DCS_GET_ID2, &id2); | 1099 | r = taal_dcs_read_1(DCS_GET_ID2, &id2); |
1086 | if (r) | 1100 | if (r) |
1087 | goto err; | 1101 | goto err2; |
1088 | r = taal_dcs_read_1(DCS_GET_ID3, &id3); | 1102 | r = taal_dcs_read_1(DCS_GET_ID3, &id3); |
1089 | if (r) | 1103 | if (r) |
1090 | goto err; | 1104 | goto err2; |
1091 | 1105 | ||
1092 | dsi_bus_unlock(); | 1106 | dsi_bus_unlock(); |
1093 | mutex_unlock(&td->lock); | 1107 | mutex_unlock(&td->lock); |
1094 | return 0; | 1108 | return 0; |
1095 | err: | 1109 | err2: |
1096 | dsi_bus_unlock(); | 1110 | dsi_bus_unlock(); |
1111 | err1: | ||
1097 | mutex_unlock(&td->lock); | 1112 | mutex_unlock(&td->lock); |
1098 | return r; | 1113 | return r; |
1099 | } | 1114 | } |