[lkml]   [2002]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectQ: PCI Driver ioremap
I am creating a PCI driver for a custom card and want to write 0xffff to 
a location offset from the base by 0x48 and
have the following code:

unsigned int io_addr;
unsigned int io_size;
void* base;
pci_enable_device (pdev)
io_addr = pci_resource_start(pdev, 0);
io_size = pci_resource_len(pdev, 0);
if ((pci_resource_flags(pdev, 0) & IORESOURCE_MEM)){
if(check_mem_region(io_addr, io_size))
DBG("Already In Use");//this is never reached
request_mem_region(io_addr, io_size , "Card Driver");
base=ioremap(io_addr, io_size);
DBG("memory mapped wrong\n");//this is never reached
writew(0xffff, base + 0x48);

The card is found, io_addr = 0xe9011000 and io_size = 0x200.

The write is unsuccessful or at least the data never reaches the card.
What am I doing incorrectly?

Thanks and best regards,

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:24    [W:0.031 / U:22.244 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site