From 8d43e979e77a19f312ef50f7c55ee34d4843c913 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Fri, 8 Sep 2006 17:09:02 +0000 Subject: linux-openzaurus 2.6.16: backport of USB MaxPower limit information Revision: 69f0a166098b754a6fa1cbb114317c805f34e399 from .oz354x --- .../linux-openzaurus-2.6.16/maxpower-message.patch | 55 ++++++++++++++++++++++ packages/linux/linux-openzaurus_2.6.16.bb | 3 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 packages/linux/linux-openzaurus-2.6.16/maxpower-message.patch (limited to 'packages/linux') diff --git a/packages/linux/linux-openzaurus-2.6.16/maxpower-message.patch b/packages/linux/linux-openzaurus-2.6.16/maxpower-message.patch new file mode 100644 index 0000000000..6e76be4d1c --- /dev/null +++ b/packages/linux/linux-openzaurus-2.6.16/maxpower-message.patch @@ -0,0 +1,55 @@ +From: Daniel Drake +Date: Fri, 26 May 2006 20:36:28 +0000 (+0100) +Subject: [PATCH] USB: print message when device is rejected due to insufficient power +X-Git-Tag: v2.6.18-rc1 +X-Git-Url: http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1fbe75e12f0dd567c86533e13ba2605f3ecad2e1 + +[PATCH] USB: print message when device is rejected due to insufficient power + +2.6.16 introduces USB power budgeting in the Linux kernel, and since then, a +fair number of users have observed that some of their devices no longer work in +unpowered hubs (this is not a bug, the devices claim that they need more than +100mA). + +The very least we can do is print an informational message to the kernel log +when this happens, otherwise it is not at all clear why the device was not +accepted. + +Signed-off-by: Daniel Drake +Signed-off-by: Greg Kroah-Hartman +--- + +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -1176,6 +1176,7 @@ static int choose_configuration(struct u + { + int i; + int num_configs; ++ int insufficient_power = 0; + struct usb_host_config *c, *best; + + best = NULL; +@@ -1228,8 +1229,10 @@ static int choose_configuration(struct u + */ + + /* Rule out configs that draw too much bus current */ +- if (c->desc.bMaxPower * 2 > udev->bus_mA) ++ if (c->desc.bMaxPower * 2 > udev->bus_mA) { ++ insufficient_power++; + continue; ++ } + + /* If the first config's first interface is COMM/2/0xff + * (MSFT RNDIS), rule it out unless Linux has host-side +@@ -1263,6 +1266,11 @@ static int choose_configuration(struct u + best = c; + } + ++ if (insufficient_power > 0) ++ dev_info(&udev->dev, "rejected %d configuration%s " ++ "due to insufficient available bus power\n", ++ insufficient_power, plural(insufficient_power)); ++ + if (best) { + i = best->desc.bConfigurationValue; + dev_info(&udev->dev, diff --git a/packages/linux/linux-openzaurus_2.6.16.bb b/packages/linux/linux-openzaurus_2.6.16.bb index 3aa85c1f98..cbb379d399 100644 --- a/packages/linux/linux-openzaurus_2.6.16.bb +++ b/packages/linux/linux-openzaurus_2.6.16.bb @@ -1,6 +1,6 @@ require linux-openzaurus.inc -PR = "r42" +PR = "r45" # Handy URLs # git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \ @@ -68,6 +68,7 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \ file://00-hostap.patch;patch=1;status=merged \ file://10-pcnet.patch;patch=1;status=merged \ ${RPSRC}/alsa/asoc-v0.10rc4.patch;patch=1 \ + file://maxpower-message.patch;patch=1;status=backported \ ${RPSRC}/asoc_fixups-r0.patch;patch=1 \ ${RPSRC}/hx2750_base-r24.patch;patch=1 \ ${RPSRC}/hx2750_bl-r5.patch;patch=1 \ -- cgit v1.2.3