Message ID | 20170812214418.DB60D50835D@solo.franken.de (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Hi Thomas, On 12.08.2017 23:36, Thomas Bogendoerfer wrote: > For 64bit kernels the lmmio_space_offset of the host bridge window > isn't set correctly on systems with dino/cujo PCI host bridges. > This leads to not assigned memory bars and failing drivers, which > need to use these bars. > > Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Acked-by: Helge Deller <deller@gmx.de> Very good finding! Does it mean that your mach64 card will then generally not being able to work on a 32bit kernel (due to PCI resource shortage) ? Now, if we find the issue why the FireGL cards don't work accelerated on the C8000 it would be great. Helge > --- > drivers/parisc/dino.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c > index 5c63b92..ed92c12 100644 > --- a/drivers/parisc/dino.c > +++ b/drivers/parisc/dino.c > @@ -956,7 +956,7 @@ static int __init dino_probe(struct parisc_device *dev) > > dino_dev->hba.dev = dev; > dino_dev->hba.base_addr = ioremap_nocache(hpa, 4096); > - dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */ > + dino_dev->hba.lmmio_space_offset = PCI_F_EXTEND; > spin_lock_init(&dino_dev->dinosaur_pen); > dino_dev->hba.iommu = ccio_get_iommu(dev); > > -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Aug 13, 2017 at 09:56:26AM +0200, Helge Deller wrote: > Does it mean that your mach64 card will then generally not being > able to work on a 32bit kernel (due to PCI resource shortage) ? no, it works 32bit on a B180, but I only tried 64bit kernel on the C360. > Now, if we find the issue why the FireGL cards don't work accelerated > on the C8000 it would be great. that's my final goal. My next step is to see whether I could get cards working, which are supported by drivers/video/fbdev/aty/radeon* This driver is known to work big endian, so I don't have to wonder about endian issues in the first place... Thomas.
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index 5c63b92..ed92c12 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c @@ -956,7 +956,7 @@ static int __init dino_probe(struct parisc_device *dev) dino_dev->hba.dev = dev; dino_dev->hba.base_addr = ioremap_nocache(hpa, 4096); - dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */ + dino_dev->hba.lmmio_space_offset = PCI_F_EXTEND; spin_lock_init(&dino_dev->dinosaur_pen); dino_dev->hba.iommu = ccio_get_iommu(dev);
For 64bit kernels the lmmio_space_offset of the host bridge window isn't set correctly on systems with dino/cujo PCI host bridges. This leads to not assigned memory bars and failing drivers, which need to use these bars. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> --- drivers/parisc/dino.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)