WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Merge

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Merge
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Tue, 30 Aug 2011 20:22:12 +0100
Delivery-date: Tue, 30 Aug 2011 12:23:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
# Date 1314701218 -3600
# Node ID ac9aa65050e9abc8f1c12c8603acf3b99e22cddc
# Parent  469aa1fbd843d0797345ebf1e3d6c6df27ce744b
# Parent  2c687e70a34390b05ed8df833bd121e6f650193d
Merge
---


diff -r 469aa1fbd843 -r ac9aa65050e9 Config.mk
--- a/Config.mk Fri Aug 26 14:58:41 2011 +0100
+++ b/Config.mk Tue Aug 30 11:46:58 2011 +0100
@@ -1,5 +1,7 @@
 # -*- mode: Makefile; -*-
 
+-include $(XEN_ROOT)/.config
+
 # A debug build of Xen and tools?
 debug ?= y
 
@@ -223,5 +225,3 @@
 ifeq ($(OCAML_TOOLS),y)
 OCAML_TOOLS := $(shell ocamlopt -v > /dev/null 2>&1 && echo "y" || echo "n")
 endif
-
--include $(XEN_ROOT)/.config
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/arch/x86/dmi_scan.c
--- a/xen/arch/x86/dmi_scan.c   Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/arch/x86/dmi_scan.c   Tue Aug 30 11:46:58 2011 +0100
@@ -10,6 +10,8 @@
 #include <asm/system.h>
 #include <xen/dmi.h>
 #include <xen/efi.h>
+#include <xen/pci.h>
+#include <xen/pci_regs.h>
 
 #define bt_ioremap(b,l)  ((void *)__acpi_map_table(b,l))
 #define bt_iounmap(b,l)  ((void)0)
@@ -278,6 +280,28 @@
        return 0;
 }
 
+static int __init ich10_bios_quirk(struct dmi_system_id *d)
+{
+    u32 port, smictl;
+
+    if ( pci_conf_read16(0, 0x1f, 0, PCI_VENDOR_ID) != 0x8086 )
+        return 0;
+
+    switch ( pci_conf_read16(0, 0x1f, 0, PCI_DEVICE_ID) ) {
+    case 0x3a14:
+    case 0x3a16:
+    case 0x3a18:
+    case 0x3a1a:
+        port = (pci_conf_read16(0, 0x1f, 0, 0x40) & 0xff80) + 0x30;
+        smictl = inl(port);
+        /* turn off LEGACY_USB{,2}_EN if enabled */
+        if ( smictl & 0x20008 )
+            outl(smictl & ~0x20008, port);
+        break;
+    }
+
+    return 0;
+}
 
 #ifdef CONFIG_ACPI_SLEEP
 static __init int reset_videomode_after_s3(struct dmi_blacklist *d)
@@ -342,6 +366,18 @@
                        } },
 #endif
 
+       { ich10_bios_quirk, "Intel board & BIOS",
+               /*
+                * BIOS leaves legacy USB emulation enabled while
+                * SMM can't properly handle it.
+                */
+               {
+                       MATCH(DMI_BOARD_VENDOR, "Intel Corp"),
+                       MATCH(DMI_BIOS_VENDOR, "Intel Corp"),
+                       NO_MATCH, NO_MATCH
+               }
+       },
+
 #ifdef CONFIG_ACPI_BOOT
        /*
         * If your system is blacklisted here, but you find that acpi=force
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/arch/x86/hpet.c
--- a/xen/arch/x86/hpet.c       Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/arch/x86/hpet.c       Tue Aug 30 11:46:58 2011 +0100
@@ -342,7 +342,7 @@
 {
     struct msi_msg msg;
 
-    msi_compose_msg(NULL, irq, &msg);
+    msi_compose_msg(irq, &msg);
     hpet_msi_write(irq, &msg);
 }
 
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c        Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/arch/x86/irq.c        Tue Aug 30 11:46:58 2011 +0100
@@ -1670,7 +1670,7 @@
              && !desc->chip_data->used_vectors )
             desc->chip_data->used_vectors = &pdev->info.used_vectors;
         set_domain_irq_pirq(d, irq, info);
-        setup_msi_irq(pdev, msi_desc, irq);
+        setup_msi_irq(msi_desc, irq);
         spin_unlock_irqrestore(&desc->lock, flags);
     }
     else
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/arch/x86/msi.c
--- a/xen/arch/x86/msi.c        Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/arch/x86/msi.c        Tue Aug 30 11:46:58 2011 +0100
@@ -120,8 +120,7 @@
 /*
  * MSI message composition
  */
-void msi_compose_msg(struct pci_dev *pdev, int irq,
-                            struct msi_msg *msg)
+void msi_compose_msg(int irq, struct msi_msg *msg)
 {
     unsigned dest;
     cpumask_t domain;
@@ -414,11 +413,11 @@
     return entry;
 }
 
-int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
+int setup_msi_irq(struct msi_desc *msidesc, int irq)
 {
     struct msi_msg msg;
 
-    msi_compose_msg(dev, irq, &msg);
+    msi_compose_msg(irq, &msg);
     set_irq_msi(msidesc);
     write_msi_msg(irq_desc[irq].msi_desc, &msg);
 
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/arch/x86/x86_64/mmconfig_64.c
--- a/xen/arch/x86/x86_64/mmconfig_64.c Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/arch/x86/x86_64/mmconfig_64.c Tue Aug 30 11:46:58 2011 +0100
@@ -113,12 +113,11 @@
 }
 
 static void __iomem *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,
-                                  unsigned int prot)
+                                  unsigned long idx, unsigned int prot)
 {
     unsigned long virt, size;
 
-    virt = PCI_MCFG_VIRT_START +
-           ((unsigned long)cfg->pci_segment << mmcfg_pci_segment_shift) +
+    virt = PCI_MCFG_VIRT_START + (idx << mmcfg_pci_segment_shift) +
            (cfg->start_bus_number << 20);
     size = (cfg->end_bus_number - cfg->start_bus_number + 1) << 20;
     if (virt + size < virt || virt + size > PCI_MCFG_VIRT_END)
@@ -139,7 +138,7 @@
 
     if (pci_mmcfg_virt[idx].virt)
         return 0;
-    pci_mmcfg_virt[idx].virt = mcfg_ioremap(cfg, PAGE_HYPERVISOR_NOCACHE);
+    pci_mmcfg_virt[idx].virt = mcfg_ioremap(cfg, idx, PAGE_HYPERVISOR_NOCACHE);
     if (!pci_mmcfg_virt[idx].virt) {
         printk(KERN_ERR "PCI: Cannot map MCFG aperture for segment %04x\n",
                cfg->pci_segment);
@@ -160,7 +159,7 @@
      * the necessary L4 entries get populated (so that they get properly
      * propagated to guest domains' page tables).
      */
-    mcfg_ioremap(cfg, 0);
+    mcfg_ioremap(cfg, idx, 0);
     printk(KERN_WARNING "PCI: Not using MCFG for segment %04x bus %02x-%02x\n",
            cfg->pci_segment, cfg->start_bus_number, cfg->end_bus_number);
 }
diff -r 469aa1fbd843 -r ac9aa65050e9 xen/include/asm-x86/msi.h
--- a/xen/include/asm-x86/msi.h Fri Aug 26 14:58:41 2011 +0100
+++ b/xen/include/asm-x86/msi.h Tue Aug 30 11:46:58 2011 +0100
@@ -81,7 +81,7 @@
 extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
 extern void pci_disable_msi(struct msi_desc *desc);
 extern void pci_cleanup_msi(struct pci_dev *pdev);
-extern int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc, int irq);
+extern int setup_msi_irq(struct msi_desc *desc, int irq);
 extern void teardown_msi_irq(int irq);
 extern int msi_free_vector(struct msi_desc *entry);
 extern int pci_restore_msi_state(struct pci_dev *pdev);
@@ -221,6 +221,5 @@
        __u32   hi_address;
 } __attribute__ ((packed));
 
-void msi_compose_msg(struct pci_dev *pdev, int irq,
-                            struct msi_msg *msg);
+void msi_compose_msg(int irq, struct msi_msg *);
 #endif /* __ASM_MSI_H */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Merge, Xen patchbot-unstable <=