Hello,

I'm writing a driver for a PCI card and having some trouble accessing the memory mapped registers on the board.

I use:

pci_resource_start(..) and pci_resource_len(..) to get the starting address and size of the memory mapped registers.
pci_resource_flags(...) returns IORESOURCE_MEMORY and IORESOURCE_SHADOWABLE

request_mem_region() and ioremap_nocache() both succeed.

when I call iowrite32(...) to write a 4 byte value, it succeeds on the first attempt. when I call iowrite16(...) to write a 2 byte value, it succeeds on the 2nd attempt (i.e I have to call iowrite16(..) twice before the write happens) when I call iowrite8(...) to write a 1 byte value, it succeeds on the 4th attempt.

I have no idea why 2 byte and 1 byte writes don't work on the first attempt.

Sure could use some help here!

thanks in advance
Dhotiwalla


_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to