Subject | Hash | Author | Date (UTC) |
---|---|---|---|
use usleep_range and fix a dp 1.1 time out | d4183ce73e6ec7d7f3baf9d710dd2ba015b4a6a9 | Sylvain BERTRAND | 2014-02-19 20:09:44 |
fix dac | a864ba601253674b679b07e4b1ddc00fb83a8cb6 | Sylvain BERTRAND | 2014-02-19 19:17:08 |
clear atombias dpm state and warn for instability | 28b598d81f6a873f90d1a9325e3e1002743487a5 | Sylvain BERTRAND | 2014-02-19 19:10:43 |
CFG_MEM_SZ upper 16bits may have garbage | f08f2e3471989e448d6d76ba02565fd9efc3293f | Sylvain BERTRAND | 2014-02-19 17:55:38 |
fix ena rbs mask performance critical bug | 289497449dd0f2acb09e03f65988e22e45948fb6 | Sylvain BERTRAND | 2014-02-19 17:15:18 |
upstream confirm bug, fixed | e2142c3fdfc01d51e7fec7687ec4d02f548ce763 | Sylvain BERTRAND | 2014-02-18 16:10:14 |
mainly bug fixing | 1650d6a6e13bd81a4df9bfaa84a5daef2989ccdf | Sylvain BERTRAND | 2014-02-18 12:46:40 |
dump smc sw regs | 5b42263039c858624ff411d94318f6ef5171a864 | Sylvain BERTRAND | 2014-02-17 12:22:26 |
disable switch to low power when no display | 69f94e04ea89c1fe9ccaef153da5f5ade232c2a1 | Sylvain BERTRAND | 2014-02-17 09:59:28 |
finish smc switch to driver power state | 6f99d0a01491dd671174919d842a771ac4a81a4b | Sylvain BERTRAND | 2014-02-17 09:47:02 |
pcie things and follow upstream for dyn pm init | f4fb120597276a3badc08eec30783b10d111f756 | Sylvain BERTRAND | 2014-02-17 09:00:00 |
dump performance state tbls | 06a22756b504ecf4523c86f657104e0b970195de | Sylvain BERTRAND | 2014-02-14 17:02:23 |
smc_mc_arb_tbl init for the driver state | 5d1868e75b11164dbb97caaddbc7992b252ab973 | Sylvain BERTRAND | 2014-02-14 13:01:26 |
smc_mc_reg tbl init for the driver state | e8aa12b1c87571031098c4427822733a74133afc | Sylvain BERTRAND | 2014-02-14 11:32:04 |
installation of the perf pwr state continued | 535c853e7d0a0ab04fbff3b0d5613ef9a34d525c | Sylvain BERTRAND | 2014-02-13 19:16:33 |
installation of the perf pwr state continued | b229eef2798acbe053aa09e47c213e23749638dd | Sylvain BERTRAND | 2014-02-13 10:48:02 |
dyn pm second part continuation | 95dd7b4754476a014d8f84854e5b2ce5c81d23b4 | Sylvain BERTRAND | 2014-02-12 20:15:03 |
beginning of dyn pm second part | c32c19d884dbf1f440480bbea42140e9c5ed8cd3 | Sylvain BERTRAND | 2014-02-12 14:44:04 |
uvd does only mpeg, then switch off | 7e36b98bcab47e9986a63093dbeed98ab290f85f | Sylvain BERTRAND | 2014-02-12 10:55:54 |
bug fixing, end of dyn pm first part | 533a4bd6731205f71704886e5fa099063be985ea | Sylvain BERTRAND | 2014-02-11 13:49:27 |
File | Lines added | Lines deleted |
---|---|---|
drivers/gpu/alga/amd/atombios/dce.c | 10 | 5 |
drivers/gpu/alga/amd/dce6/mod.c | 1 | 1 |
drivers/gpu/alga/amd/dce6/sink.c | 1 | 1 |
File drivers/gpu/alga/amd/atombios/dce.c changed (mode: 100644) (index a2c0178..09dd60a) | |||
... | ... | long atb_dp_aux_native_write(struct atombios *atb, u8 aux_i2c_id, u8 hpd, | |
168 | 168 | return send_buf_sz; | return send_buf_sz; |
169 | 169 | } else if ((ack & DP_AUX_NATIVE_REPLY_MASK) | } else if ((ack & DP_AUX_NATIVE_REPLY_MASK) |
170 | 170 | == DP_AUX_NATIVE_REPLY_DEFER) { | == DP_AUX_NATIVE_REPLY_DEFER) { |
171 | udelay(400); /* dp standard, 400 microsecs timeout */ | ||
171 | /* dp standard, 400 microsecs timeout */ | ||
172 | usleep_range(400, 500); | ||
172 | 173 | } else /* NACK */ { | } else /* NACK */ { |
173 | 174 | return -EIO; | return -EIO; |
174 | 175 | } | } |
... | ... | long atb_dp_aux_native_read(struct atombios *atb, u8 aux_i2c_id, u8 hpd, | |
206 | 207 | return r; | return r; |
207 | 208 | else if ((ack & DP_AUX_NATIVE_REPLY_MASK) | else if ((ack & DP_AUX_NATIVE_REPLY_MASK) |
208 | 209 | == DP_AUX_NATIVE_REPLY_DEFER) | == DP_AUX_NATIVE_REPLY_DEFER) |
209 | udelay(400); /* dp standard, 400 microsecs timeout */ | ||
210 | /* dp standard, 400 microsecs timeout */ | ||
211 | usleep_range(400, 500); | ||
210 | 212 | else if (r == 0) /* NACK */ | else if (r == 0) /* NACK */ |
211 | 213 | return -EINVAL; /* dp standard says wrong address */ | return -EINVAL; /* dp standard says wrong address */ |
212 | 214 | else | else |
... | ... | long atb_dp_aux_i2c(struct atombios *atb, u8 aux_i2c_id, u8 hpd, u16 addr, | |
260 | 262 | r = dp_aux(atb, aux_i2c_id, hpd, msg, msg_sz, byte_recv, 1, &ack); | r = dp_aux(atb, aux_i2c_id, hpd, msg, msg_sz, byte_recv, 1, &ack); |
261 | 263 | if (r < 0) { | if (r < 0) { |
262 | 264 | if (r == -EBUSY || r == -ETIMEDOUT) { | if (r == -EBUSY || r == -ETIMEDOUT) { |
263 | udelay(400); /* dp standard transaction timeout */ | ||
265 | /* dp standard transaction timeout */ | ||
266 | usleep_range(400, 500); | ||
264 | 267 | return -EAGAIN; /* let the i2c core retry */ | return -EAGAIN; /* let the i2c core retry */ |
265 | 268 | } else { | } else { |
266 | 269 | return r; | return r; |
... | ... | long atb_dp_aux_i2c(struct atombios *atb, u8 aux_i2c_id, u8 hpd, u16 addr, | |
275 | 278 | dev_err(atb->adev.dev, "atombios:dp sink unable to fetch all i2c data\n"); | dev_err(atb->adev.dev, "atombios:dp sink unable to fetch all i2c data\n"); |
276 | 279 | return -EREMOTEIO; | return -EREMOTEIO; |
277 | 280 | case DP_AUX_NATIVE_REPLY_DEFER: | case DP_AUX_NATIVE_REPLY_DEFER: |
278 | udelay(400); /* dp standard transaction timeout */ | ||
281 | /* dp standard transaction timeout */ | ||
282 | usleep_range(400, 500); | ||
279 | 283 | return -EAGAIN; /* let the i2c core retry */ | return -EAGAIN; /* let the i2c core retry */ |
280 | 284 | default: | default: |
281 | 285 | dev_err(atb->adev.dev, "atombios:dp sink invalid native ack value\n"); | dev_err(atb->adev.dev, "atombios:dp sink invalid native ack value\n"); |
... | ... | long atb_dp_aux_i2c(struct atombios *atb, u8 aux_i2c_id, u8 hpd, u16 addr, | |
289 | 293 | dev_err(atb->adev.dev, "atombios:dp sink i2c nack\n"); | dev_err(atb->adev.dev, "atombios:dp sink i2c nack\n"); |
290 | 294 | return -EREMOTEIO; | return -EREMOTEIO; |
291 | 295 | case DP_AUX_I2C_REPLY_DEFER: | case DP_AUX_I2C_REPLY_DEFER: |
292 | udelay(400); /* dp standard transaction timeout */ | ||
296 | /* dp standard transaction timeout */ | ||
297 | usleep_range(400, 500); | ||
293 | 298 | return -EAGAIN; /* let the i2c core retry */ | return -EAGAIN; /* let the i2c core retry */ |
294 | 299 | default: | default: |
295 | 300 | dev_err(atb->adev.dev, "atombios:dp sink invalid i2c ack value\n"); | dev_err(atb->adev.dev, "atombios:dp sink invalid i2c ack value\n"); |
File drivers/gpu/alga/amd/dce6/mod.c changed (mode: 100644) (index 6ac9022..2218c63) | |||
... | ... | static long dps_used_pwr_on(struct dce6 *dce) | |
227 | 227 | if (r == -ATB_ERR) | if (r == -ATB_ERR) |
228 | 228 | return -DCE6_ERR; | return -DCE6_ERR; |
229 | 229 | } | } |
230 | msleep(300);/* follow timing specs from AMD code */ | ||
230 | usleep_range(1000, 2000); /* dp specs 1.1 */ | ||
231 | 231 | return 0; | return 0; |
232 | 232 | } | } |
233 | 233 |
File drivers/gpu/alga/amd/dce6/sink.c changed (mode: 100644) (index fea839a..9a812ac) | |||
... | ... | long sink_mode_set(struct dce6 *dce, u8 i, struct sink_db_fb *db_fb) | |
190 | 190 | r = -DCE6_ERR; | r = -DCE6_ERR; |
191 | 191 | goto unlock_atb; | goto unlock_atb; |
192 | 192 | } | } |
193 | msleep(300);/* follow timing specs from AMD code */ | ||
193 | usleep_range(1000, 2000); /* dp specs 1.1 */ | ||
194 | 194 | } | } |
195 | 195 | ||
196 | 196 | r = atb_enc_crtc_src(atb, i); | r = atb_enc_crtc_src(atb, i); |