]> git.neil.brown.name Git - history.git/commitdiff
Import 2.3.44pre5 2.3.44pre5
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:31:07 +0000 (15:31 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:31:07 +0000 (15:31 -0500)
arch/i386/kernel/pci-pc.c
drivers/usb/inode.c
drivers/usb/usb.c

index ae43c6dfe0380696d2bff5fe5171b3f155ef5f4d..590e01fd5d47fce3a54972b63c2b375c65db19d8 100644 (file)
@@ -1036,8 +1036,6 @@ static void __init pcibios_irq_peer_trick(struct irq_routing_table *rt)
  *  table, but unfortunately we have to know the interrupt router chip.
  */
 
-#define ALLOWED_IRQ_MASK 0x0ff8
-
 static char *pcibios_lookup_irq(struct pci_dev *dev, struct irq_routing_table *rt, int pin, int assign)
 {
        struct irq_info *q;
@@ -1070,7 +1068,7 @@ static char *pcibios_lookup_irq(struct pci_dev *dev, struct irq_routing_table *r
        DBG(" -> PIRQ %02x, mask %04x", pirq, mask);
        if (!assign || (dev->class >> 8) == PCI_CLASS_DISPLAY_VGA)
                newirq = 0;
-       else for(newirq = 16; newirq && !(mask & ALLOWED_IRQ_MASK & (1 << newirq)); newirq--)
+       else for(newirq = 13; newirq && !(mask & (1 << newirq)); newirq--)
                ;
        if (!(router = pci_find_slot(rt->rtr_bus, rt->rtr_devfn))) {
                DBG(" -> router not found\n");
@@ -1175,10 +1173,8 @@ static void __init pcibios_fixup_irqs(void)
                /*
                 * Fix out-of-range IRQ numbers and missing IRQs.
                 */
-               if (dev->irq >= 16) {
-                       DBG("%s: invalid IRQ %d\n", dev->irq);
+               if (dev->irq >= NR_IRQS)
                        dev->irq = 0;
-               }
                if (pin && !dev->irq && pirq_table) {
                        char *msg = pcibios_lookup_irq(dev, pirq_table, pin, 0);
                        if (msg)
index 64405957029fc75df3f18b6eeadfcc11b4bd18df..3c80bb8beba5cff0fcb468b1c6efee9c8789804c 100644 (file)
@@ -31,6 +31,7 @@
 #define __NO_VERSION__
 #include <linux/module.h>
 #include <linux/fs.h>
+#include <linux/sched.h>
 #include <linux/smp_lock.h>
 #include <linux/locks.h>
 #include <linux/init.h>
index 4377e3325c08762c604085a1c45b21a270c3dbf5..e8981965950c81bd37dcf993a3b1560ef5c30857 100644 (file)
@@ -1625,7 +1625,6 @@ int usb_string(struct usb_device *dev, int index, char *buf, size_t size)
        err = usb_get_string(dev, dev->string_langid, index, tbuf, 255);
        if (err < 0)
                goto errout;
-       info("actual string desc. length = %d", err);
 
        size--;         /* leave room for trailing NULL char in output buffer */
        for (idx = 0, u = 2; u < err; u += 2) {
@@ -1729,6 +1728,8 @@ int usb_new_device(struct usb_device *dev)
                return -1;
        }
 
+       info("new device strings: Mfr=%d, Product=%d, SerialNumber=%d",
+               dev->descriptor.iManufacturer, dev->descriptor.iProduct, dev->descriptor.iSerialNumber);
        if (dev->descriptor.iManufacturer)
                usb_show_string(dev, "Manufacturer", dev->descriptor.iManufacturer);
        if (dev->descriptor.iProduct)