linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PATCH] USB patches for 2.6.15-rc3
@ 2005-11-30  5:56 Greg KH
  2005-11-30  5:58 ` [PATCH] USB: documentation update Greg KH
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:56 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-usb-devel

Here are six small patches for 2.6.15-rc3 against your git tree that fix
some reported problems.  The biggest is the ehci boot issue, and the usb
suspend issue that the ppc people are seeing.  There's also a
documentation fix, a hwmon driver bugfix, and a pci_ids.h duplication
fix in here.

I did this as a git tree to make it easier to apply :)

Please pull from:
	rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
or if master.kernel.org hasn't synced up yet:
	master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/

The full patches will be sent to the linux-usb-devel and linux-kernel
mailing lists, if anyone wants to see them.

thanks,

greg k-h


 Documentation/usb/error-codes.txt |    5 ++--
 drivers/hwmon/w83792d.c           |   25 ++++++++++++++------
 drivers/usb/atm/cxacru.c          |    3 ++
 drivers/usb/core/hcd-pci.c        |    3 +-
 drivers/usb/core/hcd.c            |   15 ++++++++----
 drivers/usb/core/hcd.h            |    7 ++++-
 drivers/usb/host/ehci-pci.c       |   46 +++++++++++++++++++++++++++++++-------
 drivers/usb/host/ehci-q.c         |   24 +++++++++++++------
 drivers/usb/host/ehci-sched.c     |   18 +++++++++++++-
 drivers/usb/host/ohci-hcd.c       |    6 ++++
 drivers/usb/host/ohci-hub.c       |   24 ++++++++++++++++---
 drivers/usb/host/ohci-pci.c       |   27 ++++++++++++++++++++--
 drivers/usb/host/uhci-hcd.c       |    6 ++++
 include/linux/pci_ids.h           |    3 --
 14 files changed, 168 insertions(+), 44 deletions(-)


Alan Stern:
      USB: documentation update

Benjamin Herrenschmidt:
      USB: Fix USB suspend/resume crasher (#2)

Dave Jones:
      Additional device ID for Conexant AccessRunner USB driver

David Brownell:
      USB: ehci fixups

Grant Coady:
      pci_ids.h: remove duplicate entries

Jean Delvare:
      hwmon: w83792d fix unused fan pins


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH] USB: ehci fixups
  2005-11-30  5:58       ` [PATCH] Additional device ID for Conexant AccessRunner USB driver Greg KH
@ 2005-11-30  5:58         ` Greg KH
  2005-11-30  5:58           ` [PATCH] USB: Fix USB suspend/resume crasher (#2) Greg KH
  2005-11-30  8:09         ` [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver Duncan Sands
  1 sibling, 1 reply; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: david-b

[PATCH] USB: ehci fixups

Rename the EHCI "reset" routine so it better matches what it does (setup);
and move the one-time data structure setup earlier, before doing anything
that implicitly relies on it having been completed already.

From: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 8926bfa7462d4c3f8b05cca929e0c4bcde93ae38
tree 52f6841e035827751efee6b4616f84606db70663
parent 8de98402652c01839ae321be6cb3054cf5735d83
author David Brownell <david-b@pacbell.net> Mon, 28 Nov 2005 08:40:38 -0800
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:23 -0800

 drivers/usb/host/ehci-pci.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 14fff57..13f73a8 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -121,8 +121,8 @@ static int ehci_pci_reinit(struct ehci_h
 	return 0;
 }
 
-/* called by khubd or root hub (re)init threads; leaves HC in halt state */
-static int ehci_pci_reset(struct usb_hcd *hcd)
+/* called during probe() after chip reset completes */
+static int ehci_pci_setup(struct usb_hcd *hcd)
 {
 	struct ehci_hcd		*ehci = hcd_to_ehci(hcd);
 	struct pci_dev		*pdev = to_pci_dev(hcd->self.controller);
@@ -141,6 +141,11 @@ static int ehci_pci_reset(struct usb_hcd
 	if (retval)
 		return retval;
 
+	/* data structure init */
+	retval = ehci_init(hcd);
+	if (retval)
+		return retval;
+
 	/* NOTE:  only the parts below this line are PCI-specific */
 
 	switch (pdev->vendor) {
@@ -154,7 +159,8 @@ static int ehci_pci_reset(struct usb_hcd
 		/* AMD8111 EHCI doesn't work, according to AMD errata */
 		if (pdev->device == 0x7463) {
 			ehci_info(ehci, "ignoring AMD8111 (errata)\n");
-			return -EIO;
+			retval = -EIO;
+			goto done;
 		}
 		break;
 	case PCI_VENDOR_ID_NVIDIA:
@@ -207,9 +213,8 @@ static int ehci_pci_reset(struct usb_hcd
 	/* REVISIT:  per-port wake capability (PCI 0x62) currently unused */
 
 	retval = ehci_pci_reinit(ehci, pdev);
-
-	/* finish init */
-	return ehci_init(hcd);
+done:
+	return retval;
 }
 
 /*-------------------------------------------------------------------------*/
@@ -344,7 +349,7 @@ static const struct hc_driver ehci_pci_h
 	/*
 	 * basic lifecycle operations
 	 */
-	.reset =		ehci_pci_reset,
+	.reset =		ehci_pci_setup,
 	.start =		ehci_run,
 #ifdef	CONFIG_PM
 	.suspend =		ehci_pci_suspend,


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH] USB: documentation update
  2005-11-30  5:56 [GIT PATCH] USB patches for 2.6.15-rc3 Greg KH
@ 2005-11-30  5:58 ` Greg KH
  2005-11-30  5:58   ` [PATCH] hwmon: w83792d fix unused fan pins Greg KH
  2005-11-30 18:23 ` [GIT PATCH] USB patches for 2.6.15-rc3 Linus Torvalds
  2005-11-30 19:39 ` [GIT PATCH] USB patches for 2.6.15-rc3 Jean Delvare
  2 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: stern

[PATCH] USB: documentation update

This patch (as611) fixes a minor mistake and misspelling in the USB
documentation.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 620948a01c71060a32611bc2f792f58a88cf28b1
tree 69383c05e69e6241ef43d41fceb4ead4dd233c36
parent c9d6073fb3cda856132dd544d537679f9715436c
author Alan Stern <stern@rowland.harvard.edu> Mon, 28 Nov 2005 15:22:55 -0500
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:22 -0800

 Documentation/usb/error-codes.txt |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/usb/error-codes.txt b/Documentation/usb/error-codes.txt
index 1e36f16..867f4c3 100644
--- a/Documentation/usb/error-codes.txt
+++ b/Documentation/usb/error-codes.txt
@@ -46,8 +46,9 @@ USB-specific:
 
 -EMSGSIZE	(a) endpoint maxpacket size is zero; it is not usable
 		    in the current interface altsetting.
-		(b) ISO packet is biger than endpoint maxpacket
-		(c) requested data transfer size is invalid (negative)
+		(b) ISO packet is larger than the endpoint maxpacket.
+		(c) requested data transfer length is invalid: negative
+		    or too large for the host controller.
 
 -ENOSPC		This request would overcommit the usb bandwidth reserved
 		for periodic transfers (interrupt, isochronous).


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH] USB: Fix USB suspend/resume crasher (#2)
  2005-11-30  5:58         ` [PATCH] USB: ehci fixups Greg KH
@ 2005-11-30  5:58           ` Greg KH
  0 siblings, 0 replies; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: benh

[PATCH] USB: Fix USB suspend/resume crasher (#2)

This patch closes the IRQ race and makes various other OHCI & EHCI code
path safer vs. suspend/resume.
I've been able to (finally !) successfully suspend and resume various
Mac models, with or without USB mouse plugged, or plugging while asleep,
or unplugging while asleep etc... all without a crash.

Alan, please verify the UHCI bit I did, I only verified that it builds.
It's very simple so I wouldn't expect any issue there. If you aren't
confident, then just drop the hunks that change uhci-hcd.c

I also made the patch a little bit more "safer" by making sure the store
to the interrupt register that disables interrupts is not posted before
I set the flag and drop the spinlock.

Without this patch, you cannot reliably sleep/wakeup any recent Mac, and
I suspect PCs have some more sneaky issues too (they don't frankly crash
with machine checks because x86 tend to silently swallow PCI errors but
that won't last afaik, at least PCI Express will blow up in those
situations, but the USB code may still misbehave).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 8de98402652c01839ae321be6cb3054cf5735d83
tree 6d4856ddb60be0dcd361441f0794596709553dd1
parent d3420ba4930d61f4ec4abc046765de274182b4ed
author Benjamin Herrenschmidt <benh@kernel.crashing.org> Fri, 25 Nov 2005 09:59:46 +1100
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:23 -0800

 drivers/usb/core/hcd-pci.c    |    3 ++-
 drivers/usb/core/hcd.c        |   15 ++++++++++-----
 drivers/usb/core/hcd.h        |    7 ++++++-
 drivers/usb/host/ehci-pci.c   |   27 ++++++++++++++++++++++++++-
 drivers/usb/host/ehci-q.c     |   24 ++++++++++++++++--------
 drivers/usb/host/ehci-sched.c |   18 ++++++++++++++++--
 drivers/usb/host/ohci-hcd.c   |    6 +++++-
 drivers/usb/host/ohci-hub.c   |   24 ++++++++++++++++++++----
 drivers/usb/host/ohci-pci.c   |   27 +++++++++++++++++++++++++--
 drivers/usb/host/uhci-hcd.c   |    6 ++++++
 10 files changed, 132 insertions(+), 25 deletions(-)

diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
index 5131d88..29b5b2a 100644
--- a/drivers/usb/core/hcd-pci.c
+++ b/drivers/usb/core/hcd-pci.c
@@ -219,6 +219,7 @@ int usb_hcd_pci_suspend (struct pci_dev 
 			goto done;
 		}
 	}
+	synchronize_irq(dev->irq);
 
 	/* FIXME until the generic PM interfaces change a lot more, this
 	 * can't use PCI D1 and D2 states.  For example, the confusion
@@ -392,7 +393,7 @@ int usb_hcd_pci_resume (struct pci_dev *
 
 	dev->dev.power.power_state = PMSG_ON;
 
-	hcd->saw_irq = 0;
+	clear_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
 
 	if (hcd->driver->resume) {
 		retval = hcd->driver->resume(hcd);
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 5e5f65a..da24c31 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1315,11 +1315,12 @@ static int hcd_unlink_urb (struct urb *u
 	 * finish unlinking the initial failed usb_set_address()
 	 * or device descriptor fetch.
 	 */
-	if (!hcd->saw_irq && hcd->self.root_hub != urb->dev) {
+	if (!test_bit(HCD_FLAG_SAW_IRQ, &hcd->flags)
+	    && hcd->self.root_hub != urb->dev) {
 		dev_warn (hcd->self.controller, "Unlink after no-IRQ?  "
 			"Controller is probably using the wrong IRQ."
 			"\n");
-		hcd->saw_irq = 1;
+		set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
 	}
 
 	urb->status = status;
@@ -1649,13 +1650,15 @@ irqreturn_t usb_hcd_irq (int irq, void *
 	struct usb_hcd		*hcd = __hcd;
 	int			start = hcd->state;
 
-	if (start == HC_STATE_HALT)
+	if (unlikely(start == HC_STATE_HALT ||
+	    !test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)))
 		return IRQ_NONE;
 	if (hcd->driver->irq (hcd, r) == IRQ_NONE)
 		return IRQ_NONE;
 
-	hcd->saw_irq = 1;
-	if (hcd->state == HC_STATE_HALT)
+	set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
+
+	if (unlikely(hcd->state == HC_STATE_HALT))
 		usb_hc_died (hcd);
 	return IRQ_HANDLED;
 }
@@ -1768,6 +1771,8 @@ int usb_add_hcd(struct usb_hcd *hcd,
 
 	dev_info(hcd->self.controller, "%s\n", hcd->product_desc);
 
+	set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+
 	/* till now HC has been in an indeterminate state ... */
 	if (hcd->driver->reset && (retval = hcd->driver->reset(hcd)) < 0) {
 		dev_err(hcd->self.controller, "can't reset\n");
diff --git a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h
index 24a62a2..c8a1b35 100644
--- a/drivers/usb/core/hcd.h
+++ b/drivers/usb/core/hcd.h
@@ -72,7 +72,12 @@ struct usb_hcd {	/* usb_bus.hcpriv point
 	 * hardware info/state
 	 */
 	const struct hc_driver	*driver;	/* hw-specific hooks */
-	unsigned		saw_irq : 1;
+
+	/* Flags that need to be manipulated atomically */
+	unsigned long		flags;
+#define HCD_FLAG_HW_ACCESSIBLE	0x00000001
+#define HCD_FLAG_SAW_IRQ	0x00000002
+
 	unsigned		can_wakeup:1;	/* hw supports wakeup? */
 	unsigned		remote_wakeup:1;/* sw should use wakeup? */
 	unsigned		rh_registered:1;/* is root hub registered? */
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 441c260..14fff57 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -228,14 +228,36 @@ static int ehci_pci_reset(struct usb_hcd
 static int ehci_pci_suspend(struct usb_hcd *hcd, pm_message_t message)
 {
 	struct ehci_hcd		*ehci = hcd_to_ehci(hcd);
+	unsigned long		flags;
+	int			rc = 0;
 
 	if (time_before(jiffies, ehci->next_statechange))
 		msleep(10);
 
+	/* Root hub was already suspended. Disable irq emission and
+	 * mark HW unaccessible, bail out if RH has been resumed. Use
+	 * the spinlock to properly synchronize with possible pending
+	 * RH suspend or resume activity.
+	 *
+	 * This is still racy as hcd->state is manipulated outside of
+	 * any locks =P But that will be a different fix.
+	 */
+	spin_lock_irqsave (&ehci->lock, flags);
+	if (hcd->state != HC_STATE_SUSPENDED) {
+		rc = -EINVAL;
+		goto bail;
+	}
+	writel (0, &ehci->regs->intr_enable);
+	(void)readl(&ehci->regs->intr_enable);
+
+	clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ bail:
+	spin_unlock_irqrestore (&ehci->lock, flags);
+
 	// could save FLADJ in case of Vaux power loss
 	// ... we'd only use it to handle clock skew
 
-	return 0;
+	return rc;
 }
 
 static int ehci_pci_resume(struct usb_hcd *hcd)
@@ -251,6 +273,9 @@ static int ehci_pci_resume(struct usb_hc
 	if (time_before(jiffies, ehci->next_statechange))
 		msleep(100);
 
+	/* Mark hardware accessible again as we are out of D3 state by now */
+	set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+
 	/* If CF is clear, we lost PCI Vaux power and need to restart.  */
 	if (readl(&ehci->regs->configured_flag) != FLAG_CF)
 		goto restart;
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
index 5bb872c..bf03ec0 100644
--- a/drivers/usb/host/ehci-q.c
+++ b/drivers/usb/host/ehci-q.c
@@ -912,6 +912,7 @@ submit_async (
 	int			epnum;
 	unsigned long		flags;
 	struct ehci_qh		*qh = NULL;
+	int			rc = 0;
 
 	qtd = list_entry (qtd_list->next, struct ehci_qtd, qtd_list);
 	epnum = ep->desc.bEndpointAddress;
@@ -926,21 +927,28 @@ submit_async (
 #endif
 
 	spin_lock_irqsave (&ehci->lock, flags);
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE,
+			       &ehci_to_hcd(ehci)->flags))) {
+		rc = -ESHUTDOWN;
+		goto done;
+	}
+
 	qh = qh_append_tds (ehci, urb, qtd_list, epnum, &ep->hcpriv);
+	if (unlikely(qh == NULL)) {
+		rc = -ENOMEM;
+		goto done;
+	}
 
 	/* Control/bulk operations through TTs don't need scheduling,
 	 * the HC and TT handle it when the TT has a buffer ready.
 	 */
-	if (likely (qh != NULL)) {
-		if (likely (qh->qh_state == QH_STATE_IDLE))
-			qh_link_async (ehci, qh_get (qh));
-	}
+	if (likely (qh->qh_state == QH_STATE_IDLE))
+		qh_link_async (ehci, qh_get (qh));
+ done:
 	spin_unlock_irqrestore (&ehci->lock, flags);
-	if (unlikely (qh == NULL)) {
+	if (unlikely (qh == NULL))
 		qtd_list_free (ehci, urb, qtd_list);
-		return -ENOMEM;
-	}
-	return 0;
+	return rc;
 }
 
 /*-------------------------------------------------------------------------*/
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index f0c8aa1..57e7737 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -602,6 +602,12 @@ static int intr_submit (
 
 	spin_lock_irqsave (&ehci->lock, flags);
 
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE,
+			       &ehci_to_hcd(ehci)->flags))) {
+		status = -ESHUTDOWN;
+		goto done;
+	}
+
 	/* get qh and force any scheduling errors */
 	INIT_LIST_HEAD (&empty);
 	qh = qh_append_tds (ehci, urb, &empty, epnum, &ep->hcpriv);
@@ -1456,7 +1462,11 @@ static int itd_submit (struct ehci_hcd *
 
 	/* schedule ... need to lock */
 	spin_lock_irqsave (&ehci->lock, flags);
-	status = iso_stream_schedule (ehci, urb, stream);
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE,
+			       &ehci_to_hcd(ehci)->flags)))
+		status = -ESHUTDOWN;
+	else
+		status = iso_stream_schedule (ehci, urb, stream);
  	if (likely (status == 0))
 		itd_link_urb (ehci, urb, ehci->periodic_size << 3, stream);
 	spin_unlock_irqrestore (&ehci->lock, flags);
@@ -1815,7 +1825,11 @@ static int sitd_submit (struct ehci_hcd 
 
 	/* schedule ... need to lock */
 	spin_lock_irqsave (&ehci->lock, flags);
-	status = iso_stream_schedule (ehci, urb, stream);
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE,
+			       &ehci_to_hcd(ehci)->flags)))
+		status = -ESHUTDOWN;
+	else
+		status = iso_stream_schedule (ehci, urb, stream);
  	if (status == 0)
 		sitd_link_urb (ehci, urb, ehci->periodic_size << 3, stream);
 	spin_unlock_irqrestore (&ehci->lock, flags);
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 5c0c6c8..bf1d9ab 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -115,7 +115,7 @@
 
 /*-------------------------------------------------------------------------*/
 
-// #define OHCI_VERBOSE_DEBUG	/* not always helpful */
+#undef OHCI_VERBOSE_DEBUG	/* not always helpful */
 
 /* For initializing controller (mask in an HCFS mode too) */
 #define	OHCI_CONTROL_INIT 	OHCI_CTRL_CBSR
@@ -253,6 +253,10 @@ static int ohci_urb_enqueue (
 	spin_lock_irqsave (&ohci->lock, flags);
 
 	/* don't submit to a dead HC */
+	if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) {
+		retval = -ENODEV;
+		goto fail;
+	}
 	if (!HC_IS_RUNNING(hcd->state)) {
 		retval = -ENODEV;
 		goto fail;
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
index e01e77b..72e3b12 100644
--- a/drivers/usb/host/ohci-hub.c
+++ b/drivers/usb/host/ohci-hub.c
@@ -53,6 +53,11 @@ static int ohci_bus_suspend (struct usb_
 
 	spin_lock_irqsave (&ohci->lock, flags);
 
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags))) {
+		spin_unlock_irqrestore (&ohci->lock, flags);
+		return -ESHUTDOWN;
+	}
+
 	ohci->hc_control = ohci_readl (ohci, &ohci->regs->control);
 	switch (ohci->hc_control & OHCI_CTRL_HCFS) {
 	case OHCI_USB_RESUME:
@@ -140,11 +145,19 @@ static int ohci_bus_resume (struct usb_h
 	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);
 	u32			temp, enables;
 	int			status = -EINPROGRESS;
+	unsigned long		flags;
 
 	if (time_before (jiffies, ohci->next_statechange))
 		msleep(5);
 
-	spin_lock_irq (&ohci->lock);
+	spin_lock_irqsave (&ohci->lock, flags);
+
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags))) {
+		spin_unlock_irqrestore (&ohci->lock, flags);
+		return -ESHUTDOWN;
+	}
+
+
 	ohci->hc_control = ohci_readl (ohci, &ohci->regs->control);
 
 	if (ohci->hc_control & (OHCI_CTRL_IR | OHCI_SCHED_ENABLES)) {
@@ -179,7 +192,7 @@ static int ohci_bus_resume (struct usb_h
 		ohci_dbg (ohci, "lost power\n");
 		status = -EBUSY;
 	}
-	spin_unlock_irq (&ohci->lock);
+	spin_unlock_irqrestore (&ohci->lock, flags);
 	if (status == -EBUSY) {
 		(void) ohci_init (ohci);
 		return ohci_restart (ohci);
@@ -297,8 +310,8 @@ ohci_hub_status_data (struct usb_hcd *hc
 	/* handle autosuspended root:  finish resuming before
 	 * letting khubd or root hub timer see state changes.
 	 */
-	if ((ohci->hc_control & OHCI_CTRL_HCFS) != OHCI_USB_OPER
-			|| !HC_IS_RUNNING(hcd->state)) {
+	if (unlikely((ohci->hc_control & OHCI_CTRL_HCFS) != OHCI_USB_OPER
+		     || !HC_IS_RUNNING(hcd->state))) {
 		can_suspend = 0;
 		goto done;
 	}
@@ -508,6 +521,9 @@ static int ohci_hub_control (
 	u32		temp;
 	int		retval = 0;
 
+	if (unlikely(!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)))
+		return -ESHUTDOWN;
+
 	switch (typeReq) {
 	case ClearHubFeature:
 		switch (wValue) {
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
index 5f22e65..1b09dde 100644
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -105,13 +105,36 @@ ohci_pci_start (struct usb_hcd *hcd)
 
 static int ohci_pci_suspend (struct usb_hcd *hcd, pm_message_t message)
 {
-	/* root hub was already suspended */
-	return 0;
+	struct ohci_hcd	*ohci = hcd_to_ohci (hcd);
+	unsigned long	flags;
+	int		rc = 0;
+
+	/* Root hub was already suspended. Disable irq emission and
+	 * mark HW unaccessible, bail out if RH has been resumed. Use
+	 * the spinlock to properly synchronize with possible pending
+	 * RH suspend or resume activity.
+	 *
+	 * This is still racy as hcd->state is manipulated outside of
+	 * any locks =P But that will be a different fix.
+	 */
+	spin_lock_irqsave (&ohci->lock, flags);
+	if (hcd->state != HC_STATE_SUSPENDED) {
+		rc = -EINVAL;
+		goto bail;
+	}
+	ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);
+	(void)ohci_readl(ohci, &ohci->regs->intrdisable);
+	clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ bail:
+	spin_unlock_irqrestore (&ohci->lock, flags);
+
+	return rc;
 }
 
 
 static int ohci_pci_resume (struct usb_hcd *hcd)
 {
+	set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
 	usb_hcd_resume_root_hub(hcd);
 	return 0;
 }
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index d33ce39..ed55013 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -717,6 +717,7 @@ static int uhci_suspend(struct usb_hcd *
 	 * at the source, so we must turn off PIRQ.
 	 */
 	pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0);
+	clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
 	uhci->hc_inaccessible = 1;
 	hcd->poll_rh = 0;
 
@@ -733,6 +734,11 @@ static int uhci_resume(struct usb_hcd *h
 
 	dev_dbg(uhci_dev(uhci), "%s\n", __FUNCTION__);
 
+	/* We aren't in D3 state anymore, we do that even if dead as I
+	 * really don't want to keep a stale HCD_FLAG_HW_ACCESSIBLE=0
+	 */
+	set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+
 	if (uhci->rh_state == UHCI_RH_RESET)	/* Dead */
 		return 0;
 	spin_lock_irq(&uhci->lock);


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH] pci_ids.h: remove duplicate entries
  2005-11-30  5:58   ` [PATCH] hwmon: w83792d fix unused fan pins Greg KH
@ 2005-11-30  5:58     ` Greg KH
  2005-11-30  5:58       ` [PATCH] Additional device ID for Conexant AccessRunner USB driver Greg KH
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: grant_lkml

[PATCH] pci_ids.h: remove duplicate entries

G'day Albert, Andrew,

	commit 4fb80634d30f5e639a92b78c8f215f96a61ba8c7
	Author: Albert Lee <albertcc@tw.ibm.com>
	Date:   Thu May 12 15:49:21 2005 -0400

duplicates symbols already appearing in pci_ids.h, appended patch
removes them again :o)

From: Grant Coady <gcoady@gmail.com>

pci_ids: commit 4fb80634d30f5e639a92b78c8f215f96a61ba8c7 duplicated a
couple existing symbols in pci_ids.h, remove them.

Signed-off-by: Grant Coady <gcoady@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit c9d6073fb3cda856132dd544d537679f9715436c
tree ad9bc2f500c71a6ff5012e62bdd3439760b9d829
parent 9632051963cb6e6f7412990f8b962209b9334e13
author Grant Coady <grant_lkml@dodo.com.au> Thu, 24 Nov 2005 20:41:06 +1100
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:22 -0800

 include/linux/pci_ids.h |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 1e737e2..53e3293 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -387,7 +387,6 @@
 #define PCI_DEVICE_ID_NS_SC1100_SMI	0x0511
 #define PCI_DEVICE_ID_NS_SC1100_XBUS	0x0515
 #define PCI_DEVICE_ID_NS_87410		0xd001
-#define PCI_DEVICE_ID_NS_CS5535_IDE	0x002d
 
 #define PCI_VENDOR_ID_TSENG		0x100c
 #define PCI_DEVICE_ID_TSENG_W32P_2	0x3202
@@ -489,8 +488,6 @@
 #define PCI_DEVICE_ID_AMD_8151_0	0x7454
 #define PCI_DEVICE_ID_AMD_8131_APIC     0x7450
 
-#define PCI_DEVICE_ID_AMD_CS5536_IDE	0x209A
-
 #define PCI_VENDOR_ID_TRIDENT		0x1023
 #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX	0x2000
 #define PCI_DEVICE_ID_TRIDENT_4DWAVE_NX	0x2001


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH] hwmon: w83792d fix unused fan pins
  2005-11-30  5:58 ` [PATCH] USB: documentation update Greg KH
@ 2005-11-30  5:58   ` Greg KH
  2005-11-30  5:58     ` [PATCH] pci_ids.h: remove duplicate entries Greg KH
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: khali

[PATCH] hwmon: w83792d fix unused fan pins

1. This patch add check for fan4,5,6,7 and do not create device file
   if their pins are not configured as fan.
2. Fix the issue that can not set fan divisor to 128.
3. Fix the index out of bounds bug in w83792d_detect function.

Signed-off-by: Yuan Mu <ymu@winbond.com.tw>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 9632051963cb6e6f7412990f8b962209b9334e13
tree 1f1fe030107d06e4b43dbee90e95b374ccec7fc2
parent d2ef5ebb4c4fe141a82252d4db8d8521e6765c5a
author Jean Delvare <khali@linux-fr.org> Tue, 29 Nov 2005 22:27:14 +0100
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:22 -0800

 drivers/hwmon/w83792d.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/hwmon/w83792d.c b/drivers/hwmon/w83792d.c
index 4be59db..1ba0726 100644
--- a/drivers/hwmon/w83792d.c
+++ b/drivers/hwmon/w83792d.c
@@ -193,6 +193,7 @@ static const u8 W83792D_REG_LEVELS[3][4]
 	  0xE2 }	/* (bit3-0) SmartFanII: Fan3 Level 3 */
 };
 
+#define W83792D_REG_GPIO_EN		0x1A
 #define W83792D_REG_CONFIG		0x40
 #define W83792D_REG_VID_FANDIV		0x47
 #define W83792D_REG_CHIPID		0x49
@@ -257,7 +258,7 @@ DIV_TO_REG(long val)
 {
 	int i;
 	val = SENSORS_LIMIT(val, 1, 128) >> 1;
-	for (i = 0; i < 6; i++) {
+	for (i = 0; i < 7; i++) {
 		if (val == 0)
 			break;
 		val >>= 1;
@@ -1282,8 +1283,8 @@ w83792d_detect(struct i2c_adapter *adapt
 	w83792d_init_client(new_client);
 
 	/* A few vars need to be filled upon startup */
-	for (i = 1; i <= 7; i++) {
-		data->fan_min[i - 1] = w83792d_read_value(new_client,
+	for (i = 0; i < 7; i++) {
+		data->fan_min[i] = w83792d_read_value(new_client,
 					W83792D_REG_FAN_MIN[i]);
 	}
 
@@ -1306,10 +1307,20 @@ w83792d_detect(struct i2c_adapter *adapt
 	device_create_file_fan(new_client, 1);
 	device_create_file_fan(new_client, 2);
 	device_create_file_fan(new_client, 3);
-	device_create_file_fan(new_client, 4);
-	device_create_file_fan(new_client, 5);
-	device_create_file_fan(new_client, 6);
-	device_create_file_fan(new_client, 7);
+
+	/* Read GPIO enable register to check if pins for fan 4,5 are used as
+	   GPIO */
+	val1 = w83792d_read_value(new_client, W83792D_REG_GPIO_EN);
+	if (!(val1 & 0x40))
+		device_create_file_fan(new_client, 4);
+	if (!(val1 & 0x20))
+		device_create_file_fan(new_client, 5);
+
+	val1 = w83792d_read_value(new_client, W83792D_REG_PIN);
+	if (val1 & 0x40)
+		device_create_file_fan(new_client, 6);
+	if (val1 & 0x04)
+		device_create_file_fan(new_client, 7);
 
 	device_create_file_temp1(new_client);		/* Temp1 */
 	device_create_file_temp_add(new_client, 2);	/* Temp2 */


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH] Additional device ID for Conexant AccessRunner USB driver
  2005-11-30  5:58     ` [PATCH] pci_ids.h: remove duplicate entries Greg KH
@ 2005-11-30  5:58       ` Greg KH
  2005-11-30  5:58         ` [PATCH] USB: ehci fixups Greg KH
  2005-11-30  8:09         ` [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver Duncan Sands
  0 siblings, 2 replies; 15+ messages in thread
From: Greg KH @ 2005-11-30  5:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb-devel; +Cc: davej

[PATCH] Additional device ID for Conexant AccessRunner USB driver

Reported as working in Fedora bugzilla by Petr.

From: Petr Tuma <petr.tuma@mff.cuni.cz>
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit d3420ba4930d61f4ec4abc046765de274182b4ed
tree fd76b774f59fb3eae7c0ec428064fce1fd9a3d79
parent 620948a01c71060a32611bc2f792f58a88cf28b1
author Dave Jones <davej@redhat.com> Mon, 28 Nov 2005 13:44:52 -0500
committer Greg Kroah-Hartman <gregkh@suse.de> Tue, 29 Nov 2005 21:39:22 -0800

 drivers/usb/atm/cxacru.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index 79861ee..9d59dc6 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -787,6 +787,9 @@ static const struct usb_device_id cxacru
 	{ /* V = Conexant			P = ADSL modem (Hasbani project)	*/
 		USB_DEVICE(0x0572, 0xcb00),	.driver_info = (unsigned long) &cxacru_cb00
 	},
+	{ /* V = Conexant             P = ADSL modem (Well PTI-800 */
+		USB_DEVICE(0x0572, 0xcb02),	.driver_info = (unsigned long) &cxacru_cb00
+	},
 	{ /* V = Conexant			P = ADSL modem				*/
 		USB_DEVICE(0x0572, 0xcb01),	.driver_info = (unsigned long) &cxacru_cb00
 	},


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver
  2005-11-30  5:58       ` [PATCH] Additional device ID for Conexant AccessRunner USB driver Greg KH
  2005-11-30  5:58         ` [PATCH] USB: ehci fixups Greg KH
@ 2005-11-30  8:09         ` Duncan Sands
  2005-11-30 22:30           ` Greg KH
  1 sibling, 1 reply; 15+ messages in thread
From: Duncan Sands @ 2005-11-30  8:09 UTC (permalink / raw)
  To: linux-usb-devel, Greg K-H; +Cc: linux-kernel, davej

> diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
> index 79861ee..9d59dc6 100644
> --- a/drivers/usb/atm/cxacru.c
> +++ b/drivers/usb/atm/cxacru.c
> @@ -787,6 +787,9 @@ static const struct usb_device_id cxacru
>  	{ /* V = Conexant			P = ADSL modem (Hasbani project)	*/
>  		USB_DEVICE(0x0572, 0xcb00),	.driver_info = (unsigned long) &cxacru_cb00
>  	},
> +	{ /* V = Conexant             P = ADSL modem (Well PTI-800 */
> +		USB_DEVICE(0x0572, 0xcb02),	.driver_info = (unsigned long) &cxacru_cb00
> +	},
>  	{ /* V = Conexant			P = ADSL modem				*/
>  		USB_DEVICE(0x0572, 0xcb01),	.driver_info = (unsigned long) &cxacru_cb00
>  	},

The whitespace is mucked up, and a closing bracket is missing after Well PTI-800...

Try this:

Signed-off-by: Duncan Sands <baldrick@free.fr>

Index: cxacru.c
===================================================================
RCS file: /home/cvs/speedtch/cxacru.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -p -r1.39 -r1.40
--- cxacru.c	20 Nov 2005 13:34:07 -0000	1.39
+++ cxacru.c	29 Nov 2005 12:54:09 -0000	1.40
@@ -786,6 +786,9 @@ static const struct usb_device_id cxacru
 	{ /* V = Conexant			P = ADSL modem				*/
 		USB_DEVICE(0x0572, 0xcb01),	.driver_info = (unsigned long) &cxacru_cb00
 	},
+	{ /* V = Conexant			P = ADSL modem (Well PTI-800) */
+		USB_DEVICE(0x0572, 0xcb02),	.driver_info = (unsigned long) &cxacru_cb00
+	},
 	{ /* V = Conexant			P = ADSL modem				*/
 		USB_DEVICE(0x0572, 0xcb06),	.driver_info = (unsigned long) &cxacru_cb00
 	},

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PATCH] USB patches for 2.6.15-rc3
  2005-11-30  5:56 [GIT PATCH] USB patches for 2.6.15-rc3 Greg KH
  2005-11-30  5:58 ` [PATCH] USB: documentation update Greg KH
@ 2005-11-30 18:23 ` Linus Torvalds
  2005-11-30 19:35   ` Greg KH
  2005-11-30 19:39 ` [GIT PATCH] USB patches for 2.6.15-rc3 Jean Delvare
  2 siblings, 1 reply; 15+ messages in thread
From: Linus Torvalds @ 2005-11-30 18:23 UTC (permalink / raw)
  To: Greg KH
  Cc: Andrew Morton, Linux Kernel Mailing List, linux-usb-devel, Grant Coady



On Tue, 29 Nov 2005, Greg KH wrote:
>
>  include/linux/pci_ids.h           |    3 --
> 
> Grant Coady:
>       pci_ids.h: remove duplicate entries

Why is this in the USB tree, and WHY THE HELL DOES IT EXIST IN THE FIRST 
PLACE?

Not only does it have absolutely nothing to do with USB, it's totally 
bogus and incorrect. The commit log is also non-sensical, since it points 
to a commit that doesn't even exist in that tree.

It causes

	drivers/ide/pci/amd74xx.c:77: error: PCI_DEVICE_ID_AMD_CS5536_IDE undeclared here (not in a function)

Grr.

That hwmon thing didn't seem to have anything to do with usb either.

		Linus

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PATCH] USB patches for 2.6.15-rc3
  2005-11-30 18:23 ` [GIT PATCH] USB patches for 2.6.15-rc3 Linus Torvalds
@ 2005-11-30 19:35   ` Greg KH
  2005-11-30 20:35     ` Grant Coady
  2005-12-01  4:10     ` (no subject) Glenn L Shurson
  0 siblings, 2 replies; 15+ messages in thread
From: Greg KH @ 2005-11-30 19:35 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andrew Morton, Linux Kernel Mailing List, linux-usb-devel, Grant Coady

On Wed, Nov 30, 2005 at 10:23:34AM -0800, Linus Torvalds wrote:
> 
> 
> On Tue, 29 Nov 2005, Greg KH wrote:
> >
> >  include/linux/pci_ids.h           |    3 --
> > 
> > Grant Coady:
> >       pci_ids.h: remove duplicate entries
> 
> Why is this in the USB tree, and WHY THE HELL DOES IT EXIST IN THE FIRST 
> PLACE?

Sorry, in the body of the message I stated that I had a pci and a hwmon
driver patch too.  I should have corrected the Subject: too.

> Not only does it have absolutely nothing to do with USB, it's totally 
> bogus and incorrect. The commit log is also non-sensical, since it points 
> to a commit that doesn't even exist in that tree.
> 
> It causes
> 
> 	drivers/ide/pci/amd74xx.c:77: error: PCI_DEVICE_ID_AMD_CS5536_IDE undeclared here (not in a function)
> 
> Grr.

Ugh, I thought Grant wanted this in for the main kernel tree, sorry.

Grant, what git tree were you referring to?

I think I'll go back to sending individual patches late in the -rc
series from now on :)

Sorry for the trouble, and thanks for reverting the pci id patch in your
tree.

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PATCH] USB patches for 2.6.15-rc3
  2005-11-30  5:56 [GIT PATCH] USB patches for 2.6.15-rc3 Greg KH
  2005-11-30  5:58 ` [PATCH] USB: documentation update Greg KH
  2005-11-30 18:23 ` [GIT PATCH] USB patches for 2.6.15-rc3 Linus Torvalds
@ 2005-11-30 19:39 ` Jean Delvare
  2 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2005-11-30 19:39 UTC (permalink / raw)
  To: LKML

Hi all,

> Jean Delvare:
>       hwmon: w83792d fix unused fan pins

Credits for this one actually go to Yuan Mu. Sorry for messing up the
attribution in my original patch.

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PATCH] USB patches for 2.6.15-rc3
  2005-11-30 19:35   ` Greg KH
@ 2005-11-30 20:35     ` Grant Coady
  2005-12-01  4:10     ` (no subject) Glenn L Shurson
  1 sibling, 0 replies; 15+ messages in thread
From: Grant Coady @ 2005-11-30 20:35 UTC (permalink / raw)
  To: Greg KH
  Cc: Linus Torvalds, Andrew Morton, Linux Kernel Mailing List,
	linux-usb-devel, Grant Coady

On Wed, 30 Nov 2005 11:35:59 -0800, Greg KH <gregkh@suse.de> wrote:

>On Wed, Nov 30, 2005 at 10:23:34AM -0800, Linus Torvalds wrote:
>> 
>> 
>> On Tue, 29 Nov 2005, Greg KH wrote:
>> >
>> >  include/linux/pci_ids.h           |    3 --
>> > 
>> > Grant Coady:
>> >       pci_ids.h: remove duplicate entries
>> 
>> Why is this in the USB tree, and WHY THE HELL DOES IT EXIST IN THE FIRST 
>> PLACE?
>
>Sorry, in the body of the message I stated that I had a pci and a hwmon
>driver patch too.  I should have corrected the Subject: too.
>
>> Not only does it have absolutely nothing to do with USB, it's totally 
>> bogus and incorrect. The commit log is also non-sensical, since it points 
>> to a commit that doesn't even exist in that tree.
>> 
>> It causes
>> 
>> 	drivers/ide/pci/amd74xx.c:77: error: PCI_DEVICE_ID_AMD_CS5536_IDE undeclared here (not in a function)
>> 
>> Grr.
>
>Ugh, I thought Grant wanted this in for the main kernel tree, sorry.
>
>Grant, what git tree were you referring to?

The duplicates appeared in 2.6.15-rc2-mm1, which is what I patched 
against.  Sorry for confusion, thought I was doing the right thing 
finding the commit message in Andrew's 2.6.15-rc2-mm1-broken-out.tar.bz2

Grant.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver
  2005-11-30  8:09         ` [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver Duncan Sands
@ 2005-11-30 22:30           ` Greg KH
  2005-12-01  7:50             ` Duncan Sands
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2005-11-30 22:30 UTC (permalink / raw)
  To: Duncan Sands; +Cc: linux-usb-devel, linux-kernel, davej

On Wed, Nov 30, 2005 at 09:09:06AM +0100, Duncan Sands wrote:
> > diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
> > index 79861ee..9d59dc6 100644
> > --- a/drivers/usb/atm/cxacru.c
> > +++ b/drivers/usb/atm/cxacru.c
> > @@ -787,6 +787,9 @@ static const struct usb_device_id cxacru
> >  	{ /* V = Conexant			P = ADSL modem (Hasbani project)	*/
> >  		USB_DEVICE(0x0572, 0xcb00),	.driver_info = (unsigned long) &cxacru_cb00
> >  	},
> > +	{ /* V = Conexant             P = ADSL modem (Well PTI-800 */
> > +		USB_DEVICE(0x0572, 0xcb02),	.driver_info = (unsigned long) &cxacru_cb00
> > +	},
> >  	{ /* V = Conexant			P = ADSL modem				*/
> >  		USB_DEVICE(0x0572, 0xcb01),	.driver_info = (unsigned long) &cxacru_cb00
> >  	},
> 
> The whitespace is mucked up, and a closing bracket is missing after Well PTI-800...
> 
> Try this:
> 
> Signed-off-by: Duncan Sands <baldrick@free.fr>

Linus already applied the original version, care to make up a "fix up
whitespace" patch on top of that?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* (no subject)
  2005-11-30 19:35   ` Greg KH
  2005-11-30 20:35     ` Grant Coady
@ 2005-12-01  4:10     ` Glenn L Shurson
  1 sibling, 0 replies; 15+ messages in thread
From: Glenn L Shurson @ 2005-12-01  4:10 UTC (permalink / raw)
  To: Linux Kernel Mailing List

unsubscribe linux-kernel


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver
  2005-11-30 22:30           ` Greg KH
@ 2005-12-01  7:50             ` Duncan Sands
  0 siblings, 0 replies; 15+ messages in thread
From: Duncan Sands @ 2005-12-01  7:50 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb-devel, linux-kernel, davej

On Wednesday 30 November 2005 23:30, Greg KH wrote:
> On Wed, Nov 30, 2005 at 09:09:06AM +0100, Duncan Sands wrote:
> > > diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
> > > index 79861ee..9d59dc6 100644
> > > --- a/drivers/usb/atm/cxacru.c
> > > +++ b/drivers/usb/atm/cxacru.c
> > > @@ -787,6 +787,9 @@ static const struct usb_device_id cxacru
> > >  	{ /* V = Conexant			P = ADSL modem (Hasbani project)	*/
> > >  		USB_DEVICE(0x0572, 0xcb00),	.driver_info = (unsigned long) &cxacru_cb00
> > >  	},
> > > +	{ /* V = Conexant             P = ADSL modem (Well PTI-800 */
> > > +		USB_DEVICE(0x0572, 0xcb02),	.driver_info = (unsigned long) &cxacru_cb00
> > > +	},
> > >  	{ /* V = Conexant			P = ADSL modem				*/
> > >  		USB_DEVICE(0x0572, 0xcb01),	.driver_info = (unsigned long) &cxacru_cb00
> > >  	},
> > 
> > The whitespace is mucked up, and a closing bracket is missing after Well PTI-800...
> > 
> > Try this:
> > 
> > Signed-off-by: Duncan Sands <baldrick@free.fr>
> 
> Linus already applied the original version, care to make up a "fix up
> whitespace" patch on top of that?

OK.  I'll send it later along with some other improvements we've been working on.

Ciao,

Duncan.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2005-12-01  7:50 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-30  5:56 [GIT PATCH] USB patches for 2.6.15-rc3 Greg KH
2005-11-30  5:58 ` [PATCH] USB: documentation update Greg KH
2005-11-30  5:58   ` [PATCH] hwmon: w83792d fix unused fan pins Greg KH
2005-11-30  5:58     ` [PATCH] pci_ids.h: remove duplicate entries Greg KH
2005-11-30  5:58       ` [PATCH] Additional device ID for Conexant AccessRunner USB driver Greg KH
2005-11-30  5:58         ` [PATCH] USB: ehci fixups Greg KH
2005-11-30  5:58           ` [PATCH] USB: Fix USB suspend/resume crasher (#2) Greg KH
2005-11-30  8:09         ` [linux-usb-devel] [PATCH] Additional device ID for Conexant AccessRunner USB driver Duncan Sands
2005-11-30 22:30           ` Greg KH
2005-12-01  7:50             ` Duncan Sands
2005-11-30 18:23 ` [GIT PATCH] USB patches for 2.6.15-rc3 Linus Torvalds
2005-11-30 19:35   ` Greg KH
2005-11-30 20:35     ` Grant Coady
2005-12-01  4:10     ` (no subject) Glenn L Shurson
2005-11-30 19:39 ` [GIT PATCH] USB patches for 2.6.15-rc3 Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).