Re: [PATCH] pci: enable MSI on 8132

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

 



On Sonntag 22 Februar 2009 13:54:54 Eric W. Biederman wrote:
> Prakesh could you try this patch instead?
>
> I think the problem is simply that the MCP55 ht mapping capability
> requires an address to be programed into it and it wasn't in your
> case.
>
> It should not hurt to enable one msi ht mapping capability too many.

I tried it, but unfortunately doesn't help. I run into the same issue.

>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index baad093..f7a0370 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2017,10 +2017,19 @@ static void __devinit ht_enable_msi_mapping(struct
> pci_dev *dev) while (pos && ttl--) {
>  		u8 flags;
>
> -		if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS,
> -					 &flags) == 0) {
> +		if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS, &flags))
> +			return;
> +
> +		if (!(flags & HT_MSI_FLAGS_ENABLE)) {
>  			dev_info(&dev->dev, "Enabling HT MSI Mapping\n");
>
> +			if (!(flags & HT_MSI_FLAGS_FIXED)) {
> +				pci_write_config_dword(dev, pos + HT_MSI_ADDR_LO,
> +					(HT_MSI_FIXED_ADDR & HT_MSI_FIXED_ADDR));
> +				pci_write_config_dword(dev, pos + HT_MSI_ADDR_HI,
> +					(HT_MSI_FIXED_ADDR >> 32));
> +			}
> +
>  			pci_write_config_byte(dev, pos + HT_MSI_FLAGS,
>  					      flags | HT_MSI_FLAGS_ENABLE);
>  		}
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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