|
@@ -175,24 +175,24 @@ static uint64_t xlnx_dpdma_desc_get_source_address(DPDMADescriptor *desc,
|
|
|
|
|
|
switch (frag) {
|
|
switch (frag) {
|
|
case 0:
|
|
case 0:
|
|
- addr = desc->source_address
|
|
|
|
- + (extract32(desc->address_extension, 16, 12) << 20);
|
|
|
|
|
|
+ addr = (uint64_t)desc->source_address
|
|
|
|
+ + (extract64(desc->address_extension, 16, 16) << 32);
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
- addr = desc->source_address2
|
|
|
|
- + (extract32(desc->address_extension_23, 0, 12) << 8);
|
|
|
|
|
|
+ addr = (uint64_t)desc->source_address2
|
|
|
|
+ + (extract64(desc->address_extension_23, 0, 16) << 32);
|
|
break;
|
|
break;
|
|
case 2:
|
|
case 2:
|
|
- addr = desc->source_address3
|
|
|
|
- + (extract32(desc->address_extension_23, 16, 12) << 20);
|
|
|
|
|
|
+ addr = (uint64_t)desc->source_address3
|
|
|
|
+ + (extract64(desc->address_extension_23, 16, 16) << 32);
|
|
break;
|
|
break;
|
|
case 3:
|
|
case 3:
|
|
- addr = desc->source_address4
|
|
|
|
- + (extract32(desc->address_extension_45, 0, 12) << 8);
|
|
|
|
|
|
+ addr = (uint64_t)desc->source_address4
|
|
|
|
+ + (extract64(desc->address_extension_45, 0, 16) << 32);
|
|
break;
|
|
break;
|
|
case 4:
|
|
case 4:
|
|
- addr = desc->source_address5
|
|
|
|
- + (extract32(desc->address_extension_45, 16, 12) << 20);
|
|
|
|
|
|
+ addr = (uint64_t)desc->source_address5
|
|
|
|
+ + (extract64(desc->address_extension_45, 16, 16) << 32);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
addr = 0;
|
|
addr = 0;
|