Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ebf5a24829def5d066922ceebde61dd57fdc6b1e
Commit:     ebf5a24829def5d066922ceebde61dd57fdc6b1e
Parent:     3efe2d84c8d909567c7976a7106114127b8c3470
Author:     Matthew Wilcox <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 10 08:01:20 2006 -0600
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Dec 1 14:36:57 2006 -0800

    PCI: Use pci_generic_prep_mwi on sparc64
    
    The setting of the CACHE_LINE_SIZE register in sparc64's pci
    initialisation code isn't quite adequate as the device may have
    incompatible requirements.  The generic code tests for this, so switch
    sparc64 over to using it.
    
    Since sparc64 has different L1 cache line size and PCI cache line size,
    it would need to override the generic code like i386 and ia64 do.  We
    know what the cache line size is at compile time though, so introduce a
    new optional constant PCI_CACHE_LINE_BYTES.
    
    Signed-off-by: Matthew Wilcox <[EMAIL PROTECTED]>
    Signed-off-by: David Miller <[EMAIL PROTECTED]>
    Acked-by: Jeff Garzik <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/pci.c |    9 ---------
 drivers/pci/pci.c         |    8 +++++++-
 include/asm-sparc64/pci.h |    6 ++----
 3 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index e02f01b..dfc41cd 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -646,13 +646,4 @@ int pci_domain_nr(struct pci_bus *pbus)
 }
 EXPORT_SYMBOL(pci_domain_nr);
 
-int pcibios_prep_mwi(struct pci_dev *dev)
-{
-       /* We set correct PCI_CACHE_LINE_SIZE register values for every
-        * device probed on this platform.  So there is nothing to check
-        * and this always succeeds.
-        */
-       return 0;
-}
-
 #endif /* !(CONFIG_PCI) */
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 0eaf381..bc88c30 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -876,8 +876,14 @@ pci_set_master(struct pci_dev *dev)
 }
 
 #ifndef HAVE_ARCH_PCI_MWI
+
+#ifndef PCI_CACHE_LINE_BYTES
+#define PCI_CACHE_LINE_BYTES L1_CACHE_BYTES
+#endif
+
 /* This can be overridden by arch code. */
-u8 pci_cache_line_size = L1_CACHE_BYTES >> 2;
+/* Don't forget this is measured in 32-bit words, not bytes */
+u8 pci_cache_line_size = PCI_CACHE_LINE_BYTES / 4;
 
 /**
  * pci_generic_prep_mwi - helper function for pci_set_mwi
diff --git a/include/asm-sparc64/pci.h b/include/asm-sparc64/pci.h
index e1ea67b..ca65602 100644
--- a/include/asm-sparc64/pci.h
+++ b/include/asm-sparc64/pci.h
@@ -18,6 +18,8 @@
 
 #define PCI_IRQ_NONE           0xffffffff
 
+#define PCI_CACHE_LINE_BYTES   64
+
 static inline void pcibios_set_master(struct pci_dev *dev)
 {
        /* No special bus mastering setup handling */
@@ -291,10 +293,6 @@ extern int pci_mmap_page_range(struct pc
                               enum pci_mmap_state mmap_state,
                               int write_combine);
 
-/* Platform specific MWI support. */
-#define HAVE_ARCH_PCI_MWI
-extern int pcibios_prep_mwi(struct pci_dev *dev);
-
 extern void
 pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
                        struct resource *res);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to