Re: IO ports issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



> Ok, let me see how many things I still have wrong:
> on init I need to call pci_register_module?  ATM I am calling
> pci_module_init.  For exit I am calling pci_unregister_driver.

pci_module_init is the same thing with some additional bits so it does
the right things on modular load thats fine

> In the init func I am calling pci_enable_device, then pci_resource_start
> (to get the IO port base addr) and finally pci_request_regions.  What you
> are saying is that I don't need pci_request_regions.

You don't need it but its fine to do it.

> Now, all of this is before I add interrupt handling, DMA, etc...
> Is there any doco on this that is consistent?

The skeleton pci network driver may actuall be one of the cleanest references
to all of this

Basically

	pci_module_init says "I want know about this type of card"

It calls you when one is found (hotplug, cardbus, boot whatever)

	pci_enable_device
		allocates resources and enables it 
		(turns on IO/MEM bits etc)
	pci_resource() macros read the PCI bar registers portably
	pcidev->irq is the IRQ line

If you bus master you can also use

	pci_set_master(dev)		Turns on the PCI master bits
					Does any platform workarounds

And if it does MWI you can do 

	pci_set_mwi(dev)




[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux