332,11 → 332,13 |
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; |
347,10 → 349,12 |
|
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; |
} |
|