Q: PCI Driver ioremap

From: David Stroupe (dstroupe@keyed-upsoftware.com)
Date: Wed Feb 20 2002 - 16:57:03 EST


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:

<snip>
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);
        if(base==0)
           DBG("memory mapped wrong\n");//this is never reached
        writew(0xffff, base + 0x48);
<snip>

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,
David

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:28 EST