On Mon, 2018-11-19 at 10:41 +0100, Stefan Agner wrote: > Define the length of the DBI registers. This makes sure that > the kernel does not access registers beyond that point, avoiding > the following abort on a i.MX 6Quad: > # cat /sys/devices/soc0/soc/1ffc000.pcie/pci0000\:00/0000\:00\:00.0/config > [ 100.021433] Unhandled fault: imprecise external abort (0x1406) at 0xb6ea7000 > ... > [ 100.056423] PC is at dw_pcie_read+0x50/0x84 > [ 100.060790] LR is at dw_pcie_rd_own_conf+0x44/0x48 > ... > > Signed-off-by: Stefan Agner <stefan@xxxxxxxx> > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c > +struct imx6_pcie_drvdata { > + enum imx6_pcie_variants variant; > + int dbi_length; > +}; Turning imx6_pcie drvdata into a struct is very nice, maybe in the future some of the long case statements in this driver could be split into per-soc functions called via drvdata.