staging: mt7621-pci: add comment to clarify IO resource in this driver
authorSergio Paracuellos <sergio.paracuellos@gmail.com>
Mon, 23 Nov 2020 09:36:33 +0000 (10:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Nov 2020 08:12:18 +0000 (09:12 +0100)
Because IO_SPACE_LIMIT for mips is 0xFFFF but this platform uses
PĈI IO resource at 0x001e160000. Hence instead of directly use
some more accurate functions from the PCI kernel for this driver
some things must be done in a different way to make things work.
Add this explanation as a comment where the IO resource is parsed
and virtually mapped into memory.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20201123093637.8300-4-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-pci/pci-mt7621.c

index 219b3593728580556fdd902a86f536eb30174a42..1f9e75db52981abbdc717de5889cd595124febb5 100644 (file)
@@ -298,6 +298,13 @@ static int mt7621_pci_parse_request_of_pci_ranges(struct mt7621_pcie *pcie)
                return -EINVAL;
        }
 
+       /*
+        * IO_SPACE_LIMIT for MIPS is 0xffff but this platform uses IO at
+        * upper address 0x001e160000 so we have to get the resource from
+        * the DT because when it has been requested it failed and has been
+        * removed from bridge->dma_ranges and bridge->windows. So parse it
+        * and remap it manually to make things work.
+        */
        for_each_of_pci_range(&parser, &range) {
                switch (range.flags & IORESOURCE_TYPE_BITS) {
                case IORESOURCE_IO: