mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
powerpc/44x: Use for_each_of_range() iterator
Simplify the ppc44x PCI dma-ranges parsing to use the for_each_of_range() iterator. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://patch.msgid.link/20241106212640.341677-1-robh@kernel.org
This commit is contained in:
parent
a8a54a65ca
commit
817a763a07
|
|
@ -94,10 +94,8 @@ static int __init ppc4xx_parse_dma_ranges(struct pci_controller *hose,
|
|||
struct resource *res)
|
||||
{
|
||||
u64 size;
|
||||
const u32 *ranges;
|
||||
int rlen;
|
||||
int pna = of_n_addr_cells(hose->dn);
|
||||
int np = pna + 5;
|
||||
struct of_range_parser parser;
|
||||
struct of_range range;
|
||||
|
||||
/* Default */
|
||||
res->start = 0;
|
||||
|
|
@ -105,18 +103,15 @@ static int __init ppc4xx_parse_dma_ranges(struct pci_controller *hose,
|
|||
res->end = size - 1;
|
||||
res->flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
|
||||
|
||||
/* Get dma-ranges property */
|
||||
ranges = of_get_property(hose->dn, "dma-ranges", &rlen);
|
||||
if (ranges == NULL)
|
||||
if (of_pci_dma_range_parser_init(&parser, hose->dn))
|
||||
goto out;
|
||||
|
||||
/* Walk it */
|
||||
while ((rlen -= np * 4) >= 0) {
|
||||
u32 pci_space = ranges[0];
|
||||
u64 pci_addr = of_read_number(ranges + 1, 2);
|
||||
u64 cpu_addr = of_translate_dma_address(hose->dn, ranges + 3);
|
||||
size = of_read_number(ranges + pna + 3, 2);
|
||||
ranges += np;
|
||||
for_each_of_range(&parser, &range) {
|
||||
u32 pci_space = range.flags;
|
||||
u64 pci_addr = range.bus_addr;
|
||||
u64 cpu_addr = range.cpu_addr;
|
||||
size = range.size;
|
||||
|
||||
if (cpu_addr == OF_BAD_ADDR || size == 0)
|
||||
continue;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user