Subject: [PATCH][dts][radeonfb]: fix pci mem in dts and radeonfb resource variables From: Christian Ehrhardt This patch is fixing the sequoia.dts device tree file to the values defined in the 440Epx data sheet from amcc. That fixes an issue where my graphic card could not initialize because the pci resource space was not big enough. The related mail thread about the backgrounds of this has the subject "pci issue - wrong detection of pci ressources" After these values were fixed another modification that came up in the mail thread was needed to prevent an error. This change fixes the type of the resource vaiables in the radeon frame buffer driver (We might want to split that into two patches). Signed-off-by: Christian Ehrhardt --- [diffstat] arch/powerpc/boot/dts/sequoia.dts | 9 +++++++-- drivers/video/aty/radeonfb.h | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts --- a/arch/powerpc/boot/dts/sequoia.dts +++ b/arch/powerpc/boot/dts/sequoia.dts @@ -344,9 +344,14 @@ /* Outbound ranges, one memory and one IO, * later cannot be changed. Chip supports a second * IO range but we don't use it for now + * From the 440EPx user manual: + * PCI 1 Memory 1 8000 0000 1 BFFF FFFF 1GB + * I/O 1 E800 0000 1 E800 FFFF 64KB + * I/O 1 E880 0000 1 EBFF FFFF 56MB */ - ranges = <02000000 0 80000000 1 80000000 0 10000000 - 01000000 0 00000000 1 e8000000 0 00100000>; + ranges = <02000000 0 80000000 1 80000000 0 40000000 + 01000000 0 00000000 1 e8000000 0 00010000 + 01000000 0 00000000 1 e8800000 0 03800000>; /* Inbound 2GB range starting at 0 */ dma-ranges = <42000000 0 0 0 0 0 80000000>; diff --git a/drivers/video/aty/radeonfb.h b/drivers/video/aty/radeonfb.h --- a/drivers/video/aty/radeonfb.h +++ b/drivers/video/aty/radeonfb.h @@ -287,8 +287,8 @@ struct radeonfb_info { char name[DEVICE_NAME_SIZE]; - unsigned long mmio_base_phys; - unsigned long fb_base_phys; + resource_size_t mmio_base_phys; + resource_size_t fb_base_phys; void __iomem *mmio_base; void __iomem *fb_base;