Merge pull request #10237 from jflyper/bfdev-fix-dmaopt-timup-numbering
Fix dmaopt peripheral numbering for TIMUP
This commit is contained in:
commit
b085bf77ab
|
@ -5342,10 +5342,23 @@ static void optToString(int optval, char *buf)
|
||||||
|
|
||||||
static void printPeripheralDmaoptDetails(dmaoptEntry_t *entry, int index, const dmaoptValue_t dmaopt, const bool equalsDefault, const dumpFlags_t dumpMask, printFn *printValue)
|
static void printPeripheralDmaoptDetails(dmaoptEntry_t *entry, int index, const dmaoptValue_t dmaopt, const bool equalsDefault, const dumpFlags_t dumpMask, printFn *printValue)
|
||||||
{
|
{
|
||||||
|
// We compute number to display for different peripherals in advance.
|
||||||
|
// This is done to deal with TIMUP which numbered non-contiguously.
|
||||||
|
// Note that using timerGetNumberByIndex is not a generic solution,
|
||||||
|
// but we are lucky that TIMUP is the only peripheral with non-contiguous numbering.
|
||||||
|
|
||||||
|
int uiIndex;
|
||||||
|
|
||||||
|
if (entry->presenceMask) {
|
||||||
|
uiIndex = timerGetNumberByIndex(index);
|
||||||
|
} else {
|
||||||
|
uiIndex = DMA_OPT_UI_INDEX(index);
|
||||||
|
}
|
||||||
|
|
||||||
if (dmaopt != DMA_OPT_UNUSED) {
|
if (dmaopt != DMA_OPT_UNUSED) {
|
||||||
printValue(dumpMask, equalsDefault,
|
printValue(dumpMask, equalsDefault,
|
||||||
"dma %s %d %d",
|
"dma %s %d %d",
|
||||||
entry->device, DMA_OPT_UI_INDEX(index), dmaopt);
|
entry->device, uiIndex, dmaopt);
|
||||||
|
|
||||||
const dmaChannelSpec_t *dmaChannelSpec = dmaGetChannelSpecByPeripheral(entry->peripheral, index, dmaopt);
|
const dmaChannelSpec_t *dmaChannelSpec = dmaGetChannelSpecByPeripheral(entry->peripheral, index, dmaopt);
|
||||||
dmaCode_t dmaCode = 0;
|
dmaCode_t dmaCode = 0;
|
||||||
|
@ -5354,11 +5367,11 @@ static void printPeripheralDmaoptDetails(dmaoptEntry_t *entry, int index, const
|
||||||
}
|
}
|
||||||
printValue(dumpMask, equalsDefault,
|
printValue(dumpMask, equalsDefault,
|
||||||
"# %s %d: " DMASPEC_FORMAT_STRING,
|
"# %s %d: " DMASPEC_FORMAT_STRING,
|
||||||
entry->device, DMA_OPT_UI_INDEX(index), DMA_CODE_CONTROLLER(dmaCode), DMA_CODE_STREAM(dmaCode), DMA_CODE_CHANNEL(dmaCode));
|
entry->device, uiIndex, DMA_CODE_CONTROLLER(dmaCode), DMA_CODE_STREAM(dmaCode), DMA_CODE_CHANNEL(dmaCode));
|
||||||
} else if (!(dumpMask & HIDE_UNUSED)) {
|
} else if (!(dumpMask & HIDE_UNUSED)) {
|
||||||
printValue(dumpMask, equalsDefault,
|
printValue(dumpMask, equalsDefault,
|
||||||
"dma %s %d NONE",
|
"dma %s %d NONE",
|
||||||
entry->device, DMA_OPT_UI_INDEX(index));
|
entry->device, uiIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue