AFAIK, pci_ioremap_bar api provides an error-proof way (relative to pci_ioremap) for PCI memory remap.
After the mapping is successful, in case you are writing a portable code, use ioread8 api which provides platform abstraction to the re mapped registers. Hope that helps. BR, Jayesh On Wed, Jun 26, 2013 at 12:42 PM, Warlich, Christof < christof.warl...@siemens.com> wrote: > Hi, > > can anyone explain when I should use > > void __iomem *regs = pci_iomap(device, barNumber, 0); > > and when > > void __iomem *regs = pci_ioremap_bar(device, barNumber); > > is more appropriate to map PCI memory? > > Furthermore, after the mapping succeeded, when may I > directly access the mapped memory, e.g.: > > char firstByte = *regs; > > and when should I better use ioread8() instead?: > > char firstBype = ioread8(regs); > > All listed alternatives from above seems to work equally > well for me (on x86), so I'm curious to learn what might > be the difference. A guess: Does ioread8() work for both > memory mapped _and_ IO mapped registers, while the direct > access only works for the memory mapped case? > > Thanks for any clarification. > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies