diff options
38 files changed, 3 insertions, 3747 deletions
diff --git a/driver/allow-legacy_ptys-to-be-set-to-0.patch b/driver/allow-legacy_ptys-to-be-set-to-0.patch deleted file mode 100644 index cb6944c1ab9cd4..00000000000000 --- a/driver/allow-legacy_ptys-to-be-set-to-0.patch +++ /dev/null @@ -1,30 +0,0 @@ -From kay.sievers@vrfy.org Wed Nov 21 21:55:26 2007 -From: Kay Sievers <kay.sievers@vrfy.org> -Date: Wed, 14 Nov 2007 23:39:42 +0100 -Subject: allow LEGACY_PTYS to be set to 0 -Message-ID: <1195079982.2731.2.camel@lov.site> - -The count of legacy pty devices can be set by a kernel commandline -parameter. For the distro kernel, we would like to disable all pty's -by default, but keep the opportunity to request devices on the kernel -commandline. - -Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> -Acked-by: Jean Delvare <jdelvare@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/char/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/char/Kconfig -+++ b/drivers/char/Kconfig -@@ -457,7 +457,7 @@ config LEGACY_PTYS - config LEGACY_PTY_COUNT - int "Maximum number of legacy PTY in use" - depends on LEGACY_PTYS -- range 1 256 -+ range 0 256 - default "256" - ---help--- - The maximum number of legacy PTYs that can be used at any one time. diff --git a/driver/create-sys-...-power-when-config_pm-is-set.patch b/driver/create-sys-...-power-when-config_pm-is-set.patch deleted file mode 100644 index ef0695bbd7183f..00000000000000 --- a/driver/create-sys-...-power-when-config_pm-is-set.patch +++ /dev/null @@ -1,147 +0,0 @@ -From akpm@linux-foundation.org Wed Nov 21 14:56:13 2007 -From: Daniel Drake <dsd@gentoo.org> -Date: Wed, 21 Nov 2007 14:55:18 -0800 -Subject: create /sys/.../power when CONFIG_PM is set -To: greg@kroah.com -Cc: kay.sievers@vrfy.org, akpm@linux-foundation.org, dsd@gentoo.org, rjw@sisk.pl, stable@kernel.org, stern@rowland.harvard.edu -Message-ID: <200711212255.lALMtIeA013304@imap1.linux-foundation.org> - - -From: Daniel Drake <dsd@gentoo.org> - -The CONFIG_SUSPEND changes in 2.6.23 caused a regression under certain -configuration conditions (SUSPEND=n, USB_AUTOSUSPEND=y) where all USB -device attributes in sysfs (idVendor, idProduct, ...) silently disappeared, -causing udev breakage and more. - -The cause of this is that the /sys/.../power subdirectory is now only -created when CONFIG_PM_SLEEP is set, however, it should be created whenever -CONFIG_PM is set to handle the above situation. The following patch fixes -the regression. - -Signed-off-by: Daniel Drake <dsd@gentoo.org> -Acked-by: Rafael J. Wysocki <rjw@sisk.pl> -Cc: Alan Stern <stern@rowland.harvard.edu> -Cc: Kay Sievers <kay.sievers@vrfy.org> -Cc: stable <stable@kernel.org> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/base/core.c | 4 +++- - drivers/base/power/Makefile | 3 ++- - drivers/base/power/main.c | 8 +------- - drivers/base/power/power.h | 28 +++++++++++++++++++++------- - 4 files changed, 27 insertions(+), 16 deletions(-) - ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -770,9 +770,10 @@ int device_add(struct device *dev) - error = device_add_attrs(dev); - if (error) - goto AttrsError; -- error = device_pm_add(dev); -+ error = dpm_sysfs_add(dev); - if (error) - goto PMError; -+ device_pm_add(dev); - error = bus_add_device(dev); - if (error) - goto BusError; -@@ -797,6 +798,7 @@ int device_add(struct device *dev) - return error; - BusError: - device_pm_remove(dev); -+ dpm_sysfs_remove(dev); - PMError: - if (dev->bus) - blocking_notifier_call_chain(&dev->bus->bus_notifier, ---- a/drivers/base/power/Makefile -+++ b/drivers/base/power/Makefile -@@ -1,5 +1,6 @@ - obj-y := shutdown.o --obj-$(CONFIG_PM_SLEEP) += main.o sysfs.o -+obj-$(CONFIG_PM) += sysfs.o -+obj-$(CONFIG_PM_SLEEP) += main.o - obj-$(CONFIG_PM_TRACE) += trace.o - - ifeq ($(CONFIG_DEBUG_DRIVER),y) ---- a/drivers/base/power/main.c -+++ b/drivers/base/power/main.c -@@ -38,20 +38,14 @@ static DEFINE_MUTEX(dpm_list_mtx); - int (*platform_enable_wakeup)(struct device *dev, int is_on); - - --int device_pm_add(struct device *dev) -+void device_pm_add(struct device *dev) - { -- int error; -- - pr_debug("PM: Adding info for %s:%s\n", - dev->bus ? dev->bus->name : "No Bus", - kobject_name(&dev->kobj)); - mutex_lock(&dpm_list_mtx); - list_add_tail(&dev->power.entry, &dpm_active); -- error = dpm_sysfs_add(dev); -- if (error) -- list_del(&dev->power.entry); - mutex_unlock(&dpm_list_mtx); -- return error; - } - - void device_pm_remove(struct device *dev) ---- a/drivers/base/power/power.h -+++ b/drivers/base/power/power.h -@@ -13,14 +13,29 @@ extern void device_shutdown(void); - - extern struct list_head dpm_active; /* The active device list */ - --static inline struct device * to_device(struct list_head * entry) -+static inline struct device *to_device(struct list_head *entry) - { - return container_of(entry, struct device, power.entry); - } - --extern int device_pm_add(struct device *); -+extern void device_pm_add(struct device *); - extern void device_pm_remove(struct device *); - -+#else /* CONFIG_PM_SLEEP */ -+ -+ -+static inline void device_pm_add(struct device *dev) -+{ -+} -+ -+static inline void device_pm_remove(struct device *dev) -+{ -+} -+ -+#endif -+ -+#ifdef CONFIG_PM -+ - /* - * sysfs.c - */ -@@ -28,16 +43,15 @@ extern void device_pm_remove(struct devi - extern int dpm_sysfs_add(struct device *); - extern void dpm_sysfs_remove(struct device *); - --#else /* CONFIG_PM_SLEEP */ -- -+#else /* CONFIG_PM */ - --static inline int device_pm_add(struct device * dev) -+static inline int dpm_sysfs_add(struct device *dev) - { - return 0; - } --static inline void device_pm_remove(struct device * dev) --{ - -+static inline void dpm_sysfs_remove(struct device *dev) -+{ - } - - #endif diff --git a/driver/kobject-two-typo-fixes.patch b/driver/kobject-two-typo-fixes.patch deleted file mode 100644 index dea392855994e4..00000000000000 --- a/driver/kobject-two-typo-fixes.patch +++ /dev/null @@ -1,32 +0,0 @@ -From johannes@sipsolutions.net Mon Nov 26 15:12:16 2007 -From: Johannes Berg <johannes@sipsolutions.net> -Date: Mon, 05 Nov 2007 13:59:11 +0100 -Subject: kobject: two typo fixes -To: trivial@kernel.org -Cc: Greg KH <gregkh@suse.de>, Linux Kernel list <linux-kernel@vger.kernel.org> -Message-ID: <1194267551.13501.2.camel@johannes.berg> - - -This fixes two typos from commit -34358c26a2c96b2a068dc44e0ac602106a466bce. - -Signed-off-by: Johannes Berg <johannes@sipsolutions.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - lib/kobject.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/lib/kobject.c -+++ b/lib/kobject.c -@@ -313,8 +313,8 @@ int kobject_rename(struct kobject * kobj - struct kobject *temp_kobj; - temp_kobj = kset_find_obj(kobj->kset, new_name); - if (temp_kobj) { -- printk(KERN_WARNING "kobject '%s' can not be renamed " -- "to '%s' as '%s' is already in existance.\n", -+ printk(KERN_WARNING "kobject '%s' cannot be renamed " -+ "to '%s' as '%s' is already in existence.\n", - kobject_name(kobj), new_name, new_name); - kobject_put(temp_kobj); - return -EINVAL; diff --git a/driver/kset-convert-pci-hotplug-to-use-kset_create_and_register.patch b/driver/kset-convert-pci-hotplug-to-use-kset_create_and_register.patch index b1d42412a647c2..fad0eed818e430 100644 --- a/driver/kset-convert-pci-hotplug-to-use-kset_create_and_register.patch +++ b/driver/kset-convert-pci-hotplug-to-use-kset_create_and_register.patch @@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/pci/hotplug/acpiphp_ibm.c +++ b/drivers/pci/hotplug/acpiphp_ibm.c -@@ -428,7 +428,7 @@ static int __init ibm_acpiphp_init(void) +@@ -429,7 +429,7 @@ static int __init ibm_acpiphp_init(void) int retval = 0; acpi_status status; struct acpi_device *device; @@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> dbg("%s\n", __FUNCTION__); -@@ -475,7 +475,7 @@ init_return: +@@ -476,7 +476,7 @@ init_return: static void __exit ibm_acpiphp_exit(void) { acpi_status status; diff --git a/driver/sysfs-fix-off-by-one-error-in-fill_read_buffer.patch b/driver/sysfs-fix-off-by-one-error-in-fill_read_buffer.patch deleted file mode 100644 index a910bb8c491762..00000000000000 --- a/driver/sysfs-fix-off-by-one-error-in-fill_read_buffer.patch +++ /dev/null @@ -1,57 +0,0 @@ -From akpm@linux-foundation.org Wed Nov 21 14:56:04 2007 -From: Miao Xie <miaox@cn.fujitsu.com> -Date: Wed, 21 Nov 2007 14:55:19 -0800 -Subject: sysfs: fix off-by-one error in fill_read_buffer() -To: greg@kroah.com -Cc: <kay.sievers@vrfy.org>, akpm@linux-foundation.org, miaox@cn.fujitsu.com -Message-ID: <200711212255.lALMtJqh013307@imap1.linux-foundation.org> - - -From: Miao Xie <miaox@cn.fujitsu.com> - -I found that there is a off-by-one problem in the following code. - -Version: 2.6.24-rc2 -File: fs/sysfs/file.c:118-122 -Function: fill_read_buffer --------------------------------------------------------------------- - count = ops->show(kobj, attr_sd->s_attr.attr, buffer->page); - - sysfs_put_active_two(attr_sd); - - BUG_ON(count > (ssize_t)PAGE_SIZE); --------------------------------------------------------------------- - -Because according to the specification of the sysfs and the implement of -the show methods, the show methods return the number of bytes which would -be generated for the given input, excluding the trailing null.So if the -return value of the show methods equals PAGE_SIZE - 1, the buffer is full -in fact. And if the return value equals PAGE_SIZE, the resulting string -was already truncated,or buffer overflow occurred. - -This patch fixes an off-by-one error in fill_read_buffer. - -Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Acked-by: Tejun Heo <teheo@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - fs/sysfs/file.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/fs/sysfs/file.c -+++ b/fs/sysfs/file.c -@@ -119,7 +119,11 @@ static int fill_read_buffer(struct dentr - - sysfs_put_active_two(attr_sd); - -- BUG_ON(count > (ssize_t)PAGE_SIZE); -+ /* -+ * The code works fine with PAGE_SIZE return but it's likely to -+ * indicate truncated result or overflow in normal use cases. -+ */ -+ BUG_ON(count >= (ssize_t)PAGE_SIZE); - if (count >= 0) { - buffer->needs_read_fill = 0; - buffer->count = count; diff --git a/driver/uio-add-uio-documentation-target-to-docbook-makefile.patch b/driver/uio-add-uio-documentation-target-to-docbook-makefile.patch deleted file mode 100644 index d7eec6161963ac..00000000000000 --- a/driver/uio-add-uio-documentation-target-to-docbook-makefile.patch +++ /dev/null @@ -1,32 +0,0 @@ -From hjk@linutronix.de Mon Nov 26 14:57:18 2007 -From: Hans J Koch <hjk@linutronix.de> -Date: Mon, 26 Nov 2007 22:10:35 +0100 -Subject: UIO: add UIO documentation target to DocBook Makefile -To: Greg KH <greg@kroah.com> -Message-ID: <20071126221035.7ed600fe@dilbert.local> - -From: Hans J Koch <hjk@linutronix.de> - -Add the DocBook documentation for the Userspace I/O framework -to the Makefile. - -Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> -Signed-off-by: Hans J Koch <hjk@linutronix.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - Documentation/DocBook/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Documentation/DocBook/Makefile -+++ b/Documentation/DocBook/Makefile -@@ -11,7 +11,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mc - procfs-guide.xml writing_usb_driver.xml \ - kernel-api.xml filesystems.xml lsm.xml usb.xml \ - gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ -- genericirq.xml s390-drivers.xml -+ genericirq.xml s390-drivers.xml uio-howto.xml - - ### - # The build process is as follows (targets): diff --git a/driver/uio-fix-up-the-uio-documentation.patch b/driver/uio-fix-up-the-uio-documentation.patch deleted file mode 100644 index aa7014ad178ba9..00000000000000 --- a/driver/uio-fix-up-the-uio-documentation.patch +++ /dev/null @@ -1,151 +0,0 @@ -From hjk@linutronix.de Mon Nov 26 14:55:06 2007 -From: Hans J Koch <hjk@linutronix.de> -Date: Mon, 26 Nov 2007 22:03:29 +0100 -Subject: UIO: fix up the UIO documentation -To: Greg KH <greg@kroah.com> -Message-ID: <20071126220329.69a14a88@dilbert.local> - -From: Hans J Koch <hjk@linutronix.de> - -Remove references to the old uio_dummy demo module from UIO documentation. -Add a small paragraph to make it clearer that UIO is not a universal driver -interface. - -Signed-off-by: Hans J Koch <hjk@linutronix.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - Documentation/DocBook/uio-howto.tmpl | 90 ++++++++++++----------------------- - 1 file changed, 32 insertions(+), 58 deletions(-) - ---- a/Documentation/DocBook/uio-howto.tmpl -+++ b/Documentation/DocBook/uio-howto.tmpl -@@ -30,6 +30,12 @@ - - <revhistory> - <revision> -+ <revnumber>0.4</revnumber> -+ <date>2007-11-26</date> -+ <authorinitials>hjk</authorinitials> -+ <revremark>Removed section about uio_dummy.</revremark> -+ </revision> -+ <revision> - <revnumber>0.3</revnumber> - <date>2007-04-29</date> - <authorinitials>hjk</authorinitials> -@@ -94,6 +100,26 @@ interested in translating it, please ema - user space. This simplifies development and reduces the risk of - serious bugs within a kernel module. - </para> -+ <para> -+ Please note that UIO is not an universal driver interface. Devices -+ that are already handled well by other kernel subsystems (like -+ networking or serial or USB) are no candidates for an UIO driver. -+ Hardware that is ideally suited for an UIO driver fulfills all of -+ the following: -+ </para> -+<itemizedlist> -+<listitem> -+ <para>The device has memory that can be mapped. The device can be -+ controlled completely by writing to this memory.</para> -+</listitem> -+<listitem> -+ <para>The device usually generates interrupts.</para> -+</listitem> -+<listitem> -+ <para>The device does not fit into one of the standard kernel -+ subsystems.</para> -+</listitem> -+</itemizedlist> - </sect1> - - <sect1 id="thanks"> -@@ -174,8 +200,9 @@ interested in translating it, please ema - For cards that don't generate interrupts but need to be - polled, there is the possibility to set up a timer that - triggers the interrupt handler at configurable time intervals. -- See <filename>drivers/uio/uio_dummy.c</filename> for an -- example of this technique. -+ This interrupt simulation is done by calling -+ <function>uio_event_notify()</function> -+ from the timer's event handler. - </para> - - <para> -@@ -263,63 +290,11 @@ offset = N * getpagesize(); - </sect1> - </chapter> - --<chapter id="using-uio_dummy" xreflabel="Using uio_dummy"> --<?dbhtml filename="using-uio_dummy.html"?> --<title>Using uio_dummy</title> -- <para> -- Well, there is no real use for uio_dummy. Its only purpose is -- to test most parts of the UIO system (everything except -- hardware interrupts), and to serve as an example for the -- kernel module that you will have to write yourself. -- </para> -- --<sect1 id="what_uio_dummy_does"> --<title>What uio_dummy does</title> -- <para> -- The kernel module <filename>uio_dummy.ko</filename> creates a -- device that uses a timer to generate periodic interrupts. The -- interrupt handler does nothing but increment a counter. The -- driver adds two custom attributes, <varname>count</varname> -- and <varname>freq</varname>, that appear under -- <filename>/sys/devices/platform/uio_dummy/</filename>. -- </para> -- -- <para> -- The attribute <varname>count</varname> can be read and -- written. The associated file -- <filename>/sys/devices/platform/uio_dummy/count</filename> -- appears as a normal text file and contains the total number of -- timer interrupts. If you look at it (e.g. using -- <function>cat</function>), you'll notice it is slowly counting -- up. -- </para> -- -- <para> -- The attribute <varname>freq</varname> can be read and written. -- The content of -- <filename>/sys/devices/platform/uio_dummy/freq</filename> -- represents the number of system timer ticks between two timer -- interrupts. The default value of <varname>freq</varname> is -- the value of the kernel variable <varname>HZ</varname>, which -- gives you an interval of one second. Lower values will -- increase the frequency. Try the following: -- </para> --<programlisting format="linespecific"> --cd /sys/devices/platform/uio_dummy/ --echo 100 > freq --</programlisting> -- <para> -- Use <function>cat count</function> to see how the interrupt -- frequency changes. -- </para> --</sect1> --</chapter> -- - <chapter id="custom_kernel_module" xreflabel="Writing your own kernel module"> - <?dbhtml filename="custom_kernel_module.html"?> - <title>Writing your own kernel module</title> - <para> -- Please have a look at <filename>uio_dummy.c</filename> as an -+ Please have a look at <filename>uio_cif.c</filename> as an - example. The following paragraphs explain the different - sections of this file. - </para> -@@ -354,9 +329,8 @@ See the description below for details. - interrupt, it's your modules task to determine the irq number during - initialization. If you don't have a hardware generated interrupt but - want to trigger the interrupt handler in some other way, set --<varname>irq</varname> to <varname>UIO_IRQ_CUSTOM</varname>. The --uio_dummy module does this as it triggers the event mechanism in a timer --routine. If you had no interrupt at all, you could set -+<varname>irq</varname> to <varname>UIO_IRQ_CUSTOM</varname>. -+If you had no interrupt at all, you could set - <varname>irq</varname> to <varname>UIO_IRQ_NONE</varname>, though this - rarely makes sense. - </para></listitem> diff --git a/pci/pci-aer-fix-kernel-doc-mistakes.patch b/pci/pci-aer-fix-kernel-doc-mistakes.patch deleted file mode 100644 index 3849f1bf509690..00000000000000 --- a/pci/pci-aer-fix-kernel-doc-mistakes.patch +++ /dev/null @@ -1,138 +0,0 @@ -From rdunlap@xenotime.net Wed Nov 28 11:54:28 2007 -From: Randy Dunlap <rdunlap@xenotime.net> -Date: Wed, 28 Nov 2007 09:04:23 -0800 -Subject: pci-aer: fix kernel-doc mistakes -To: linux-pci@atrey.karlin.mff.cuni.cz -Cc: linas@austin.ibm.com, gregkh@suse.de -Message-ID: <20071128090423.e774d959.rdunlap@xenotime.net> - - -From: Randy Dunlap <randy.dunlap@oracle.com> - -Fix kernel-doc parameter names and ending block comments (change **/ -to */). - -Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> -Acked-by: Linas Vepstas <linas@linas.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/pci/pcie/aer/aerdrv_core.c | 29 +++++++++++++++-------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - ---- a/drivers/pci/pcie/aer/aerdrv_core.c -+++ b/drivers/pci/pcie/aer/aerdrv_core.c -@@ -168,11 +168,11 @@ static int find_device_iter(struct devic - - /** - * find_source_device - search through device hierarchy for source device -- * @p_dev: pointer to Root Port pci_dev data structure -+ * @parent: pointer to Root Port pci_dev data structure - * @id: device ID of agent who sends an error message to this Root Port - * - * Invoked when error is detected at the Root Port. -- **/ -+ */ - static struct device* find_source_device(struct pci_dev *parent, u16 id) - { - struct pci_dev *dev = parent; -@@ -286,14 +286,15 @@ static void report_resume(struct pci_dev - - /** - * broadcast_error_message - handle message broadcast to downstream drivers -- * @device: pointer to from where in a hierarchy message is broadcasted down -- * @api: callback to be broadcasted -+ * @dev: pointer to from where in a hierarchy message is broadcasted down - * @state: error state -+ * @error_mesg: message to print -+ * @cb: callback to be broadcasted - * - * Invoked during error recovery process. Once being invoked, the content - * of error severity will be broadcasted to all downstream drivers in a - * hierarchy in question. -- **/ -+ */ - static pci_ers_result_t broadcast_error_message(struct pci_dev *dev, - enum pci_channel_state state, - char *error_mesg, -@@ -428,7 +429,7 @@ static pci_ers_result_t reset_link(struc - * Invoked when an error is nonfatal/fatal. Once being invoked, broadcast - * error detected message to all downstream drivers within a hierarchy in - * question and return the returned code. -- **/ -+ */ - static pci_ers_result_t do_recovery(struct pcie_device *aerdev, - struct pci_dev *dev, - int severity) -@@ -488,7 +489,7 @@ static pci_ers_result_t do_recovery(stru - * @info: comprehensive error information - * - * Invoked when an error being detected by Root Port. -- **/ -+ */ - static void handle_error_source(struct pcie_device * aerdev, - struct pci_dev *dev, - struct aer_err_info info) -@@ -521,7 +522,7 @@ static void handle_error_source(struct p - * @rpc: pointer to a Root Port data structure - * - * Invoked when PCIE bus loads AER service driver. -- **/ -+ */ - void aer_enable_rootport(struct aer_rpc *rpc) - { - struct pci_dev *pdev = rpc->rpd->port; -@@ -569,7 +570,7 @@ void aer_enable_rootport(struct aer_rpc - * @rpc: pointer to a Root Port data structure - * - * Invoked when PCIE bus unloads AER service driver. -- **/ -+ */ - static void disable_root_aer(struct aer_rpc *rpc) - { - struct pci_dev *pdev = rpc->rpd->port; -@@ -590,7 +591,7 @@ static void disable_root_aer(struct aer_ - * @rpc: pointer to the root port which holds an error - * - * Invoked by DPC handler to consume an error. -- **/ -+ */ - static struct aer_err_source* get_e_source(struct aer_rpc *rpc) - { - struct aer_err_source *e_source; -@@ -655,7 +656,7 @@ static int get_device_error_info(struct - * aer_isr_one_error - consume an error detected by root port - * @p_device: pointer to error root port service device - * @e_src: pointer to an error source -- **/ -+ */ - static void aer_isr_one_error(struct pcie_device *p_device, - struct aer_err_source *e_src) - { -@@ -706,7 +707,7 @@ static void aer_isr_one_error(struct pci - * @work: definition of this work item - * - * Invoked, as DPC, when root port records new detected error -- **/ -+ */ - void aer_isr(struct work_struct *work) - { - struct aer_rpc *rpc = container_of(work, struct aer_rpc, dpc_handler); -@@ -729,7 +730,7 @@ void aer_isr(struct work_struct *work) - * @rpc: pointer to a root port device being deleted - * - * Invoked when AER service unloaded on a specific Root Port -- **/ -+ */ - void aer_delete_rootport(struct aer_rpc *rpc) - { - /* Disable root port AER itself */ -@@ -743,7 +744,7 @@ void aer_delete_rootport(struct aer_rpc - * @dev: pointer to AER pcie device - * - * Invoked when AER service driver is loaded. -- **/ -+ */ - int aer_init(struct pcie_device *dev) - { - if (aer_osc_setup(dev) && !forceload) diff --git a/pci/pci-drivers-pci-pci-sysfs.c-add-missing-pci_dev_put.patch b/pci/pci-drivers-pci-pci-sysfs.c-add-missing-pci_dev_put.patch deleted file mode 100644 index 50edb6404706a5..00000000000000 --- a/pci/pci-drivers-pci-pci-sysfs.c-add-missing-pci_dev_put.patch +++ /dev/null @@ -1,57 +0,0 @@ -From julia@diku.dk Mon Nov 26 21:52:39 2007 -From: Julia Lawall <julia@diku.dk> -Date: Tue, 20 Nov 2007 08:41:16 +0100 (CET) -Subject: PCI: drivers/pci/pci-sysfs.c: Add missing pci_dev_put -To: gregkh@suse.de -Message-ID: <Pine.LNX.4.64.0711200840180.8156@ask.diku.dk> - -From: Julia Lawall <julia@diku.dk> - -There should be a pci_dev_put when breaking out of a loop that iterates -over calls to pci_get_device and similar functions. - -This was fixed using the following semantic patch. - -// <smpl> -@@ -identifier d; -type T; -expression e; -iterator for_each_pci_dev; -@@ - -T *d; -... -for_each_pci_dev(d) - {... when != pci_dev_put(d) - when != e = d -( - return d; -| -+ pci_dev_put(d); -? return ...; -) -...} -// </smpl> - -Signed-off-by: Julia Lawall <julia@diku.dk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/pci/pci-sysfs.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/pci/pci-sysfs.c -+++ b/drivers/pci/pci-sysfs.c -@@ -702,8 +702,10 @@ static int __init pci_sysfs_init(void) - sysfs_initialized = 1; - for_each_pci_dev(pdev) { - retval = pci_create_sysfs_dev_files(pdev); -- if (retval) -+ if (retval) { -+ pci_dev_put(pdev); - return retval; -+ } - } - - return 0; diff --git a/pci/pci-hotplug-kernel-doc-fixes.patch b/pci/pci-hotplug-kernel-doc-fixes.patch deleted file mode 100644 index b032dfbf576b0e..00000000000000 --- a/pci/pci-hotplug-kernel-doc-fixes.patch +++ /dev/null @@ -1,1105 +0,0 @@ -From rdunlap@xenotime.net Wed Nov 28 11:54:57 2007 -From: Randy Dunlap <rdunlap@xenotime.net> -Date: Wed, 28 Nov 2007 09:04:30 -0800 -Subject: pci hotplug: kernel-doc fixes -To: pcihpd-discuss@lists.sourceforge.net -Cc: scottm@somanetworks.com, kristen.c.accardi@intel.com -Message-ID: <20071128090430.b7ac8f2a.rdunlap@xenotime.net> - - -From: Randy Dunlap <randy.dunlap@oracle.com> - -acpiphp.h: not using kernel-doc, so change /** to /* -acpiphp_core.c: lots of kernel-doc cleanups -acpiphp_glue.c: lots of kernel-doc cleanups -acpiphp_ibm.c: lots of kernel-doc cleanups -cpqphp_core.c: lots of kernel-doc cleanups -cpqphp_ctrl.c: lots of kernel-doc cleanups -fakephp.c: correct kernel-doc notation -pciehp_ctrl.c: correct kernel-doc notation -rpadlpar_core.c: correct function names & kernel-doc notation -rpaphp_core.c: correct kernel-doc notation -shpchp_ctrl.c: correct kernel-doc notation - -Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> -Cc: Kristen Accardi <kristen.c.accardi@intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/pci/hotplug/acpiphp.h | 8 +-- - drivers/pci/hotplug/acpiphp_core.c | 29 ++++------ - drivers/pci/hotplug/acpiphp_glue.c | 36 +++++-------- - drivers/pci/hotplug/acpiphp_ibm.c | 47 +++++++++-------- - drivers/pci/hotplug/cpqphp_core.c | 41 ++++++++------- - drivers/pci/hotplug/cpqphp_ctrl.c | 96 +++++++++++++++++------------------- - drivers/pci/hotplug/fakephp.c | 14 ++--- - drivers/pci/hotplug/pciehp_ctrl.c | 16 +++--- - drivers/pci/hotplug/rpadlpar_core.c | 19 +++---- - drivers/pci/hotplug/rpaphp_core.c | 15 ++++- - drivers/pci/hotplug/rpaphp_pci.c | 1 - drivers/pci/hotplug/shpchp_ctrl.c | 16 +++--- - 12 files changed, 169 insertions(+), 169 deletions(-) - ---- a/drivers/pci/hotplug/acpiphp.h -+++ b/drivers/pci/hotplug/acpiphp.h -@@ -66,7 +66,7 @@ struct slot { - char name[SLOT_NAME_SIZE]; - }; - --/** -+/* - * struct acpiphp_bridge - PCI bridge information - * - * for each bridge device in ACPI namespace -@@ -97,7 +97,7 @@ struct acpiphp_bridge { - }; - - --/** -+/* - * struct acpiphp_slot - PCI slot information - * - * PCI slot information for each *physical* PCI slot -@@ -118,7 +118,7 @@ struct acpiphp_slot { - }; - - --/** -+/* - * struct acpiphp_func - PCI function information - * - * PCI function information for each object in ACPI namespace -@@ -137,7 +137,7 @@ struct acpiphp_func { - u32 flags; /* see below */ - }; - --/** -+/* - * struct acpiphp_attention_info - device specific attention registration - * - * ACPI has no generic method of setting/getting attention status ---- a/drivers/pci/hotplug/acpiphp_core.c -+++ b/drivers/pci/hotplug/acpiphp_core.c -@@ -91,10 +91,10 @@ static struct hotplug_slot_ops acpi_hotp - * acpiphp_register_attention - set attention LED callback - * @info: must be completely filled with LED callbacks - * -- * Description: this is used to register a hardware specific ACPI -+ * Description: This is used to register a hardware specific ACPI - * driver that manipulates the attention LED. All the fields in - * info must be set. -- **/ -+ */ - int acpiphp_register_attention(struct acpiphp_attention_info *info) - { - int retval = -EINVAL; -@@ -112,10 +112,10 @@ int acpiphp_register_attention(struct ac - * acpiphp_unregister_attention - unset attention LED callback - * @info: must match the pointer used to register - * -- * Description: this is used to un-register a hardware specific acpi -+ * Description: This is used to un-register a hardware specific acpi - * driver that manipulates the attention LED. The pointer to the - * info struct must be the same as the one used to set it. -- **/ -+ */ - int acpiphp_unregister_attention(struct acpiphp_attention_info *info) - { - int retval = -EINVAL; -@@ -133,7 +133,6 @@ int acpiphp_unregister_attention(struct - * @hotplug_slot: slot to enable - * - * Actual tasks are done in acpiphp_enable_slot() -- * - */ - static int enable_slot(struct hotplug_slot *hotplug_slot) - { -@@ -151,7 +150,6 @@ static int enable_slot(struct hotplug_sl - * @hotplug_slot: slot to disable - * - * Actual tasks are done in acpiphp_disable_slot() -- * - */ - static int disable_slot(struct hotplug_slot *hotplug_slot) - { -@@ -168,15 +166,15 @@ static int disable_slot(struct hotplug_s - } - - -- /** -- * set_attention_status - set attention LED -+/** -+ * set_attention_status - set attention LED - * @hotplug_slot: slot to set attention LED on - * @status: value to set attention LED to (0 or 1) - * - * attention status LED, so we use a callback that - * was registered with us. This allows hardware specific - * ACPI implementations to blink the light for us. -- **/ -+ */ - static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status) - { - int retval = -ENODEV; -@@ -199,7 +197,6 @@ static int disable_slot(struct hotplug_s - * - * Some platforms may not implement _STA method properly. - * In that case, the value returned may not be reliable. -- * - */ - static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) - { -@@ -213,7 +210,7 @@ static int get_power_status(struct hotpl - } - - -- /** -+/** - * get_attention_status - get attention LED status - * @hotplug_slot: slot to get status from - * @value: returns with value of attention LED -@@ -221,8 +218,8 @@ static int get_power_status(struct hotpl - * ACPI doesn't have known method to determine the state - * of the attention status LED, so we use a callback that - * was registered with us. This allows hardware specific -- * ACPI implementations to determine its state -- **/ -+ * ACPI implementations to determine its state. -+ */ - static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) - { - int retval = -EINVAL; -@@ -244,8 +241,7 @@ static int get_attention_status(struct h - * @value: pointer to store status - * - * ACPI doesn't provide any formal means to access latch status. -- * Instead, we fake latch status from _STA -- * -+ * Instead, we fake latch status from _STA. - */ - static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) - { -@@ -265,8 +261,7 @@ static int get_latch_status(struct hotpl - * @value: pointer to store status - * - * ACPI doesn't provide any formal means to access adapter status. -- * Instead, we fake adapter status from _STA -- * -+ * Instead, we fake adapter status from _STA. - */ - static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value) - { ---- a/drivers/pci/hotplug/acpiphp_glue.c -+++ b/drivers/pci/hotplug/acpiphp_glue.c -@@ -82,7 +82,6 @@ static void handle_hotplug_event_func(ac - * 2. has _PS0 method - * 3. has _PS3 method - * 4. .. -- * - */ - static int is_ejectable(acpi_handle handle) - { -@@ -986,10 +985,8 @@ static int power_off_slot(struct acpiphp - - - /** -- * acpiphp_max_busnr - return the highest reserved bus number under -- * the given bus. -+ * acpiphp_max_busnr - return the highest reserved bus number under the given bus. - * @bus: bus to start search with -- * - */ - static unsigned char acpiphp_max_busnr(struct pci_bus *bus) - { -@@ -1018,7 +1015,6 @@ static unsigned char acpiphp_max_busnr(s - /** - * acpiphp_bus_add - add a new bus to acpi subsystem - * @func: acpiphp_func of the bridge -- * - */ - static int acpiphp_bus_add(struct acpiphp_func *func) - { -@@ -1063,7 +1059,6 @@ acpiphp_bus_add_out: - /** - * acpiphp_bus_trim - trim a bus from acpi subsystem - * @handle: handle to acpi namespace -- * - */ - static int acpiphp_bus_trim(acpi_handle handle) - { -@@ -1089,7 +1084,6 @@ static int acpiphp_bus_trim(acpi_handle - * - * This function should be called per *physical slot*, - * not per each slot object in ACPI namespace. -- * - */ - static int enable_device(struct acpiphp_slot *slot) - { -@@ -1185,6 +1179,7 @@ static void disable_bridges(struct pci_b - - /** - * disable_device - disable a slot -+ * @slot: ACPI PHP slot - */ - static int disable_device(struct acpiphp_slot *slot) - { -@@ -1240,14 +1235,15 @@ static int disable_device(struct acpiphp - - /** - * get_slot_status - get ACPI slot status -+ * @slot: ACPI PHP slot - * -- * if a slot has _STA for each function and if any one of them -- * returned non-zero status, return it -+ * If a slot has _STA for each function and if any one of them -+ * returned non-zero status, return it. - * -- * if a slot doesn't have _STA and if any one of its functions' -- * configuration space is configured, return 0x0f as a _STA -+ * If a slot doesn't have _STA and if any one of its functions' -+ * configuration space is configured, return 0x0f as a _STA. - * -- * otherwise return 0 -+ * Otherwise return 0. - */ - static unsigned int get_slot_status(struct acpiphp_slot *slot) - { -@@ -1281,6 +1277,7 @@ static unsigned int get_slot_status(stru - - /** - * acpiphp_eject_slot - physically eject the slot -+ * @slot: ACPI PHP slot - */ - int acpiphp_eject_slot(struct acpiphp_slot *slot) - { -@@ -1314,6 +1311,7 @@ int acpiphp_eject_slot(struct acpiphp_sl - - /** - * acpiphp_check_bridge - re-enumerate devices -+ * @bridge: where to begin re-enumeration - * - * Iterate over all slots under this bridge and make sure that if a - * card is present they are enabled, and if not they are disabled. -@@ -1538,13 +1536,11 @@ check_sub_bridges(acpi_handle handle, u3 - - /** - * handle_hotplug_event_bridge - handle ACPI event on bridges -- * - * @handle: Notify()'ed acpi_handle - * @type: Notify code - * @context: pointer to acpiphp_bridge structure - * -- * handles ACPI event notification on {host,p2p} bridges -- * -+ * Handles ACPI event notification on {host,p2p} bridges. - */ - static void handle_hotplug_event_bridge(acpi_handle handle, u32 type, void *context) - { -@@ -1634,13 +1630,11 @@ static void handle_hotplug_event_bridge( - - /** - * handle_hotplug_event_func - handle ACPI event on functions (i.e. slots) -- * - * @handle: Notify()'ed acpi_handle - * @type: Notify code - * @context: pointer to acpiphp_func structure - * -- * handles ACPI event notification on slots -- * -+ * Handles ACPI event notification on slots. - */ - static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context) - { -@@ -1705,7 +1699,6 @@ static struct acpi_pci_driver acpi_pci_h - - /** - * acpiphp_glue_init - initializes all PCI hotplug - ACPI glue data structures -- * - */ - int __init acpiphp_glue_init(void) - { -@@ -1726,7 +1719,7 @@ int __init acpiphp_glue_init(void) - /** - * acpiphp_glue_exit - terminates all PCI hotplug - ACPI glue data structures - * -- * This function frees all data allocated in acpiphp_glue_init() -+ * This function frees all data allocated in acpiphp_glue_init(). - */ - void acpiphp_glue_exit(void) - { -@@ -1760,7 +1753,6 @@ int __init acpiphp_get_num_slots(void) - * acpiphp_for_each_slot - call function for each slot - * @fn: callback function - * @data: context to be passed to callback function -- * - */ - static int acpiphp_for_each_slot(acpiphp_callback fn, void *data) - { -@@ -1786,6 +1778,7 @@ static int acpiphp_for_each_slot(acpiphp - - /** - * acpiphp_enable_slot - power on slot -+ * @slot: ACPI PHP slot - */ - int acpiphp_enable_slot(struct acpiphp_slot *slot) - { -@@ -1815,6 +1808,7 @@ int acpiphp_enable_slot(struct acpiphp_s - - /** - * acpiphp_disable_slot - power off slot -+ * @slot: ACPI PHP slot - */ - int acpiphp_disable_slot(struct acpiphp_slot *slot) - { ---- a/drivers/pci/hotplug/acpiphp_ibm.c -+++ b/drivers/pci/hotplug/acpiphp_ibm.c -@@ -134,11 +134,11 @@ static struct acpiphp_attention_info ibm - * ibm_slot_from_id - workaround for bad ibm hardware - * @id: the slot number that linux refers to the slot by - * -- * Description: this method returns the aCPI slot descriptor -+ * Description: This method returns the aCPI slot descriptor - * corresponding to the Linux slot number. This descriptor - * has info about the aPCI slot id and attention status. - * This descriptor must be freed using kfree when done. -- **/ -+ */ - static union apci_descriptor *ibm_slot_from_id(int id) - { - int ind = 0, size; -@@ -173,9 +173,9 @@ ibm_slot_done: - * @slot: the hotplug_slot to work with - * @status: what to set the LED to (0 or 1) - * -- * Description: this method is registered with the acpiphp module as a -- * callback to do the device specific task of setting the LED status -- **/ -+ * Description: This method is registered with the acpiphp module as a -+ * callback to do the device specific task of setting the LED status. -+ */ - static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status) - { - union acpi_object args[2]; -@@ -213,13 +213,13 @@ static int ibm_set_attention_status(stru - * @slot: the hotplug_slot to work with - * @status: returns what the LED is set to (0 or 1) - * -- * Description: this method is registered with the acpiphp module as a -- * callback to do the device specific task of getting the LED status -+ * Description: This method is registered with the acpiphp module as a -+ * callback to do the device specific task of getting the LED status. - * - * Because there is no direct method of getting the LED status directly - * from an ACPI call, we read the aPCI table and parse out our - * slot descriptor to read the status from that. -- **/ -+ */ - static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status) - { - union apci_descriptor *ibm_slot; -@@ -245,8 +245,8 @@ static int ibm_get_attention_status(stru - * @event: the event info (device specific) - * @context: passed context (our notification struct) - * -- * Description: this method is registered as a callback with the ACPI -- * subsystem it is called when this device has an event to notify the OS of -+ * Description: This method is registered as a callback with the ACPI -+ * subsystem it is called when this device has an event to notify the OS of. - * - * The events actually come from the device as two events that get - * synthesized into one event with data by this function. The event -@@ -256,7 +256,7 @@ static int ibm_get_attention_status(stru - * From section 5.6.2.2 of the ACPI 2.0 spec, I understand that the OSPM will - * only re-enable the interrupt that causes this event AFTER this method - * has returned, thereby enforcing serial access for the notification struct. -- **/ -+ */ - static void ibm_handle_events(acpi_handle handle, u32 event, void *context) - { - u8 detail = event & 0x0f; -@@ -279,16 +279,16 @@ static void ibm_handle_events(acpi_handl - * ibm_get_table_from_acpi - reads the APLS buffer from ACPI - * @bufp: address to pointer to allocate for the table - * -- * Description: this method reads the APLS buffer in from ACPI and -+ * Description: This method reads the APLS buffer in from ACPI and - * stores the "stripped" table into a single buffer -- * it allocates and passes the address back in bufp -+ * it allocates and passes the address back in bufp. - * - * If NULL is passed in as buffer, this method only calculates - * the size of the table and returns that without filling -- * in the buffer -+ * in the buffer. - * -- * returns < 0 on error or the size of the table on success -- **/ -+ * Returns < 0 on error or the size of the table on success. -+ */ - static int ibm_get_table_from_acpi(char **bufp) - { - union acpi_object *package; -@@ -349,17 +349,18 @@ read_table_done: - /** - * ibm_read_apci_table - callback for the sysfs apci_table file - * @kobj: the kobject this binary attribute is a part of -+ * @bin_attr: struct bin_attribute for this file - * @buffer: the kernel space buffer to fill - * @pos: the offset into the file - * @size: the number of bytes requested - * -- * Description: gets registered with sysfs as the reader callback -- * to be executed when /sys/bus/pci/slots/apci_table gets read -+ * Description: Gets registered with sysfs as the reader callback -+ * to be executed when /sys/bus/pci/slots/apci_table gets read. - * - * Since we don't get notified on open and close for this file, - * things get really tricky here... -- * our solution is to only allow reading the table in all at once -- **/ -+ * our solution is to only allow reading the table in all at once. -+ */ - static ssize_t ibm_read_apci_table(struct kobject *kobj, - struct bin_attribute *bin_attr, - char *buffer, loff_t pos, size_t size) -@@ -385,10 +386,10 @@ static ssize_t ibm_read_apci_table(struc - * @context: a pointer to our handle to fill when we find the device - * @rv: a return value to fill if desired - * -- * Description: used as a callback when calling acpi_walk_namespace -+ * Description: Used as a callback when calling acpi_walk_namespace - * to find our device. When this method returns non-zero -- * acpi_walk_namespace quits its search and returns our value -- **/ -+ * acpi_walk_namespace quits its search and returns our value. -+ */ - static acpi_status __init ibm_find_acpi_device(acpi_handle handle, - u32 lvl, void *context, void **rv) - { ---- a/drivers/pci/hotplug/cpqphp_core.c -+++ b/drivers/pci/hotplug/cpqphp_core.c -@@ -117,12 +117,10 @@ static inline int is_slot66mhz(struct sl - - /** - * detect_SMBIOS_pointer - find the System Management BIOS Table in mem region. -- * - * @begin: begin pointer for region to be scanned. - * @end: end pointer for region to be scanned. - * -- * Returns pointer to the head of the SMBIOS tables (or NULL) -- * -+ * Returns pointer to the head of the SMBIOS tables (or %NULL). - */ - static void __iomem * detect_SMBIOS_pointer(void __iomem *begin, void __iomem *end) - { -@@ -157,9 +155,9 @@ static void __iomem * detect_SMBIOS_poin - - /** - * init_SERR - Initializes the per slot SERR generation. -+ * @ctrl: controller to use - * - * For unexpected switch opens -- * - */ - static int init_SERR(struct controller * ctrl) - { -@@ -224,14 +222,15 @@ static int pci_print_IRQ_route (void) - - /** - * get_subsequent_smbios_entry: get the next entry from bios table. -- * -- * Gets the first entry if previous == NULL -- * Otherwise, returns the next entry -- * Uses global SMBIOS Table pointer -- * -+ * @smbios_start: where to start in the SMBIOS table -+ * @smbios_table: location of the SMBIOS table - * @curr: %NULL or pointer to previously returned structure - * -- * returns a pointer to an SMBIOS structure or NULL if none found -+ * Gets the first entry if previous == NULL; -+ * otherwise, returns the next entry. -+ * Uses global SMBIOS Table pointer. -+ * -+ * Returns a pointer to an SMBIOS structure or NULL if none found. - */ - static void __iomem *get_subsequent_smbios_entry(void __iomem *smbios_start, - void __iomem *smbios_table, -@@ -272,17 +271,18 @@ static void __iomem *get_subsequent_smbi - - - /** -- * get_SMBIOS_entry -- * -- * @type:SMBIOS structure type to be returned -+ * get_SMBIOS_entry - return the requested SMBIOS entry or %NULL -+ * @smbios_start: where to start in the SMBIOS table -+ * @smbios_table: location of the SMBIOS table -+ * @type: SMBIOS structure type to be returned - * @previous: %NULL or pointer to previously returned structure - * -- * Gets the first entry of the specified type if previous == NULL -+ * Gets the first entry of the specified type if previous == %NULL; - * Otherwise, returns the next entry of the given type. -- * Uses global SMBIOS Table pointer -- * Uses get_subsequent_smbios_entry -+ * Uses global SMBIOS Table pointer. -+ * Uses get_subsequent_smbios_entry. - * -- * returns a pointer to an SMBIOS structure or %NULL if none found -+ * Returns a pointer to an SMBIOS structure or %NULL if none found. - */ - static void __iomem *get_SMBIOS_entry(void __iomem *smbios_start, - void __iomem *smbios_table, -@@ -581,7 +581,9 @@ get_slot_mapping(struct pci_bus *bus, u8 - - /** - * cpqhp_set_attention_status - Turns the Amber LED for a slot on or off -- * -+ * @ctrl: struct controller to use -+ * @func: PCI device/function info -+ * @status: LED control flag: 1 = LED on, 0 = LED off - */ - static int - cpqhp_set_attention_status(struct controller *ctrl, struct pci_func *func, -@@ -621,7 +623,8 @@ cpqhp_set_attention_status(struct contro - - /** - * set_attention_status - Turns the Amber LED for a slot on or off -- * -+ * @hotplug_slot: slot to change LED on -+ * @status: LED control flag - */ - static int set_attention_status (struct hotplug_slot *hotplug_slot, u8 status) - { ---- a/drivers/pci/hotplug/cpqphp_ctrl.c -+++ b/drivers/pci/hotplug/cpqphp_ctrl.c -@@ -123,7 +123,7 @@ static u8 handle_switch_change(u8 change - } - - /** -- * cpqhp_find_slot: find the struct slot of given device -+ * cpqhp_find_slot - find the struct slot of given device - * @ctrl: scan lots of this controller - * @device: the device id to find - */ -@@ -305,9 +305,8 @@ static u8 handle_power_fault(u8 change, - - - /** -- * sort_by_size: sort nodes on the list by their length, smallest first. -+ * sort_by_size - sort nodes on the list by their length, smallest first. - * @head: list to sort -- * - */ - static int sort_by_size(struct pci_resource **head) - { -@@ -354,9 +353,8 @@ static int sort_by_size(struct pci_resou - - - /** -- * sort_by_max_size: sort nodes on the list by their length, largest first. -+ * sort_by_max_size - sort nodes on the list by their length, largest first. - * @head: list to sort -- * - */ - static int sort_by_max_size(struct pci_resource **head) - { -@@ -403,8 +401,10 @@ static int sort_by_max_size(struct pci_r - - - /** -- * do_pre_bridge_resource_split: find node of resources that are unused -- * -+ * do_pre_bridge_resource_split - find node of resources that are unused -+ * @head: new list head -+ * @orig_head: original list head -+ * @alignment: max node size (?) - */ - static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **head, - struct pci_resource **orig_head, u32 alignment) -@@ -477,8 +477,9 @@ static struct pci_resource *do_pre_bridg - - - /** -- * do_bridge_resource_split: find one node of resources that aren't in use -- * -+ * do_bridge_resource_split - find one node of resources that aren't in use -+ * @head: list head -+ * @alignment: max node size (?) - */ - static struct pci_resource *do_bridge_resource_split(struct pci_resource **head, u32 alignment) - { -@@ -525,14 +526,13 @@ error: - - - /** -- * get_io_resource: find first node of given size not in ISA aliasing window. -+ * get_io_resource - find first node of given size not in ISA aliasing window. - * @head: list to search - * @size: size of node to find, must be a power of two. - * -- * Description: this function sorts the resource list by size and then returns -+ * Description: This function sorts the resource list by size and then returns - * returns the first node of "size" length that is not in the ISA aliasing - * window. If it finds a node larger than "size" it will split it up. -- * - */ - static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size) - { -@@ -620,7 +620,7 @@ static struct pci_resource *get_io_resou - - - /** -- * get_max_resource: get largest node which has at least the given size. -+ * get_max_resource - get largest node which has at least the given size. - * @head: the list to search the node in - * @size: the minimum size of the node to find - * -@@ -712,7 +712,7 @@ static struct pci_resource *get_max_reso - - - /** -- * get_resource: find resource of given size and split up larger ones. -+ * get_resource - find resource of given size and split up larger ones. - * @head: the list to search for resources - * @size: the size limit to use - * -@@ -804,14 +804,14 @@ static struct pci_resource *get_resource - - - /** -- * cpqhp_resource_sort_and_combine: sort nodes by base addresses and clean up. -+ * cpqhp_resource_sort_and_combine - sort nodes by base addresses and clean up - * @head: the list to sort and clean up - * - * Description: Sorts all of the nodes in the list in ascending order by - * their base addresses. Also does garbage collection by - * combining adjacent nodes. - * -- * returns 0 if success -+ * Returns %0 if success. - */ - int cpqhp_resource_sort_and_combine(struct pci_resource **head) - { -@@ -951,9 +951,9 @@ irqreturn_t cpqhp_ctrl_intr(int IRQ, voi - - /** - * cpqhp_slot_create - Creates a node and adds it to the proper bus. -- * @busnumber - bus where new node is to be located -+ * @busnumber: bus where new node is to be located - * -- * Returns pointer to the new node or NULL if unsuccessful -+ * Returns pointer to the new node or %NULL if unsuccessful. - */ - struct pci_func *cpqhp_slot_create(u8 busnumber) - { -@@ -986,7 +986,7 @@ struct pci_func *cpqhp_slot_create(u8 bu - * slot_remove - Removes a node from the linked list of slots. - * @old_slot: slot to remove - * -- * Returns 0 if successful, !0 otherwise. -+ * Returns %0 if successful, !0 otherwise. - */ - static int slot_remove(struct pci_func * old_slot) - { -@@ -1026,7 +1026,7 @@ static int slot_remove(struct pci_func * - * bridge_slot_remove - Removes a node from the linked list of slots. - * @bridge: bridge to remove - * -- * Returns 0 if successful, !0 otherwise. -+ * Returns %0 if successful, !0 otherwise. - */ - static int bridge_slot_remove(struct pci_func *bridge) - { -@@ -1071,7 +1071,7 @@ out: - * cpqhp_slot_find - Looks for a node by bus, and device, multiple functions accessed - * @bus: bus to find - * @device: device to find -- * @index: is 0 for first function found, 1 for the second... -+ * @index: is %0 for first function found, %1 for the second... - * - * Returns pointer to the node if successful, %NULL otherwise. - */ -@@ -1115,16 +1115,13 @@ static int is_bridge(struct pci_func * f - - - /** -- * set_controller_speed - set the frequency and/or mode of a specific -- * controller segment. -- * -+ * set_controller_speed - set the frequency and/or mode of a specific controller segment. - * @ctrl: controller to change frequency/mode for. - * @adapter_speed: the speed of the adapter we want to match. - * @hp_slot: the slot number where the adapter is installed. - * -- * Returns 0 if we successfully change frequency and/or mode to match the -+ * Returns %0 if we successfully change frequency and/or mode to match the - * adapter speed. -- * - */ - static u8 set_controller_speed(struct controller *ctrl, u8 adapter_speed, u8 hp_slot) - { -@@ -1253,13 +1250,14 @@ static u8 set_controller_speed(struct co - - /** - * board_replaced - Called after a board has been replaced in the system. -+ * @func: PCI device/function information -+ * @ctrl: hotplug controller - * -- * This is only used if we don't have resources for hot add -- * Turns power on for the board -- * Checks to see if board is the same -- * If board is same, reconfigures it -+ * This is only used if we don't have resources for hot add. -+ * Turns power on for the board. -+ * Checks to see if board is the same. -+ * If board is same, reconfigures it. - * If board isn't same, turns it back off. -- * - */ - static u32 board_replaced(struct pci_func *func, struct controller *ctrl) - { -@@ -1403,10 +1401,11 @@ static u32 board_replaced(struct pci_fun - - /** - * board_added - Called after a board has been added to the system. -+ * @func: PCI device/function info -+ * @ctrl: hotplug controller - * -- * Turns power on for the board -- * Configures board -- * -+ * Turns power on for the board. -+ * Configures board. - */ - static u32 board_added(struct pci_func *func, struct controller *ctrl) - { -@@ -1607,8 +1606,10 @@ static u32 board_added(struct pci_func * - - - /** -- * remove_board - Turns off slot and LED's -- * -+ * remove_board - Turns off slot and LEDs -+ * @func: PCI device/function info -+ * @replace_flag: whether replacing or adding a new device -+ * @ctrl: target controller - */ - static u32 remove_board(struct pci_func * func, u32 replace_flag, struct controller * ctrl) - { -@@ -1902,11 +1903,11 @@ static void interrupt_event_handler(stru - - - /** -- * cpqhp_pushbutton_thread -+ * cpqhp_pushbutton_thread - handle pushbutton events -+ * @slot: target slot (struct) - * -- * Scheduled procedure to handle blocking stuff for the pushbuttons -+ * Scheduled procedure to handle blocking stuff for the pushbuttons. - * Handles all pending events and exits. -- * - */ - void cpqhp_pushbutton_thread(unsigned long slot) - { -@@ -2137,9 +2138,10 @@ int cpqhp_process_SS(struct controller * - } - - /** -- * switch_leds: switch the leds, go from one site to the other. -+ * switch_leds - switch the leds, go from one site to the other. - * @ctrl: controller to use - * @num_of_slots: number of slots to use -+ * @work_LED: LED control value - * @direction: 1 to start from the left side, 0 to start right. - */ - static void switch_leds(struct controller *ctrl, const int num_of_slots, -@@ -2165,11 +2167,11 @@ static void switch_leds(struct controlle - } - - /** -- * hardware_test - runs hardware tests -+ * cpqhp_hardware_test - runs hardware tests -+ * @ctrl: target controller -+ * @test_num: the number written to the "test" file in sysfs. - * - * For hot plug ctrl folks to play with. -- * test_num is the number written to the "test" file in sysfs -- * - */ - int cpqhp_hardware_test(struct controller *ctrl, int test_num) - { -@@ -2249,14 +2251,12 @@ int cpqhp_hardware_test(struct controlle - - /** - * configure_new_device - Configures the PCI header information of one board. -- * - * @ctrl: pointer to controller structure - * @func: pointer to function structure - * @behind_bridge: 1 if this is a recursive call, 0 if not - * @resources: pointer to set of resource lists - * -- * Returns 0 if success -- * -+ * Returns 0 if success. - */ - static u32 configure_new_device(struct controller * ctrl, struct pci_func * func, - u8 behind_bridge, struct resource_lists * resources) -@@ -2346,15 +2346,13 @@ static u32 configure_new_device(struct c - - /** - * configure_new_function - Configures the PCI header information of one device -- * - * @ctrl: pointer to controller structure - * @func: pointer to function structure - * @behind_bridge: 1 if this is a recursive call, 0 if not - * @resources: pointer to set of resource lists - * - * Calls itself recursively for bridged devices. -- * Returns 0 if success -- * -+ * Returns 0 if success. - */ - static int configure_new_function(struct controller *ctrl, struct pci_func *func, - u8 behind_bridge, ---- a/drivers/pci/hotplug/fakephp.c -+++ b/drivers/pci/hotplug/fakephp.c -@@ -165,11 +165,11 @@ static void remove_slot(struct dummy_slo - } - - /** -- * Rescan slot. -- * Tries hard not to re-enable already existing devices -- * also handles scanning of subfunctions -+ * pci_rescan_slot - Rescan slot -+ * @temp: Device template. Should be set: bus and devfn. - * -- * @param temp Device template. Should be set: bus and devfn. -+ * Tries hard not to re-enable already existing devices; -+ * also handles scanning of subfunctions. - */ - static void pci_rescan_slot(struct pci_dev *temp) - { -@@ -229,10 +229,10 @@ static void pci_rescan_slot(struct pci_d - - - /** -- * Rescan PCI bus. -- * call pci_rescan_slot for each possible function of the bus -+ * pci_rescan_bus - Rescan PCI bus -+ * @bus: the PCI bus to rescan - * -- * @param bus -+ * Call pci_rescan_slot for each possible function of the bus. - */ - static void pci_rescan_bus(const struct pci_bus *bus) - { ---- a/drivers/pci/hotplug/pciehp_ctrl.c -+++ b/drivers/pci/hotplug/pciehp_ctrl.c -@@ -208,10 +208,10 @@ static void set_slot_off(struct controll - - /** - * board_added - Called after a board has been added to the system. -+ * @p_slot: &slot where board is added - * -- * Turns power on for the board -- * Configures board -- * -+ * Turns power on for the board. -+ * Configures board. - */ - static int board_added(struct slot *p_slot) - { -@@ -276,8 +276,8 @@ err_exit: - } - - /** -- * remove_board - Turns off slot and LED's -- * -+ * remove_board - Turns off slot and LEDs -+ * @p_slot: slot where board is being removed - */ - static int remove_board(struct slot *p_slot) - { -@@ -319,11 +319,11 @@ struct power_work_info { - }; - - /** -- * pciehp_pushbutton_thread -+ * pciehp_power_thread - handle pushbutton events -+ * @work: &struct work_struct describing work to be done - * -- * Scheduled procedure to handle blocking stuff for the pushbuttons -+ * Scheduled procedure to handle blocking stuff for the pushbuttons. - * Handles all pending events and exits. -- * - */ - static void pciehp_power_thread(struct work_struct *work) - { ---- a/drivers/pci/hotplug/rpadlpar_core.c -+++ b/drivers/pci/hotplug/rpadlpar_core.c -@@ -100,6 +100,7 @@ static struct device_node *find_dlpar_no - - /** - * find_php_slot - return hotplug slot structure for device node -+ * @dn: target &device_node - * - * This routine will return the hotplug slot structure - * for a given device node. Note that built-in PCI slots -@@ -293,9 +294,8 @@ static int dlpar_add_vio_slot(char *drc_ - * dlpar_add_slot - DLPAR add an I/O Slot - * @drc_name: drc-name of newly added slot - * -- * Make the hotplug module and the kernel aware -- * of a newly added I/O Slot. -- * Return Codes - -+ * Make the hotplug module and the kernel aware of a newly added I/O Slot. -+ * Return Codes: - * 0 Success - * -ENODEV Not a valid drc_name - * -EINVAL Slot already added -@@ -339,9 +339,9 @@ exit: - /** - * dlpar_remove_vio_slot - DLPAR remove a virtual I/O Slot - * @drc_name: drc-name of newly added slot -+ * @dn: &device_node - * -- * Remove the kernel and hotplug representations -- * of an I/O Slot. -+ * Remove the kernel and hotplug representations of an I/O Slot. - * Return Codes: - * 0 Success - * -EINVAL Vio dev doesn't exist -@@ -359,11 +359,11 @@ static int dlpar_remove_vio_slot(char *d - } - - /** -- * dlpar_remove_slot - DLPAR remove a PCI I/O Slot -+ * dlpar_remove_pci_slot - DLPAR remove a PCI I/O Slot - * @drc_name: drc-name of newly added slot -+ * @dn: &device_node - * -- * Remove the kernel and hotplug representations -- * of a PCI I/O Slot. -+ * Remove the kernel and hotplug representations of a PCI I/O Slot. - * Return Codes: - * 0 Success - * -ENODEV Not a valid drc_name -@@ -405,8 +405,7 @@ int dlpar_remove_pci_slot(char *drc_name - * dlpar_remove_slot - DLPAR remove an I/O Slot - * @drc_name: drc-name of newly added slot - * -- * Remove the kernel and hotplug representations -- * of an I/O Slot. -+ * Remove the kernel and hotplug representations of an I/O Slot. - * Return Codes: - * 0 Success - * -ENODEV Not a valid drc_name ---- a/drivers/pci/hotplug/rpaphp_core.c -+++ b/drivers/pci/hotplug/rpaphp_core.c -@@ -54,10 +54,12 @@ module_param(debug, bool, 0644); - - /** - * set_attention_status - set attention LED -+ * @hotplug_slot: target &hotplug_slot -+ * @value: LED control value -+ * - * echo 0 > attention -- set LED OFF - * echo 1 > attention -- set LED ON - * echo 2 > attention -- set LED ID(identify, light is blinking) -- * - */ - static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 value) - { -@@ -99,6 +101,8 @@ static int get_power_status(struct hotpl - - /** - * get_attention_status - get attention LED status -+ * @hotplug_slot: slot to get status -+ * @value: pointer to store status - */ - static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 * value) - { -@@ -254,6 +258,11 @@ static int is_php_type(char *drc_type) - - /** - * is_php_dn() - return 1 if this is a hotpluggable pci slot, else 0 -+ * @dn: target &device_node -+ * @indexes: passed to get_children_props() -+ * @names: passed to get_children_props() -+ * @types: returned from get_children_props() -+ * @power_domains: - * - * This routine will return true only if the device node is - * a hotpluggable slot. This routine will return false -@@ -279,7 +288,7 @@ static int is_php_dn(struct device_node - - /** - * rpaphp_add_slot -- declare a hotplug slot to the hotplug subsystem. -- * @dn device node of slot -+ * @dn: device node of slot - * - * This subroutine will register a hotplugable slot with the - * PCI hotplug infrastructure. This routine is typicaly called -@@ -291,7 +300,7 @@ static int is_php_dn(struct device_node - * routine will just return without doing anything, since embedded - * slots cannot be hotplugged. - * -- * To remove a slot, it suffices to call rpaphp_deregister_slot() -+ * To remove a slot, it suffices to call rpaphp_deregister_slot(). - */ - int rpaphp_add_slot(struct device_node *dn) - { ---- a/drivers/pci/hotplug/rpaphp_pci.c -+++ b/drivers/pci/hotplug/rpaphp_pci.c -@@ -79,6 +79,7 @@ static void set_slot_name(struct slot *s - - /** - * rpaphp_enable_slot - record slot state, config pci device -+ * @slot: target &slot - * - * Initialize values in the slot, and the hotplug_slot info - * structures to indicate if there is a pci card plugged into ---- a/drivers/pci/hotplug/shpchp_ctrl.c -+++ b/drivers/pci/hotplug/shpchp_ctrl.c -@@ -231,10 +231,10 @@ static int fix_bus_speed(struct controll - - /** - * board_added - Called after a board has been added to the system. -+ * @p_slot: target &slot - * -- * Turns power on for the board -- * Configures board -- * -+ * Turns power on for the board. -+ * Configures board. - */ - static int board_added(struct slot *p_slot) - { -@@ -350,8 +350,8 @@ err_exit: - - - /** -- * remove_board - Turns off slot and LED's -- * -+ * remove_board - Turns off slot and LEDs -+ * @p_slot: target &slot - */ - static int remove_board(struct slot *p_slot) - { -@@ -397,11 +397,11 @@ struct pushbutton_work_info { - }; - - /** -- * shpchp_pushbutton_thread -+ * shpchp_pushbutton_thread - handle pushbutton events -+ * @work: &struct work_struct to be handled - * -- * Scheduled procedure to handle blocking stuff for the pushbuttons -+ * Scheduled procedure to handle blocking stuff for the pushbuttons. - * Handles all pending events and exits. -- * - */ - static void shpchp_pushbutton_thread(struct work_struct *work) - { diff --git a/pci/pci-pcie-portdriver-initialize-returned-value.patch b/pci/pci-pcie-portdriver-initialize-returned-value.patch deleted file mode 100644 index 75beaf0eea04ff..00000000000000 --- a/pci/pci-pcie-portdriver-initialize-returned-value.patch +++ /dev/null @@ -1,33 +0,0 @@ -From linas@austin.ibm.com Mon Nov 26 15:10:36 2007 -From: Linas Vepstas <linas@austin.ibm.com> -Date: Fri, 2 Nov 2007 15:14:28 -0500 -Subject: PCI: pcie portdriver: initialize returned value -To: tom.l.nguyen@intel.com, gregkh@suse.de -Cc: linux-pci@atrey.karlin.mff.cuni.cz -Message-ID: <20071102201428.GT2183@austin.ibm.com> -Content-Disposition: inline - -From: Linas Vepstas <linas@austin.ibm.com> - -The pcie protdrv status can be returned uninitialized, -if there are no children under a device. This leads to -bad responses downstream. Fix this. - -Signed-off-by: Linas Vepstas <linas@austin.ibm.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/pci/pcie/portdrv_pci.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/pci/pcie/portdrv_pci.c -+++ b/drivers/pci/pcie/portdrv_pci.c -@@ -217,7 +217,7 @@ static int slot_reset_iter(struct device - - static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev) - { -- pci_ers_result_t status; -+ pci_ers_result_t status = PCI_ERS_RESULT_NONE; - int retval; - - /* If fatal, restore cfg space for possible link reset at upstream */ @@ -6,12 +6,6 @@ gregkh/sysfs-test.patch gregkh/detect-atomic-counter-underflows.patch # driver patches queued for 2.6.24 -driver/allow-legacy_ptys-to-be-set-to-0.patch -driver/create-sys-...-power-when-config_pm-is-set.patch -driver/uio-fix-up-the-uio-documentation.patch -driver/uio-add-uio-documentation-target-to-docbook-makefile.patch -driver/kobject-two-typo-fixes.patch -driver/sysfs-fix-off-by-one-error-in-fill_read_buffer.patch # driver patches for after 2.6.24 is out driver/nozomi.patch @@ -144,10 +138,6 @@ driver/sysfs-crash-debugging.patch # pci patches queued for 2.6.24 (bugfixes, new ids, etc.) -pci/pci-pcie-portdriver-initialize-returned-value.patch -pci/pci-drivers-pci-pci-sysfs.c-add-missing-pci_dev_put.patch -pci/pci-aer-fix-kernel-doc-mistakes.patch -pci/pci-hotplug-kernel-doc-fixes.patch # pci patches for after 2.6.24 is out pci/pci-make-pci_restore_bars-static.patch @@ -180,31 +170,6 @@ pci/pci_bridge-device.patch # usb patches queued for 2.6.24 (bugfixes, new ids, etc.) -usb/usb-fix-usb_ohci_hcd_ssb-dependencies.patch -usb/usb-omap_udc-build-fix.patch -usb/usb-pl2303-add-support-for-corega-cg-usbrs232r.patch -usb/usb-storage-always-set-the-allow_restart-flag.patch -usb/usb-fix-priority-mistakes-in-drivers-usb-core-hub.c.patch -usb/usb-free-memory-when-writing-fails-in-usb-serial-mos7840.c.patch -usb/usb-fix-usbled-disconnect-read-race-2.patch -usb/usbserial-fix-inconsistent-lock-state.patch -usb/usb-fix-signr-comment-in-usbdevice_fs.h.patch -usb/usb-power-management-documenation-update.patch -usb/usb-fix-locks-and-urb-status-in-adutux.patch -usb/usb-add-support-for-an-older-firmware-revision-for-the-nikon-d200.patch -usb/usb-fix-directory-references-in-usb-readme.patch -usb/usb-remove-usb-hub-entry-from-maintainers.patch -usb/usb-mailing-lists-have-changed.patch -usb/usb-hcd-avoid-duplicate-local_irq_disable.patch -usb/usb-sierra-new-product-id.patch -usb/usb-keep-track-of-whether-interface-sysfs-files-exist.patch -usb/usb-uevent-environment-key-fix.patch -usb/usb-make-the-microtek-driver-and-hal-cooperate.patch -usb/usb-fix-up-ehci-startup-synchronization.patch -usb/usb-usb-storage-unusual_devs-entry-for-jetflash-ts1gjf2a.patch -usb/usb-s3c2410-gadget-header-move-fixups.patch -usb/usb-s3c2410-gadget-allow-sharing-of-vbus-irq.patch -usb/usb-s3c2410-gadget-ensure-vbus-pin-in-input-mode-during-read.patch # usb stuff for after 2.6.24 is out usb/usb-convert-from-class_device-to-device-for-usb-core.patch diff --git a/usb/usb-add-support-for-an-older-firmware-revision-for-the-nikon-d200.patch b/usb/usb-add-support-for-an-older-firmware-revision-for-the-nikon-d200.patch deleted file mode 100644 index 9e9709aabadccd..00000000000000 --- a/usb/usb-add-support-for-an-older-firmware-revision-for-the-nikon-d200.patch +++ /dev/null @@ -1,51 +0,0 @@ -From phil@ipom.com Thu Nov 1 10:54:01 2007 -From: Mike Pagano <mpagano@gentoo.org> -Date: Thu, 01 Nov 2007 10:53:43 -0700 -Subject: USB: add support for an older firmware revision for the Nikon D200 -To: Mike Pagano <mpagano@gentoo.org> -Cc: stern@rowland.harvard.edu, linux-usb-devel@lists.sourceforge.net, Greg KH <greg@kroah.com> -Message-ID: <472A12A7.4050606@ipom.com> - - -This is a resubmission of the patch to upgrade the unusual_devs.h file to -support an older firmware revision of the Nikon D200. This patch includes the -requested /proc/bus/usb/devices information. - -T: Bus=01 Lev=01 Prnt=01 Port=09 Cnt=02 Dev#= 6 Spd=480 MxCh= 0 -D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 -P: Vendor=04b0 ProdID=040f Rev= 1.00 -S: Manufacturer=NIKON -S: Product=NIKON DSC D200 -S: SerialNumber=0000000 -C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA -I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage -E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms - -Signed-off-by: Mike Pagano <mpagano@gentoo.org> -Signed-off-by: Phil Dibowitz <phil@ipom.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -342,11 +342,11 @@ UNUSUAL_DEV( 0x04b0, 0x040d, 0x0100, 0x - US_FL_FIX_CAPACITY), - - /* Reported by Graber and Mike Pagano <mpagano-kernel@mpagano.com> */ --UNUSUAL_DEV( 0x04b0, 0x040f, 0x0200, 0x0200, -- "NIKON", -- "NIKON DSC D200", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -+UNUSUAL_DEV( 0x04b0, 0x040f, 0x0100, 0x0200, -+ "NIKON", -+ "NIKON DSC D200", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ US_FL_FIX_CAPACITY), - - /* Reported by Emil Larsson <emil@swip.net> */ - UNUSUAL_DEV( 0x04b0, 0x0411, 0x0100, 0x0101, diff --git a/usb/usb-fix-directory-references-in-usb-readme.patch b/usb/usb-fix-directory-references-in-usb-readme.patch deleted file mode 100644 index 5b5240b23ce2f0..00000000000000 --- a/usb/usb-fix-directory-references-in-usb-readme.patch +++ /dev/null @@ -1,38 +0,0 @@ -From dhohndel@linux.intel.com Wed Nov 7 16:28:08 2007 -From: Dirk Hohndel <hohndel@linux.intel.com> -Date: Wed, 7 Nov 2007 16:27:23 -0800 -Subject: USB: fix directory references in usb/README -To: Greg Kroah-Hartman <gregkh@suse.de> -Message-ID: <20071108002723.GA5513@linux.intel.com> -Content-Disposition: inline - - -Another one in the "ok, this is trivial to fix" list... :-) - -[PATCH] fix directory references in usb/README - -Signed-off-by: Dirk Hohndel <hohndel@linux.intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/README | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/README -+++ b/drivers/usb/README -@@ -39,12 +39,12 @@ first subdirectory in the list below tha - - image/ - This is for still image drivers, like scanners or - digital cameras. --input/ - This is for any driver that uses the input subsystem, -+../input/ - This is for any driver that uses the input subsystem, - like keyboard, mice, touchscreens, tablets, etc. --media/ - This is for multimedia drivers, like video cameras, -+../media/ - This is for multimedia drivers, like video cameras, - radios, and any other drivers that talk to the v4l - subsystem. --net/ - This is for network drivers. -+../net/ - This is for network drivers. - serial/ - This is for USB to serial drivers. - storage/ - This is for USB mass-storage drivers. - class/ - This is for all USB device drivers that do not fit diff --git a/usb/usb-fix-locks-and-urb-status-in-adutux.patch b/usb/usb-fix-locks-and-urb-status-in-adutux.patch deleted file mode 100644 index 8b36dc3d260e0c..00000000000000 --- a/usb/usb-fix-locks-and-urb-status-in-adutux.patch +++ /dev/null @@ -1,553 +0,0 @@ -From zaitcev@redhat.com Wed Oct 31 15:59:26 2007 -From: Pete Zaitcev <zaitcev@redhat.com> -Date: Wed, 31 Oct 2007 15:59:30 -0700 -Subject: USB: FIx locks and urb->status in adutux (updated) -To: greg@kroah.com -Cc: zaitcev@redhat.com, <vitalivanov@gmail.com>, linux-usb-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, <netwiz@crc.id.au> -Message-ID: <20071031155930.978242bc.zaitcev@redhat.com> - - -Two main issues fixed here are: - - An improper use of in-struct lock to protect an open count - - Use of urb status for -EINPROGRESS - -Also, along the way: - - Change usb_unlink_urb to usb_kill_urb. Apparently there's no need - to use usb_unlink_urb whatsoever in this driver, and the old use of - usb_kill_urb was outright racy (it unlinked and immediately freed). - - Fix indentation in adu_write. Looks like it was damaged by a script. - - Vitaly wants -EBUSY on multiply opens. - - bInterval was taken from a wrong endpoint. - -Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> -Signed-off-by: Vitaliy Ivanov <vitalivanov@gmail.com> -Tested-by: Vitaliy Ivanov <vitalivanov@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/misc/adutux.c | 262 ++++++++++++++++++++++++---------------------- - 1 file changed, 139 insertions(+), 123 deletions(-) - ---- a/drivers/usb/misc/adutux.c -+++ b/drivers/usb/misc/adutux.c -@@ -79,12 +79,22 @@ MODULE_DEVICE_TABLE(usb, device_table); - - #define COMMAND_TIMEOUT (2*HZ) /* 60 second timeout for a command */ - -+/* -+ * The locking scheme is a vanilla 3-lock: -+ * adu_device.buflock: A spinlock, covers what IRQs touch. -+ * adutux_mutex: A Static lock to cover open_count. It would also cover -+ * any globals, but we don't have them in 2.6. -+ * adu_device.mtx: A mutex to hold across sleepers like copy_from_user. -+ * It covers all of adu_device, except the open_count -+ * and what .buflock covers. -+ */ -+ - /* Structure to hold all of our device specific stuff */ - struct adu_device { -- struct mutex mtx; /* locks this structure */ -+ struct mutex mtx; - struct usb_device* udev; /* save off the usb device pointer */ - struct usb_interface* interface; -- unsigned char minor; /* the starting minor number for this device */ -+ unsigned int minor; /* the starting minor number for this device */ - char serial_number[8]; - - int open_count; /* number of times this port has been opened */ -@@ -107,8 +117,11 @@ struct adu_device { - char* interrupt_out_buffer; - struct usb_endpoint_descriptor* interrupt_out_endpoint; - struct urb* interrupt_out_urb; -+ int out_urb_finished; - }; - -+static DEFINE_MUTEX(adutux_mutex); -+ - static struct usb_driver adu_driver; - - static void adu_debug_data(int level, const char *function, int size, -@@ -132,27 +145,31 @@ static void adu_debug_data(int level, co - */ - static void adu_abort_transfers(struct adu_device *dev) - { -- dbg(2," %s : enter", __FUNCTION__); -+ unsigned long flags; - -- if (dev == NULL) { -- dbg(1," %s : dev is null", __FUNCTION__); -- goto exit; -- } -+ dbg(2," %s : enter", __FUNCTION__); - - if (dev->udev == NULL) { - dbg(1," %s : udev is null", __FUNCTION__); - goto exit; - } - -- dbg(2," %s : udev state %d", __FUNCTION__, dev->udev->state); -- if (dev->udev->state == USB_STATE_NOTATTACHED) { -- dbg(1," %s : udev is not attached", __FUNCTION__); -- goto exit; -- } -- - /* shutdown transfer */ -- usb_unlink_urb(dev->interrupt_in_urb); -- usb_unlink_urb(dev->interrupt_out_urb); -+ -+ /* XXX Anchor these instead */ -+ spin_lock_irqsave(&dev->buflock, flags); -+ if (!dev->read_urb_finished) { -+ spin_unlock_irqrestore(&dev->buflock, flags); -+ usb_kill_urb(dev->interrupt_in_urb); -+ } else -+ spin_unlock_irqrestore(&dev->buflock, flags); -+ -+ spin_lock_irqsave(&dev->buflock, flags); -+ if (!dev->out_urb_finished) { -+ spin_unlock_irqrestore(&dev->buflock, flags); -+ usb_kill_urb(dev->interrupt_out_urb); -+ } else -+ spin_unlock_irqrestore(&dev->buflock, flags); - - exit: - dbg(2," %s : leave", __FUNCTION__); -@@ -162,8 +179,6 @@ static void adu_delete(struct adu_device - { - dbg(2, "%s enter", __FUNCTION__); - -- adu_abort_transfers(dev); -- - /* free data structures */ - usb_free_urb(dev->interrupt_in_urb); - usb_free_urb(dev->interrupt_out_urb); -@@ -239,7 +254,10 @@ static void adu_interrupt_out_callback(s - goto exit; - } - -- wake_up_interruptible(&dev->write_wait); -+ spin_lock(&dev->buflock); -+ dev->out_urb_finished = 1; -+ wake_up(&dev->write_wait); -+ spin_unlock(&dev->buflock); - exit: - - adu_debug_data(5, __FUNCTION__, urb->actual_length, -@@ -252,12 +270,17 @@ static int adu_open(struct inode *inode, - struct adu_device *dev = NULL; - struct usb_interface *interface; - int subminor; -- int retval = 0; -+ int retval; - - dbg(2,"%s : enter", __FUNCTION__); - - subminor = iminor(inode); - -+ if ((retval = mutex_lock_interruptible(&adutux_mutex))) { -+ dbg(2, "%s : mutex lock failed", __FUNCTION__); -+ goto exit_no_lock; -+ } -+ - interface = usb_find_interface(&adu_driver, subminor); - if (!interface) { - err("%s - error, can't find device for minor %d", -@@ -267,54 +290,54 @@ static int adu_open(struct inode *inode, - } - - dev = usb_get_intfdata(interface); -- if (!dev) { -+ if (!dev || !dev->udev) { - retval = -ENODEV; - goto exit_no_device; - } - -- /* lock this device */ -- if ((retval = mutex_lock_interruptible(&dev->mtx))) { -- dbg(2, "%s : mutex lock failed", __FUNCTION__); -+ /* check that nobody else is using the device */ -+ if (dev->open_count) { -+ retval = -EBUSY; - goto exit_no_device; - } - -- /* increment our usage count for the device */ - ++dev->open_count; - dbg(2,"%s : open count %d", __FUNCTION__, dev->open_count); - - /* save device in the file's private structure */ - file->private_data = dev; - -- if (dev->open_count == 1) { -- /* initialize in direction */ -- dev->read_buffer_length = 0; -+ /* initialize in direction */ -+ dev->read_buffer_length = 0; - -- /* fixup first read by having urb waiting for it */ -- usb_fill_int_urb(dev->interrupt_in_urb,dev->udev, -- usb_rcvintpipe(dev->udev, -- dev->interrupt_in_endpoint->bEndpointAddress), -- dev->interrupt_in_buffer, -- le16_to_cpu(dev->interrupt_in_endpoint->wMaxPacketSize), -- adu_interrupt_in_callback, dev, -- dev->interrupt_in_endpoint->bInterval); -- /* dev->interrupt_in_urb->transfer_flags |= URB_ASYNC_UNLINK; */ -- dev->read_urb_finished = 0; -- retval = usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL); -- if (retval) -- --dev->open_count; -- } -- mutex_unlock(&dev->mtx); -+ /* fixup first read by having urb waiting for it */ -+ usb_fill_int_urb(dev->interrupt_in_urb,dev->udev, -+ usb_rcvintpipe(dev->udev, -+ dev->interrupt_in_endpoint->bEndpointAddress), -+ dev->interrupt_in_buffer, -+ le16_to_cpu(dev->interrupt_in_endpoint->wMaxPacketSize), -+ adu_interrupt_in_callback, dev, -+ dev->interrupt_in_endpoint->bInterval); -+ dev->read_urb_finished = 0; -+ if (usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL)) -+ dev->read_urb_finished = 1; -+ /* we ignore failure */ -+ /* end of fixup for first read */ -+ -+ /* initialize out direction */ -+ dev->out_urb_finished = 1; -+ -+ retval = 0; - - exit_no_device: -+ mutex_unlock(&adutux_mutex); -+exit_no_lock: - dbg(2,"%s : leave, return value %d ", __FUNCTION__, retval); -- - return retval; - } - --static int adu_release_internal(struct adu_device *dev) -+static void adu_release_internal(struct adu_device *dev) - { -- int retval = 0; -- - dbg(2," %s : enter", __FUNCTION__); - - /* decrement our usage count for the device */ -@@ -326,12 +349,11 @@ static int adu_release_internal(struct a - } - - dbg(2," %s : leave", __FUNCTION__); -- return retval; - } - - static int adu_release(struct inode *inode, struct file *file) - { -- struct adu_device *dev = NULL; -+ struct adu_device *dev; - int retval = 0; - - dbg(2," %s : enter", __FUNCTION__); -@@ -343,15 +365,13 @@ static int adu_release(struct inode *ino - } - - dev = file->private_data; -- - if (dev == NULL) { - dbg(1," %s : object is NULL", __FUNCTION__); - retval = -ENODEV; - goto exit; - } - -- /* lock our device */ -- mutex_lock(&dev->mtx); /* not interruptible */ -+ mutex_lock(&adutux_mutex); /* not interruptible */ - - if (dev->open_count <= 0) { - dbg(1," %s : device not opened", __FUNCTION__); -@@ -359,19 +379,15 @@ static int adu_release(struct inode *ino - goto exit; - } - -+ adu_release_internal(dev); - if (dev->udev == NULL) { - /* the device was unplugged before the file was released */ -- mutex_unlock(&dev->mtx); -- adu_delete(dev); -- dev = NULL; -- } else { -- /* do the work */ -- retval = adu_release_internal(dev); -+ if (!dev->open_count) /* ... and we're the last user */ -+ adu_delete(dev); - } - - exit: -- if (dev) -- mutex_unlock(&dev->mtx); -+ mutex_unlock(&adutux_mutex); - dbg(2," %s : leave, return value %d", __FUNCTION__, retval); - return retval; - } -@@ -393,12 +409,12 @@ static ssize_t adu_read(struct file *fil - - dev = file->private_data; - dbg(2," %s : dev=%p", __FUNCTION__, dev); -- /* lock this object */ -+ - if (mutex_lock_interruptible(&dev->mtx)) - return -ERESTARTSYS; - - /* verify that the device wasn't unplugged */ -- if (dev->udev == NULL || dev->minor == 0) { -+ if (dev->udev == NULL) { - retval = -ENODEV; - err("No device or device unplugged %d", retval); - goto exit; -@@ -452,7 +468,7 @@ static ssize_t adu_read(struct file *fil - should_submit = 1; - } else { - /* even the primary was empty - we may need to do IO */ -- if (dev->interrupt_in_urb->status == -EINPROGRESS) { -+ if (!dev->read_urb_finished) { - /* somebody is doing IO */ - spin_unlock_irqrestore(&dev->buflock, flags); - dbg(2," %s : submitted already", __FUNCTION__); -@@ -460,6 +476,7 @@ static ssize_t adu_read(struct file *fil - /* we must initiate input */ - dbg(2," %s : initiate input", __FUNCTION__); - dev->read_urb_finished = 0; -+ spin_unlock_irqrestore(&dev->buflock, flags); - - usb_fill_int_urb(dev->interrupt_in_urb,dev->udev, - usb_rcvintpipe(dev->udev, -@@ -469,15 +486,12 @@ static ssize_t adu_read(struct file *fil - adu_interrupt_in_callback, - dev, - dev->interrupt_in_endpoint->bInterval); -- retval = usb_submit_urb(dev->interrupt_in_urb, GFP_ATOMIC); -- if (!retval) { -- spin_unlock_irqrestore(&dev->buflock, flags); -- dbg(2," %s : submitted OK", __FUNCTION__); -- } else { -+ retval = usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL); -+ if (retval) { -+ dev->read_urb_finished = 1; - if (retval == -ENOMEM) { - retval = bytes_read ? bytes_read : -ENOMEM; - } -- spin_unlock_irqrestore(&dev->buflock, flags); - dbg(2," %s : submit failed", __FUNCTION__); - goto exit; - } -@@ -486,10 +500,14 @@ static ssize_t adu_read(struct file *fil - /* we wait for I/O to complete */ - set_current_state(TASK_INTERRUPTIBLE); - add_wait_queue(&dev->read_wait, &wait); -- if (!dev->read_urb_finished) -+ spin_lock_irqsave(&dev->buflock, flags); -+ if (!dev->read_urb_finished) { -+ spin_unlock_irqrestore(&dev->buflock, flags); - timeout = schedule_timeout(COMMAND_TIMEOUT); -- else -+ } else { -+ spin_unlock_irqrestore(&dev->buflock, flags); - set_current_state(TASK_RUNNING); -+ } - remove_wait_queue(&dev->read_wait, &wait); - - if (timeout <= 0) { -@@ -509,19 +527,23 @@ static ssize_t adu_read(struct file *fil - - retval = bytes_read; - /* if the primary buffer is empty then use it */ -- if (should_submit && !dev->interrupt_in_urb->status==-EINPROGRESS) { -+ spin_lock_irqsave(&dev->buflock, flags); -+ if (should_submit && dev->read_urb_finished) { -+ dev->read_urb_finished = 0; -+ spin_unlock_irqrestore(&dev->buflock, flags); - usb_fill_int_urb(dev->interrupt_in_urb,dev->udev, - usb_rcvintpipe(dev->udev, - dev->interrupt_in_endpoint->bEndpointAddress), -- dev->interrupt_in_buffer, -- le16_to_cpu(dev->interrupt_in_endpoint->wMaxPacketSize), -- adu_interrupt_in_callback, -- dev, -- dev->interrupt_in_endpoint->bInterval); -- /* dev->interrupt_in_urb->transfer_flags |= URB_ASYNC_UNLINK; */ -- dev->read_urb_finished = 0; -- usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL); -+ dev->interrupt_in_buffer, -+ le16_to_cpu(dev->interrupt_in_endpoint->wMaxPacketSize), -+ adu_interrupt_in_callback, -+ dev, -+ dev->interrupt_in_endpoint->bInterval); -+ if (usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL) != 0) -+ dev->read_urb_finished = 1; - /* we ignore failure */ -+ } else { -+ spin_unlock_irqrestore(&dev->buflock, flags); - } - - exit: -@@ -535,24 +557,24 @@ exit: - static ssize_t adu_write(struct file *file, const __user char *buffer, - size_t count, loff_t *ppos) - { -+ DECLARE_WAITQUEUE(waita, current); - struct adu_device *dev; - size_t bytes_written = 0; - size_t bytes_to_write; - size_t buffer_size; -+ unsigned long flags; - int retval; -- int timeout = 0; - - dbg(2," %s : enter, count = %Zd", __FUNCTION__, count); - - dev = file->private_data; - -- /* lock this object */ - retval = mutex_lock_interruptible(&dev->mtx); - if (retval) - goto exit_nolock; - - /* verify that the device wasn't unplugged */ -- if (dev->udev == NULL || dev->minor == 0) { -+ if (dev->udev == NULL) { - retval = -ENODEV; - err("No device or device unplugged %d", retval); - goto exit; -@@ -564,42 +586,37 @@ static ssize_t adu_write(struct file *fi - goto exit; - } - -- - while (count > 0) { -- if (dev->interrupt_out_urb->status == -EINPROGRESS) { -- timeout = COMMAND_TIMEOUT; -+ add_wait_queue(&dev->write_wait, &waita); -+ set_current_state(TASK_INTERRUPTIBLE); -+ spin_lock_irqsave(&dev->buflock, flags); -+ if (!dev->out_urb_finished) { -+ spin_unlock_irqrestore(&dev->buflock, flags); - -- while (timeout > 0) { -- if (signal_pending(current)) { -+ mutex_unlock(&dev->mtx); -+ if (signal_pending(current)) { - dbg(1," %s : interrupted", __FUNCTION__); -+ set_current_state(TASK_RUNNING); - retval = -EINTR; -- goto exit; -+ goto exit_onqueue; - } -- mutex_unlock(&dev->mtx); -- timeout = interruptible_sleep_on_timeout(&dev->write_wait, timeout); -+ if (schedule_timeout(COMMAND_TIMEOUT) == 0) { -+ dbg(1, "%s - command timed out.", __FUNCTION__); -+ retval = -ETIMEDOUT; -+ goto exit_onqueue; -+ } -+ remove_wait_queue(&dev->write_wait, &waita); - retval = mutex_lock_interruptible(&dev->mtx); - if (retval) { - retval = bytes_written ? bytes_written : retval; - goto exit_nolock; - } -- if (timeout > 0) { -- break; -- } -- dbg(1," %s : interrupted timeout: %d", __FUNCTION__, timeout); -- } -- -- -- dbg(1," %s : final timeout: %d", __FUNCTION__, timeout); -- -- if (timeout == 0) { -- dbg(1, "%s - command timed out.", __FUNCTION__); -- retval = -ETIMEDOUT; -- goto exit; -- } -- -- dbg(4," %s : in progress, count = %Zd", __FUNCTION__, count); - -+ dbg(4," %s : in progress, count = %Zd", __FUNCTION__, count); - } else { -+ spin_unlock_irqrestore(&dev->buflock, flags); -+ set_current_state(TASK_RUNNING); -+ remove_wait_queue(&dev->write_wait, &waita); - dbg(4," %s : sending, count = %Zd", __FUNCTION__, count); - - /* write the data into interrupt_out_buffer from userspace */ -@@ -622,11 +639,12 @@ static ssize_t adu_write(struct file *fi - bytes_to_write, - adu_interrupt_out_callback, - dev, -- dev->interrupt_in_endpoint->bInterval); -- /* dev->interrupt_in_urb->transfer_flags |= URB_ASYNC_UNLINK; */ -+ dev->interrupt_out_endpoint->bInterval); - dev->interrupt_out_urb->actual_length = bytes_to_write; -+ dev->out_urb_finished = 0; - retval = usb_submit_urb(dev->interrupt_out_urb, GFP_KERNEL); - if (retval < 0) { -+ dev->out_urb_finished = 1; - err("Couldn't submit interrupt_out_urb %d", retval); - goto exit; - } -@@ -637,16 +655,17 @@ static ssize_t adu_write(struct file *fi - bytes_written += bytes_to_write; - } - } -- -- retval = bytes_written; -+ mutex_unlock(&dev->mtx); -+ return bytes_written; - - exit: -- /* unlock the device */ - mutex_unlock(&dev->mtx); - exit_nolock: -- - dbg(2," %s : leave, return value %d", __FUNCTION__, retval); -+ return retval; - -+exit_onqueue: -+ remove_wait_queue(&dev->write_wait, &waita); - return retval; - } - -@@ -831,25 +850,22 @@ static void adu_disconnect(struct usb_in - dbg(2," %s : enter", __FUNCTION__); - - dev = usb_get_intfdata(interface); -- usb_set_intfdata(interface, NULL); - -+ mutex_lock(&dev->mtx); /* not interruptible */ -+ dev->udev = NULL; /* poison */ - minor = dev->minor; -- -- /* give back our minor */ - usb_deregister_dev(interface, &adu_class); -- dev->minor = 0; -+ mutex_unlock(&dev->mtx); - -- mutex_lock(&dev->mtx); /* not interruptible */ -+ mutex_lock(&adutux_mutex); -+ usb_set_intfdata(interface, NULL); - - /* if the device is not opened, then we clean up right now */ - dbg(2," %s : open count %d", __FUNCTION__, dev->open_count); -- if (!dev->open_count) { -- mutex_unlock(&dev->mtx); -+ if (!dev->open_count) - adu_delete(dev); -- } else { -- dev->udev = NULL; -- mutex_unlock(&dev->mtx); -- } -+ -+ mutex_unlock(&adutux_mutex); - - dev_info(&interface->dev, "ADU device adutux%d now disconnected\n", - (minor - ADU_MINOR_BASE)); diff --git a/usb/usb-fix-priority-mistakes-in-drivers-usb-core-hub.c.patch b/usb/usb-fix-priority-mistakes-in-drivers-usb-core-hub.c.patch deleted file mode 100644 index fa3518cdfbfae1..00000000000000 --- a/usb/usb-fix-priority-mistakes-in-drivers-usb-core-hub.c.patch +++ /dev/null @@ -1,29 +0,0 @@ -From linux-usb-devel-bounces@lists.sourceforge.net Fri Oct 26 14:54:56 2007 -From: Roel Kluin <12o3l@tiscali.nl> -Date: Fri, 26 Oct 2007 23:54:35 +0200 -Subject: USB: Fix priority mistakes in drivers/usb/core/hub.c -To: linux-usb-devel@lists.sourceforge.net -Message-ID: <4722621B.9020107@tiscali.nl> - - -Fixes priority mistakes similar to '!x & y' - -Signed-off-by: Roel Kluin <12o3l@tiscali.nl> -Acked-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/hub.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -335,7 +335,7 @@ static void kick_khubd(struct usb_hub *h - to_usb_interface(hub->intfdev)->pm_usage_cnt = 1; - - spin_lock_irqsave(&hub_event_lock, flags); -- if (!hub->disconnected & list_empty(&hub->event_list)) { -+ if (!hub->disconnected && list_empty(&hub->event_list)) { - list_add_tail(&hub->event_list, &hub_event_list); - wake_up(&khubd_wait); - } diff --git a/usb/usb-fix-signr-comment-in-usbdevice_fs.h.patch b/usb/usb-fix-signr-comment-in-usbdevice_fs.h.patch deleted file mode 100644 index c4acffa473385c..00000000000000 --- a/usb/usb-fix-signr-comment-in-usbdevice_fs.h.patch +++ /dev/null @@ -1,33 +0,0 @@ -From linux-usb-devel-bounces@lists.sourceforge.net Mon Oct 29 13:41:07 2007 -From: Phil Endecott <spam_from_usb_devel@chezphil.org> -Date: Mon, 29 Oct 2007 20:40:30 +0000 -Subject: USB: Fix signr comment in usbdevice_fs.h -To: "Alan Stern" <stern@rowland.harvard.edu> -Cc: linux-usb-devel@lists.sourceforge.net -Message-ID: <1193690430304@dmwebmail.japan.chezphil.org> - - -This trivial documentation patch corrects a comment in usbdevice_fs.h; it -previously suggested that the signal would only be sent on error, but I am -told that it is sent on both successful and unsuccessful completion, and -that zero indicates that no signal should be sent. - -Signed-off-by: Phil Endecott <spam_from_usb_devel@chezphil.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - include/linux/usbdevice_fs.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/include/linux/usbdevice_fs.h -+++ b/include/linux/usbdevice_fs.h -@@ -102,7 +102,8 @@ struct usbdevfs_urb { - int start_frame; - int number_of_packets; - int error_count; -- unsigned int signr; /* signal to be sent on error, -1 if none should be sent */ -+ unsigned int signr; /* signal to be sent on completion, -+ or 0 if none should be sent. */ - void *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; - }; diff --git a/usb/usb-fix-up-ehci-startup-synchronization.patch b/usb/usb-fix-up-ehci-startup-synchronization.patch deleted file mode 100644 index 62892feb3e23a0..00000000000000 --- a/usb/usb-fix-up-ehci-startup-synchronization.patch +++ /dev/null @@ -1,48 +0,0 @@ -From david-b@pacbell.net Mon Nov 26 21:59:26 2007 -From: David Brownell <david-b@pacbell.net> -Date: Tue, 13 Nov 2007 16:22:30 -0800 -Subject: USB: fix up EHCI startup synchronization -To: Greg KH <gregkh@suse.de> -Cc: stern@rowland.harvard.edu, davem@davemloft.net, dely.l.sy@intel.com, stable@kernel.org, stable-commits@vger.kernel.org -Message-ID: <200711131622.31183.david-b@pacbell.net> -Content-Disposition: inline - -From: David Brownell <david-b@pacbell.net> - -A recent patch added software synchronization during EHCI startup, -so ports aren't switched away from the companion controllers after -resets have started. This patch adds a short delay letting hardware -finish that port switching before any new resets begin ... so both -ends of that hardware race window are closed. - -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Cc: Dave Miller <davem@davemloft.net> -Cc: Dely Sy <dely.l.sy@intel.com> -Cc: stable <stable@kernel.org> -Cc: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/usb/host/ehci-hcd.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/ehci-hcd.c -+++ b/drivers/usb/host/ehci-hcd.c -@@ -575,12 +575,15 @@ static int ehci_run (struct usb_hcd *hcd - * from the companions to the EHCI controller. If any of the - * companions are in the middle of a port reset at the time, it - * could cause trouble. Write-locking ehci_cf_port_reset_rwsem -- * guarantees that no resets are in progress. -+ * guarantees that no resets are in progress. After we set CF, -+ * a short delay lets the hardware catch up; new resets shouldn't -+ * be started before the port switching actions could complete. - */ - down_write(&ehci_cf_port_reset_rwsem); - hcd->state = HC_STATE_RUNNING; - ehci_writel(ehci, FLAG_CF, &ehci->regs->configured_flag); - ehci_readl(ehci, &ehci->regs->command); /* unblock posted writes */ -+ msleep(5); - up_write(&ehci_cf_port_reset_rwsem); - - temp = HC_VERSION(ehci_readl(ehci, &ehci->caps->hc_capbase)); diff --git a/usb/usb-fix-usb_ohci_hcd_ssb-dependencies.patch b/usb/usb-fix-usb_ohci_hcd_ssb-dependencies.patch deleted file mode 100644 index 9ff6bfa6a8dced..00000000000000 --- a/usb/usb-fix-usb_ohci_hcd_ssb-dependencies.patch +++ /dev/null @@ -1,33 +0,0 @@ -From bunk@kernel.org Fri Oct 26 22:19:45 2007 -From: Adrian Bunk <bunk@kernel.org> -Date: Sat, 27 Oct 2007 03:06:47 +0200 -Subject: USB: fix USB_OHCI_HCD_SSB dependencies -To: Ingo Molnar <mingo@elte.hu>, Michael Buesch <mb@bu3sch.de>, Greg Kroah-Hartman <gregkh@suse.de> -Cc: linux-kernel@vger.kernel.org, linux-usb-devel@lists.sourceforge.net -Message-ID: <20071027010647.GN30533@stusta.de> -Content-Disposition: inline - - -This patch fixes a bug introduced by -commit b22817b3c81cdb18ffe3d2debfee968731a8b5f4. - -Signed-off-by: Adrian Bunk <bunk@kernel.org> -Cc: Ingo Molnar <mingo@elte.hu> -Cc: Michael Buesch <mb@bu3sch.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/host/Kconfig -+++ b/drivers/usb/host/Kconfig -@@ -156,7 +156,7 @@ config USB_OHCI_HCD_PCI - - config USB_OHCI_HCD_SSB - bool "OHCI support for Broadcom SSB OHCI core" -- depends on USB_OHCI_HCD && (SSB = y || SSB = CONFIG_USB_OHCI_HCD) && EXPERIMENTAL -+ depends on USB_OHCI_HCD && (SSB = y || SSB = USB_OHCI_HCD) && EXPERIMENTAL - default n - ---help--- - Support for the Sonics Silicon Backplane (SSB) attached diff --git a/usb/usb-fix-usbled-disconnect-read-race-2.patch b/usb/usb-fix-usbled-disconnect-read-race-2.patch deleted file mode 100644 index 89ae420fd773d0..00000000000000 --- a/usb/usb-fix-usbled-disconnect-read-race-2.patch +++ /dev/null @@ -1,39 +0,0 @@ -From oliver@neukum.org Sun Oct 28 00:21:21 2007 -From: Oliver Neukum <oliver@neukum.org> -Date: Sun, 28 Oct 2007 08:21:59 +0100 -Subject: USB: fix usbled disconnect read race #2 -To: greg@kroah.com, linux-usb-devel@lists.sourceforge.net -Message-ID: <200710280821.59914.oliver@neukum.org> -Content-Disposition: inline - - -usbled has a race where show methods for attributes in sysfs can -follow a NULL pointer during disconnect. The correct ordering fixes -it. - -Signed-off-by: Oliver Neukum <oneukum@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/usb/misc/usbled.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/usb/misc/usbled.c -+++ b/drivers/usb/misc/usbled.c -@@ -144,12 +144,14 @@ static void led_disconnect(struct usb_in - struct usb_led *dev; - - dev = usb_get_intfdata (interface); -- usb_set_intfdata (interface, NULL); - - device_remove_file(&interface->dev, &dev_attr_blue); - device_remove_file(&interface->dev, &dev_attr_red); - device_remove_file(&interface->dev, &dev_attr_green); - -+ /* first remove the files, then set the pointer to NULL */ -+ usb_set_intfdata (interface, NULL); -+ - usb_put_dev(dev->udev); - - kfree(dev); diff --git a/usb/usb-free-memory-when-writing-fails-in-usb-serial-mos7840.c.patch b/usb/usb-free-memory-when-writing-fails-in-usb-serial-mos7840.c.patch deleted file mode 100644 index a85ba9ad0d2f72..00000000000000 --- a/usb/usb-free-memory-when-writing-fails-in-usb-serial-mos7840.c.patch +++ /dev/null @@ -1,28 +0,0 @@ -From linux-usb-devel-bounces@lists.sourceforge.net Fri Oct 26 18:36:57 2007 -From: Roel Kluin <12o3l@tiscali.nl> -Date: Sat, 27 Oct 2007 03:36:37 +0200 -Subject: USB: free memory when writing fails in usb/serial/mos7840.c -To: linux-usb-devel@lists.sourceforge.net -Message-ID: <47229625.5090109@tiscali.nl> - - -Free buffer when writing ZLP_REG5 failed - -Signed-off-by: Roel Kluin <12o3l@tiscali.nl> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/mos7840.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/serial/mos7840.c -+++ b/drivers/usb/serial/mos7840.c -@@ -2711,7 +2711,7 @@ static int mos7840_startup(struct usb_se - status = mos7840_set_reg_sync(serial->port[0], ZLP_REG5, Data); - if (status < 0) { - dbg("Writing ZLP_REG5 failed status-0x%x\n", status); -- return -1; -+ goto error; - } else - dbg("ZLP_REG5 Writing success status%d\n", status); - diff --git a/usb/usb-hcd-avoid-duplicate-local_irq_disable.patch b/usb/usb-hcd-avoid-duplicate-local_irq_disable.patch deleted file mode 100644 index 4a43f6ce84d03c..00000000000000 --- a/usb/usb-hcd-avoid-duplicate-local_irq_disable.patch +++ /dev/null @@ -1,51 +0,0 @@ -From akpm@linux-foundation.org Wed Nov 21 15:17:08 2007 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Wed, 21 Nov 2007 15:13:10 -0800 -Subject: USB HCD: avoid duplicate local_irq_disable() -To: greg@kroah.com -Cc: linux-usb-devel@lists.sourceforge.net, akpm@linux-foundation.org, stern@rowland.harvard.edu, arnd@arndb.de -Message-ID: <200711212313.lALNDAXU014207@imap1.linux-foundation.org> - - -From: Alan Stern <stern@rowland.harvard.edu> - -Arnd Bergmann wrote: - -usb_hcd_flush_endpoint() has a retry loop that starts with a spin_lock_irq(), -but only gives up the spinlock, not the irq_disable before jumping to the -rescan label. - -Alan Stern: - -I agree with your sentiment, but it would be better to solve this -problem without using local_irq_disable(). - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/hcd.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/usb/core/hcd.c -+++ b/drivers/usb/core/hcd.c -@@ -1311,8 +1311,8 @@ void usb_hcd_flush_endpoint(struct usb_d - hcd = bus_to_hcd(udev->bus); - - /* No more submits can occur */ --rescan: - spin_lock_irq(&hcd_urb_list_lock); -+rescan: - list_for_each_entry (urb, &ep->urb_list, urb_list) { - int is_in; - -@@ -1345,6 +1345,7 @@ rescan: - usb_put_urb (urb); - - /* list contents may have changed */ -+ spin_lock(&hcd_urb_list_lock); - goto rescan; - } - spin_unlock_irq(&hcd_urb_list_lock); diff --git a/usb/usb-keep-track-of-whether-interface-sysfs-files-exist.patch b/usb/usb-keep-track-of-whether-interface-sysfs-files-exist.patch deleted file mode 100644 index 454bcdf8c6f265..00000000000000 --- a/usb/usb-keep-track-of-whether-interface-sysfs-files-exist.patch +++ /dev/null @@ -1,104 +0,0 @@ -From stern@rowland.harvard.edu Mon Nov 26 21:35:59 2007 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 6 Nov 2007 11:43:42 -0500 (EST) -Subject: USB: keep track of whether interface sysfs files exist -To: Greg KH <greg@kroah.com> -Message-ID: <Pine.LNX.4.44L0.0711061141370.3883-100000@iolanthe.rowland.org> - - -This patch (as1009) solves the problem of multiple registrations for -USB sysfs files in a more satisfying way than the existing code. It -simply adds a flag to keep track of whether or not the files have been -created; that way the files can be created or removed as needed. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> - ---- - drivers/usb/core/message.c | 12 ++---------- - drivers/usb/core/sysfs.c | 6 ++++++ - include/linux/usb.h | 1 + - 3 files changed, 9 insertions(+), 10 deletions(-) - ---- a/drivers/usb/core/message.c -+++ b/drivers/usb/core/message.c -@@ -1172,7 +1172,6 @@ int usb_set_interface(struct usb_device - struct usb_host_interface *alt; - int ret; - int manual = 0; -- int changed; - - if (dev->state == USB_STATE_SUSPENDED) - return -EHOSTUNREACH; -@@ -1212,8 +1211,7 @@ int usb_set_interface(struct usb_device - */ - - /* prevent submissions using previous endpoint settings */ -- changed = (iface->cur_altsetting != alt); -- if (changed && device_is_registered(&iface->dev)) -+ if (iface->cur_altsetting != alt && device_is_registered(&iface->dev)) - usb_remove_sysfs_intf_files(iface); - usb_disable_interface(dev, iface); - -@@ -1250,7 +1248,7 @@ int usb_set_interface(struct usb_device - * (Likewise, EP0 never "halts" on well designed devices.) - */ - usb_enable_interface(dev, iface); -- if (changed && device_is_registered(&iface->dev)) -+ if (device_is_registered(&iface->dev)) - usb_create_sysfs_intf_files(iface); - - return 0; -@@ -1641,12 +1639,6 @@ free_interfaces: - intf->dev.bus_id, ret); - continue; - } -- -- /* The driver's probe method can call usb_set_interface(), -- * which would mean the interface's sysfs files are already -- * created. Just in case, we'll remove them first. -- */ -- usb_remove_sysfs_intf_files(intf); - usb_create_sysfs_intf_files(intf); - } - ---- a/drivers/usb/core/sysfs.c -+++ b/drivers/usb/core/sysfs.c -@@ -735,6 +735,8 @@ int usb_create_sysfs_intf_files(struct u - struct usb_host_interface *alt = intf->cur_altsetting; - int retval; - -+ if (intf->sysfs_files_created) -+ return 0; - retval = sysfs_create_group(&dev->kobj, &intf_attr_grp); - if (retval) - return retval; -@@ -746,6 +748,7 @@ int usb_create_sysfs_intf_files(struct u - if (intf->intf_assoc) - retval = sysfs_create_group(&dev->kobj, &intf_assoc_attr_grp); - usb_create_intf_ep_files(intf, udev); -+ intf->sysfs_files_created = 1; - return 0; - } - -@@ -753,8 +756,11 @@ void usb_remove_sysfs_intf_files(struct - { - struct device *dev = &intf->dev; - -+ if (!intf->sysfs_files_created) -+ return; - usb_remove_intf_ep_files(intf); - device_remove_file(dev, &dev_attr_interface); - sysfs_remove_group(&dev->kobj, &intf_attr_grp); - sysfs_remove_group(&intf->dev.kobj, &intf_assoc_attr_grp); -+ intf->sysfs_files_created = 0; - } ---- a/include/linux/usb.h -+++ b/include/linux/usb.h -@@ -157,6 +157,7 @@ struct usb_interface { - * bound to */ - enum usb_interface_condition condition; /* state of binding */ - unsigned is_active:1; /* the interface is not suspended */ -+ unsigned sysfs_files_created:1; /* the sysfs attributes exist */ - unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */ - - struct device dev; /* interface specific device info */ diff --git a/usb/usb-mailing-lists-have-changed.patch b/usb/usb-mailing-lists-have-changed.patch deleted file mode 100644 index 186cf0f9a7a121..00000000000000 --- a/usb/usb-mailing-lists-have-changed.patch +++ /dev/null @@ -1,325 +0,0 @@ -From foo@baz Tue Apr 9 12:12:43 2002 -Date: Wed, 21 Nov 2007 15:16:59 -0700 -To: Greg KH <greg@kroah.com> -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: USB: mailing lists have changed - -The linux-usb-devel and linux-usb-users are now hosted in the same list -at vger.kernel.org - -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - MAINTAINERS | 94 ++++++++++++++++++++++-------------------------------------- - 1 file changed, 35 insertions(+), 59 deletions(-) - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -323,8 +323,7 @@ S: Maintained - ALCATEL SPEEDTOUCH USB DRIVER - P: Duncan Sands - M: duncan.sands@free.fr --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.linux-usb.org/SpeedTouch/ - S: Maintained - -@@ -1043,7 +1042,7 @@ S: Maintained - CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER - P: Lennert Buytenhek - M: kernel@wantstofly.org --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - CIRRUS LOGIC CS4280/CS461x SOUNDDRIVER -@@ -1552,7 +1551,7 @@ S: Maintained - FREESCALE HIGHSPEED USB DEVICE DRIVER - P: Li Yang - M: leoli@freescale.com --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: linuxppc-dev@ozlabs.org - S: Maintained - -@@ -3810,22 +3809,20 @@ S: Maintained - USB ACM DRIVER - P: Oliver Neukum - M: oliver@neukum.name --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB BLOCK DRIVER (UB ub) - P: Pete Zaitcev - M: zaitcev@redhat.com - L: linux-kernel@vger.kernel.org --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Supported - - USB CDC ETHERNET DRIVER - P: Greg Kroah-Hartman - M: greg@kroah.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - W: http://www.kroah.com/linux-usb/ - -@@ -3839,13 +3836,13 @@ S: Maintained - USB EHCI DRIVER - P: David Brownell - M: dbrownell@users.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Odd Fixes - - USB ET61X[12]51 DRIVER - P: Luca Risolia - M: luca.risolia@studio.unibo.it --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: video4linux-list@redhat.com - W: http://www.linux-projects.org - S: Maintained -@@ -3853,34 +3850,33 @@ S: Maintained - USB GADGET/PERIPHERAL SUBSYSTEM - P: David Brownell - M: dbrownell@users.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.linux-usb.org/gadget - S: Maintained - - USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...) - P: Jiri Kosina - M: jkosina@suse.cz --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - T: git kernel.org:/pub/scm/linux/kernel/git/jikos/hid.git - S: Maintained - - USB ISP116X DRIVER - P: Olav Kongas - M: ok@artecdesign.ee --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB KAWASAKI LSI DRIVER - P: Oliver Neukum - M: oliver@neukum.name --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB MASS STORAGE DRIVER - P: Matthew Dharm - M: mdharm-usb@one-eyed-alien.net --L: linux-usb-users@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: usb-storage@lists.one-eyed-alien.net - S: Maintained - W: http://www.one-eyed-alien.net/~mdharm/linux-usb/ -@@ -3888,28 +3884,26 @@ W: http://www.one-eyed-alien.net/~mdharm - USB OHCI DRIVER - P: David Brownell - M: dbrownell@users.sourceforge.net --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Odd Fixes - - USB OPTION-CARD DRIVER - P: Matthias Urlichs - M: smurf@smurf.noris.de --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB OV511 DRIVER - P: Mark McClelland - M: mmcclell@bigfoot.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://alpha.dyndns.org/ov511/ - S: Maintained - - USB PEGASUS DRIVER - P: Petko Manolov - M: petkan@users.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: netdev@vger.kernel.org - W: http://pegasus2.sourceforge.net/ - S: Maintained -@@ -3917,14 +3911,13 @@ S: Maintained - USB PRINTER DRIVER (usblp) - P: Pete Zaitcev - M: zaitcev@redhat.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Supported - - USB RTL8150 DRIVER - P: Petko Manolov - M: petkan@users.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: netdev@vger.kernel.org - W: http://pegasus2.sourceforge.net/ - S: Maintained -@@ -3932,8 +3925,7 @@ S: Maintained - USB SE401 DRIVER - P: Jeroen Vreeken - M: pe1rxq@amsat.org --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.chello.nl/~j.vreeken/se401/ - S: Maintained - -@@ -3947,72 +3939,59 @@ USB SERIAL DIGI ACCELEPORT DRIVER - P: Peter Berger and Al Borchers - M: pberger@brimson.com - M: alborchers@steinerpoint.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB SERIAL DRIVER - P: Greg Kroah-Hartman - M: gregkh@suse.de --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Supported - - USB SERIAL BELKIN F5U103 DRIVER - P: William Greathouse - M: wgreathouse@smva.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB SERIAL CYPRESS M8 DRIVER - P: Lonnie Mendez - M: dignome@gmail.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - W: http://geocities.com/i0xox0i - W: http://firstlight.net/cvs - --USB SERIAL CYBERJACK PINPAD/E-COM DRIVER --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net --S: Maintained -- - USB AUERSWALD DRIVER - P: Wolfgang Muees - M: wolfgang@iksw-muees.de --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER - P: Gary Brubaker - M: xavyer@ix.netcom.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB SERIAL KEYSPAN DRIVER - P: Greg Kroah-Hartman - M: greg@kroah.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.kroah.com/linux/ - S: Maintained - - USB SERIAL WHITEHEAT DRIVER - P: Support Department - M: support@connecttech.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.connecttech.com - S: Supported - - USB SN9C1xx DRIVER - P: Luca Risolia - M: luca.risolia@studio.unibo.it --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: video4linux-list@redhat.com - W: http://www.linux-projects.org - S: Maintained -@@ -4020,8 +3999,7 @@ S: Maintained - USB SUBSYSTEM - P: Greg Kroah-Hartman - M: gregkh@suse.de --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://www.linux-usb.org - T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ - S: Supported -@@ -4029,8 +4007,7 @@ S: Supported - USB UHCI DRIVER - P: Alan Stern - M: stern@rowland.harvard.edu --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - S: Maintained - - USB "USBNET" DRIVER FRAMEWORK -@@ -4043,7 +4020,7 @@ S: Maintained - USB W996[87]CF DRIVER - P: Luca Risolia - M: luca.risolia@studio.unibo.it --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: video4linux-list@redhat.com - W: http://www.linux-projects.org - S: Maintained -@@ -4051,7 +4028,7 @@ S: Maintained - USB ZC0301 DRIVER - P: Luca Risolia - M: luca.risolia@studio.unibo.it --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: video4linux-list@redhat.com - W: http://www.linux-projects.org - S: Maintained -@@ -4059,15 +4036,14 @@ S: Maintained - USB ZD1201 DRIVER - P: Jeroen Vreeken - M: pe1rxq@amsat.org --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - W: http://linux-lc100020.sourceforge.net - S: Maintained - - USB ZR364XX DRIVER - P: Antoine Jacquet - M: royale@zerezo.com --L: linux-usb-devel@lists.sourceforge.net -+L: linux-usb@vger.kernel.org - L: video4linux-list@redhat.com - W: http://royale.zerezo.com/zr364xx/ - S: Maintained diff --git a/usb/usb-make-the-microtek-driver-and-hal-cooperate.patch b/usb/usb-make-the-microtek-driver-and-hal-cooperate.patch deleted file mode 100644 index 4dabff476e61e3..00000000000000 --- a/usb/usb-make-the-microtek-driver-and-hal-cooperate.patch +++ /dev/null @@ -1,31 +0,0 @@ -From oliver@neukum.org Mon Nov 26 21:56:42 2007 -From: Oliver Neukum <oliver@neukum.org> -Date: Mon, 12 Nov 2007 14:08:43 +0100 -Subject: USB: make the microtek driver and HAL cooperate -To: Greg KH <gregkh@suse.de>, linux-usb-devel@lists.sourceforge.net -Message-ID: <200711121408.43411.oliver@neukum.org> -Content-Disposition: inline - - -to make HAL like the microtek driver's devices the parent must be -correctly set. - -Signed-off-by: Oliver Neukum <oneukum@suse.de> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/image/microtek.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/image/microtek.c -+++ b/drivers/usb/image/microtek.c -@@ -819,7 +819,7 @@ static int mts_usb_probe(struct usb_inte - goto out_kfree2; - - new_desc->host->hostdata[0] = (unsigned long)new_desc; -- if (scsi_add_host(new_desc->host, NULL)) { -+ if (scsi_add_host(new_desc->host, &dev->dev)) { - err_retval = -EIO; - goto out_host_put; - } diff --git a/usb/usb-omap_udc-build-fix.patch b/usb/usb-omap_udc-build-fix.patch deleted file mode 100644 index 20e72d01091296..00000000000000 --- a/usb/usb-omap_udc-build-fix.patch +++ /dev/null @@ -1,46 +0,0 @@ -From david-b@pacbell.net Fri Oct 26 22:20:24 2007 -From: David Brownell <david-b@pacbell.net> -Date: Fri, 26 Oct 2007 13:42:18 -0700 -Subject: USB: omap_udc build fix -To: Greg KH <greg@kroah.com> -Cc: linux-usb-devel@lists.sourceforge.net -Message-ID: <200710261342.18975.david-b@pacbell.net> -Content-Disposition: inline - -This fixes some build errors ... unclear how this got past earlier tests. - -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/omap_udc.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/gadget/omap_udc.c -+++ b/drivers/usb/gadget/omap_udc.c -@@ -1241,14 +1241,14 @@ static void pullup_enable(struct omap_ud - udc->gadget.dev.parent->power.power_state = PMSG_ON; - udc->gadget.dev.power.power_state = PMSG_ON; - UDC_SYSCON1_REG |= UDC_PULLUP_EN; -- if (!gadget_is_otg(udc->gadget) && !cpu_is_omap15xx()) -+ if (!gadget_is_otg(&udc->gadget) && !cpu_is_omap15xx()) - OTG_CTRL_REG |= OTG_BSESSVLD; - UDC_IRQ_EN_REG = UDC_DS_CHG_IE; - } - - static void pullup_disable(struct omap_udc *udc) - { -- if (!gadget_is_otg(udc->gadget) && !cpu_is_omap15xx()) -+ if (!gadget_is_otg(&udc->gadget) && !cpu_is_omap15xx()) - OTG_CTRL_REG &= ~OTG_BSESSVLD; - UDC_IRQ_EN_REG = UDC_DS_CHG_IE; - UDC_SYSCON1_REG &= ~UDC_PULLUP_EN; -@@ -1386,7 +1386,7 @@ static void update_otg(struct omap_udc * - { - u16 devstat; - -- if (!gadget_is_otg(udc->gadget)) -+ if (!gadget_is_otg(&udc->gadget)) - return; - - if (OTG_CTRL_REG & OTG_ID) diff --git a/usb/usb-pl2303-add-support-for-corega-cg-usbrs232r.patch b/usb/usb-pl2303-add-support-for-corega-cg-usbrs232r.patch deleted file mode 100644 index f6b3a2d860750b..00000000000000 --- a/usb/usb-pl2303-add-support-for-corega-cg-usbrs232r.patch +++ /dev/null @@ -1,40 +0,0 @@ -From magnus.damm@gmail.com Wed Nov 7 23:47:03 2007 -From: Magnus Damm <magnus.damm@gmail.com> -Date: Thu, 08 Nov 2007 16:45:46 +0900 -Subject: USB: pl2303: add support for Corega CG-USBRS232R -To: linux-usb-devel@lists.sourceforge.net -Cc: greg@kroah.com,Magnus Damm <magnus.damm@gmail.com> -Message-ID: <20071108074546.4026.26851.sendpatchset@clockwork.opensource.se> - - -pl2303: add support for Corega CG-USBRS232R - -This patch adds support for Corega CG-USBRS232R Serial Adapters. - -Signed-off-by: Magnus Damm <damm@igel.co.jp> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/pl2303.c | 1 + - drivers/usb/serial/pl2303.h | 3 +++ - 2 files changed, 4 insertions(+) - ---- a/drivers/usb/serial/pl2303.c -+++ b/drivers/usb/serial/pl2303.c -@@ -86,6 +86,7 @@ static struct usb_device_id id_table [] - { USB_DEVICE(ALCOR_VENDOR_ID, ALCOR_PRODUCT_ID) }, - { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ID) }, - { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) }, -+ { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) }, - { } /* Terminating entry */ - }; - ---- a/drivers/usb/serial/pl2303.h -+++ b/drivers/usb/serial/pl2303.h -@@ -104,3 +104,6 @@ - #define WS002IN_VENDOR_ID 0x11f6 - #define WS002IN_PRODUCT_ID 0x2001 - -+/* Corega CG-USBRS232R Serial Adapter */ -+#define COREGA_VENDOR_ID 0x07aa -+#define COREGA_PRODUCT_ID 0x002a diff --git a/usb/usb-power-management-documenation-update.patch b/usb/usb-power-management-documenation-update.patch deleted file mode 100644 index c340633c744fa5..00000000000000 --- a/usb/usb-power-management-documenation-update.patch +++ /dev/null @@ -1,39 +0,0 @@ -From stern@rowland.harvard.edu Fri Nov 16 08:58:23 2007 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Fri, 16 Nov 2007 11:58:15 -0500 (EST) -Subject: USB: power-management documenation update -To: Greg KH <greg@kroah.com>, Tilman Schmidt <tilman@imap.cc> -Cc: USB development list <linux-usb-devel@lists.sourceforge.net> -Message-ID: <Pine.LNX.4.44L0.0711161157390.3268-100000@iolanthe.rowland.org> - - -This patch (as1014) was partly written by Tilman Schmidt. It -clarifies the USB power-management documentation by explaining that -when a disconnect occurs, a suspend method call might not be followed -by either a resume or a reset_resume call. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Tilman Schmidt <tilman@imap.cc> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - Documentation/usb/power-management.txt | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/Documentation/usb/power-management.txt -+++ b/Documentation/usb/power-management.txt -@@ -278,6 +278,14 @@ optional. The methods' jobs are quite s - (although the interfaces will be in the same altsettings as - before the suspend). - -+If the device is disconnected or powered down while it is suspended, -+the disconnect method will be called instead of the resume or -+reset_resume method. This is also quite likely to happen when -+waking up from hibernation, as many systems do not maintain suspend -+current to the USB host controllers during hibernation. (It's -+possible to work around the hibernation-forces-disconnect problem by -+using the USB Persist facility.) -+ - The reset_resume method is used by the USB Persist facility (see - Documentation/usb/persist.txt) and it can also be used under certain - circumstances when CONFIG_USB_PERSIST is not enabled. Currently, if a diff --git a/usb/usb-remove-usb-hub-entry-from-maintainers.patch b/usb/usb-remove-usb-hub-entry-from-maintainers.patch deleted file mode 100644 index 7f46e31186bca0..00000000000000 --- a/usb/usb-remove-usb-hub-entry-from-maintainers.patch +++ /dev/null @@ -1,38 +0,0 @@ -From david-b@pacbell.net Wed Nov 7 13:31:47 2007 -From: David Brownell <david-b@pacbell.net> -Date: Wed, 7 Nov 2007 12:59:54 -0800 -Subject: USB: remove USB HUB entry from MAINTAINERS -To: Greg KH <greg@kroah.com> -Cc: linux-usb-devel@lists.sourceforge.net -Message-ID: <200711071259.55061.david-b@pacbell.net> -Content-Disposition: inline - - -Digging through old mail, I found a note about needing to remove the -separate entry for the USB HUB driver. It's not been separable from -usbcore (host side!) since quite early in the 2.4 kernel series. -And Johanness certainly isn't involved with it any more. - -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - MAINTAINERS | 7 ------- - 1 file changed, 7 deletions(-) - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -3864,13 +3864,6 @@ L: linux-usb-devel@lists.sourceforge.net - T: git kernel.org:/pub/scm/linux/kernel/git/jikos/hid.git - S: Maintained - --USB HUB DRIVER --P: Johannes Erdfelt --M: johannes@erdfelt.com --L: linux-usb-users@lists.sourceforge.net --L: linux-usb-devel@lists.sourceforge.net --S: Maintained -- - USB ISP116X DRIVER - P: Olav Kongas - M: ok@artecdesign.ee diff --git a/usb/usb-s3c2410-gadget-allow-sharing-of-vbus-irq.patch b/usb/usb-s3c2410-gadget-allow-sharing-of-vbus-irq.patch deleted file mode 100644 index c0ec15f88829fe..00000000000000 --- a/usb/usb-s3c2410-gadget-allow-sharing-of-vbus-irq.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ben-linux@fluff.org Mon Nov 26 23:06:43 2007 -From: Ben Dooks <ben-linux@fluff.org> -Date: Mon, 19 Nov 2007 22:28:14 +0000 -Subject: USB: s3c2410 gadget: allow sharing of vbus irq -To: Linux USB Devel <linux-usb-devel@lists.sourceforge.net> -Cc: vince@simtec.co.uk, Greg KH <greg@kroah.com>, Ben Dooks <ben-linux@fluff.org> -Message-ID: <20071119222847.060352719@fluff.org> - - -If another driver wants to claim the vbus pin, say -to notify the user of an connect/disconnect then allow -the IRQ to be shared by specifiying IRQ_SHARED in the -flags. - -Signed-off-by: Ben Dooks <ben-linux@fluff.org> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/s3c2410_udc.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/gadget/s3c2410_udc.c -+++ b/drivers/usb/gadget/s3c2410_udc.c -@@ -1872,9 +1872,9 @@ static int s3c2410_udc_probe(struct plat - if (udc_info && udc_info->vbus_pin > 0) { - irq = s3c2410_gpio_getirq(udc_info->vbus_pin); - retval = request_irq(irq, s3c2410_udc_vbus_irq, -- IRQF_DISABLED | IRQF_TRIGGER_RISING -- | IRQF_TRIGGER_FALLING, -- gadget_name, udc); -+ IRQF_DISABLED | IRQF_TRIGGER_RISING -+ | IRQF_TRIGGER_FALLING | IRQF_SHARED, -+ gadget_name, udc); - - if (retval != 0) { - dev_err(dev, "can't get vbus irq %i, err %d\n", diff --git a/usb/usb-s3c2410-gadget-ensure-vbus-pin-in-input-mode-during-read.patch b/usb/usb-s3c2410-gadget-ensure-vbus-pin-in-input-mode-during-read.patch deleted file mode 100644 index 756d225ce36c1e..00000000000000 --- a/usb/usb-s3c2410-gadget-ensure-vbus-pin-in-input-mode-during-read.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ben-linux@fluff.org Mon Nov 26 23:07:05 2007 -From: Ben Dooks <ben-linux@fluff.org> -Date: Mon, 19 Nov 2007 22:28:15 +0000 -Subject: USB: s3c2410 gadget: ensure vbus pin in input mode during read -To: Linux USB Devel <linux-usb-devel@lists.sourceforge.net> -Cc: vince@simtec.co.uk, Greg KH <greg@kroah.com>, Ben Dooks <ben-linux@fluff.org> -Message-ID: <20071119222847.239944382@fluff.org> - - -Some CPUs in the S3C24XX series do not support readback of the -value of a pin when the pin has been configured to an IRQ. - -Signed-off-by: Ben Dooks <ben-linux@fluff.org> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/s3c2410_udc.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/usb/gadget/s3c2410_udc.c -+++ b/drivers/usb/gadget/s3c2410_udc.c -@@ -1511,7 +1511,11 @@ static irqreturn_t s3c2410_udc_vbus_irq( - unsigned int value; - - dprintk(DEBUG_NORMAL, "%s()\n", __func__); -+ -+ /* some cpus cannot read from an line configured to IRQ! */ -+ s3c2410_gpio_cfgpin(udc_info->vbus_pin, S3C2410_GPIO_INPUT); - value = s3c2410_gpio_getpin(udc_info->vbus_pin); -+ s3c2410_gpio_cfgpin(udc_info->vbus_pin, S3C2410_GPIO_SFN2); - - if (udc_info->vbus_pin_inverted) - value = !value; diff --git a/usb/usb-s3c2410-gadget-header-move-fixups.patch b/usb/usb-s3c2410-gadget-header-move-fixups.patch deleted file mode 100644 index 34730c3b25795c..00000000000000 --- a/usb/usb-s3c2410-gadget-header-move-fixups.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ben-linux@fluff.org Mon Nov 26 23:05:09 2007 -From: Ben Dooks <ben-linux@fluff.org> -Date: Mon, 19 Nov 2007 22:28:13 +0000 -Subject: USB: s3c2410 gadget: Header move fixups -To: Linux USB Devel <linux-usb-devel@lists.sourceforge.net> -Cc: vince@simtec.co.uk, Greg KH <greg@kroah.com>, Ben Dooks <ben-linux@fluff.org> -Message-ID: <20071119222846.887780944@fluff.org> - - -Fixup the fallout from the arch moves earlier in the kernel -series. - -Signed-off-by: Ben Dooks <ben-linux@fluff.org> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> - ---- - drivers/usb/gadget/s3c2410_udc.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/gadget/s3c2410_udc.c -+++ b/drivers/usb/gadget/s3c2410_udc.c -@@ -52,10 +52,10 @@ - #include <asm/arch/irqs.h> - - #include <asm/arch/hardware.h> --#include <asm/arch/regs-clock.h> - #include <asm/arch/regs-gpio.h> --#include <asm/arch/regs-udc.h> --#include <asm/arch/udc.h> -+ -+#include <asm/plat-s3c24xx/regs-udc.h> -+#include <asm/plat-s3c24xx/udc.h> - - #include <asm/mach-types.h> - diff --git a/usb/usb-sierra-new-product-id.patch b/usb/usb-sierra-new-product-id.patch deleted file mode 100644 index 34fdf205b1661e..00000000000000 --- a/usb/usb-sierra-new-product-id.patch +++ /dev/null @@ -1,37 +0,0 @@ -From agilmore@wirelessbeehive.com Mon Nov 26 15:05:18 2007 -From: agilmore@wirelessbeehive.com -Date: Tue, 20 Nov 2007 13:39:03 -0700 (MST) -Subject: USB: sierra: new product id -To: "Greg KH" <greg@kroah.com> -Cc: "Kevin Lloyd" <klloyd@sierrawireless.com> -Message-ID: <44636.140.217.14.154.1195591143.squirrel@mail.wirelessbeehive.com> - - -Per the maintainer of the usbserial/sierra.c driver, the patch below adds -a new id to the list of supported cards for the sierra driver. Tested and -working for me on Fedora 8, kernel 2.6.23 and on the more recent sierra.c -available in -http://www.sierrawireless.com/resources/support/Software/Linux/v.1.2.6b(kernel2.6.21).zip - -Hardware is a MiniPCI card in a Lenovo T61p. - - -Signed-off-by: Andrew Gilmore <agilmore@wirelessbeehive.com> -Cc: Kevin Lloyd <linux@sierrawireless.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/sierra.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/serial/sierra.c -+++ b/drivers/usb/serial/sierra.c -@@ -136,6 +136,8 @@ static struct usb_device_id id_table_3po - { USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ - { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ -+ { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */ -+ { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */ - { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */ - { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */ - { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U*/ diff --git a/usb/usb-storage-always-set-the-allow_restart-flag.patch b/usb/usb-storage-always-set-the-allow_restart-flag.patch deleted file mode 100644 index a66c9fdcbf259e..00000000000000 --- a/usb/usb-storage-always-set-the-allow_restart-flag.patch +++ /dev/null @@ -1,37 +0,0 @@ -From stern@rowland.harvard.edu Wed Oct 10 13:29:09 2007 -From: Mauro Carvalho Chehab <mchehab@infradead.org> -Date: Wed, 10 Oct 2007 16:29:02 -0400 (EDT) -Subject: usb-storage: always set the allow_restart flag -To: Greg KH <greg@kroah.com>, Matthew Dharm <mdharm-usb@one-eyed-alien.net> -Cc: Mauro Carvalho Chehab <mchehab@infradead.org>, USB Storage list <usb-storage@lists.one-eyed-alien.net> -Message-ID: <Pine.LNX.4.44L0.0710101627250.2739-100000@iolanthe.rowland.org> - - -From: Mauro Carvalho Chehab <mchehab@infradead.org> - -This patch (as1000) sets the SCSI allow_restart flag for USB disk -devices. In theory this should never hurt, and there definitely are -devices out there (such as the Seagate 250-GB external drive) which -need the flag to be set. - -Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/scsiglue.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/usb/storage/scsiglue.c -+++ b/drivers/usb/storage/scsiglue.c -@@ -177,6 +177,10 @@ static int slave_configure(struct scsi_d - * is an occasional series of retries that will all fail. */ - sdev->retry_hwerror = 1; - -+ /* USB disks should allow restart. Some drives spin down -+ * automatically, requiring a START-STOP UNIT command. */ -+ sdev->allow_restart = 1; -+ - } else { - - /* Non-disk-type devices don't need to blacklist any pages diff --git a/usb/usb-uevent-environment-key-fix.patch b/usb/usb-uevent-environment-key-fix.patch deleted file mode 100644 index ba552967e5d09c..00000000000000 --- a/usb/usb-uevent-environment-key-fix.patch +++ /dev/null @@ -1,132 +0,0 @@ -From stern@rowland.harvard.edu Mon Nov 26 21:37:07 2007 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 6 Nov 2007 15:01:52 -0500 (EST) -Subject: USB: uevent environment key fix -To: Kay Sievers <kay.sievers@vrfy.org>, Greg KH <greg@kroah.com> -Cc: USB development list <linux-usb@vger.kernel.org> -Message-ID: <Pine.LNX.4.44L0.0711061500520.8694-100000@iolanthe.rowland.org> - - -This patch (as1010) was written by both Kay Sievers and me. It solves -the problem of duplicated keys in USB uevent structures by refactoring -the uevent subroutines, taking advantage of the way the hotplug core -calls uevent handlers for the device's bus and for the device's type. -Keys needed for both USB-device and USB-interface events are added in -usb_uevent(), which is the bus handler. Keys appropriate only for -USB-device or USB-interface events are added in usb_dev_uevent() or -usb_if_uevent() respectively, the type handlers. - -In addition, unnecessary tests for NULL pointers are removed as are -duplicated debugging log statements. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Cc: Kay Sievers <kay.sievers@vrfy.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/driver.c | 11 ----------- - drivers/usb/core/message.c | 24 ------------------------ - drivers/usb/core/usb.c | 25 +++++++++++++++++++++++++ - 3 files changed, 25 insertions(+), 35 deletions(-) - ---- a/drivers/usb/core/driver.c -+++ b/drivers/usb/core/driver.c -@@ -585,9 +585,6 @@ static int usb_uevent(struct device *dev - { - struct usb_device *usb_dev; - -- if (!dev) -- return -ENODEV; -- - /* driver is often null here; dev_dbg() would oops */ - pr_debug ("usb %s: uevent\n", dev->bus_id); - -@@ -631,14 +628,6 @@ static int usb_uevent(struct device *dev - usb_dev->descriptor.bDeviceProtocol)) - return -ENOMEM; - -- if (add_uevent_var(env, "BUSNUM=%03d", -- usb_dev->bus->busnum)) -- return -ENOMEM; -- -- if (add_uevent_var(env, "DEVNUM=%03d", -- usb_dev->devnum)) -- return -ENOMEM; -- - return 0; - } - ---- a/drivers/usb/core/message.c -+++ b/drivers/usb/core/message.c -@@ -1346,34 +1346,10 @@ static int usb_if_uevent(struct device * - struct usb_interface *intf; - struct usb_host_interface *alt; - -- if (!dev) -- return -ENODEV; -- -- /* driver is often null here; dev_dbg() would oops */ -- pr_debug ("usb %s: uevent\n", dev->bus_id); -- - intf = to_usb_interface(dev); - usb_dev = interface_to_usbdev(intf); - alt = intf->cur_altsetting; - --#ifdef CONFIG_USB_DEVICEFS -- if (add_uevent_var(env, "DEVICE=/proc/bus/usb/%03d/%03d", -- usb_dev->bus->busnum, usb_dev->devnum)) -- return -ENOMEM; --#endif -- -- if (add_uevent_var(env, "PRODUCT=%x/%x/%x", -- le16_to_cpu(usb_dev->descriptor.idVendor), -- le16_to_cpu(usb_dev->descriptor.idProduct), -- le16_to_cpu(usb_dev->descriptor.bcdDevice))) -- return -ENOMEM; -- -- if (add_uevent_var(env, "TYPE=%d/%d/%d", -- usb_dev->descriptor.bDeviceClass, -- usb_dev->descriptor.bDeviceSubClass, -- usb_dev->descriptor.bDeviceProtocol)) -- return -ENOMEM; -- - if (add_uevent_var(env, "INTERFACE=%d/%d/%d", - alt->desc.bInterfaceClass, - alt->desc.bInterfaceSubClass, ---- a/drivers/usb/core/usb.c -+++ b/drivers/usb/core/usb.c -@@ -192,9 +192,34 @@ static void usb_release_dev(struct devic - kfree(udev); - } - -+#ifdef CONFIG_HOTPLUG -+static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) -+{ -+ struct usb_device *usb_dev; -+ -+ usb_dev = to_usb_device(dev); -+ -+ if (add_uevent_var(env, "BUSNUM=%03d", usb_dev->bus->busnum)) -+ return -ENOMEM; -+ -+ if (add_uevent_var(env, "DEVNUM=%03d", usb_dev->devnum)) -+ return -ENOMEM; -+ -+ return 0; -+} -+ -+#else -+ -+static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) -+{ -+ return -ENODEV; -+} -+#endif /* CONFIG_HOTPLUG */ -+ - struct device_type usb_device_type = { - .name = "usb_device", - .release = usb_release_dev, -+ .uevent = usb_dev_uevent, - }; - - #ifdef CONFIG_PM diff --git a/usb/usb-usb-storage-unusual_devs-entry-for-jetflash-ts1gjf2a.patch b/usb/usb-usb-storage-unusual_devs-entry-for-jetflash-ts1gjf2a.patch deleted file mode 100644 index 2508f49bdba1ca..00000000000000 --- a/usb/usb-usb-storage-unusual_devs-entry-for-jetflash-ts1gjf2a.patch +++ /dev/null @@ -1,41 +0,0 @@ -From stern@rowland.harvard.edu Mon Nov 26 23:04:01 2007 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Mon, 26 Nov 2007 10:23:05 -0500 (EST) -Subject: USB: usb-storage: unusual_devs entry for JetFlash TS1GJF2A -To: Greg KH <greg@kroah.com>, Phil Dibowitz <phil@ipom.com> -Cc: RTE <raszilki@yandex.ru>, USB Storage list <usb-storage@lists.one-eyed-alien.net> -Message-ID: <Pine.LNX.4.44L0.0711261020570.4250-100000@iolanthe.rowland.org> - - -This patch (as1018) adds an unusual_devs entry for the JetFlash -TS1GJF2A. This device doesn't like read requests for more than 188 -sectors. Setting max_sectors down to 64 is overkill, but at least -it will work without errors. - -For the torturous debugging history, see this thread: - - http://marc.info/?t=118745764700005&r=1&w=2 - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/storage/unusual_devs.h | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/drivers/usb/storage/unusual_devs.h -+++ b/drivers/usb/storage/unusual_devs.h -@@ -731,6 +731,13 @@ UNUSUAL_DEV( 0x0584, 0x0008, 0x0102, 0x - US_SC_SCSI, US_PR_ALAUDA, init_alauda, 0 ), - #endif - -+/* Reported by RTE <raszilki@yandex.ru> */ -+UNUSUAL_DEV( 0x058f, 0x6387, 0x0141, 0x0141, -+ "JetFlash", -+ "TS1GJF2A/120", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ US_FL_MAX_SECTORS_64 ), -+ - /* Fabrizio Fellini <fello@libero.it> */ - UNUSUAL_DEV( 0x0595, 0x4343, 0x0000, 0x2210, - "Fujifilm", diff --git a/usb/usbserial-fix-inconsistent-lock-state.patch b/usb/usbserial-fix-inconsistent-lock-state.patch deleted file mode 100644 index 9ec5ab3a545dd6..00000000000000 --- a/usb/usbserial-fix-inconsistent-lock-state.patch +++ /dev/null @@ -1,48 +0,0 @@ -From bbpetkov@yahoo.de Sun Oct 28 05:24:30 2007 -From: Borislav Petkov <bbpetkov@yahoo.de> -Date: Sun, 28 Oct 2007 13:24:16 +0100 -Subject: usbserial: fix inconsistent lock state -To: Jiri Kosina <jkosina@suse.cz>, Greg Kroah-Hartman <gregkh@suse.de> -Cc: linux-kernel@vger.kernel.org -Message-ID: <20071028122416.GA11679@gollum.tnic> -Content-Disposition: inline - - -In commit acd2a847e7fee7df11817f67dba75a2802793e5d usb_serial_generic_write() -disables interrupts when taking &port->lock which is also taken in -usb_serial_generic_read_bulk_callback() resulting in an inconsistent lock state -due to the latter not disabling interrupts on the local cpu. Fix that by -disabling interrupts in the latter call site also. - -Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de> -Acked-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/generic.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- a/drivers/usb/serial/generic.c -+++ b/drivers/usb/serial/generic.c -@@ -327,6 +327,7 @@ void usb_serial_generic_read_bulk_callba - struct usb_serial_port *port = (struct usb_serial_port *)urb->context; - unsigned char *data = urb->transfer_buffer; - int status = urb->status; -+ unsigned long flags; - - dbg("%s - port %d", __FUNCTION__, port->number); - -@@ -339,11 +340,11 @@ void usb_serial_generic_read_bulk_callba - usb_serial_debug_data(debug, &port->dev, __FUNCTION__, urb->actual_length, data); - - /* Throttle the device if requested by tty */ -- spin_lock(&port->lock); -+ spin_lock_irqsave(&port->lock, flags); - if (!(port->throttled = port->throttle_req)) - /* Handle data and continue reading from device */ - flush_and_resubmit_read_urb(port); -- spin_unlock(&port->lock); -+ spin_unlock_irqrestore(&port->lock, flags); - } - EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback); - @@ -1 +1 @@ -2.6.24-rc3-git4 +2.6.24-rc3-git5 |
