From: Jean Delvare <khali@xxxxxxxxxxxx> Date: Thu, 5 Jan 2012 20:51:05 +0100 > Hi David, > > On Tue, 27 Dec 2011 14:17:59 -0500 (EST), David Miller wrote: >> From: "corentin.labbe" <corentin.labbe@xxxxxxxxxxx> >> Date: Thu, 24 Nov 2011 12:01:36 +0100 >> >> > The i2c-ali1535 driver don't work on SPARC, this is because it assumes that ioport address are 16bits wide (address stored with an unsigned short). >> > But on SPARC arch, ioports are mapped in memory and so are stored with an unsigned long. >> > >> > This patch corrects this by using pci_resource_start for getting IOMEM base address, then reading the SMBBA of the i2c busse and using together for I/O access. >> > >> > I like to thanks Jean DELVARE for reviewing of my patch. >> > >> > Thanks >> > >> > Signed-off-by: LABBE Corentin <corentin.labbe@xxxxxxxxxxx> >> >> Jean has asked for some more changes, please follow his suggestions and >> resubmit, thanks. > > Actually I ended up doing the changes myself, and the patch is queued > for 3.3 already: > http://khali.linux-fr.org/devel/linux-3/jdelvare-i2c/i2c-ali1535-enable-sparc-support.patch > > Please let me know quickly if you see anything wrong there. Using the raw PCI config register value in the non-IO case is always wrong and non-portable. You need to ioremap the thing using the PCI resource if it's not IO and therefore MEM. More easier, if non-IO is really not expected, would be to fail the probe if we don't find IORESOURCE_IO set. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html