Re: [PATCH 7/8] PCI: check if MSI is enabled before adding _OSC support capability

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

 



On Wed, 2008-10-29 at 15:19 +0900, Kenji Kaneshige wrote:
> Andrew Patterson wrote:
> > PCI: check if MSI is enabled before adding _OSC support capability
> > 
> > Ensure that pci=nomsi is not set before adding the _OSC support capability
> > OSC_MSI_SUPPORT to the root bridge.
> > 
> > Signed-off-by: Andrew Patterson <andrew.patterson@xxxxxx>
> > ---
> > 
> >  drivers/acpi/pci_root.c |   20 +++++++++++---------
> >  1 files changed, 11 insertions(+), 9 deletions(-)
> > 
> > 
> > diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
> > index 75a59ea..32afd02 100644
> > --- a/drivers/acpi/pci_root.c
> > +++ b/drivers/acpi/pci_root.c
> > @@ -194,6 +194,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
> >  	unsigned long long value = 0;
> >  	acpi_handle handle = NULL;
> >  	struct acpi_device *child;
> > +	u32 flags;
> >  
> >  
> >  	if (!device)
> > @@ -211,17 +212,18 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
> >  
> >  	device->ops.bind = acpi_pci_bind;
> >  
> > -	pci_acpi_osc_support(device->handle,
> > -			     OSC_EXT_PCI_CONFIG_SUPPORT |
> > -			     OSC_PCI_SEGMENT_GROUPS_SUPPORT |
> > -#ifdef CONFIG_PCI_MSI
> > -			     OSC_MSI_SUPPORT |
> > -#endif
> > +	flags = (OSC_EXT_PCI_CONFIG_SUPPORT |
> > +		 OSC_PCI_SEGMENT_GROUPS_SUPPORT |
> >  #ifdef CONFIG_PCIEASPM
> > -			     OSC_ACTIVE_STATE_PWR_SUPPORT |
> > -			     OSC_CLOCK_PWR_CAPABILITY_SUPPORT |
> > +		 OSC_ACTIVE_STATE_PWR_SUPPORT |
> > +		 OSC_CLOCK_PWR_CAPABILITY_SUPPORT |
> > +#endif
> > +		 0);
> > +#ifdef CONFIG_PCI_MSI
> > +	if (pci_msi_enabled())
> > +		flags |= OSC_MSI_SUPPORT;
> >  #endif
> > -			     0);
> > +	pci_acpi_osc_support(device->handle, flags);
> >  
> >  	/* 
> >  	 * Segment
> 
> I think the 'pci_msi_enable' variable can be changed after
> acpi_pci_root_add() is called by quirk_disable_all_msi()
> (in driver/pci/quirk.c).

I am not sure what to do about this one.  I think the correct thing to
do is use Matthew's as yet unwritten root bridge iterator function to
remove the OSC_MSI_SUPPORT flag for all root bridges. I suspect that it
will not hurt to have this flag set given that we disable the use of all
MSI.

Andrew

> Thanks,
> Kenji Kaneshige
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux