RE: [PATCH 1/2] msi: set 'En' bit of MSI Mapping Capability on HT platform
From: Andy Currid
Date: Mon Nov 26 2007 - 00:19:20 EST
> Isn't there a way we can make this work for any upstream HT
> bridge, rather than only for specific NVIDIA chipsets?
The lines Peer indicates below will work for any vendor's bridge device
that implements an HT MSI mapping and is an upstream bridge of the
endpoint requesting MSI.
On some NVIDIA chipsets, the host bridge that implements HT MSI mapping
is not hierarchically upstream from the MSI endpoint; it may be a peer
on the same bus as the endpoint or the PCIe root complex that's above
the endpoint. The NVIDIA-specific code in the patch is to detect those
specific chipsets where this can occur. We have tested the patch with
both internal and PCI Express MSI endpoints on each of these NVIDIA
chipsets.
It may be that other vendors have Hypertransport chipsets with similar
requirements for HT MSI mapping, but we don't have that information or
the ability to test code on those vendors' chipsets.
Regards,
Andy
--
Andy Currid, NVIDIA Corporation
acurrid@xxxxxxxxxx 408 566 6743
-----Original Message-----
From: Peer Chen
Sent: Sunday, November 25, 2007 20:02
To: Robert Hancock; peerchen
Cc: linux-kernel; akpm; Andy Currid
Subject: RE: [PATCH 1/2] msi: set 'En' bit of MSI Mapping Capability on
HT platform
I think the following lines are suitable for other bridges besides
nvidia's, :) :
===================
+ if (pci_enable_msi_ht_cap(dev) != 0) {
+ return 0;
+ } else {
+ /* Get upstream bridge device handle */
+
+ bridge_dev = dev->bus->self;
+ while(bridge_dev != 0) {
+ if (pci_enable_msi_ht_cap(bridge_dev) !=
0) {
+ return 0;
+ } else
+ bridge_dev =
bridge_dev->bus->self;
+ }
+
+ return 1;
+ }
BRs
Peer Chen
-----Original Message-----
From: Robert Hancock [mailto:hancockr@xxxxxxx]
Sent: Monday, November 26, 2007 2:34 AM
To: peerchen
Cc: linux-kernel; akpm; Peer Chen; Andy Currid
Subject: Re: [PATCH 1/2] msi: set 'En' bit of MSI Mapping Capability on
HT platform
peerchen wrote:
> According to the HyperTransport spec, 'En' indicate if the MSI Mapping
is active. So it should be set when enable the MSI.
>
> The patch base on kernel 2.6.24-rc3
>
> Signed-off-by: Andy Currid <acurrid@xxxxxxxxxx>
> Signed-off-by: Peer Chen <pchen@xxxxxxxxxx>
Isn't there a way we can make this work for any upstream HT bridge,
rather than only for specific NVIDIA chipsets?
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx Home Page:
http://www.roberthancock.com/
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
-
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/