diff options
author | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-11 13:24:45 -0400 |
---|---|---|
committer | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-11 13:24:45 -0400 |
commit | 438145c7ef5c9445f25bb8fc4d52e2c9d11fdc7c (patch) | |
tree | 76941991e36f4a32bf1be0db3854959053f24619 /drivers/video | |
parent | 9ddd1b8ad8abd321964b8add5581910de6d67c2a (diff) |
Update from 2.6.36 to 2.6.36.4wip-dissipation-jerickso
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/backlight/88pm860x_bl.c | 4 | ||||
-rw-r--r-- | drivers/video/backlight/backlight.c | 12 | ||||
-rw-r--r-- | drivers/video/via/accel.c | 7 | ||||
-rw-r--r-- | drivers/video/via/via_i2c.c | 27 |
4 files changed, 36 insertions, 14 deletions
diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c index 38ffc3fbcbe4..c06c667e9ca9 100644 --- a/drivers/video/backlight/88pm860x_bl.c +++ b/drivers/video/backlight/88pm860x_bl.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #define MAX_BRIGHTNESS (0xFF) | 21 | #define MAX_BRIGHTNESS (0xFF) |
22 | #define MIN_BRIGHTNESS (0) | 22 | #define MIN_BRIGHTNESS (0) |
23 | 23 | ||
24 | #define CURRENT_MASK (0x1F << 1) | 24 | #define CURRENT_BITMASK (0x1F << 1) |
25 | 25 | ||
26 | struct pm860x_backlight_data { | 26 | struct pm860x_backlight_data { |
27 | struct pm860x_chip *chip; | 27 | struct pm860x_chip *chip; |
@@ -85,7 +85,7 @@ static int pm860x_backlight_set(struct backlight_device *bl, int brightness) | |||
85 | if ((data->current_brightness == 0) && brightness) { | 85 | if ((data->current_brightness == 0) && brightness) { |
86 | if (data->iset) { | 86 | if (data->iset) { |
87 | ret = pm860x_set_bits(data->i2c, wled_idc(data->port), | 87 | ret = pm860x_set_bits(data->i2c, wled_idc(data->port), |
88 | CURRENT_MASK, data->iset); | 88 | CURRENT_BITMASK, data->iset); |
89 | if (ret < 0) | 89 | if (ret < 0) |
90 | goto out; | 90 | goto out; |
91 | } | 91 | } |
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index e207810bba3c..08703299ef61 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c | |||
@@ -197,12 +197,12 @@ static int backlight_suspend(struct device *dev, pm_message_t state) | |||
197 | { | 197 | { |
198 | struct backlight_device *bd = to_backlight_device(dev); | 198 | struct backlight_device *bd = to_backlight_device(dev); |
199 | 199 | ||
200 | if (bd->ops->options & BL_CORE_SUSPENDRESUME) { | 200 | mutex_lock(&bd->ops_lock); |
201 | mutex_lock(&bd->ops_lock); | 201 | if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { |
202 | bd->props.state |= BL_CORE_SUSPENDED; | 202 | bd->props.state |= BL_CORE_SUSPENDED; |
203 | backlight_update_status(bd); | 203 | backlight_update_status(bd); |
204 | mutex_unlock(&bd->ops_lock); | ||
205 | } | 204 | } |
205 | mutex_unlock(&bd->ops_lock); | ||
206 | 206 | ||
207 | return 0; | 207 | return 0; |
208 | } | 208 | } |
@@ -211,12 +211,12 @@ static int backlight_resume(struct device *dev) | |||
211 | { | 211 | { |
212 | struct backlight_device *bd = to_backlight_device(dev); | 212 | struct backlight_device *bd = to_backlight_device(dev); |
213 | 213 | ||
214 | if (bd->ops->options & BL_CORE_SUSPENDRESUME) { | 214 | mutex_lock(&bd->ops_lock); |
215 | mutex_lock(&bd->ops_lock); | 215 | if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { |
216 | bd->props.state &= ~BL_CORE_SUSPENDED; | 216 | bd->props.state &= ~BL_CORE_SUSPENDED; |
217 | backlight_update_status(bd); | 217 | backlight_update_status(bd); |
218 | mutex_unlock(&bd->ops_lock); | ||
219 | } | 218 | } |
219 | mutex_unlock(&bd->ops_lock); | ||
220 | 220 | ||
221 | return 0; | 221 | return 0; |
222 | } | 222 | } |
diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c index e44893ea590d..c2f4e6e166f1 100644 --- a/drivers/video/via/accel.c +++ b/drivers/video/via/accel.c | |||
@@ -283,11 +283,12 @@ static int hw_bitblt_2(void __iomem *engine, u8 op, u32 width, u32 height, | |||
283 | writel(tmp, engine + 0x1C); | 283 | writel(tmp, engine + 0x1C); |
284 | } | 284 | } |
285 | 285 | ||
286 | if (op != VIA_BITBLT_COLOR) | 286 | if (op == VIA_BITBLT_FILL) { |
287 | writel(fg_color, engine + 0x58); | ||
288 | } else if (op == VIA_BITBLT_MONO) { | ||
287 | writel(fg_color, engine + 0x4C); | 289 | writel(fg_color, engine + 0x4C); |
288 | |||
289 | if (op == VIA_BITBLT_MONO) | ||
290 | writel(bg_color, engine + 0x50); | 290 | writel(bg_color, engine + 0x50); |
291 | } | ||
291 | 292 | ||
292 | if (op == VIA_BITBLT_FILL) | 293 | if (op == VIA_BITBLT_FILL) |
293 | ge_cmd |= fill_rop << 24 | 0x00002000 | 0x00000001; | 294 | ge_cmd |= fill_rop << 24 | 0x00002000 | 0x00000001; |
diff --git a/drivers/video/via/via_i2c.c b/drivers/video/via/via_i2c.c index da9e4ca94b17..021112e279de 100644 --- a/drivers/video/via/via_i2c.c +++ b/drivers/video/via/via_i2c.c | |||
@@ -114,6 +114,7 @@ static void via_i2c_setsda(void *data, int state) | |||
114 | 114 | ||
115 | int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata) | 115 | int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata) |
116 | { | 116 | { |
117 | int ret; | ||
117 | u8 mm1[] = {0x00}; | 118 | u8 mm1[] = {0x00}; |
118 | struct i2c_msg msgs[2]; | 119 | struct i2c_msg msgs[2]; |
119 | 120 | ||
@@ -126,11 +127,18 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata) | |||
126 | mm1[0] = index; | 127 | mm1[0] = index; |
127 | msgs[0].len = 1; msgs[1].len = 1; | 128 | msgs[0].len = 1; msgs[1].len = 1; |
128 | msgs[0].buf = mm1; msgs[1].buf = pdata; | 129 | msgs[0].buf = mm1; msgs[1].buf = pdata; |
129 | return i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); | 130 | ret = i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); |
131 | if (ret == 2) | ||
132 | ret = 0; | ||
133 | else if (ret >= 0) | ||
134 | ret = -EIO; | ||
135 | |||
136 | return ret; | ||
130 | } | 137 | } |
131 | 138 | ||
132 | int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data) | 139 | int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data) |
133 | { | 140 | { |
141 | int ret; | ||
134 | u8 msg[2] = { index, data }; | 142 | u8 msg[2] = { index, data }; |
135 | struct i2c_msg msgs; | 143 | struct i2c_msg msgs; |
136 | 144 | ||
@@ -140,11 +148,18 @@ int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data) | |||
140 | msgs.addr = slave_addr / 2; | 148 | msgs.addr = slave_addr / 2; |
141 | msgs.len = 2; | 149 | msgs.len = 2; |
142 | msgs.buf = msg; | 150 | msgs.buf = msg; |
143 | return i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1); | 151 | ret = i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1); |
152 | if (ret == 1) | ||
153 | ret = 0; | ||
154 | else if (ret >= 0) | ||
155 | ret = -EIO; | ||
156 | |||
157 | return ret; | ||
144 | } | 158 | } |
145 | 159 | ||
146 | int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len) | 160 | int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len) |
147 | { | 161 | { |
162 | int ret; | ||
148 | u8 mm1[] = {0x00}; | 163 | u8 mm1[] = {0x00}; |
149 | struct i2c_msg msgs[2]; | 164 | struct i2c_msg msgs[2]; |
150 | 165 | ||
@@ -156,7 +171,13 @@ int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len | |||
156 | mm1[0] = index; | 171 | mm1[0] = index; |
157 | msgs[0].len = 1; msgs[1].len = buff_len; | 172 | msgs[0].len = 1; msgs[1].len = buff_len; |
158 | msgs[0].buf = mm1; msgs[1].buf = buff; | 173 | msgs[0].buf = mm1; msgs[1].buf = buff; |
159 | return i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); | 174 | ret = i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); |
175 | if (ret == 2) | ||
176 | ret = 0; | ||
177 | else if (ret >= 0) | ||
178 | ret = -EIO; | ||
179 | |||
180 | return ret; | ||
160 | } | 181 | } |
161 | 182 | ||
162 | /* | 183 | /* |