Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 180500
b: refs/heads/master
c: 648ac05
h: refs/heads/master
v: v3
  • Loading branch information
Dave Airlie committed Feb 11, 2010
1 parent dfc8fe6 commit 12eec6a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 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: c60a284cc41f9989391706e113d30b4f27dbe3e0
refs/heads/master: 648ac05c4f8a8aea908c7dff81ceffe003e28561
10 changes: 7 additions & 3 deletions trunk/drivers/gpu/drm/radeon/atombios_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,11 +332,13 @@ bool radeon_process_aux_ch(struct radeon_i2c_chan *chan, u8 *req_bytes,
PROCESS_AUX_CHANNEL_TRANSACTION_PS_ALLOCATION args;
int index = GetIndexIntoMasterTable(COMMAND, ProcessAuxChannelTransaction);
unsigned char *base;
int retry_count = 0;

memset(&args, 0, sizeof(args));

base = (unsigned char *)rdev->mode_info.atom_context->scratch;

retry:
memcpy(base, req_bytes, num_bytes);

args.lpAuxRequest = 0;
Expand All @@ -347,10 +349,12 @@ bool radeon_process_aux_ch(struct radeon_i2c_chan *chan, u8 *req_bytes,

atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);

if (args.ucReplyStatus) {
DRM_DEBUG("failed to get auxch %02x%02x %02x %02x 0x%02x %02x\n",
if (args.ucReplyStatus && !args.ucDataOutLen) {
if (args.ucReplyStatus == 0x20 && retry_count < 10)
goto retry;
DRM_DEBUG("failed to get auxch %02x%02x %02x %02x 0x%02x %02x after %d retries\n",
req_bytes[1], req_bytes[0], req_bytes[2], req_bytes[3],
chan->rec.i2c_id, args.ucReplyStatus);
chan->rec.i2c_id, args.ucReplyStatus, retry_count);
return false;
}

Expand Down

0 comments on commit 12eec6a

Please sign in to comment.