Re: Assign BAR address for pci device after hotplug
Greg KH <[email protected]> Tue, 09 Aug 2016 17:18:27 +0000
| Newsgroups | org.kernel.vger.linux-hotplug |
|---|---|
| Message-ID | <[email protected]> |
A: Top-posting.
Q: What is the most annoying thing in e-mail?
A: No.
Q: Should I include quotations after my reply?
http://daringfireball.net/2007/07/on_top
On Tue, Aug 09, 2016 at 10:00:22AM -0700, divakar wrote:
> Hi ,
>
> The modified probe function was the one with the pci_reassign_resource
> function.
Don't do that. That's for the pci core to use only.
>
> modified_my_driver_probe:
> static int my_probe(struct pci_dev *pdev, const struct pci_device_id
> *id)
> {
>
> /* Enable hotplug support
> TODO: Check if this is right way to do it */
> if( pci_resource_start (pdev,0) <= 0) {
> ret = pci_assign_resource(pdev,0);
> if( 0 > ret) {
> dev_err(&pdev->dev, " Failed to assign resource
> \n");
> return ret;
> }
> }
>
> ret = pci_enable_device(pdev);
>
> }
>
> Thanks for your comments on the hardware. I hope my previous message
> with the output log snippets came through. My observation of the events
> happening seem to suggest there is a hotplug controller as i can see the
> difference between with and without enabling "pciehp". Also
> pci_resource_start in the probe function of the endpoint device driver
> seem to work. Hence my persistence in understanding the behavior.
If the pciehp driver does not bind to your hardware, then it will not
work properly.
Again, PCI hotplug requires a PCI hotplug controller, or special
firmware/bios support for it. You can't do it properly without it, read
the specification for all of the nasty details.
good luck!
greg k-h