Re: [PATCH 1/2] msi: set 'En' bit of MSI Mapping Capability on HTplatform

From: Andrew Morton
Date: Tue Nov 27 2007 - 03:13:22 EST


On Sun, 25 Nov 2007 11:21:48 +0800 "peerchen" <peerchen@xxxxxxxxx> 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>
>
> ---
> --- linux-2.6.24-rc3/drivers/pci/msi.c.orig 2007-11-23 17:28:45.000000000 -0500
> +++ linux-2.6.24-rc3/drivers/pci/msi.c 2007-11-23 17:50:59.000000000 -0500
> @@ -20,6 +20,8 @@
> #include <asm/errno.h>
> #include <asm/io.h>
>
> +#include <asm/k8.h>

This inclusion makes msi.c x86-specific whereas it previously was not. I
assume that this change breaks arm, ia64, sparc64 and powerpc.

I'll queue the below ugliness to avoid this, but it would be nicer to move
these functions out to an arch-specific file and then require that all
MSI-using architectures implement them.

diff -puN drivers/pci/msi.c~msi-set-en-bit-of-msi-mapping-capability-on-ht-platform-fix drivers/pci/msi.c
--- a/drivers/pci/msi.c~msi-set-en-bit-of-msi-mapping-capability-on-ht-platform-fix
+++ a/drivers/pci/msi.c
@@ -20,7 +20,9 @@
#include <asm/errno.h>
#include <asm/io.h>

+#ifdef CONFIG_X86
#include <asm/k8.h>
+#endif

#include "pci.h"
#include "msi.h"
@@ -292,6 +294,7 @@ void pci_restore_msi_state(struct pci_de
}
#endif /* CONFIG_PM */

+#ifdef CONFIG_X86
/*
* pci_enable_msi_ht_cap - Set the HT MSI mapping capability En bit of
* a device.
@@ -384,6 +387,12 @@ static int pci_check_msi_ht_cap(struct p
}
return 0;
}
+#else
+static inline int pci_check_msi_ht_cap(struct pci_dev *dev)
+{
+ return 0;
+}
+#endif

/**
* msi_capability_init - configure device's MSI capability structure
_

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