diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-03 09:54:41 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-03 09:54:41 -0700 |
| commit | 83801b53e2add123144953d9039b41d9378bce3b (patch) | |
| tree | 225b35026dd89128e59eb494d75a5bb3709db66b | |
| parent | 34d977d7eb8d6f9061b4c7cae87093afc29f1a99 (diff) | |
| download | patches-83801b53e2add123144953d9039b41d9378bce3b.tar.gz | |
2.6.34-rc6-git1 - delete a bunch of stuff now in Linus's tree
54 files changed, 1 insertions, 3158 deletions
@@ -8,76 +8,20 @@ gregkh/gkh-version.patch ################################# # Driver core patches for 2.6.34 ################################# - -# round 2 driver-core.current/drivers-base-cpu.c-fix-the-output-from-sys-devices-system-cpu-offline.patch driver-core.current/firmware_class-fix-memory-leak-free-allocated-pages.patch ################################# # TTY patches for 2.6.34 ################################# -tty.current/tty-fix-regressions-in-the-char-driver-conversion.patch -tty.current/serial-8250_pnp-add-fujitsu-wacom-device.patch -tty.current/serial-drivers-serial-pmac_zilog.c-add-missing-unlock.patch ################################# # USB patches for 2.6.34 ################################# -# round 2 -usb.current/musb-fix-power-field-to-hold-all-possible-values.patch -usb.current/musb-blackfin-don-t-fake-blackfin_interrupt-result.patch -usb.current/musb-save-and-restore-missing-bus-control-register.patch -usb.current/musb-potential-use-after-free.patch -usb.current/musb_core-don-t-touch-musb-clock-in-musb_free.patch -usb.current/musb_core-don-t-prevent-disabling-clock-on-driver-unload.patch -usb.current/musb-davinci-fix-musb_platform_init-error-cleanup-path.patch -usb.current/musb-omap-don-t-call-clk_put.patch -usb.current/musb_core-don-t-call-musb_platform_exit-twice.patch -usb.current/musb-fix-davinci-glue-layer-dependency.patch -usb.current/musb_core-fix-musb_init_controller-error-cleanup-path.patch -usb.current/usb-fix-tusb6010-for-dma-api.patch -usb.current/usb-fix-testing-the-wrong-variable-in-fs_create_by_name.patch -usb.current/usb-cdc-acm-add-another-device-quirk.patch -usb.current/usb-don-t-choose-configs-with-no-interfaces.patch -usb.current/usb-ohci-don-t-look-at-the-root-hub-to-get-the-number-of-ports.patch -usb.current/usb-xhci-properly-set-the-mult-field-of-the-endpoint-context.patch -usb.current/usb-xhci-properly-set-endpoint-context-fields-for-periodic-eps.patch -usb.current/usb-option-add-id-for-zte-mf-330.patch -usb.current/usb-serial-pl2303-hybrid-reader-uniform-hcr331.patch -usb.current/usb-serial-option-zteac8710-support-with-device-id-0xffff.patch -usb.current/usb-serial-option-add-cinterion-device-id.patch -usb.current/usb-oxu210hp-release-spinlock-on-error-path.patch -usb.current/usb-fix-build-on-omaps-if-config_pm_runtime-is-not-set.patch -usb.current/usb-gadget-s3c-hsotg-add-missing-unlock.patch -usb.current/usb-ti_usb-fix-printk-format-warning.patch -usb.current/usb-rename-usb_buffer_alloc-and-usb_buffer_free.patch -usb.current/usb-ohci-at91-fix-power-management-hanging.patch -usb.current/usb-sl811-hcd-fix-device-disconnect.patch - ################################# # Staging patches for 2.6.34 ################################# -staging.current/staging-iio-lis3l02dq-incorrect-ws-used-in-container-of-call.patch -staging.current/staging-iio-test-for-failed-allocation.patch -staging.current/staging-iio-light-fix-dangling-pointers.patch -staging.current/staging-iio-adc-fix-dangling-pointers.patch -staging.current/staging-iio-function-iio_get_new_idr_val-return-negative-value-if-fails.patch -staging.current/staging-iio-ring_sw-fix-incorrect-test-on-successful-read-of-last-value-causes-infinite-loop.patch -staging.current/staging-hv-fix-a-bug-affecting-ipv6.patch -staging.current/staging-hv-fix-up-memory-leak-on-hvcleanup.patch -staging.current/staging-hv-name-network-device-ethx-rather-than-sethx.patch -staging.current/staging-rtl8192su-add-usb-id-for-0bda-8171.patch -staging.current/staging-usbip-fix-deadlock.patch -staging.current/staging-dt3155-fix-50hz-configuration.patch -staging.current/staging-rtl8192su-add-support-for-belkin-f5d8053-v6.patch -staging.current/staging-rt2860-add-belkin-f5d8055-wireless-n-usb-dongle-device-id.patch -staging.current/staging-add-add-sitecom-wl-349-to-rtl8192su.patch -staging.current/staging-iio-fix-up-the-iio_get_new_idr_val-comment.patch -staging.current/staging-batman-adv-don-t-have-interrupts-disabled-while-sending.patch -staging.current/staging-batman-adv-fix-vis-output-bug-for-secondary-interfaces.patch -staging.current/staging-batman-adv-fixing-wrap-around-bug-in-vis.patch -staging.current/staging-vme-re-introduce-necessary-brackets.patch ##################################################################### @@ -252,7 +196,5 @@ usb/usb-remove-unused-usb_buffer_alloc-and-usb_buffer_free-macros.patch ####################################### # Staging stuff for after 2.6.34 is out ####################################### - - # new stuff is in the staging-next git tree on git.kernel.org diff --git a/staging.current/staging-add-add-sitecom-wl-349-to-rtl8192su.patch b/staging.current/staging-add-add-sitecom-wl-349-to-rtl8192su.patch deleted file mode 100644 index 3d7517b83d1e2e..00000000000000 --- a/staging.current/staging-add-add-sitecom-wl-349-to-rtl8192su.patch +++ /dev/null @@ -1,27 +0,0 @@ -From rodrigo@linfati.cl Wed Apr 28 13:46:09 2010 -From: Rodrigo Linfati <rodrigo@linfati.cl> -Date: Wed, 28 Apr 2010 22:32:13 +0200 -Subject: Staging: add Add Sitecom WL-349 to rtl8192su -To: Greg KH <greg@kroah.com> -Message-ID: <j2sed3f7d01004281332t437e6cf1nc5e17b33c33a59f7@mail.gmail.com> - - -Add usb id of Sitecom WL-349 to rtl8192su - -Signed-off-by: Rodrigo Linfati <rodrigo@linfati.cl> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/rtl8192su/r8192U_core.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/rtl8192su/r8192U_core.c -+++ b/drivers/staging/rtl8192su/r8192U_core.c -@@ -123,6 +123,7 @@ static const struct usb_device_id rtl819 - {USB_DEVICE(0x050d, 0x815F)}, /* Belkin F5D8053 v6 */ - /* Sitecom */ - {USB_DEVICE(0x0df6, 0x0031)}, -+ {USB_DEVICE(0x0df6, 0x004b)}, /* WL-349 */ - /* EnGenius */ - {USB_DEVICE(0x1740, 0x9201)}, - /* Dlink */ diff --git a/staging.current/staging-batman-adv-don-t-have-interrupts-disabled-while-sending.patch b/staging.current/staging-batman-adv-don-t-have-interrupts-disabled-while-sending.patch deleted file mode 100644 index d1a516708ffe65..00000000000000 --- a/staging.current/staging-batman-adv-don-t-have-interrupts-disabled-while-sending.patch +++ /dev/null @@ -1,457 +0,0 @@ -From andrew@lunn.ch Tue Apr 27 14:51:18 2010 -From: Andrew Lunn <andrew@lunn.ch> -Date: Mon, 22 Mar 2010 22:46:13 +0100 -Subject: Staging: batman-adv: don't have interrupts disabled while sending. -To: gregkh@suse.de -Cc: b.a.t.m.a.n@lists.open-mesh.net, Andrew Lunn <andrew@lunn.ch>, Marek Lindner <lindner_marek@yahoo.de>, Simon Wunderlich <siwu@hrz.tu-chemnitz.de> -Message-ID: <1269294375-11043-2-git-send-email-andrew@lunn.ch> - - -send_vis_packets() would disable interrupts before calling -dev_queue_xmit() which resulting in a backtrace in local_bh_enable(). -Fix this by using kref on the vis_info object so that we can call -send_vis_packets() without holding vis_hash_lock. vis_hash_lock also -used to protect recv_list, so we now need a new lock to protect that -instead of vis_hash_lock. - -Also a few checkpatch cleanups. - -Reported-by: Linus Lüssing <linus.luessing@web.de> -Signed-off-by: Andrew Lunn <andrew@lunn.ch> -Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> -Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/batman-adv/vis.c | 198 +++++++++++++++++++++++++++------------ - drivers/staging/batman-adv/vis.h | 1 - 2 files changed, 139 insertions(+), 60 deletions(-) - ---- a/drivers/staging/batman-adv/vis.c -+++ b/drivers/staging/batman-adv/vis.c -@@ -29,22 +29,26 @@ - - struct hashtable_t *vis_hash; - DEFINE_SPINLOCK(vis_hash_lock); -+static DEFINE_SPINLOCK(recv_list_lock); - static struct vis_info *my_vis_info; - static struct list_head send_list; /* always locked with vis_hash_lock */ - - static void start_vis_timer(void); - - /* free the info */ --static void free_info(void *data) -+static void free_info(struct kref *ref) - { -- struct vis_info *info = data; -+ struct vis_info *info = container_of(ref, struct vis_info, refcount); - struct recvlist_node *entry, *tmp; -+ unsigned long flags; - - list_del_init(&info->send_list); -+ spin_lock_irqsave(&recv_list_lock, flags); - list_for_each_entry_safe(entry, tmp, &info->recv_list, list) { - list_del(&entry->list); - kfree(entry); - } -+ spin_unlock_irqrestore(&recv_list_lock, flags); - kfree(info); - } - -@@ -142,36 +146,65 @@ void proc_vis_read_entry(struct seq_file - } - } - -+/* add the info packet to the send list, if it was not -+ * already linked in. */ -+static void send_list_add(struct vis_info *info) -+{ -+ if (list_empty(&info->send_list)) { -+ kref_get(&info->refcount); -+ list_add_tail(&info->send_list, &send_list); -+ } -+} -+ -+/* delete the info packet from the send list, if it was -+ * linked in. */ -+static void send_list_del(struct vis_info *info) -+{ -+ if (!list_empty(&info->send_list)) { -+ list_del_init(&info->send_list); -+ kref_put(&info->refcount, free_info); -+ } -+} -+ - /* tries to add one entry to the receive list. */ - static void recv_list_add(struct list_head *recv_list, char *mac) - { - struct recvlist_node *entry; -+ unsigned long flags; -+ - entry = kmalloc(sizeof(struct recvlist_node), GFP_ATOMIC); - if (!entry) - return; - - memcpy(entry->mac, mac, ETH_ALEN); -+ spin_lock_irqsave(&recv_list_lock, flags); - list_add_tail(&entry->list, recv_list); -+ spin_unlock_irqrestore(&recv_list_lock, flags); - } - - /* returns 1 if this mac is in the recv_list */ - static int recv_list_is_in(struct list_head *recv_list, char *mac) - { - struct recvlist_node *entry; -+ unsigned long flags; - -+ spin_lock_irqsave(&recv_list_lock, flags); - list_for_each_entry(entry, recv_list, list) { -- if (memcmp(entry->mac, mac, ETH_ALEN) == 0) -+ if (memcmp(entry->mac, mac, ETH_ALEN) == 0) { -+ spin_unlock_irqrestore(&recv_list_lock, flags); - return 1; -+ } - } -- -+ spin_unlock_irqrestore(&recv_list_lock, flags); - return 0; - } - - /* try to add the packet to the vis_hash. return NULL if invalid (e.g. too old, -- * broken.. ). vis hash must be locked outside. is_new is set when the packet -+ * broken.. ). vis hash must be locked outside. is_new is set when the packet - * is newer than old entries in the hash. */ - static struct vis_info *add_packet(struct vis_packet *vis_packet, -- int vis_info_len, int *is_new) -+ int vis_info_len, int *is_new, -+ int make_broadcast) - { - struct vis_info *info, *old_info; - struct vis_info search_elem; -@@ -198,13 +231,15 @@ static struct vis_info *add_packet(struc - } - /* remove old entry */ - hash_remove(vis_hash, old_info); -- free_info(old_info); -+ send_list_del(old_info); -+ kref_put(&old_info->refcount, free_info); - } - - info = kmalloc(sizeof(struct vis_info) + vis_info_len, GFP_ATOMIC); - if (info == NULL) - return NULL; - -+ kref_init(&info->refcount); - INIT_LIST_HEAD(&info->send_list); - INIT_LIST_HEAD(&info->recv_list); - info->first_seen = jiffies; -@@ -214,16 +249,21 @@ static struct vis_info *add_packet(struc - /* initialize and add new packet. */ - *is_new = 1; - -+ /* Make it a broadcast packet, if required */ -+ if (make_broadcast) -+ memcpy(info->packet.target_orig, broadcastAddr, ETH_ALEN); -+ - /* repair if entries is longer than packet. */ - if (info->packet.entries * sizeof(struct vis_info_entry) > vis_info_len) -- info->packet.entries = vis_info_len / sizeof(struct vis_info_entry); -+ info->packet.entries = vis_info_len / -+ sizeof(struct vis_info_entry); - - recv_list_add(&info->recv_list, info->packet.sender_orig); - - /* try to add it */ - if (hash_add(vis_hash, info) < 0) { - /* did not work (for some reason) */ -- free_info(info); -+ kref_put(&old_info->refcount, free_info); - info = NULL; - } - -@@ -234,22 +274,21 @@ static struct vis_info *add_packet(struc - void receive_server_sync_packet(struct vis_packet *vis_packet, int vis_info_len) - { - struct vis_info *info; -- int is_new; -+ int is_new, make_broadcast; - unsigned long flags; - int vis_server = atomic_read(&vis_mode); - -+ make_broadcast = (vis_server == VIS_TYPE_SERVER_SYNC); -+ - spin_lock_irqsave(&vis_hash_lock, flags); -- info = add_packet(vis_packet, vis_info_len, &is_new); -+ info = add_packet(vis_packet, vis_info_len, &is_new, make_broadcast); - if (info == NULL) - goto end; - - /* only if we are server ourselves and packet is newer than the one in - * hash.*/ -- if (vis_server == VIS_TYPE_SERVER_SYNC && is_new) { -- memcpy(info->packet.target_orig, broadcastAddr, ETH_ALEN); -- if (list_empty(&info->send_list)) -- list_add_tail(&info->send_list, &send_list); -- } -+ if (vis_server == VIS_TYPE_SERVER_SYNC && is_new) -+ send_list_add(info); - end: - spin_unlock_irqrestore(&vis_hash_lock, flags); - } -@@ -262,31 +301,32 @@ void receive_client_update_packet(struct - int is_new; - unsigned long flags; - int vis_server = atomic_read(&vis_mode); -+ int are_target = 0; - - /* clients shall not broadcast. */ - if (is_bcast(vis_packet->target_orig)) - return; - -+ /* Are we the target for this VIS packet? */ -+ if (vis_server == VIS_TYPE_SERVER_SYNC && -+ is_my_mac(vis_packet->target_orig)) -+ are_target = 1; -+ - spin_lock_irqsave(&vis_hash_lock, flags); -- info = add_packet(vis_packet, vis_info_len, &is_new); -+ info = add_packet(vis_packet, vis_info_len, &is_new, are_target); - if (info == NULL) - goto end; - /* note that outdated packets will be dropped at this point. */ - - - /* send only if we're the target server or ... */ -- if (vis_server == VIS_TYPE_SERVER_SYNC && -- is_my_mac(info->packet.target_orig) && -- is_new) { -+ if (are_target && is_new) { - info->packet.vis_type = VIS_TYPE_SERVER_SYNC; /* upgrade! */ -- memcpy(info->packet.target_orig, broadcastAddr, ETH_ALEN); -- if (list_empty(&info->send_list)) -- list_add_tail(&info->send_list, &send_list); -+ send_list_add(info); - - /* ... we're not the recipient (and thus need to forward). */ - } else if (!is_my_mac(info->packet.target_orig)) { -- if (list_empty(&info->send_list)) -- list_add_tail(&info->send_list, &send_list); -+ send_list_add(info); - } - end: - spin_unlock_irqrestore(&vis_hash_lock, flags); -@@ -361,14 +401,17 @@ static int generate_vis_packet(void) - while (hash_iterate(orig_hash, &hashit_global)) { - orig_node = hashit_global.bucket->data; - if (orig_node->router != NULL -- && compare_orig(orig_node->router->addr, orig_node->orig) -+ && compare_orig(orig_node->router->addr, -+ orig_node->orig) - && orig_node->batman_if - && (orig_node->batman_if->if_active == IF_ACTIVE) - && orig_node->router->tq_avg > 0) { - - /* fill one entry into buffer. */ - entry = &entry_array[info->packet.entries]; -- memcpy(entry->src, orig_node->batman_if->net_dev->dev_addr, ETH_ALEN); -+ memcpy(entry->src, -+ orig_node->batman_if->net_dev->dev_addr, -+ ETH_ALEN); - memcpy(entry->dest, orig_node->orig, ETH_ALEN); - entry->quality = orig_node->router->tq_avg; - info->packet.entries++; -@@ -400,6 +443,8 @@ static int generate_vis_packet(void) - return 0; - } - -+/* free old vis packets. Must be called with this vis_hash_lock -+ * held */ - static void purge_vis_packets(void) - { - HASHIT(hashit); -@@ -412,7 +457,8 @@ static void purge_vis_packets(void) - if (time_after(jiffies, - info->first_seen + (VIS_TIMEOUT*HZ)/1000)) { - hash_remove_bucket(vis_hash, &hashit); -- free_info(info); -+ send_list_del(info); -+ kref_put(&info->refcount, free_info); - } - } - } -@@ -422,6 +468,8 @@ static void broadcast_vis_packet(struct - HASHIT(hashit); - struct orig_node *orig_node; - unsigned long flags; -+ struct batman_if *batman_if; -+ uint8_t dstaddr[ETH_ALEN]; - - spin_lock_irqsave(&orig_hash_lock, flags); - -@@ -430,45 +478,56 @@ static void broadcast_vis_packet(struct - orig_node = hashit.bucket->data; - - /* if it's a vis server and reachable, send it. */ -- if (orig_node && -- (orig_node->flags & VIS_SERVER) && -- orig_node->batman_if && -- orig_node->router) { -+ if ((!orig_node) || (!orig_node->batman_if) || -+ (!orig_node->router)) -+ continue; -+ if (!(orig_node->flags & VIS_SERVER)) -+ continue; -+ /* don't send it if we already received the packet from -+ * this node. */ -+ if (recv_list_is_in(&info->recv_list, orig_node->orig)) -+ continue; -+ -+ memcpy(info->packet.target_orig, orig_node->orig, ETH_ALEN); -+ batman_if = orig_node->batman_if; -+ memcpy(dstaddr, orig_node->router->addr, ETH_ALEN); -+ spin_unlock_irqrestore(&orig_hash_lock, flags); -+ -+ send_raw_packet((unsigned char *)&info->packet, -+ packet_length, batman_if, dstaddr); -+ -+ spin_lock_irqsave(&orig_hash_lock, flags); - -- /* don't send it if we already received the packet from -- * this node. */ -- if (recv_list_is_in(&info->recv_list, orig_node->orig)) -- continue; -- -- memcpy(info->packet.target_orig, -- orig_node->orig, ETH_ALEN); -- -- send_raw_packet((unsigned char *) &info->packet, -- packet_length, -- orig_node->batman_if, -- orig_node->router->addr); -- } - } -- memcpy(info->packet.target_orig, broadcastAddr, ETH_ALEN); - spin_unlock_irqrestore(&orig_hash_lock, flags); -+ memcpy(info->packet.target_orig, broadcastAddr, ETH_ALEN); - } - - static void unicast_vis_packet(struct vis_info *info, int packet_length) - { - struct orig_node *orig_node; - unsigned long flags; -+ struct batman_if *batman_if; -+ uint8_t dstaddr[ETH_ALEN]; - - spin_lock_irqsave(&orig_hash_lock, flags); - orig_node = ((struct orig_node *) - hash_find(orig_hash, info->packet.target_orig)); - -- if ((orig_node != NULL) && -- (orig_node->batman_if != NULL) && -- (orig_node->router != NULL)) { -- send_raw_packet((unsigned char *) &info->packet, packet_length, -- orig_node->batman_if, -- orig_node->router->addr); -- } -+ if ((!orig_node) || (!orig_node->batman_if) || (!orig_node->router)) -+ goto out; -+ -+ /* don't lock while sending the packets ... we therefore -+ * copy the required data before sending */ -+ batman_if = orig_node->batman_if; -+ memcpy(dstaddr, orig_node->router->addr, ETH_ALEN); -+ spin_unlock_irqrestore(&orig_hash_lock, flags); -+ -+ send_raw_packet((unsigned char *)&info->packet, -+ packet_length, batman_if, dstaddr); -+ return; -+ -+out: - spin_unlock_irqrestore(&orig_hash_lock, flags); - } - -@@ -502,15 +561,24 @@ static void send_vis_packets(struct work - unsigned long flags; - - spin_lock_irqsave(&vis_hash_lock, flags); -+ - purge_vis_packets(); - -- if (generate_vis_packet() == 0) -+ if (generate_vis_packet() == 0) { - /* schedule if generation was successful */ -- list_add_tail(&my_vis_info->send_list, &send_list); -+ send_list_add(my_vis_info); -+ } - - list_for_each_entry_safe(info, temp, &send_list, send_list) { -- list_del_init(&info->send_list); -+ -+ kref_get(&info->refcount); -+ spin_unlock_irqrestore(&vis_hash_lock, flags); -+ - send_vis_packet(info); -+ -+ spin_lock_irqsave(&vis_hash_lock, flags); -+ send_list_del(info); -+ kref_put(&info->refcount, free_info); - } - spin_unlock_irqrestore(&vis_hash_lock, flags); - start_vis_timer(); -@@ -543,6 +611,7 @@ int vis_init(void) - my_vis_info->first_seen = jiffies - atomic_read(&vis_interval); - INIT_LIST_HEAD(&my_vis_info->recv_list); - INIT_LIST_HEAD(&my_vis_info->send_list); -+ kref_init(&my_vis_info->refcount); - my_vis_info->packet.version = COMPAT_VERSION; - my_vis_info->packet.packet_type = BAT_VIS; - my_vis_info->packet.ttl = TTL; -@@ -556,9 +625,9 @@ int vis_init(void) - - if (hash_add(vis_hash, my_vis_info) < 0) { - printk(KERN_ERR -- "batman-adv:Can't add own vis packet into hash\n"); -- free_info(my_vis_info); /* not in hash, need to remove it -- * manually. */ -+ "batman-adv:Can't add own vis packet into hash\n"); -+ /* not in hash, need to remove it manually. */ -+ kref_put(&my_vis_info->refcount, free_info); - goto err; - } - -@@ -572,6 +641,15 @@ err: - return 0; - } - -+/* Decrease the reference count on a hash item info */ -+static void free_info_ref(void *data) -+{ -+ struct vis_info *info = data; -+ -+ send_list_del(info); -+ kref_put(&info->refcount, free_info); -+} -+ - /* shutdown vis-server */ - void vis_quit(void) - { -@@ -583,7 +661,7 @@ void vis_quit(void) - - spin_lock_irqsave(&vis_hash_lock, flags); - /* properly remove, kill timers ... */ -- hash_delete(vis_hash, free_info); -+ hash_delete(vis_hash, free_info_ref); - vis_hash = NULL; - my_vis_info = NULL; - spin_unlock_irqrestore(&vis_hash_lock, flags); ---- a/drivers/staging/batman-adv/vis.h -+++ b/drivers/staging/batman-adv/vis.h -@@ -29,6 +29,7 @@ struct vis_info { - /* list of server-neighbors we received a vis-packet - * from. we should not reply to them. */ - struct list_head send_list; -+ struct kref refcount; - /* this packet might be part of the vis send queue. */ - struct vis_packet packet; - /* vis_info may follow here*/ diff --git a/staging.current/staging-batman-adv-fix-vis-output-bug-for-secondary-interfaces.patch b/staging.current/staging-batman-adv-fix-vis-output-bug-for-secondary-interfaces.patch deleted file mode 100644 index 333f8e0183fdba..00000000000000 --- a/staging.current/staging-batman-adv-fix-vis-output-bug-for-secondary-interfaces.patch +++ /dev/null @@ -1,227 +0,0 @@ -From andrew@lunn.ch Tue Apr 27 14:51:34 2010 -From: Linus Lüssing <linus.luessing@web.de> -Date: Mon, 22 Mar 2010 22:46:14 +0100 -Subject: Staging: batman-adv: Fix VIS output bug for secondary interfaces -To: gregkh@suse.de -Cc: b.a.t.m.a.n@lists.open-mesh.net, Linus Luessing <linus.luessing@web.de>, Andrew Lunn <andrew@lunn.ch> -Message-ID: <1269294375-11043-3-git-send-email-andrew@lunn.ch> - - -From: Linus Lüssing <linus.luessing@web.de> - -TQ and HNA records for originators on secondary interfaces were -wrongly being included on the primary interface. Ensure we output a -line for each source interface on every node, so we correctly separate -primary and secondary interface records. - -Signed-off-by: Linus Lüssing <linus.luessing@web.de> -Signed-off-by: Andrew Lunn <andrew@lunn.ch> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/batman-adv/proc.c | 51 ++++++++++++++++++++++++++------------ - drivers/staging/batman-adv/vis.c | 25 ++++++------------ - drivers/staging/batman-adv/vis.h | 7 +++-- - 3 files changed, 49 insertions(+), 34 deletions(-) - ---- a/drivers/staging/batman-adv/proc.c -+++ b/drivers/staging/batman-adv/proc.c -@@ -41,7 +41,7 @@ static int proc_interfaces_read(struct s - - rcu_read_lock(); - list_for_each_entry_rcu(batman_if, &if_list, list) { -- seq_printf(seq, "[%8s] %s %s \n", -+ seq_printf(seq, "[%8s] %s %s\n", - (batman_if->if_active == IF_ACTIVE ? - "active" : "inactive"), - batman_if->dev, -@@ -188,18 +188,18 @@ static int proc_originators_read(struct - rcu_read_lock(); - if (list_empty(&if_list)) { - rcu_read_unlock(); -- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n"); -+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n"); - goto end; - } - - if (((struct batman_if *)if_list.next)->if_active != IF_ACTIVE) { - rcu_read_unlock(); -- seq_printf(seq, "BATMAN disabled - primary interface not active \n"); -+ seq_printf(seq, "BATMAN disabled - primary interface not active\n"); - goto end; - } - - seq_printf(seq, -- " %-14s (%s/%i) %17s [%10s]: %20s ... [B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%s] \n", -+ " %-14s (%s/%i) %17s [%10s]: %20s ... [B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%s]\n", - "Originator", "#", TQ_MAX_VALUE, "Nexthop", "outgoingIF", - "Potential nexthops", SOURCE_VERSION, REVISION_VERSION_STR, - ((struct batman_if *)if_list.next)->dev, -@@ -240,7 +240,7 @@ static int proc_originators_read(struct - spin_unlock_irqrestore(&orig_hash_lock, flags); - - if (batman_count == 0) -- seq_printf(seq, "No batman nodes in range ... \n"); -+ seq_printf(seq, "No batman nodes in range ...\n"); - - end: - return 0; -@@ -262,7 +262,7 @@ static int proc_transt_local_read(struct - rcu_read_lock(); - if (list_empty(&if_list)) { - rcu_read_unlock(); -- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n"); -+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n"); - goto end; - } - -@@ -294,7 +294,7 @@ static int proc_transt_global_read(struc - rcu_read_lock(); - if (list_empty(&if_list)) { - rcu_read_unlock(); -- seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it \n"); -+ seq_printf(seq, "BATMAN disabled - please specify interfaces to enable it\n"); - goto end; - } - rcu_read_unlock(); -@@ -350,9 +350,9 @@ static int proc_vis_srv_read(struct seq_ - { - int vis_server = atomic_read(&vis_mode); - -- seq_printf(seq, "[%c] client mode (server disabled) \n", -+ seq_printf(seq, "[%c] client mode (server disabled)\n", - (vis_server == VIS_TYPE_CLIENT_UPDATE) ? 'x' : ' '); -- seq_printf(seq, "[%c] server mode (server enabled) \n", -+ seq_printf(seq, "[%c] server mode (server enabled)\n", - (vis_server == VIS_TYPE_SERVER_SYNC) ? 'x' : ' '); - - return 0; -@@ -369,6 +369,8 @@ static int proc_vis_data_read(struct seq - struct vis_info *info; - struct vis_info_entry *entries; - HLIST_HEAD(vis_if_list); -+ struct if_list_entry *entry; -+ struct hlist_node *pos, *n; - int i; - char tmp_addr_str[ETH_STR_LEN]; - unsigned long flags; -@@ -387,17 +389,34 @@ static int proc_vis_data_read(struct seq - info = hashit.bucket->data; - entries = (struct vis_info_entry *) - ((char *)info + sizeof(struct vis_info)); -- addr_to_string(tmp_addr_str, info->packet.vis_orig); -- seq_printf(seq, "%s,", tmp_addr_str); - - for (i = 0; i < info->packet.entries; i++) { -- proc_vis_read_entry(seq, &entries[i], &vis_if_list, -- info->packet.vis_orig); -+ if (entries[i].quality == 0) -+ continue; -+ proc_vis_insert_interface(entries[i].src, &vis_if_list, -+ compare_orig(entries[i].src, -+ info->packet.vis_orig)); - } - -- /* add primary/secondary records */ -- proc_vis_read_prim_sec(seq, &vis_if_list); -- seq_printf(seq, "\n"); -+ hlist_for_each_entry(entry, pos, &vis_if_list, list) { -+ addr_to_string(tmp_addr_str, entry->addr); -+ seq_printf(seq, "%s,", tmp_addr_str); -+ -+ for (i = 0; i < info->packet.entries; i++) -+ proc_vis_read_entry(seq, &entries[i], -+ entry->addr, entry->primary); -+ -+ /* add primary/secondary records */ -+ if (compare_orig(entry->addr, info->packet.vis_orig)) -+ proc_vis_read_prim_sec(seq, &vis_if_list); -+ -+ seq_printf(seq, "\n"); -+ } -+ -+ hlist_for_each_entry_safe(entry, pos, n, &vis_if_list, list) { -+ hlist_del(&entry->list); -+ kfree(entry); -+ } - } - spin_unlock_irqrestore(&vis_hash_lock, flags); - ---- a/drivers/staging/batman-adv/vis.c -+++ b/drivers/staging/batman-adv/vis.c -@@ -86,7 +86,7 @@ static int vis_info_choose(void *data, i - - /* insert interface to the list of interfaces of one originator, if it - * does not already exist in the list */ --static void proc_vis_insert_interface(const uint8_t *interface, -+void proc_vis_insert_interface(const uint8_t *interface, - struct hlist_head *if_list, - bool primary) - { -@@ -111,39 +111,32 @@ void proc_vis_read_prim_sec(struct seq_f - struct hlist_head *if_list) - { - struct if_list_entry *entry; -- struct hlist_node *pos, *n; -+ struct hlist_node *pos; - char tmp_addr_str[ETH_STR_LEN]; - -- hlist_for_each_entry_safe(entry, pos, n, if_list, list) { -- if (entry->primary) { -+ hlist_for_each_entry(entry, pos, if_list, list) { -+ if (entry->primary) - seq_printf(seq, "PRIMARY, "); -- } else { -+ else { - addr_to_string(tmp_addr_str, entry->addr); - seq_printf(seq, "SEC %s, ", tmp_addr_str); - } -- -- hlist_del(&entry->list); -- kfree(entry); - } - } - - /* read an entry */ - void proc_vis_read_entry(struct seq_file *seq, - struct vis_info_entry *entry, -- struct hlist_head *if_list, -- uint8_t *vis_orig) -+ uint8_t *src, -+ bool primary) - { - char to[40]; - - addr_to_string(to, entry->dest); -- if (entry->quality == 0) { -- proc_vis_insert_interface(vis_orig, if_list, true); -+ if (primary && entry->quality == 0) - seq_printf(seq, "HNA %s, ", to); -- } else { -- proc_vis_insert_interface(entry->src, if_list, -- compare_orig(entry->src, vis_orig)); -+ else if (compare_orig(entry->src, src)) - seq_printf(seq, "TQ %s %d, ", to, entry->quality); -- } - } - - /* add the info packet to the send list, if it was not ---- a/drivers/staging/batman-adv/vis.h -+++ b/drivers/staging/batman-adv/vis.h -@@ -49,10 +49,13 @@ struct recvlist_node { - extern struct hashtable_t *vis_hash; - extern spinlock_t vis_hash_lock; - -+void proc_vis_insert_interface(const uint8_t *interface, -+ struct hlist_head *if_list, -+ bool primary); - void proc_vis_read_entry(struct seq_file *seq, - struct vis_info_entry *entry, -- struct hlist_head *if_list, -- uint8_t *vis_orig); -+ uint8_t *src, -+ bool primary); - void proc_vis_read_prim_sec(struct seq_file *seq, - struct hlist_head *if_list); - void receive_server_sync_packet(struct vis_packet *vis_packet, diff --git a/staging.current/staging-batman-adv-fixing-wrap-around-bug-in-vis.patch b/staging.current/staging-batman-adv-fixing-wrap-around-bug-in-vis.patch deleted file mode 100644 index 3be9256bbf0f53..00000000000000 --- a/staging.current/staging-batman-adv-fixing-wrap-around-bug-in-vis.patch +++ /dev/null @@ -1,62 +0,0 @@ -From andrew@lunn.ch Tue Apr 27 14:51:50 2010 -From: Linus L�ssing <linus.luessing@web.de> -Date: Mon, 22 Mar 2010 22:46:15 +0100 -Subject: Staging: batman-adv: Fixing wrap-around bug in vis -To: gregkh@suse.de -Cc: b.a.t.m.a.n@lists.open-mesh.net, Linus L�ssing <linus.luessing@web.de>, Sven Eckelmann <sven.eckelmann@gmx.de>, Andrew Lunn <andrew@lunn.ch> -Message-ID: <1269294375-11043-4-git-send-email-andrew@lunn.ch> - - -From: Linus L�ssing <linus.luessing@web.de> - -When the seqno for a vis packet had a wrap around from i.e. 255 to 0, -add_packet() would falsely claim the older packet with the seqno 255 as -newer as the one with the seqno of 0 and would therefore ignore the new -packet. This happens with all following vis packets until the old vis -packet expires after 180 seconds timeout. This patch fixes this issue -and gets rid of these highly undesired 3min. breaks for the vis-server. - -Signed-off-by: Linus L�ssing <linus.luessing@web.de> -Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> -Signed-off-by: Andrew Lunn <andrew@lunn.ch> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/batman-adv/vis.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - ---- a/drivers/staging/batman-adv/vis.c -+++ b/drivers/staging/batman-adv/vis.c -@@ -27,6 +27,22 @@ - #include "hard-interface.h" - #include "hash.h" - -+/* Returns the smallest signed integer in two's complement with the sizeof x */ -+#define smallest_signed_int(x) (1u << (7u + 8u * (sizeof(x) - 1u))) -+ -+/* Checks if a sequence number x is a predecessor/successor of y. -+ they handle overflows/underflows and can correctly check for a -+ predecessor/successor unless the variable sequence number has grown by -+ more then 2**(bitwidth(x)-1)-1. -+ This means that for a uint8_t with the maximum value 255, it would think: -+ * when adding nothing - it is neither a predecessor nor a successor -+ * before adding more than 127 to the starting value - it is a predecessor, -+ * when adding 128 - it is neither a predecessor nor a successor, -+ * after adding more than 127 to the starting value - it is a successor */ -+#define seq_before(x, y) ({typeof(x) _dummy = (x - y); \ -+ _dummy > smallest_signed_int(_dummy); }) -+#define seq_after(x, y) seq_before(y, x) -+ - struct hashtable_t *vis_hash; - DEFINE_SPINLOCK(vis_hash_lock); - static DEFINE_SPINLOCK(recv_list_lock); -@@ -212,7 +228,7 @@ static struct vis_info *add_packet(struc - old_info = hash_find(vis_hash, &search_elem); - - if (old_info != NULL) { -- if (vis_packet->seqno - old_info->packet.seqno <= 0) { -+ if (!seq_after(vis_packet->seqno, old_info->packet.seqno)) { - if (old_info->packet.seqno == vis_packet->seqno) { - recv_list_add(&old_info->recv_list, - vis_packet->sender_orig); diff --git a/staging.current/staging-dt3155-fix-50hz-configuration.patch b/staging.current/staging-dt3155-fix-50hz-configuration.patch deleted file mode 100644 index cbba5504c57ca9..00000000000000 --- a/staging.current/staging-dt3155-fix-50hz-configuration.patch +++ /dev/null @@ -1,41 +0,0 @@ -From hartleys@visionengravers.com Mon Apr 26 14:04:57 2010 -From: H Hartley Sweeten <hartleys@visionengravers.com> -Date: Wed, 14 Apr 2010 18:29:17 -0500 -Subject: Staging: dt3155: fix 50Hz configuration -Cc: Greg KH <greg@kroah.com> -Message-ID: <0D753D10438DA54287A00B0270842697636D62B002@AUSP01VMBX24.collaborationhost.net> - -According to the header file, dt3155_io.h, the 50/60 Hz configuration -is controlled by a bit in the I2C CSR2 register (bit 2). The function -dt3155_init_isr actually reads the I2C CONFIG register into the global -I2C_CSR union variable then modifies the bit. It then does a write -to the I2C CONFIG register with the global I2C_CONFIG union variable -which is not even set with a value anywhere in the driver. - -My guess is 50Hz operation doesn't even work as-is. - -Fix this by actually reading and writing the correct register with -the correct value. - -Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> -Cc: Simon Horman <horms@verge.net.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/dt3155/dt3155_drv.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/staging/dt3155/dt3155_drv.c -+++ b/drivers/staging/dt3155/dt3155_drv.c -@@ -464,9 +464,9 @@ static void dt3155_init_isr(int minor) - /* 50/60 Hz should be set before this point but let's make sure it is */ - /* right anyway */ - -- ReadI2C(dt3155_lbase[ minor ], CONFIG, &i2c_csr2.reg); -+ ReadI2C(dt3155_lbase[ minor ], CSR2, &i2c_csr2.reg); - i2c_csr2.fld.HZ50 = FORMAT50HZ; -- WriteI2C(dt3155_lbase[ minor ], CONFIG, i2c_config.reg); -+ WriteI2C(dt3155_lbase[ minor ], CSR2, i2c_csr2.reg); - - /* enable busmaster chip, clear flags */ - diff --git a/staging.current/staging-hv-fix-a-bug-affecting-ipv6.patch b/staging.current/staging-hv-fix-a-bug-affecting-ipv6.patch deleted file mode 100644 index ccbffe697d7ca2..00000000000000 --- a/staging.current/staging-hv-fix-a-bug-affecting-ipv6.patch +++ /dev/null @@ -1,35 +0,0 @@ -From haiyangz@microsoft.com Thu Apr 22 16:42:47 2010 -From: Haiyang Zhang <haiyangz@microsoft.com> -Date: Mon, 19 Apr 2010 15:32:11 +0000 -Subject: Staging: hv: Fix a bug affecting IPv6 -To: Greg KH <gregkh@suse.de> -Cc: Hank Janssen <hjanssen@microsoft.com>, Toshikazu Sakai <Toshikazu.Sakai@microsoft.com> -Message-ID: <1FB5E1D5CA062146B38059374562DF7266281C0D@TK5EX14MBXC121.redmond.corp.microsoft.com> - - -From: Haiyang Zhang <haiyangz@microsoft.com> - -Fix a bug affecting IPv6 -Added the multicast flag for proper IPv6 function. - -Reported-by: Toshikazu Sakai <toshikas@microsoft.com> -Signed-off-by: Hank Janssen <hjanssen@microsoft.com> -Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/staging/hv/RndisFilter.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/hv/RndisFilter.c -+++ b/drivers/staging/hv/RndisFilter.c -@@ -751,6 +751,7 @@ static int RndisFilterOpenDevice(struct - - ret = RndisFilterSetPacketFilter(Device, - NDIS_PACKET_TYPE_BROADCAST | -+ NDIS_PACKET_TYPE_ALL_MULTICAST | - NDIS_PACKET_TYPE_DIRECTED); - if (ret == 0) - Device->State = RNDIS_DEV_DATAINITIALIZED; diff --git a/staging.current/staging-hv-fix-up-memory-leak-on-hvcleanup.patch b/staging.current/staging-hv-fix-up-memory-leak-on-hvcleanup.patch deleted file mode 100644 index fcbca7fec636a7..00000000000000 --- a/staging.current/staging-hv-fix-up-memory-leak-on-hvcleanup.patch +++ /dev/null @@ -1,34 +0,0 @@ -From gorcunov@openvz.org Thu Apr 22 16:43:51 2010 -From: Cyrill Gorcunov <gorcunov@openvz.org> -Date: Mon, 5 Apr 2010 20:56:57 +0400 -Subject: Staging: hv: Fix up memory leak on HvCleanup -To: Greg KH <greg@kroah.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com>, Hank Janssen <hjanssen@microsoft.com> -Message-ID: <20100405165657.GE5079@lenovo> -Content-Disposition: inline - -Don't assign NULL too early - -Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> -Cc: Hank Janssen <hjanssen@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/hv/Hv.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/hv/Hv.c -+++ b/drivers/staging/hv/Hv.c -@@ -306,9 +306,9 @@ void HvCleanup(void) - DPRINT_ENTER(VMBUS); - - if (gHvContext.SignalEventBuffer) { -+ kfree(gHvContext.SignalEventBuffer); - gHvContext.SignalEventBuffer = NULL; - gHvContext.SignalEventParam = NULL; -- kfree(gHvContext.SignalEventBuffer); - } - - if (gHvContext.HypercallPage) { diff --git a/staging.current/staging-hv-name-network-device-ethx-rather-than-sethx.patch b/staging.current/staging-hv-name-network-device-ethx-rather-than-sethx.patch deleted file mode 100644 index 1c47b2da66785f..00000000000000 --- a/staging.current/staging-hv-name-network-device-ethx-rather-than-sethx.patch +++ /dev/null @@ -1,36 +0,0 @@ -From shemminger@vyatta.com Thu Apr 22 16:45:06 2010 -From: Stephen Hemminger <shemminger@vyatta.com> -Date: Thu, 11 Mar 2010 09:11:37 -0800 -Subject: Staging: hv: name network device ethX rather than sethX -To: Hank Janssen <hjanssen@microsoft.com> -Cc: Greg KH <gregkh@suse.de>, netdev@vger.kernel.org -Message-ID: <20100311091137.27f22c57@nehalam> - - -This patch makes the HyperV network device use the same naming scheme as -other virtual drivers (Xen, KVM). In an ideal world, userspace tools -would not care what the name is, but some users and applications do -care. Vyatta CLI is one of the tools that does depend on what the name -is. - -Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> -Cc: Hank Janssen <hjanssen@microsoft.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/hv/netvsc_drv.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/drivers/staging/hv/netvsc_drv.c -+++ b/drivers/staging/hv/netvsc_drv.c -@@ -403,8 +403,7 @@ static int netvsc_probe(struct device *d - if (!net_drv_obj->Base.OnDeviceAdd) - return -1; - -- net = alloc_netdev(sizeof(struct net_device_context), "seth%d", -- ether_setup); -+ net = alloc_etherdev(sizeof(struct net_device_context)); - if (!net) - return -1; - diff --git a/staging.current/staging-iio-adc-fix-dangling-pointers.patch b/staging.current/staging-iio-adc-fix-dangling-pointers.patch deleted file mode 100644 index e0b8620630b654..00000000000000 --- a/staging.current/staging-iio-adc-fix-dangling-pointers.patch +++ /dev/null @@ -1,39 +0,0 @@ -From w.sang@pengutronix.de Thu Apr 22 16:39:35 2010 -From: Wolfram Sang <w.sang@pengutronix.de> -Date: Sat, 20 Mar 2010 15:13:02 +0100 -Subject: Staging: iio: adc: fix dangling pointers -To: kernel-janitors@vger.kernel.org -Cc: devel@driverdev.osuosl.org, Wolfram Sang <w.sang@pengutronix.de>, Greg Kroah-Hartman <gregkh@suse.de>, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org -Message-ID: <1269094385-16114-22-git-send-email-w.sang@pengutronix.de> - - -Fix I2C-drivers which missed setting clientdata to NULL before freeing the -structure it points to. Also fix drivers which do this _after_ the structure -was freed already. - -Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> -Acked-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/adc/max1363_core.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/staging/iio/adc/max1363_core.c -+++ b/drivers/staging/iio/adc/max1363_core.c -@@ -557,6 +557,7 @@ error_put_reg: - if (!IS_ERR(st->reg)) - regulator_put(st->reg); - error_free_st: -+ i2c_set_clientdata(client, NULL); - kfree(st); - - error_ret: -@@ -574,6 +575,7 @@ static int max1363_remove(struct i2c_cli - regulator_disable(st->reg); - regulator_put(st->reg); - } -+ i2c_set_clientdata(client, NULL); - kfree(st); - - return 0; diff --git a/staging.current/staging-iio-fix-up-the-iio_get_new_idr_val-comment.patch b/staging.current/staging-iio-fix-up-the-iio_get_new_idr_val-comment.patch deleted file mode 100644 index c29f8423fcee2f..00000000000000 --- a/staging.current/staging-iio-fix-up-the-iio_get_new_idr_val-comment.patch +++ /dev/null @@ -1,32 +0,0 @@ -From akpm@linux-foundation.org Tue Apr 27 11:30:01 2010 -From: Andrew Morton <akpm@linux-foundation.org> -Date: Tue, 27 Apr 2010 11:29:54 -0700 -Subject: Staging: iio: fix up the iio_get_new_idr_val comment -To: <gregkh@suse.de> -Message-ID: <20100427112954.9b99a96a.akpm@linux-foundation.org> - -From: Andrew Morton <akpm@linux-foundation.org> - -improve the comment a bit - -Cc: Greg KH <greg@kroah.com> -Cc: Jonathan Cameron <jic23@cam.ac.uk> -Cc: Sonic Zhang <sonic.adi@gmail.com> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/industrialio-core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/iio/industrialio-core.c -+++ b/drivers/staging/iio/industrialio-core.c -@@ -537,7 +537,7 @@ static void iio_device_unregister_sysfs( - sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs); - } - --/* This function return negative value if fails. */ -+/* Return a negative errno on failure */ - int iio_get_new_idr_val(struct idr *this_idr) - { - int ret; diff --git a/staging.current/staging-iio-function-iio_get_new_idr_val-return-negative-value-if-fails.patch b/staging.current/staging-iio-function-iio_get_new_idr_val-return-negative-value-if-fails.patch deleted file mode 100644 index d9e6898ac174a9..00000000000000 --- a/staging.current/staging-iio-function-iio_get_new_idr_val-return-negative-value-if-fails.patch +++ /dev/null @@ -1,39 +0,0 @@ -From jic23@cam.ac.uk Thu Apr 22 16:40:17 2010 -From: Sonic Zhang <sonic.adi@gmail.com> -Date: Mon, 22 Mar 2010 12:27:05 +0000 -Subject: staging: iio: Function iio_get_new_idr_val() return negative value if fails. -To: sonic zhang <sonic.adi@gmail.com> -Cc: Linux Kernel <linux-kernel@vger.kernel.org>, linux-iio <linux-iio@vger.kernel.org>, Greg KH <greg@kroah.com> -Message-ID: <4BA76219.4030606@cam.ac.uk> - - -Function iio_get_new_idr_val() return negative value if fails. -So, only error when ret < 0 in iio_device_register_eventset(). - -Signed-off-by: Sonic Zhang <sonic.adi@gmail.com> -Acked-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/industrialio-core.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/staging/iio/industrialio-core.c -+++ b/drivers/staging/iio/industrialio-core.c -@@ -537,6 +537,7 @@ static void iio_device_unregister_sysfs( - sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs); - } - -+/* This function return negative value if fails. */ - int iio_get_new_idr_val(struct idr *this_idr) - { - int ret; -@@ -660,7 +661,7 @@ static int iio_device_register_eventset( - for (i = 0; i < dev_info->num_interrupt_lines; i++) { - dev_info->event_interfaces[i].owner = dev_info->driver_module; - ret = iio_get_new_idr_val(&iio_event_idr); -- if (ret) -+ if (ret < 0) - goto error_free_setup_ev_ints; - else - dev_info->event_interfaces[i].id = ret; diff --git a/staging.current/staging-iio-light-fix-dangling-pointers.patch b/staging.current/staging-iio-light-fix-dangling-pointers.patch deleted file mode 100644 index 6b4eddedc1e81c..00000000000000 --- a/staging.current/staging-iio-light-fix-dangling-pointers.patch +++ /dev/null @@ -1,39 +0,0 @@ -From w.sang@pengutronix.de Thu Apr 22 16:39:09 2010 -From: Wolfram Sang <w.sang@pengutronix.de> -Date: Sat, 20 Mar 2010 15:13:03 +0100 -Subject: Staging: iio: light: fix dangling pointers -To: kernel-janitors@vger.kernel.org -Cc: devel@driverdev.osuosl.org, Wolfram Sang <w.sang@pengutronix.de>, Greg Kroah-Hartman <gregkh@suse.de>, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org -Message-ID: <1269094385-16114-23-git-send-email-w.sang@pengutronix.de> - - -Fix I2C-drivers which missed setting clientdata to NULL before freeing the -structure it points to. Also fix drivers which do this _after_ the structure -was freed already. - -Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> -Acked-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/light/tsl2563.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/staging/iio/light/tsl2563.c -+++ b/drivers/staging/iio/light/tsl2563.c -@@ -682,6 +682,7 @@ static int __devinit tsl2563_probe(struc - fail2: - iio_device_unregister(chip->indio_dev); - fail1: -+ i2c_set_clientdata(client, NULL); - kfree(chip); - return err; - } -@@ -692,6 +693,7 @@ static int tsl2563_remove(struct i2c_cli - - iio_device_unregister(chip->indio_dev); - -+ i2c_set_clientdata(client, NULL); - kfree(chip); - return 0; - } diff --git a/staging.current/staging-iio-lis3l02dq-incorrect-ws-used-in-container-of-call.patch b/staging.current/staging-iio-lis3l02dq-incorrect-ws-used-in-container-of-call.patch deleted file mode 100644 index 69acd0e532fe14..00000000000000 --- a/staging.current/staging-iio-lis3l02dq-incorrect-ws-used-in-container-of-call.patch +++ /dev/null @@ -1,33 +0,0 @@ -From jic23@cam.ac.uk Thu Apr 22 16:37:59 2010 -From: Jonathan Cameron <jic23@cam.ac.uk> -Date: Thu, 11 Mar 2010 17:29:48 +0000 -Subject: staging: iio: lis3l02dq - incorrect ws used in container of call. -To: Greg KH <greg@kroah.com>, "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org> -Message-ID: <4B99288C.3080601@cam.ac.uk> - -The word oops comes to mind. Original patch to merge the two work queues -in here (prior to Greg taking them into staging) changed the top half to -only use one of them and the bottom half to assume it was the other. - -Currently causes a NULL pointer dereference if you enable any of the events -on an lis3l02dq. Just goes to show I need a few more regression tests. - - -Signed-of-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/accel/lis3l02dq_core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/iio/accel/lis3l02dq_core.c -+++ b/drivers/staging/iio/accel/lis3l02dq_core.c -@@ -618,7 +618,7 @@ static int lis3l02dq_thresh_handler_th(s - static void lis3l02dq_thresh_handler_bh_no_check(struct work_struct *work_s) - { - struct iio_work_cont *wc -- = container_of(work_s, struct iio_work_cont, ws_nocheck); -+ = container_of(work_s, struct iio_work_cont, ws); - struct lis3l02dq_state *st = wc->st; - u8 t; - diff --git a/staging.current/staging-iio-ring_sw-fix-incorrect-test-on-successful-read-of-last-value-causes-infinite-loop.patch b/staging.current/staging-iio-ring_sw-fix-incorrect-test-on-successful-read-of-last-value-causes-infinite-loop.patch deleted file mode 100644 index b8d5fec4bbb79f..00000000000000 --- a/staging.current/staging-iio-ring_sw-fix-incorrect-test-on-successful-read-of-last-value-causes-infinite-loop.patch +++ /dev/null @@ -1,31 +0,0 @@ -From jic23@cam.ac.uk Thu Apr 22 16:41:09 2010 -From: Jonathan Cameron <jic23@cam.ac.uk> -Date: Tue, 30 Mar 2010 17:45:04 +0100 -Subject: staging: iio: ring_sw: Fix incorrect test on successful read of last value, causes infinite loop -To: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>, Greg Kroah-Hartman <gregkh@suse.de> -Message-ID: <4BB22A90.6070801@cam.ac.uk> - - -This is a bad one. The test means that almost no reads of the last -value ever succeed! Result is an infinite loop. - -Another one for the 'oops' category. - -Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/ring_sw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/iio/ring_sw.c -+++ b/drivers/staging/iio/ring_sw.c -@@ -293,7 +293,7 @@ again: - return -EAGAIN; - memcpy(data, last_written_p_copy, ring->buf.bpd); - -- if (unlikely(ring->last_written_p >= last_written_p_copy)) -+ if (unlikely(ring->last_written_p != last_written_p_copy)) - goto again; - - iio_unmark_sw_rb_in_use(&ring->buf); diff --git a/staging.current/staging-iio-test-for-failed-allocation.patch b/staging.current/staging-iio-test-for-failed-allocation.patch deleted file mode 100644 index e9828c0f9c7e43..00000000000000 --- a/staging.current/staging-iio-test-for-failed-allocation.patch +++ /dev/null @@ -1,32 +0,0 @@ -From error27@gmail.com Thu Apr 22 16:38:42 2010 -From: Dan Carpenter <error27@gmail.com> -Date: Tue, 16 Mar 2010 13:03:49 +0300 -Subject: Staging: iio: test for failed allocation -To: Greg Kroah-Hartman <gregkh@suse.de> -Cc: devel@driverdev.osuosl.org, kernel-janitors@vger.kernel.org, Jonathan Cameron <jic23@cam.ac.uk>, linux-kernel@vger.kernel.org -Message-ID: <20100316100349.GA4219@bicker> -Content-Disposition: inline - - -We should return test to see if iio_allocate_trigger() fails and return -ENOMEM. - -Signed-off-by: Dan Carpenter <error27@gmail.com> -Acked-by: Jonathan Cameron <jic23@cam.ac.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/iio/accel/lis3l02dq_ring.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/staging/iio/accel/lis3l02dq_ring.c -+++ b/drivers/staging/iio/accel/lis3l02dq_ring.c -@@ -493,6 +493,9 @@ int lis3l02dq_probe_trigger(struct iio_d - struct lis3l02dq_state *state = indio_dev->dev_data; - - state->trig = iio_allocate_trigger(); -+ if (!state->trig) -+ return -ENOMEM; -+ - state->trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL); - if (!state->trig->name) { - ret = -ENOMEM; diff --git a/staging.current/staging-rt2860-add-belkin-f5d8055-wireless-n-usb-dongle-device-id.patch b/staging.current/staging-rt2860-add-belkin-f5d8055-wireless-n-usb-dongle-device-id.patch deleted file mode 100644 index ea2cfa18184980..00000000000000 --- a/staging.current/staging-rt2860-add-belkin-f5d8055-wireless-n-usb-dongle-device-id.patch +++ /dev/null @@ -1,29 +0,0 @@ -From largret@gmail.com Tue Apr 27 09:35:20 2010 -From: Chris Largret <largret@gmail.com> -Date: Wed, 3 Mar 2010 05:24:26 -0600 -Subject: Staging: rt2860: add Belkin F5D8055 Wireless-N USB Dongle device id -To: Greg KH <greg@kroah.com> -Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org> -Message-ID: <d426fb281003030324v6dc6216ch53bdb30ffc18a9be@mail.gmail.com> - - -Add Belkin F5D8055 Wireless-N USB support to the rt2870 -staging driver. - -Signed-off-by: Chris Largret <largret@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/rt2860/usb_main_dev.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/rt2860/usb_main_dev.c -+++ b/drivers/staging/rt2860/usb_main_dev.c -@@ -63,6 +63,7 @@ struct usb_device_id rtusb_usb_id[] = { - {USB_DEVICE(0x07D1, 0x3C11)}, /* D-Link */ - {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ - {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ -+ {USB_DEVICE(0x050D, 0x825B)}, /* Belkin */ - {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ - {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ - {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ diff --git a/staging.current/staging-rtl8192su-add-support-for-belkin-f5d8053-v6.patch b/staging.current/staging-rtl8192su-add-support-for-belkin-f5d8053-v6.patch deleted file mode 100644 index 5d2e741cb4e700..00000000000000 --- a/staging.current/staging-rtl8192su-add-support-for-belkin-f5d8053-v6.patch +++ /dev/null @@ -1,30 +0,0 @@ -From richard@backtrace.co.uk Mon Apr 26 14:10:17 2010 -From: Richard Airlie <richard@backtrace.co.uk> -Date: Mon, 05 Apr 2010 22:22:46 +0100 -Subject: staging: rtl8192su: add Support for Belkin F5D8053 v6 -To: greg@kroah.com -Message-ID: <4BBA54A6.4000706@backtrace.co.uk> - - -Please find attached a patch which adds the device ID for the Belkin -F5D8053 v6 to the rtl8192su driver. I've tested this in 2.6.34-rc3 -(Ubuntu 9.10 amd64) and the network adapter is working flawlessly. - -Signed-off-by: Richard Airlie <richard@backtrace.co.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/staging/rtl8192su/r8192U_core.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/rtl8192su/r8192U_core.c -+++ b/drivers/staging/rtl8192su/r8192U_core.c -@@ -120,6 +120,7 @@ static const struct usb_device_id rtl819 - {USB_DEVICE(0x07aa, 0x0043)}, - /* Belkin */ - {USB_DEVICE(0x050d, 0x805E)}, -+ {USB_DEVICE(0x050d, 0x815F)}, /* Belkin F5D8053 v6 */ - /* Sitecom */ - {USB_DEVICE(0x0df6, 0x0031)}, - /* EnGenius */ diff --git a/staging.current/staging-rtl8192su-add-usb-id-for-0bda-8171.patch b/staging.current/staging-rtl8192su-add-usb-id-for-0bda-8171.patch deleted file mode 100644 index 42a1b509111b31..00000000000000 --- a/staging.current/staging-rtl8192su-add-usb-id-for-0bda-8171.patch +++ /dev/null @@ -1,26 +0,0 @@ -From proski@gnu.org Thu Apr 22 16:46:24 2010 -From: Pavel Roskin <proski@gnu.org> -Date: Tue, 09 Mar 2010 23:11:07 -0500 -Subject: Staging: rtl8192su: add USB ID for 0bda:8171 -To: Greg KH <greg@kroah.com> -Cc: devel@driverdev.osuosl.org -Message-ID: <20100310041106.791.60267.stgit@mj.roinet.com> - - -Signed-off-by: Pavel Roskin <proski@gnu.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/rtl8192su/r8192U_core.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/staging/rtl8192su/r8192U_core.c -+++ b/drivers/staging/rtl8192su/r8192U_core.c -@@ -113,6 +113,7 @@ u32 rt_global_debug_component = \ - - static const struct usb_device_id rtl8192_usb_id_tbl[] = { - /* Realtek */ -+ {USB_DEVICE(0x0bda, 0x8171)}, - {USB_DEVICE(0x0bda, 0x8192)}, - {USB_DEVICE(0x0bda, 0x8709)}, - /* Corega */ diff --git a/staging.current/staging-usbip-fix-deadlock.patch b/staging.current/staging-usbip-fix-deadlock.patch deleted file mode 100644 index acae33230ec3f0..00000000000000 --- a/staging.current/staging-usbip-fix-deadlock.patch +++ /dev/null @@ -1,38 +0,0 @@ -From lescouet@virtuallogix.com Mon Apr 26 13:57:28 2010 -From: Eric Lescouet <lescouet@virtuallogix.com> -Date: Sat, 24 Apr 2010 02:55:24 +0200 -Subject: staging: usbip: Fix deadlock -To: Greg KH <greg@kroah.com> -Cc: linux-kernel@vger.kernel.org -Message-ID: <201004240055.o3O0tOCP016954@localhost.localdomain> - - -When detaching a port from the client side (usbip --detach 0), -the event thread, on the server side, is going to deadlock. -The "eh" server thread is getting USBIP_EH_RESET event and calls: - -> stub_device_reset() -> usb_reset_device() -the USB framework is then calling back _in the same "eh" thread_ : - -> stub_disconnect() -> usbip_stop_eh() -> wait_for_completion() -the "eh" thread is being asleep forever, waiting for its own completion. -This patch checks if "eh" is the current thread, in usbip_stop_eh(). - -Signed-off-by: Eric Lescouet <eric@lescouet.org> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/usbip/usbip_event.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/staging/usbip/usbip_event.c -+++ b/drivers/staging/usbip/usbip_event.c -@@ -117,6 +117,9 @@ void usbip_stop_eh(struct usbip_device * - { - struct usbip_task *eh = &ud->eh; - -+ if (eh->thread == current) -+ return; /* do not wait for myself */ -+ - wait_for_completion(&eh->thread_done); - usbip_dbg_eh("usbip_eh has finished\n"); - } diff --git a/staging.current/staging-vme-re-introduce-necessary-brackets.patch b/staging.current/staging-vme-re-introduce-necessary-brackets.patch deleted file mode 100644 index d15b3e935d4a9c..00000000000000 --- a/staging.current/staging-vme-re-introduce-necessary-brackets.patch +++ /dev/null @@ -1,33 +0,0 @@ -From martyn.welch@ge.com Mon Mar 22 08:00:56 2010 -From: Martyn Welch <martyn.welch@ge.com> -Date: Mon, 22 Mar 2010 14:58:43 +0000 -Subject: Staging: vme: Re-introduce necessary brackets -To: greg@kroah.com -Cc: devel@linuxdriverproject.org -Message-ID: <20100322145843.2209.75977.stgit@ES-J7S4D2J.amer.consind.ge.com> - - -Somehow I managed to remove a set of rather necessary brackets in commit -29848ac9f3b33bf171439ae2d66d40e6a71446c4. Put them back. - -Signed-off-by: Martyn Welch <martyn.welch@ge.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/staging/vme/bridges/vme_tsi148.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/staging/vme/bridges/vme_tsi148.c -+++ b/drivers/staging/vme/bridges/vme_tsi148.c -@@ -2455,9 +2455,10 @@ static int tsi148_probe(struct pci_dev * - dev_info(&pdev->dev, "VME Write and flush and error check is %s\n", - err_chk ? "enabled" : "disabled"); - -- if (tsi148_crcsr_init(tsi148_bridge, pdev)) -+ if (tsi148_crcsr_init(tsi148_bridge, pdev)) { - dev_err(&pdev->dev, "CR/CSR configuration failed.\n"); - goto err_crcsr; -+ } - - retval = vme_register_bridge(tsi148_bridge); - if (retval != 0) { diff --git a/tty.current/serial-8250_pnp-add-fujitsu-wacom-device.patch b/tty.current/serial-8250_pnp-add-fujitsu-wacom-device.patch deleted file mode 100644 index 8269d341a51279..00000000000000 --- a/tty.current/serial-8250_pnp-add-fujitsu-wacom-device.patch +++ /dev/null @@ -1,33 +0,0 @@ -From pingc@wacom.com Wed Apr 28 12:23:28 2010 -From: "Ping Cheng" <pingc@wacom.com> -Date: Mon, 22 Mar 2010 13:40:29 -0700 -Subject: serial: 8250_pnp - add Fujitsu Wacom device -To: <greg@kroah.com> -Cc: <alan@lxorguk.ukuu.org.uk>, <jkosina@suse.cz>, <akpm@linux-foundation.org> -Message-ID: <6753EB6004AFF34FAA275742C104F952BDD699@wacom-nt10.wacom.com> - - -From: Ping Cheng <pingc@wacom.com> - -Add Fujitsu Wacom 1FGT Tablet PC device - -Signed-off-by: Ping Cheng <pingc@wacom.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/serial/8250_pnp.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/serial/8250_pnp.c -+++ b/drivers/serial/8250_pnp.c -@@ -348,6 +348,8 @@ static const struct pnp_device_id pnp_de - { "FUJ02E6", 0 }, - /* Fujitsu Wacom 2FGT Tablet PC device */ - { "FUJ02E7", 0 }, -+ /* Fujitsu Wacom 1FGT Tablet PC device */ -+ { "FUJ02E9", 0 }, - /* - * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in - * disguise) diff --git a/tty.current/serial-drivers-serial-pmac_zilog.c-add-missing-unlock.patch b/tty.current/serial-drivers-serial-pmac_zilog.c-add-missing-unlock.patch deleted file mode 100644 index 6cc3607740e531..00000000000000 --- a/tty.current/serial-drivers-serial-pmac_zilog.c-add-missing-unlock.patch +++ /dev/null @@ -1,52 +0,0 @@ -From akpm@linux-foundation.org Thu Apr 29 16:26:49 2010 -From: akpm@linux-foundation.org -Date: Tue, 27 Apr 2010 14:05:20 -0700 -Subject: serial: drivers/serial/pmac_zilog.c: add missing unlock -To: greg@kroah.com -Cc: akpm@linux-foundation.org, julia@diku.dk, benh@kernel.crashing.org -Message-ID: <201004272105.o3RL5K5u019632@imap1.linux-foundation.org> - - -From: Julia Lawall <julia@diku.dk> - -In an error handling case the lock is not unlocked. - -A simplified version of the semantic patch that finds this problem is as -follows: (http://coccinelle.lip6.fr/) - -// <smpl> -@r exists@ -expression E1; -identifier f; -@@ - -f (...) { <+... -* spin_lock_irqsave (E1,...); -... when != E1 -* return ...; -...+> } -// </smpl> - -Signed-off-by: Julia Lawall <julia@diku.dk> -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/serial/pmac_zilog.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/serial/pmac_zilog.c -+++ b/drivers/serial/pmac_zilog.c -@@ -752,8 +752,10 @@ static void pmz_break_ctl(struct uart_po - uap->curregs[R5] = new_reg; - - /* NOTE: Not subject to 'transmitter active' rule. */ -- if (ZS_IS_ASLEEP(uap)) -+ if (ZS_IS_ASLEEP(uap)) { -+ spin_unlock_irqrestore(&port->lock, flags); - return; -+ } - write_zsreg(uap, R5, uap->curregs[R5]); - } - diff --git a/tty.current/tty-fix-regressions-in-the-char-driver-conversion.patch b/tty.current/tty-fix-regressions-in-the-char-driver-conversion.patch deleted file mode 100644 index 13b27b5125dc59..00000000000000 --- a/tty.current/tty-fix-regressions-in-the-char-driver-conversion.patch +++ /dev/null @@ -1,122 +0,0 @@ -From alan@linux.intel.com Fri Apr 23 16:42:51 2010 -From: Alan Cox <alan@linux.intel.com> -Date: Fri, 23 Apr 2010 16:01:18 +0100 -Subject: tty: Fix regressions in the char driver conversion -To: Jiri Slaby <jirislaby@gmail.com> -Cc: Dan Carpenter <error27@gmail.com>, Andreas Pretzsch <apr@cn-eng.de>, Greg KH <gregkh@suse.de> -Message-ID: <20100423160118.388dfe5e@linux.intel.com> - -This forgot to update a field in the old char drivers. The fact nobody -has basically noticed (except one mxser user) rather suggests most of these -drivers could go into the bitbucket. - -Signed-off-by: Alan Cox <alan@linux.intel.com> -Cc: Jiri Slaby <jirislaby@gmail.com> -Cc: Dan Carpenter <error27@gmail.com> -Cc: Andreas Pretzsch <apr@cn-eng.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/char/isicom.c | 9 +++++++-- - drivers/char/istallion.c | 2 ++ - drivers/char/mxser.c | 3 ++- - drivers/char/riscom8.c | 1 + - drivers/char/stallion.c | 7 ++++--- - 5 files changed, 16 insertions(+), 6 deletions(-) - ---- a/drivers/char/isicom.c -+++ b/drivers/char/isicom.c -@@ -879,8 +879,8 @@ static int isicom_open(struct tty_struct - if (tport == NULL) - return -ENODEV; - port = container_of(tport, struct isi_port, port); -- card = &isi_card[BOARD(tty->index)]; - -+ tty->driver_data = port; - return tty_port_open(tport, tty, filp); - } - -@@ -936,7 +936,12 @@ static void isicom_shutdown(struct tty_p - static void isicom_close(struct tty_struct *tty, struct file *filp) - { - struct isi_port *ip = tty->driver_data; -- struct tty_port *port = &ip->port; -+ struct tty_port *port; -+ -+ if (ip == NULL) -+ return; -+ -+ port = &ip->port; - if (isicom_paranoia_check(ip, tty->name, "isicom_close")) - return; - tty_port_close(port, tty, filp); ---- a/drivers/char/istallion.c -+++ b/drivers/char/istallion.c -@@ -827,6 +827,8 @@ static int stli_open(struct tty_struct * - return -ENODEV; - if (portp->devnr < 1) - return -ENODEV; -+ -+ tty->driver_data = portp; - return tty_port_open(&portp->port, tty, filp); - } - ---- a/drivers/char/mxser.c -+++ b/drivers/char/mxser.c -@@ -1011,6 +1011,7 @@ static int mxser_open(struct tty_struct - if (!info->ioaddr) - return -ENODEV; - -+ tty->driver_data = info; - return tty_port_open(&info->port, tty, filp); - } - -@@ -1074,7 +1075,7 @@ static void mxser_close(struct tty_struc - struct mxser_port *info = tty->driver_data; - struct tty_port *port = &info->port; - -- if (tty->index == MXSER_PORTS) -+ if (tty->index == MXSER_PORTS || info == NULL) - return; - if (tty_port_close_start(port, tty, filp) == 0) - return; ---- a/drivers/char/riscom8.c -+++ b/drivers/char/riscom8.c -@@ -909,6 +909,7 @@ static int rc_open(struct tty_struct *tt - if (error) - return error; - -+ tty->driver_data = port; - return tty_port_open(&port->port, tty, filp); - } - ---- a/drivers/char/stallion.c -+++ b/drivers/char/stallion.c -@@ -724,7 +724,6 @@ static int stl_open(struct tty_struct *t - { - struct stlport *portp; - struct stlbrd *brdp; -- struct tty_port *port; - unsigned int minordev, brdnr, panelnr; - int portnr; - -@@ -754,7 +753,8 @@ static int stl_open(struct tty_struct *t - portp = brdp->panels[panelnr]->ports[portnr]; - if (portp == NULL) - return -ENODEV; -- port = &portp->port; -+ -+ tty->driver_data = portp; - return tty_port_open(&portp->port, tty, filp); - - } -@@ -841,7 +841,8 @@ static void stl_close(struct tty_struct - pr_debug("stl_close(tty=%p,filp=%p)\n", tty, filp); - - portp = tty->driver_data; -- BUG_ON(portp == NULL); -+ if(portp == NULL) -+ return; - tty_port_close(&portp->port, tty, filp); - } - diff --git a/usb.current/musb-blackfin-don-t-fake-blackfin_interrupt-result.patch b/usb.current/musb-blackfin-don-t-fake-blackfin_interrupt-result.patch deleted file mode 100644 index 01f347f0168a0c..00000000000000 --- a/usb.current/musb-blackfin-don-t-fake-blackfin_interrupt-result.patch +++ /dev/null @@ -1,40 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:03:54 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:25 +0200 -Subject: MUSB: Blackfin: don't fake blackfin_interrupt() result -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-4-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Commit a5073b52833e4df8e16c93dc4cbb7e0c558c74a2 (musb_gadget: fix unhandled -endpoint 0 IRQs) misses this change to blackfin.c: stop faking successful -result of blackfin_interrupt() and emitting a debug message on an unhandled -interrupt. - -Signed-off-by: Sergei Shtylyov <sshtylyov@mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/blackfin.c | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - ---- a/drivers/usb/musb/blackfin.c -+++ b/drivers/usb/musb/blackfin.c -@@ -172,13 +172,7 @@ static irqreturn_t blackfin_interrupt(in - - spin_unlock_irqrestore(&musb->lock, flags); - -- /* REVISIT we sometimes get spurious IRQs on g_ep0 -- * not clear why... fall in BF54x too. -- */ -- if (retval != IRQ_HANDLED) -- DBG(5, "spurious?\n"); -- -- return IRQ_HANDLED; -+ return retval; - } - - static void musb_conn_timer_handler(unsigned long _musb) diff --git a/usb.current/musb-davinci-fix-musb_platform_init-error-cleanup-path.patch b/usb.current/musb-davinci-fix-musb_platform_init-error-cleanup-path.patch deleted file mode 100644 index fd1e0677ea80f0..00000000000000 --- a/usb.current/musb-davinci-fix-musb_platform_init-error-cleanup-path.patch +++ /dev/null @@ -1,31 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:05:27 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:30 +0200 -Subject: MUSB: DaVinci: fix musb_platform_init() error cleanup path -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-9-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -This function forgets to call clk_disable() iff reading the USB module version -register returns 0. - -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/davinci.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/musb/davinci.c -+++ b/drivers/usb/musb/davinci.c -@@ -444,6 +444,8 @@ int __init musb_platform_init(struct mus - return 0; - - fail: -+ clk_disable(musb->clock); -+ - usb_nop_xceiv_unregister(); - return -ENODEV; - } diff --git a/usb.current/musb-fix-davinci-glue-layer-dependency.patch b/usb.current/musb-fix-davinci-glue-layer-dependency.patch deleted file mode 100644 index eeedad8d5d87ad..00000000000000 --- a/usb.current/musb-fix-davinci-glue-layer-dependency.patch +++ /dev/null @@ -1,45 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:03:23 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:24 +0200 -Subject: MUSB: fix DaVinci glue layer dependency -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-3-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -CONFIG_ARCH_DAVINCI now embraces both the "real" DaVinci and DA8xx/OMAP-L1x -- -on which the DaVinci glue layer won't work. Change the Makefile dependency to -CONFIG_ARCH_DAVINCI_DMx which corresponds to "real" DaVinci. - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/Kconfig | 2 +- - drivers/usb/musb/Makefile | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/musb/Kconfig -+++ b/drivers/usb/musb/Kconfig -@@ -42,7 +42,7 @@ config USB_MUSB_SOC - default y if (BF52x && !BF522 && !BF523) - - comment "DaVinci 35x and 644x USB support" -- depends on USB_MUSB_HDRC && ARCH_DAVINCI -+ depends on USB_MUSB_HDRC && ARCH_DAVINCI_DMx - - comment "OMAP 243x high speed USB support" - depends on USB_MUSB_HDRC && ARCH_OMAP2430 ---- a/drivers/usb/musb/Makefile -+++ b/drivers/usb/musb/Makefile -@@ -6,7 +6,7 @@ musb_hdrc-objs := musb_core.o - - obj-$(CONFIG_USB_MUSB_HDRC) += musb_hdrc.o - --ifeq ($(CONFIG_ARCH_DAVINCI),y) -+ifeq ($(CONFIG_ARCH_DAVINCI_DMx),y) - musb_hdrc-objs += davinci.o - endif - diff --git a/usb.current/musb-fix-power-field-to-hold-all-possible-values.patch b/usb.current/musb-fix-power-field-to-hold-all-possible-values.patch deleted file mode 100644 index 85af6da5e331ff..00000000000000 --- a/usb.current/musb-fix-power-field-to-hold-all-possible-values.patch +++ /dev/null @@ -1,32 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 13:51:10 2010 -From: Ajay Kumar Gupta <ajay.gupta@ti.com> -Date: Thu, 25 Mar 2010 13:14:23 +0200 -Subject: musb: fix power field to hold all possible values -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-2-git-send-email-felipe.balbi@nokia.com> - - -From: Ajay Kumar Gupta <ajay.gupta@ti.com> - -MUSB can supply upto 500mA such as, AM3517 and OMAP3EVM Rev >=E and thus -the 'power' field has to hold values above 255. - -Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - arch/arm/plat-omap/include/plat/usb.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm/plat-omap/include/plat/usb.h -+++ b/arch/arm/plat-omap/include/plat/usb.h -@@ -46,7 +46,7 @@ struct ehci_hcd_omap_platform_data { - struct omap_musb_board_data { - u8 interface_type; - u8 mode; -- u8 power; -+ u16 power; - }; - - enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; diff --git a/usb.current/musb-omap-don-t-call-clk_put.patch b/usb.current/musb-omap-don-t-call-clk_put.patch deleted file mode 100644 index 775f4a373d1060..00000000000000 --- a/usb.current/musb-omap-don-t-call-clk_put.patch +++ /dev/null @@ -1,32 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:05:40 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:31 +0200 -Subject: MUSB: OMAP: don't call clk_put() -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-10-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Remove duplicate/unbalanced call to clk_put() from musb_platform_exit() -- -clk_put() gets called from musb_core.c anyway... - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/omap2430.c | 3 --- - 1 file changed, 3 deletions(-) - ---- a/drivers/usb/musb/omap2430.c -+++ b/drivers/usb/musb/omap2430.c -@@ -331,8 +331,5 @@ int musb_platform_exit(struct musb *musb - - musb_platform_suspend(musb); - -- clk_put(musb->clock); -- musb->clock = NULL; -- - return 0; - } diff --git a/usb.current/musb-potential-use-after-free.patch b/usb.current/musb-potential-use-after-free.patch deleted file mode 100644 index 21179ba16fa222..00000000000000 --- a/usb.current/musb-potential-use-after-free.patch +++ /dev/null @@ -1,31 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:04:35 2010 -From: Dan Carpenter <error27@gmail.com> -Date: Thu, 25 Mar 2010 13:14:27 +0200 -Subject: musb: potential use after free -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-6-git-send-email-felipe.balbi@nokia.com> - - -From: Dan Carpenter <error27@gmail.com> - -We assign "urb->hcpriv = qh;" a few lines down. I'm pretty sure we -want it "urb->hcpriv" to be NULL not a freed value. - -Signed-off-by: Dan Carpenter <error27@gmail.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_host.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/usb/musb/musb_host.c -+++ b/drivers/usb/musb/musb_host.c -@@ -2042,6 +2042,7 @@ static int musb_urb_enqueue( - * odd, rare, error prone, but legal. - */ - kfree(qh); -+ qh = NULL; - ret = 0; - } else - ret = musb_schedule(musb, qh, diff --git a/usb.current/musb-save-and-restore-missing-bus-control-register.patch b/usb.current/musb-save-and-restore-missing-bus-control-register.patch deleted file mode 100644 index 3f9f8a6625e0f3..00000000000000 --- a/usb.current/musb-save-and-restore-missing-bus-control-register.patch +++ /dev/null @@ -1,51 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:04:12 2010 -From: Ajay Kumar Gupta <ajay.gupta@ti.com> -Date: Thu, 25 Mar 2010 13:14:26 +0200 -Subject: musb: save and restore missing bus control register -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-5-git-send-email-felipe.balbi@nokia.com> - - -From: Ajay Kumar Gupta <ajay.gupta@ti.com> - -Added the missing BUS_CONTROL register in musb -save/restore routines. - -Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 2 ++ - drivers/usb/musb/musb_core.h | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -2176,6 +2176,7 @@ void musb_save_context(struct musb *musb - if (is_host_enabled(musb)) { - musb_context.frame = musb_readw(musb_base, MUSB_FRAME); - musb_context.testmode = musb_readb(musb_base, MUSB_TESTMODE); -+ musb_context.busctl = musb_read_ulpi_buscontrol(musb->mregs); - } - musb_context.power = musb_readb(musb_base, MUSB_POWER); - musb_context.intrtxe = musb_readw(musb_base, MUSB_INTRTXE); -@@ -2247,6 +2248,7 @@ void musb_restore_context(struct musb *m - if (is_host_enabled(musb)) { - musb_writew(musb_base, MUSB_FRAME, musb_context.frame); - musb_writeb(musb_base, MUSB_TESTMODE, musb_context.testmode); -+ musb_write_ulpi_buscontrol(musb->mregs, musb_context.busctl); - } - musb_writeb(musb_base, MUSB_POWER, musb_context.power); - musb_writew(musb_base, MUSB_INTRTXE, musb_context.intrtxe); ---- a/drivers/usb/musb/musb_core.h -+++ b/drivers/usb/musb/musb_core.h -@@ -478,7 +478,7 @@ struct musb_context_registers { - u16 frame; - u8 index, testmode; - -- u8 devctl, misc; -+ u8 devctl, busctl, misc; - - struct musb_csr_regs index_regs[MUSB_C_NUM_EPS]; - }; diff --git a/usb.current/musb_core-don-t-call-musb_platform_exit-twice.patch b/usb.current/musb_core-don-t-call-musb_platform_exit-twice.patch deleted file mode 100644 index dfd8b2379eda0e..00000000000000 --- a/usb.current/musb_core-don-t-call-musb_platform_exit-twice.patch +++ /dev/null @@ -1,94 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:06:04 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:32 +0200 -Subject: musb_core: don't call musb_platform_exit() twice -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-11-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -musb_platform_exit() is called twice from musb_init_controller() iff controller -initialization fails. Move the call (and the DevCtl register writes surrounding -it) from musb_free() to musb_remove(). - -Fix mispalced and now incorrect 'goto's in musb_init_controller(). - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -1851,10 +1851,6 @@ static void musb_free(struct musb *musb) - put_device(musb->xceiv->dev); - #endif - -- musb_writeb(musb->mregs, MUSB_DEVCTL, 0); -- musb_platform_exit(musb); -- musb_writeb(musb->mregs, MUSB_DEVCTL, 0); -- - #ifdef CONFIG_USB_MUSB_HDRC_HCD - usb_put_hcd(musb_to_hcd(musb)); - #else -@@ -2032,8 +2028,6 @@ bad_config: - musb->xceiv->state = OTG_STATE_A_IDLE; - - status = usb_add_hcd(musb_to_hcd(musb), -1, 0); -- if (status) -- goto fail; - - DBG(1, "%s mode, status %d, devctl %02x %c\n", - "HOST", status, -@@ -2048,8 +2042,6 @@ bad_config: - musb->xceiv->state = OTG_STATE_B_IDLE; - - status = musb_gadget_setup(musb); -- if (status) -- goto fail; - - DBG(1, "%s mode, status %d, dev%02x\n", - is_otg_enabled(musb) ? "OTG" : "PERIPHERAL", -@@ -2057,12 +2049,14 @@ bad_config: - musb_readb(musb->mregs, MUSB_DEVCTL)); - - } -+ if (status < 0) -+ goto fail2; - - #ifdef CONFIG_SYSFS - status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group); --#endif - if (status) - goto fail2; -+#endif - - dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n", - ({char *s; -@@ -2125,7 +2119,6 @@ static int __init musb_probe(struct platform_device *pdev) - /* clobbered by use_dma=n */ - orig_dma_mask = dev->dma_mask; - #endif -- - status = musb_init_controller(dev, irq, base); - if (status < 0) - iounmap(base); -@@ -2148,6 +2141,10 @@ static int __exit musb_remove(struct platform_device *pdev) - if (musb->board_mode == MUSB_HOST) - usb_remove_hcd(musb_to_hcd(musb)); - #endif -+ musb_writeb(musb->mregs, MUSB_DEVCTL, 0); -+ musb_platform_exit(musb); -+ musb_writeb(musb->mregs, MUSB_DEVCTL, 0); -+ - musb_free(musb); - iounmap(ctrl_base); - device_init_wakeup(&pdev->dev, 0); --- -1.7.0.rc0.33.g7c3932 - --- -To unsubscribe from this list: send the line "unsubscribe linux-usb" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo- - diff --git a/usb.current/musb_core-don-t-prevent-disabling-clock-on-driver-unload.patch b/usb.current/musb_core-don-t-prevent-disabling-clock-on-driver-unload.patch deleted file mode 100644 index 0d2acdcf7292b3..00000000000000 --- a/usb.current/musb_core-don-t-prevent-disabling-clock-on-driver-unload.patch +++ /dev/null @@ -1,35 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:05:10 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:29 +0200 -Subject: musb_core: don't prevent disabling clock on driver unload -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-8-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Resetting 'musb->clock' to NULL in musb_shutdown() prevents musb_platform_exit() -from properly disabling the clock when unloading the driver -- don't do it. - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -965,10 +965,8 @@ static void musb_shutdown(struct platfor - spin_lock_irqsave(&musb->lock, flags); - musb_platform_disable(musb); - musb_generic_disable(musb); -- if (musb->clock) { -+ if (musb->clock) - clk_put(musb->clock); -- musb->clock = NULL; -- } - spin_unlock_irqrestore(&musb->lock, flags); - - /* FIXME power down */ diff --git a/usb.current/musb_core-don-t-touch-musb-clock-in-musb_free.patch b/usb.current/musb_core-don-t-touch-musb-clock-in-musb_free.patch deleted file mode 100644 index 2de5c5d244c9c2..00000000000000 --- a/usb.current/musb_core-don-t-touch-musb-clock-in-musb_free.patch +++ /dev/null @@ -1,37 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:04:50 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:28 +0200 -Subject: musb_core: don't touch 'musb->clock' in musb_free() -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-7-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -Remove duplicate/unbalanced calls to clk_disable()/clk_put() in musb_free(): - -- clk_disable() is called by musb_platform_exit() just prior to this call; -- clk_put() is called by the callers of musb_free() prior to calling it... - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 5 ----- - 1 file changed, 5 deletions(-) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -1857,11 +1857,6 @@ static void musb_free(struct musb *musb) - musb_platform_exit(musb); - musb_writeb(musb->mregs, MUSB_DEVCTL, 0); - -- if (musb->clock) { -- clk_disable(musb->clock); -- clk_put(musb->clock); -- } -- - #ifdef CONFIG_USB_MUSB_HDRC_HCD - usb_put_hcd(musb_to_hcd(musb)); - #else diff --git a/usb.current/musb_core-fix-musb_init_controller-error-cleanup-path.patch b/usb.current/musb_core-fix-musb_init_controller-error-cleanup-path.patch deleted file mode 100644 index 4e9bb694ec729e..00000000000000 --- a/usb.current/musb_core-fix-musb_init_controller-error-cleanup-path.patch +++ /dev/null @@ -1,151 +0,0 @@ -From felipe.balbi@nokia.com Fri Apr 23 14:08:25 2010 -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Date: Thu, 25 Mar 2010 13:14:33 +0200 -Subject: musb_core: fix musb_init_controller() error cleanup path -To: Greg KH <greg@kroah.com> -Message-ID: <1269515673-27980-12-git-send-email-felipe.balbi@nokia.com> - - -From: Sergei Shtylyov <sshtylyov@ru.mvista.com> - -This function forgets to call usb_remove_hcd() or musb_gadget_cleanup() iff -sysfs_create_group() fails. - -[ felipe.balbi@nokia.com : review the entire error path - not only when we fail hcd or gadget ] - -Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> -Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/musb/musb_core.c | 51 ++++++++++++++++++++++++++++--------------- - 1 file changed, 34 insertions(+), 17 deletions(-) - ---- a/drivers/usb/musb/musb_core.c -+++ b/drivers/usb/musb/musb_core.c -@@ -1878,8 +1878,10 @@ musb_init_controller(struct device *dev, - */ - if (!plat) { - dev_dbg(dev, "no platform_data?\n"); -- return -ENODEV; -+ status = -ENODEV; -+ goto fail0; - } -+ - switch (plat->mode) { - case MUSB_HOST: - #ifdef CONFIG_USB_MUSB_HDRC_HCD -@@ -1901,13 +1903,16 @@ bad_config: - #endif - default: - dev_err(dev, "incompatible Kconfig role setting\n"); -- return -EINVAL; -+ status = -EINVAL; -+ goto fail0; - } - - /* allocate */ - musb = allocate_instance(dev, plat->config, ctrl); -- if (!musb) -- return -ENOMEM; -+ if (!musb) { -+ status = -ENOMEM; -+ goto fail0; -+ } - - spin_lock_init(&musb->lock); - musb->board_mode = plat->mode; -@@ -1925,7 +1930,7 @@ bad_config: - if (IS_ERR(musb->clock)) { - status = PTR_ERR(musb->clock); - musb->clock = NULL; -- goto fail; -+ goto fail1; - } - } - -@@ -1944,12 +1949,12 @@ bad_config: - */ - musb->isr = generic_interrupt; - status = musb_platform_init(musb); -- - if (status < 0) -- goto fail; -+ goto fail2; -+ - if (!musb->isr) { - status = -ENODEV; -- goto fail2; -+ goto fail3; - } - - #ifndef CONFIG_MUSB_PIO_ONLY -@@ -1975,7 +1980,7 @@ bad_config: - ? MUSB_CONTROLLER_MHDRC - : MUSB_CONTROLLER_HDRC, musb); - if (status < 0) -- goto fail2; -+ goto fail3; - - #ifdef CONFIG_USB_MUSB_OTG - setup_timer(&musb->otg_timer, musb_otg_timer_func, (unsigned long) musb); -@@ -1988,7 +1993,7 @@ bad_config: - if (request_irq(nIrq, musb->isr, 0, dev_name(dev), musb)) { - dev_err(dev, "request_irq %d failed!\n", nIrq); - status = -ENODEV; -- goto fail2; -+ goto fail3; - } - musb->nIrq = nIrq; - /* FIXME this handles wakeup irqs wrong */ -@@ -2050,12 +2055,12 @@ bad_config: - - } - if (status < 0) -- goto fail2; -+ goto fail3; - - #ifdef CONFIG_SYSFS - status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group); - if (status) -- goto fail2; -+ goto fail4; - #endif - - dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n", -@@ -2072,17 +2077,29 @@ bad_config: - - return 0; - --fail2: -+fail4: -+ if (!is_otg_enabled(musb) && is_host_enabled(musb)) -+ usb_remove_hcd(musb_to_hcd(musb)); -+ else -+ musb_gadget_cleanup(musb); -+ -+fail3: -+ if (musb->irq_wake) -+ device_init_wakeup(dev, 0); - musb_platform_exit(musb); --fail: -- dev_err(musb->controller, -- "musb_init_controller failed with status %d\n", status); - -+fail2: - if (musb->clock) - clk_put(musb->clock); -- device_init_wakeup(dev, 0); -+ -+fail1: -+ dev_err(musb->controller, -+ "musb_init_controller failed with status %d\n", status); -+ - musb_free(musb); - -+fail0: -+ - return status; - - } diff --git a/usb.current/usb-cdc-acm-add-another-device-quirk.patch b/usb.current/usb-cdc-acm-add-another-device-quirk.patch deleted file mode 100644 index 0cb12226e16270..00000000000000 --- a/usb.current/usb-cdc-acm-add-another-device-quirk.patch +++ /dev/null @@ -1,28 +0,0 @@ -From nelson@crynwr.com Mon Apr 26 13:58:57 2010 -From: Russ Nelson <nelson@crynwr.com> -Date: Wed, 21 Apr 2010 23:07:03 -0400 -Subject: USB: cdc-acm: add another device quirk -To: Greg KH <greg@kroah.com> -Message-ID: <19407.48471.369227.783932@desk.crynwr.com> - -The Maretron USB100 needs this quirk in order to work properly. - -Signed-off-by: Russ Nelson <nelson@crynwr.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/class/cdc-acm.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/usb/class/cdc-acm.c -+++ b/drivers/usb/class/cdc-acm.c -@@ -1542,6 +1542,9 @@ static const struct usb_device_id acm_id - { USB_DEVICE(0x1bbb, 0x0003), /* Alcatel OT-I650 */ - .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ - }, -+ { USB_DEVICE(0x1576, 0x03b1), /* Maretron USB100 */ -+ .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ -+ }, - - /* Nokia S60 phones expose two ACM channels. The first is - * a modem and is picked up by the standard AT-command diff --git a/usb.current/usb-don-t-choose-configs-with-no-interfaces.patch b/usb.current/usb-don-t-choose-configs-with-no-interfaces.patch deleted file mode 100644 index e0c4954e2a3d62..00000000000000 --- a/usb.current/usb-don-t-choose-configs-with-no-interfaces.patch +++ /dev/null @@ -1,36 +0,0 @@ -From stern@rowland.harvard.edu Mon Apr 26 14:00:33 2010 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 Apr 2010 10:40:59 -0400 (EDT) -Subject: USB: don't choose configs with no interfaces -To: Greg KH <greg@kroah.com> -Cc: Andrew Victor <avictor.za@gmail.com> -Message-ID: <Pine.LNX.4.44L0.1004201037590.1837-100000@iolanthe.rowland.org> - - -This patch (as1372) fixes a bug in the routine that chooses the -default configuration to install when a new USB device is detected. -The algorithm is supposed to look for a config whose first interface -is for a non-vendor-specific class. But the way it's currently -written, it will also accept a config with no interfaces at all, which -is not very useful. (Believe it or not, such things do exist.) - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Tested-by: Andrew Victor <avictor.za@gmail.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/generic.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/core/generic.c -+++ b/drivers/usb/core/generic.c -@@ -120,7 +120,7 @@ int usb_choose_configuration(struct usb_ - * than a vendor-specific driver. */ - else if (udev->descriptor.bDeviceClass != - USB_CLASS_VENDOR_SPEC && -- (!desc || desc->bInterfaceClass != -+ (desc && desc->bInterfaceClass != - USB_CLASS_VENDOR_SPEC)) { - best = c; - break; diff --git a/usb.current/usb-fix-build-on-omaps-if-config_pm_runtime-is-not-set.patch b/usb.current/usb-fix-build-on-omaps-if-config_pm_runtime-is-not-set.patch deleted file mode 100644 index 308ef6a2330e25..00000000000000 --- a/usb.current/usb-fix-build-on-omaps-if-config_pm_runtime-is-not-set.patch +++ /dev/null @@ -1,46 +0,0 @@ -From gadiyar@ti.com Wed Apr 28 12:36:54 2010 -From: Anand Gadiyar <gadiyar@ti.com> -Date: Mon, 29 Mar 2010 16:54:51 +0530 -Subject: USB: fix build on OMAPs if CONFIG_PM_RUNTIME is not set -To: linux-usb@vger.kernel.org, Greg KH <gregkh@suse.de> -Cc: Anand Gadiyar <gadiyar@ti.com>, Michal Marek <mmarek@suse.cz>, Tony Lindgren <tony@atomide.com>, Alan Stern <stern@rowland.harvard.edu> -Message-ID: <1269861891-25841-1-git-send-email-gadiyar@ti.com> - - -With patch as1329 (USB: convert to the runtime PM framework), -we make USB_SUSPEND depend on PM_RUNTIME instead of CONFIG_PM. - -Also, CONFIG_USB_OTG selects CONFIG_USB_SUSPEND. - -If PM_RUNTIME is not enabled, and we try to enable USB_OTG, -we will end up with CONFIG_USB_SUSPEND selected. This is -due to a known bug with the select statement. - -This makes the build break on various OMAP configs (which -have CONFIG_USB_OTG set by default, but do not yet have -CONFIG_PM_RUNTIME enabled). - -Avoid this by changing the logic for CONFIG_USB_OTG from -"select USB_SUSPEND" to "depends on USB_SUSPEND" - -Signed-off-by: Anand Gadiyar <gadiyar@ti.com> -CC: Michal Marek <mmarek@suse.cz> -CC: Tony Lindgren <tony@atomide.com> -CC: Alan Stern <stern@rowland.harvard.edu> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/core/Kconfig -+++ b/drivers/usb/core/Kconfig -@@ -109,7 +109,7 @@ config USB_SUSPEND - config USB_OTG - bool - depends on USB && EXPERIMENTAL -- select USB_SUSPEND -+ depends on USB_SUSPEND - default n - - diff --git a/usb.current/usb-fix-testing-the-wrong-variable-in-fs_create_by_name.patch b/usb.current/usb-fix-testing-the-wrong-variable-in-fs_create_by_name.patch deleted file mode 100644 index 85cc54bdaf19b8..00000000000000 --- a/usb.current/usb-fix-testing-the-wrong-variable-in-fs_create_by_name.patch +++ /dev/null @@ -1,40 +0,0 @@ -From error27@gmail.com Mon Apr 26 13:58:24 2010 -From: Dan Carpenter <error27@gmail.com> -Date: Thu, 22 Apr 2010 12:00:52 +0200 -Subject: USB: fix testing the wrong variable in fs_create_by_name() -To: Greg Kroah-Hartman <gregkh@suse.de> -Cc: Alessio Igor Bogani <abogani@texware.it>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org -Message-ID: <20100422100052.GT29647@bicker> -Content-Disposition: inline - - -There is a typo here. We should be testing "*dentry" which was just -assigned instead of "dentry". This could result in dereferencing an -ERR_PTR inside either usbfs_mkdir() or usbfs_create(). - -Signed-off-by: Dan Carpenter <error27@gmail.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/inode.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/usb/core/inode.c -+++ b/drivers/usb/core/inode.c -@@ -515,13 +515,13 @@ static int fs_create_by_name (const char - *dentry = NULL; - mutex_lock(&parent->d_inode->i_mutex); - *dentry = lookup_one_len(name, parent, strlen(name)); -- if (!IS_ERR(dentry)) { -+ if (!IS_ERR(*dentry)) { - if ((mode & S_IFMT) == S_IFDIR) - error = usbfs_mkdir (parent->d_inode, *dentry, mode); - else - error = usbfs_create (parent->d_inode, *dentry, mode); - } else -- error = PTR_ERR(dentry); -+ error = PTR_ERR(*dentry); - mutex_unlock(&parent->d_inode->i_mutex); - - return error; diff --git a/usb.current/usb-fix-tusb6010-for-dma-api.patch b/usb.current/usb-fix-tusb6010-for-dma-api.patch deleted file mode 100644 index a9a7f96660108a..00000000000000 --- a/usb.current/usb-fix-tusb6010-for-dma-api.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 0eb7eef01c52f25a7d22c9612ccbd89368941b95 Mon Sep 17 00:00:00 2001 -From: Tony Lindgren <tony@atomide.com> -Date: Fri, 23 Apr 2010 17:41:15 -0700 -Subject: usb: Fix tusb6010 for DMA API - -Commit 18eabe2347ae7a11b3db768695913724166dfb0e introduced -DMA buffer ownership. Fix tusb6010 accordingly. To compile, -also dummy musb_platform_save and restore functions need to -be added. - -Also change the order of musb_read_fifo() to happen after -dma_cache_maint to have the DMA operations completed before -moving the remaining unaligned bytes with PIO. The DMA -access and PIO touch different areas of the FIFO, so this -change only makes the code a bit easier to follow. - -Tested on n810 and g_ether with variable size ping test. -The test seems to fail for some ping sizes, but that seems to -be a different problem. - -Signed-off-by: Tony Lindgren <tony@atomide.com> -Acked-by: Felipe Balbi <felipe.balbi@nokia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- a/drivers/usb/musb/tusb6010.c -+++ b/drivers/usb/musb/tusb6010.c -@@ -29,6 +29,19 @@ static void tusb_source_power(struct musb *musb, int is_on); - #define TUSB_REV_MAJOR(reg_val) ((reg_val >> 4) & 0xf) - #define TUSB_REV_MINOR(reg_val) (reg_val & 0xf) - -+#ifdef CONFIG_PM -+/* REVISIT: These should be only needed if somebody implements off idle */ -+void musb_platform_save_context(struct musb *musb, -+ struct musb_context_registers *musb_context) -+{ -+} -+ -+void musb_platform_restore_context(struct musb *musb, -+ struct musb_context_registers *musb_context) -+{ -+} -+#endif -+ - /* - * Checks the revision. We need to use the DMA register as 3.0 does not - * have correct versions for TUSB_PRCM_REV or TUSB_INT_CTRL_REV. -diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c -index 5afa070..c061a88 100644 ---- a/drivers/usb/musb/tusb6010_omap.c -+++ b/drivers/usb/musb/tusb6010_omap.c -@@ -39,7 +39,7 @@ struct tusb_omap_dma_ch { - - struct tusb_omap_dma *tusb_dma; - -- void __iomem *dma_addr; -+ dma_addr_t dma_addr; - - u32 len; - u16 packet_sz; -@@ -126,6 +126,7 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data) - struct tusb_omap_dma_ch *chdat = to_chdat(channel); - struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; - struct musb *musb = chdat->musb; -+ struct device *dev = musb->controller; - struct musb_hw_ep *hw_ep = chdat->hw_ep; - void __iomem *ep_conf = hw_ep->conf; - void __iomem *mbase = musb->mregs; -@@ -173,13 +174,15 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data) - DBG(3, "Using PIO for remaining %lu bytes\n", pio); - buf = phys_to_virt((u32)chdat->dma_addr) + chdat->transfer_len; - if (chdat->tx) { -- dma_cache_maint(phys_to_virt((u32)chdat->dma_addr), -- chdat->transfer_len, DMA_TO_DEVICE); -+ dma_unmap_single(dev, chdat->dma_addr, -+ chdat->transfer_len, -+ DMA_TO_DEVICE); - musb_write_fifo(hw_ep, pio, buf); - } else { -+ dma_unmap_single(dev, chdat->dma_addr, -+ chdat->transfer_len, -+ DMA_FROM_DEVICE); - musb_read_fifo(hw_ep, pio, buf); -- dma_cache_maint(phys_to_virt((u32)chdat->dma_addr), -- chdat->transfer_len, DMA_FROM_DEVICE); - } - channel->actual_len += pio; - } -@@ -224,6 +227,7 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz, - struct tusb_omap_dma_ch *chdat = to_chdat(channel); - struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; - struct musb *musb = chdat->musb; -+ struct device *dev = musb->controller; - struct musb_hw_ep *hw_ep = chdat->hw_ep; - void __iomem *mbase = musb->mregs; - void __iomem *ep_conf = hw_ep->conf; -@@ -299,14 +303,16 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz, - chdat->packet_sz = packet_sz; - chdat->len = len; - channel->actual_len = 0; -- chdat->dma_addr = (void __iomem *)dma_addr; -+ chdat->dma_addr = dma_addr; - channel->status = MUSB_DMA_STATUS_BUSY; - - /* Since we're recycling dma areas, we need to clean or invalidate */ - if (chdat->tx) -- dma_cache_maint(phys_to_virt(dma_addr), len, DMA_TO_DEVICE); -+ dma_map_single(dev, phys_to_virt(dma_addr), len, -+ DMA_TO_DEVICE); - else -- dma_cache_maint(phys_to_virt(dma_addr), len, DMA_FROM_DEVICE); -+ dma_map_single(dev, phys_to_virt(dma_addr), len, -+ DMA_FROM_DEVICE); - - /* Use 16-bit transfer if dma_addr is not 32-bit aligned */ - if ((dma_addr & 0x3) == 0) { diff --git a/usb.current/usb-gadget-s3c-hsotg-add-missing-unlock.patch b/usb.current/usb-gadget-s3c-hsotg-add-missing-unlock.patch deleted file mode 100644 index 5749cba924563f..00000000000000 --- a/usb.current/usb-gadget-s3c-hsotg-add-missing-unlock.patch +++ /dev/null @@ -1,67 +0,0 @@ -From julia@diku.dk Wed Apr 28 12:38:12 2010 -From: Julia Lawall <julia@diku.dk> -Date: Mon, 29 Mar 2010 17:36:44 +0200 (CEST) -Subject: USB: gadget: s3c-hsotg: Add missing unlock -To: David Brownell <dbrownell@users.sourceforge.net>, Greg Kroah-Hartman <gregkh@suse.de>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org -Message-ID: <Pine.LNX.4.64.1003291736250.21896@ask.diku.dk> - - -From: Julia Lawall <julia@diku.dk> - -In an error handling case the lock is not unlocked. The return is -converted to a goto, to share the unlock at the end of the function. - -A simplified version of the semantic patch that finds this problem is as -follows: (http://coccinelle.lip6.fr/) - -// <smpl> -@r exists@ -expression E1; -identifier f; -@@ - -f (...) { <+... -* spin_lock_irqsave (E1,...); -... when != E1 -* return ...; -...+> } -// </smpl> - -Signed-off-by: Julia Lawall <julia@diku.dk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/gadget/s3c-hsotg.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - ---- a/drivers/usb/gadget/s3c-hsotg.c -+++ b/drivers/usb/gadget/s3c-hsotg.c -@@ -2145,6 +2145,7 @@ static int s3c_hsotg_ep_enable(struct us - u32 epctrl; - u32 mps; - int dir_in; -+ int ret = 0; - - dev_dbg(hsotg->dev, - "%s: ep %s: a 0x%02x, attr 0x%02x, mps 0x%04x, intr %d\n", -@@ -2196,7 +2197,8 @@ static int s3c_hsotg_ep_enable(struct us - switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { - case USB_ENDPOINT_XFER_ISOC: - dev_err(hsotg->dev, "no current ISOC support\n"); -- return -EINVAL; -+ ret = -EINVAL; -+ goto out; - - case USB_ENDPOINT_XFER_BULK: - epctrl |= S3C_DxEPCTL_EPType_Bulk; -@@ -2235,8 +2237,9 @@ static int s3c_hsotg_ep_enable(struct us - /* enable the endpoint interrupt */ - s3c_hsotg_ctrl_epint(hsotg, index, dir_in, 1); - -+out: - spin_unlock_irqrestore(&hs_ep->lock, flags); -- return 0; -+ return ret; - } - - static int s3c_hsotg_ep_disable(struct usb_ep *ep) diff --git a/usb.current/usb-ohci-at91-fix-power-management-hanging.patch b/usb.current/usb-ohci-at91-fix-power-management-hanging.patch deleted file mode 100644 index 0d2633c48c5f61..00000000000000 --- a/usb.current/usb-ohci-at91-fix-power-management-hanging.patch +++ /dev/null @@ -1,36 +0,0 @@ -From nicolas.ferre@atmel.com Thu Apr 29 16:28:30 2010 -From: Nicolas Ferre <nicolas.ferre@atmel.com> -Date: Wed, 28 Apr 2010 13:45:40 +0200 -Subject: USB: ohci-at91: fix power management hanging -To: linux-usb@vger.kernel.org, avictor.za@gmail.com, david-b@pacbell.net -Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Patrice Vilchez <patrice.vilchez@atmel.com> -Message-ID: <1272455140-32686-1-git-send-email-nicolas.ferre@atmel.com> - - -From: Patrice Vilchez <patrice.vilchez@atmel.com> - -A hanging has been detected in ohci-at91 while going in suspend to ram. This is -due to asynchronous operations between ohci reset and ohci clocks shutdown. -This patch adds the reading of the control register between the reset of the -ohci and clocks stop. This "flush the writes" idea was taken from ohci-hcd.c -file (ohci_shutdown() function). - -Signed-off-by: Patrice Vilchez <patrice.vilchez@atmel.com> -Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ohci-at91.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/host/ohci-at91.c -+++ b/drivers/usb/host/ohci-at91.c -@@ -331,6 +331,8 @@ ohci_hcd_at91_drv_suspend(struct platfor - */ - if (at91_suspend_entering_slow_clock()) { - ohci_usb_reset (ohci); -+ /* flush the writes */ -+ (void) ohci_readl (ohci, &ohci->regs->control); - at91_stop_clock(); - } - diff --git a/usb.current/usb-ohci-don-t-look-at-the-root-hub-to-get-the-number-of-ports.patch b/usb.current/usb-ohci-don-t-look-at-the-root-hub-to-get-the-number-of-ports.patch deleted file mode 100644 index 0af05e3523d070..00000000000000 --- a/usb.current/usb-ohci-don-t-look-at-the-root-hub-to-get-the-number-of-ports.patch +++ /dev/null @@ -1,33 +0,0 @@ -From stern@rowland.harvard.edu Mon Apr 26 14:02:12 2010 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Tue, 20 Apr 2010 10:37:57 -0400 (EDT) -Subject: USB: OHCI: don't look at the root hub to get the number of ports -To: Greg KH <greg@kroah.com> -Message-ID: <Pine.LNX.4.44L0.1004201036020.1837-100000@iolanthe.rowland.org> - - -This patch (as1371) fixes a small bug in ohci-hcd. The HCD already -knows how many ports the controller has; there's no need to go looking -at the root hub's usb_device structure to find out. Especially since -the root hub's maxchild value is set correctly only while the root hub -is bound to the hub driver. - -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/ohci-hub.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/host/ohci-hub.c -+++ b/drivers/usb/host/ohci-hub.c -@@ -697,7 +697,7 @@ static int ohci_hub_control ( - u16 wLength - ) { - struct ohci_hcd *ohci = hcd_to_ohci (hcd); -- int ports = hcd_to_bus (hcd)->root_hub->maxchild; -+ int ports = ohci->num_ports; - u32 temp; - int retval = 0; - diff --git a/usb.current/usb-option-add-id-for-zte-mf-330.patch b/usb.current/usb-option-add-id-for-zte-mf-330.patch deleted file mode 100644 index 8e47ade94a0286..00000000000000 --- a/usb.current/usb-option-add-id-for-zte-mf-330.patch +++ /dev/null @@ -1,40 +0,0 @@ -From linux@dominikbrodowski.net Mon Apr 26 14:04:36 2010 -From: Dominik Brodowski <linux@dominikbrodowski.net> -Date: Wed, 14 Apr 2010 21:36:42 +0200 -Subject: USB: option: add ID for ZTE MF 330 -To: Paweł Drobek <pawel.drobek@gmail.com>, Matthias Urlichs <smurf@smurf.noris.de>, Greg Kroah-Hartman <gregkh@suse.de> -Message-ID: <20100414193642.GL30734@comet.dominikbrodowski.net> - - -Based on the information provided for by Paweł Drobek, add -a second vendor ID and the correct product ID for ZTE MF 330. - -Reported-by: Paweł Drobek <pawel.drobek@gmail.com> -Signed-off: Dominik Brodowski <linux@dominikbrodowski.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -306,6 +306,10 @@ static int option_resume(struct usb_ser - #define ZTE_PRODUCT_AC8710 0xfff1 - #define ZTE_PRODUCT_AC2726 0xfff5 - -+/* ZTE PRODUCTS -- alternate vendor ID */ -+#define ZTE_VENDOR_ID2 0x1d6b -+#define ZTE_PRODUCT_MF_330 0x0002 -+ - #define BENQ_VENDOR_ID 0x04a5 - #define BENQ_PRODUCT_H10 0x4068 - -@@ -679,6 +683,7 @@ static const struct usb_device_id option - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) }, - { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, - { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, - { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */ diff --git a/usb.current/usb-oxu210hp-release-spinlock-on-error-path.patch b/usb.current/usb-oxu210hp-release-spinlock-on-error-path.patch deleted file mode 100644 index 59c1f2e5b4620a..00000000000000 --- a/usb.current/usb-oxu210hp-release-spinlock-on-error-path.patch +++ /dev/null @@ -1,38 +0,0 @@ -From error27@gmail.com Wed Apr 28 12:35:39 2010 -From: Dan Carpenter <error27@gmail.com> -Date: Mon, 29 Mar 2010 12:01:27 +0300 -Subject: USB: oxu210hp: release spinlock on error path -To: Greg Kroah-Hartman <gregkh@suse.de> -Cc: Anand Gadiyar <gadiyar@ti.com>, David Brownell <dbrownell@users.sourceforge.net>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org -Message-ID: <20100329090127.GE5069@bicker> -Content-Disposition: inline - - -Smatch complained about this missing spinlock. - -Signed-off-by: Dan Carpenter <error27@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/oxu210hp-hcd.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/host/oxu210hp-hcd.c -+++ b/drivers/usb/host/oxu210hp-hcd.c -@@ -660,13 +660,13 @@ static struct ehci_qh *oxu_qh_alloc(stru - if (qh->dummy == NULL) { - oxu_dbg(oxu, "no dummy td\n"); - oxu->qh_used[i] = 0; -- -- return NULL; -+ qh = NULL; -+ goto unlock; - } - - oxu->qh_used[i] = 1; - } -- -+unlock: - spin_unlock(&oxu->mem_lock); - - return qh; diff --git a/usb.current/usb-rename-usb_buffer_alloc-and-usb_buffer_free.patch b/usb.current/usb-rename-usb_buffer_alloc-and-usb_buffer_free.patch deleted file mode 100644 index eca5ff1e24e410..00000000000000 --- a/usb.current/usb-rename-usb_buffer_alloc-and-usb_buffer_free.patch +++ /dev/null @@ -1,121 +0,0 @@ -From foo@baz Thu Apr 29 15:09:23 PDT 2010 -Date: Mon, 12 Apr 2010 13:17:25 +0200 -To: Greg KH <greg@kroah.com> -From: Daniel Mack <daniel@caiaq.de> -Subject: USB: rename usb_buffer_alloc() and usb_buffer_free() - -For more clearance what the functions actually do, - - usb_buffer_alloc() is renamed to usb_alloc_coherent() - usb_buffer_free() is renamed to usb_free_coherent() - -They should only be used in code which really needs DMA coherency. - -[added compatibility macros so we can convert things easier - gregkh] - -Signed-off-by: Daniel Mack <daniel@caiaq.de> -Cc: Alan Stern <stern@rowland.harvard.edu> -Cc: Pedro Ribeiro <pedrib@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/core/usb.c | 20 ++++++++++---------- - include/linux/usb.h | 18 +++++++++++++++--- - 2 files changed, 25 insertions(+), 13 deletions(-) - ---- a/drivers/usb/core/usb.c -+++ b/drivers/usb/core/usb.c -@@ -718,7 +718,7 @@ int __usb_get_extra_descriptor(char *buf - EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor); - - /** -- * usb_buffer_alloc - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP -+ * usb_alloc_coherent - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP - * @dev: device the buffer will be used with - * @size: requested buffer size - * @mem_flags: affect whether allocation may block -@@ -737,30 +737,30 @@ EXPORT_SYMBOL_GPL(__usb_get_extra_descri - * architectures where CPU caches are not DMA-coherent. On systems without - * bus-snooping caches, these buffers are uncached. - * -- * When the buffer is no longer used, free it with usb_buffer_free(). -+ * When the buffer is no longer used, free it with usb_free_coherent(). - */ --void *usb_buffer_alloc(struct usb_device *dev, size_t size, gfp_t mem_flags, -- dma_addr_t *dma) -+void *usb_alloc_coherent(struct usb_device *dev, size_t size, gfp_t mem_flags, -+ dma_addr_t *dma) - { - if (!dev || !dev->bus) - return NULL; - return hcd_buffer_alloc(dev->bus, size, mem_flags, dma); - } --EXPORT_SYMBOL_GPL(usb_buffer_alloc); -+EXPORT_SYMBOL_GPL(usb_alloc_coherent); - - /** -- * usb_buffer_free - free memory allocated with usb_buffer_alloc() -+ * usb_free_coherent - free memory allocated with usb_alloc_coherent() - * @dev: device the buffer was used with - * @size: requested buffer size - * @addr: CPU address of buffer - * @dma: DMA address of buffer - * - * This reclaims an I/O buffer, letting it be reused. The memory must have -- * been allocated using usb_buffer_alloc(), and the parameters must match -+ * been allocated using usb_alloc_coherent(), and the parameters must match - * those provided in that allocation request. - */ --void usb_buffer_free(struct usb_device *dev, size_t size, void *addr, -- dma_addr_t dma) -+void usb_free_coherent(struct usb_device *dev, size_t size, void *addr, -+ dma_addr_t dma) - { - if (!dev || !dev->bus) - return; -@@ -768,7 +768,7 @@ void usb_buffer_free(struct usb_device * - return; - hcd_buffer_free(dev->bus, size, addr, dma); - } --EXPORT_SYMBOL_GPL(usb_buffer_free); -+EXPORT_SYMBOL_GPL(usb_free_coherent); - - /** - * usb_buffer_map - create DMA mapping(s) for an urb ---- a/include/linux/usb.h -+++ b/include/linux/usb.h -@@ -1085,7 +1085,7 @@ typedef void (*usb_complete_t)(struct ur - * Alternatively, drivers may pass the URB_NO_xxx_DMA_MAP transfer flags, - * which tell the host controller driver that no such mapping is needed since - * the device driver is DMA-aware. For example, a device driver might -- * allocate a DMA buffer with usb_buffer_alloc() or call usb_buffer_map(). -+ * allocate a DMA buffer with usb_alloc_coherent() or call usb_buffer_map(). - * When these transfer flags are provided, host controller drivers will - * attempt to use the dma addresses found in the transfer_dma and/or - * setup_dma fields rather than determining a dma address themselves. -@@ -1366,11 +1366,23 @@ static inline int usb_urb_dir_out(struct - return (urb->transfer_flags & URB_DIR_MASK) == URB_DIR_OUT; - } - --void *usb_buffer_alloc(struct usb_device *dev, size_t size, -+void *usb_alloc_coherent(struct usb_device *dev, size_t size, - gfp_t mem_flags, dma_addr_t *dma); --void usb_buffer_free(struct usb_device *dev, size_t size, -+void usb_free_coherent(struct usb_device *dev, size_t size, - void *addr, dma_addr_t dma); - -+/* Compatible macros while we switch over */ -+static inline void *usb_buffer_alloc(struct usb_device *dev, size_t size, -+ gfp_t mem_flags, dma_addr_t *dma) -+{ -+ return usb_alloc_coherent(dev, size, mem_flags, dma); -+} -+static inline void usb_buffer_free(struct usb_device *dev, size_t size, -+ void *addr, dma_addr_t dma) -+{ -+ return usb_free_coherent(dev, size, addr, dma); -+} -+ - #if 0 - struct urb *usb_buffer_map(struct urb *urb); - void usb_buffer_dmasync(struct urb *urb); diff --git a/usb.current/usb-serial-option-add-cinterion-device-id.patch b/usb.current/usb-serial-option-add-cinterion-device-id.patch deleted file mode 100644 index e06a85dd4cf6c1..00000000000000 --- a/usb.current/usb-serial-option-add-cinterion-device-id.patch +++ /dev/null @@ -1,34 +0,0 @@ -From foo@baz Tue Apr 27 09:38:51 PDT 2010 -Date: Tue, 27 Apr 2010 09:38:51 -0700 -To: Greg KH <greg@kroah.com> -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: USB: serial: option: add cinterion device id - -This adds a device id for a Cinterion device. - -Reported-by: John Race <John.Race@roscom.co.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -378,6 +378,8 @@ static int option_resume(struct usb_ser - #define HAIER_VENDOR_ID 0x201e - #define HAIER_PRODUCT_CE100 0x2009 - -+#define CINTERION_VENDOR_ID 0x0681 -+ - /* some devices interfaces need special handling due to a number of reasons */ - enum option_blacklist_reason { - OPTION_BLACKLIST_NONE = 0, -@@ -723,6 +725,7 @@ static const struct usb_device_id option - { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011)}, - { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012)}, - -+ { USB_DEVICE(CINTERION_VENDOR_ID, 0x0047) }, - { } /* Terminating entry */ - }; - MODULE_DEVICE_TABLE(usb, option_ids); diff --git a/usb.current/usb-serial-option-zteac8710-support-with-device-id-0xffff.patch b/usb.current/usb-serial-option-zteac8710-support-with-device-id-0xffff.patch deleted file mode 100644 index 289c8f5d9c5a0e..00000000000000 --- a/usb.current/usb-serial-option-zteac8710-support-with-device-id-0xffff.patch +++ /dev/null @@ -1,34 +0,0 @@ -From maheshkuruganti@gmail.com Mon Apr 26 14:08:10 2010 -From: Mahesh Kuruganti <maheshkuruganti@gmail.com> -Date: Mon, 12 Apr 2010 22:37:02 +0530 -Subject: USB: serial: option: ZTEAC8710 Support with Device ID 0xffff -To: Greg KH <greg@kroah.com> -Message-ID: <h2med984c71004121007s806428a9za0d724362f8cc83e@mail.gmail.com> - -PATCH TO EXTEND SUPPORT TO AC8710 WITH 0xFFFF Product ID. - -Signed-off-by: Mahesh Kuruganti <maheshkuruganti@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/option.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -305,6 +305,7 @@ static int option_resume(struct usb_ser - #define ZTE_PRODUCT_CDMA_TECH 0xfffe - #define ZTE_PRODUCT_AC8710 0xfff1 - #define ZTE_PRODUCT_AC2726 0xfff5 -+#define ZTE_PRODUCT_AC8710T 0xffff - - /* ZTE PRODUCTS -- alternate vendor ID */ - #define ZTE_VENDOR_ID2 0x1d6b -@@ -683,6 +684,7 @@ static const struct usb_device_id option - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) }, - { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) }, - { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, - { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, diff --git a/usb.current/usb-serial-pl2303-hybrid-reader-uniform-hcr331.patch b/usb.current/usb-serial-pl2303-hybrid-reader-uniform-hcr331.patch deleted file mode 100644 index 9e610ee3433337..00000000000000 --- a/usb.current/usb-serial-pl2303-hybrid-reader-uniform-hcr331.patch +++ /dev/null @@ -1,43 +0,0 @@ -From s.contini@oltrelinux.com Mon Apr 26 14:05:55 2010 -From: Simone Contini <s.contini@oltrelinux.com> -Date: Mon, 12 Apr 2010 23:25:10 +0200 -Subject: USB: serial: pl2303: Hybrid reader Uniform HCR331 -To: greg@kroah.com -Message-ID: <v2z6fad60871004121425kde1fb1fco8c005d55544bee8b@mail.gmail.com> - - -I tried a magnetic stripe reader -(http://www.kimaldi.com/kimaldi_eng/productos/lectores_de_tarjetas/lectores_tarjeta_chip_y_dni/lector_hibrido_uniform_hcr_331) -and I see that it is interfaced with a PL2303. I wrote a patch to use -your driver which simply adds the product ID for the device and it -seems working fine. - - -From: Simone Contini <s.contini@oltrelinux.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/pl2303.c | 1 + - drivers/usb/serial/pl2303.h | 1 + - 2 files changed, 2 insertions(+) - ---- a/drivers/usb/serial/pl2303.c -+++ b/drivers/usb/serial/pl2303.c -@@ -59,6 +59,7 @@ static const struct usb_device_id id_tab - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) }, - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MMX) }, - { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) }, -+ { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) }, - { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, - { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, - { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, ---- a/drivers/usb/serial/pl2303.h -+++ b/drivers/usb/serial/pl2303.h -@@ -20,6 +20,7 @@ - #define PL2303_PRODUCT_ID_ALDIGA 0x0611 - #define PL2303_PRODUCT_ID_MMX 0x0612 - #define PL2303_PRODUCT_ID_GPRS 0x0609 -+#define PL2303_PRODUCT_ID_HCR331 0x331a - - #define ATEN_VENDOR_ID 0x0557 - #define ATEN_VENDOR_ID2 0x0547 diff --git a/usb.current/usb-sl811-hcd-fix-device-disconnect.patch b/usb.current/usb-sl811-hcd-fix-device-disconnect.patch deleted file mode 100644 index 316725b0f7df59..00000000000000 --- a/usb.current/usb-sl811-hcd-fix-device-disconnect.patch +++ /dev/null @@ -1,44 +0,0 @@ -From vapier@gentoo.org Thu Apr 29 16:28:54 2010 -From: Mike Frysinger <vapier@gentoo.org> -Date: Wed, 28 Apr 2010 17:31:36 -0400 -Subject: USB: sl811-hcd: Fix device disconnect -To: linux-usb@vger.kernel.org, Greg Kroah-Hartman <gregkh@suse.de> -Cc: uclinux-dist-devel@blackfin.uclinux.org, Michael Hennerich <michael.hennerich@analog.com> -Message-ID: <1272490296-22583-1-git-send-email-vapier@gentoo.org> - - -From: Michael Hennerich <michael.hennerich@analog.com> - -A while ago I provided a patch that fixed device detection after device -removal (USB: sl811-hcd: Fix device disconnect). -Chris Brissette pointed out that the detection/removal counter method -to distinguish insert or remove my fail under certain conditions. -Latest SL811HS datasheet (Document 38-08008 Rev. *D) indicates that -bit 6 (SL11H_INTMASK_RD) of the Interrupt Status Register together with -bit 5 (SL11H_INTMASK_INSRMV) can be used to determine whether a device -has been inserted or removed. - -Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> -Signed-off-by: Mike Frysinger <vapier@gentoo.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/sl811-hcd.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/usb/host/sl811-hcd.c -+++ b/drivers/usb/host/sl811-hcd.c -@@ -720,10 +720,10 @@ retry: - /* port status seems weird until after reset, so - * force the reset and make khubd clean up later. - */ -- if (sl811->stat_insrmv & 1) -- sl811->port1 |= 1 << USB_PORT_FEAT_CONNECTION; -- else -+ if (irqstat & SL11H_INTMASK_RD) - sl811->port1 &= ~(1 << USB_PORT_FEAT_CONNECTION); -+ else -+ sl811->port1 |= 1 << USB_PORT_FEAT_CONNECTION; - - sl811->port1 |= 1 << USB_PORT_FEAT_C_CONNECTION; - diff --git a/usb.current/usb-ti_usb-fix-printk-format-warning.patch b/usb.current/usb-ti_usb-fix-printk-format-warning.patch deleted file mode 100644 index 49c66ad3d6c51b..00000000000000 --- a/usb.current/usb-ti_usb-fix-printk-format-warning.patch +++ /dev/null @@ -1,32 +0,0 @@ -From randy.dunlap@oracle.com Thu Apr 29 13:13:38 2010 -From: Randy Dunlap <randy.dunlap@oracle.com> -Date: Thu, 15 Apr 2010 11:38:56 -0700 -Subject: USB: ti_usb: fix printk format warning -To: Stephen Rothwell <sfr@canb.auug.org.au>, linux-usb@vger.kernel.org, gregkh@suse.de -Message-ID: <20100415113856.45564d4f.randy.dunlap@oracle.com> - - -From: Randy Dunlap <randy.dunlap@oracle.com> - -Fix printk format warning in usbserial/ti_usb: - -drivers/usb/serial/ti_usb_3410_5052.c:1738: warning: format '%d' expects type 'int', but argument 5 has type 'size_t' - -Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/ti_usb_3410_5052.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/usb/serial/ti_usb_3410_5052.c -+++ b/drivers/usb/serial/ti_usb_3410_5052.c -@@ -1735,7 +1735,7 @@ static int ti_download_firmware(struct t - return -ENOENT; - } - if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { -- dev_err(&dev->dev, "%s - firmware too large %d \n", __func__, fw_p->size); -+ dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size); - return -ENOENT; - } - diff --git a/usb.current/usb-xhci-properly-set-endpoint-context-fields-for-periodic-eps.patch b/usb.current/usb-xhci-properly-set-endpoint-context-fields-for-periodic-eps.patch deleted file mode 100644 index d13fa353a397ff..00000000000000 --- a/usb.current/usb-xhci-properly-set-endpoint-context-fields-for-periodic-eps.patch +++ /dev/null @@ -1,145 +0,0 @@ -From sarah.a.sharp@linux.intel.com Mon Apr 26 14:03:39 2010 -From: Sarah Sharp <sarah.a.sharp@linux.intel.com> -Date: Fri, 16 Apr 2010 08:07:27 -0700 -Subject: USB: xhci: properly set endpoint context fields for periodic eps. -To: Greg KH <gregkh@suse.de> -Cc: <Libin.Yang@amd.com>, <Andiry.Xu@amd.com> -Message-ID: <20100416150727.GA5993@xanatos> -Content-Disposition: inline - - -For periodic endpoints, we must let the xHCI hardware know the maximum -payload an endpoint can transfer in one service interval. The xHCI -specification refers to this as the Maximum Endpoint Service Interval Time -Payload (Max ESIT Payload). This is used by the hardware for bandwidth -management and scheduling of packets. - -For SuperSpeed endpoints, the maximum is calculated by multiplying the max -packet size by the number of bursts and the number of opportunities to -transfer within a service interval (the Mult field of the SuperSpeed -Endpoint companion descriptor). Devices advertise this in the -wBytesPerInterval field of their SuperSpeed Endpoint Companion Descriptor. - -For high speed devices, this is taken by multiplying the max packet size by the -"number of additional transaction opportunities per microframe" (the high -bits of the wMaxPacketSize field in the endpoint descriptor). - -For FS/LS devices, this is just the max packet size. - -The other thing we must set in the endpoint context is the Average TRB -Length. This is supposed to be the average of the total bytes in the -transfer descriptor (TD), divided by the number of transfer request blocks -(TRBs) it takes to describe the TD. This gives the host controller an -indication of whether the driver will be enqueuing a scatter gather list -with many entries comprised of small buffers, or one contiguous buffer. - -It also takes into account the number of extra TRBs you need for every TD. -This includes No-op TRBs and Link TRBs used to link ring segments -together. Some drivers may choose to chain an Event Data TRB on the end -of every TD, thus increasing the average number of TRBs per TD. The Linux -xHCI driver does not use Event Data TRBs. - -In theory, if there was an API to allow drivers to state what their -bandwidth requirements are, we could set this field accurately. For now, -we set it to the same number as the Max ESIT payload. - -The Average TRB Length should also be set for bulk and control endpoints, -but I have no idea how to guess what it should be. - -Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - drivers/usb/host/xhci-mem.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ - drivers/usb/host/xhci.h | 4 +++ - 2 files changed, 55 insertions(+) - ---- a/drivers/usb/host/xhci-mem.c -+++ b/drivers/usb/host/xhci-mem.c -@@ -625,6 +625,36 @@ static inline u32 xhci_get_endpoint_type - return type; - } - -+/* Return the maximum endpoint service interval time (ESIT) payload. -+ * Basically, this is the maxpacket size, multiplied by the burst size -+ * and mult size. -+ */ -+static inline u32 xhci_get_max_esit_payload(struct xhci_hcd *xhci, -+ struct usb_device *udev, -+ struct usb_host_endpoint *ep) -+{ -+ int max_burst; -+ int max_packet; -+ -+ /* Only applies for interrupt or isochronous endpoints */ -+ if (usb_endpoint_xfer_control(&ep->desc) || -+ usb_endpoint_xfer_bulk(&ep->desc)) -+ return 0; -+ -+ if (udev->speed == USB_SPEED_SUPER) { -+ if (ep->ss_ep_comp) -+ return ep->ss_ep_comp->desc.wBytesPerInterval; -+ xhci_warn(xhci, "WARN no SS endpoint companion descriptor.\n"); -+ /* Assume no bursts, no multiple opportunities to send. */ -+ return ep->desc.wMaxPacketSize; -+ } -+ -+ max_packet = ep->desc.wMaxPacketSize & 0x3ff; -+ max_burst = (ep->desc.wMaxPacketSize & 0x1800) >> 11; -+ /* A 0 in max burst means 1 transfer per ESIT */ -+ return max_packet * (max_burst + 1); -+} -+ - int xhci_endpoint_init(struct xhci_hcd *xhci, - struct xhci_virt_device *virt_dev, - struct usb_device *udev, -@@ -636,6 +666,7 @@ int xhci_endpoint_init(struct xhci_hcd * - struct xhci_ring *ep_ring; - unsigned int max_packet; - unsigned int max_burst; -+ u32 max_esit_payload; - - ep_index = xhci_get_endpoint_index(&ep->desc); - ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); -@@ -703,6 +734,26 @@ int xhci_endpoint_init(struct xhci_hcd * - default: - BUG(); - } -+ max_esit_payload = xhci_get_max_esit_payload(xhci, udev, ep); -+ ep_ctx->tx_info = MAX_ESIT_PAYLOAD_FOR_EP(max_esit_payload); -+ -+ /* -+ * XXX no idea how to calculate the average TRB buffer length for bulk -+ * endpoints, as the driver gives us no clue how big each scatter gather -+ * list entry (or buffer) is going to be. -+ * -+ * For isochronous and interrupt endpoints, we set it to the max -+ * available, until we have new API in the USB core to allow drivers to -+ * declare how much bandwidth they actually need. -+ * -+ * Normally, it would be calculated by taking the total of the buffer -+ * lengths in the TD and then dividing by the number of TRBs in a TD, -+ * including link TRBs, No-op TRBs, and Event data TRBs. Since we don't -+ * use Event Data TRBs, and we don't chain in a link TRB on short -+ * transfers, we're basically dividing by 1. -+ */ -+ ep_ctx->tx_info |= AVG_TRB_LENGTH_FOR_EP(max_esit_payload); -+ - /* FIXME Debug endpoint context */ - return 0; - } ---- a/drivers/usb/host/xhci.h -+++ b/drivers/usb/host/xhci.h -@@ -609,6 +609,10 @@ struct xhci_ep_ctx { - #define MAX_PACKET_MASK (0xffff << 16) - #define MAX_PACKET_DECODED(p) (((p) >> 16) & 0xffff) - -+/* tx_info bitmasks */ -+#define AVG_TRB_LENGTH_FOR_EP(p) ((p) & 0xffff) -+#define MAX_ESIT_PAYLOAD_FOR_EP(p) (((p) & 0xffff) << 16) -+ - - /** - * struct xhci_input_control_context diff --git a/usb.current/usb-xhci-properly-set-the-mult-field-of-the-endpoint-context.patch b/usb.current/usb-xhci-properly-set-the-mult-field-of-the-endpoint-context.patch deleted file mode 100644 index 88e95dede16d5e..00000000000000 --- a/usb.current/usb-xhci-properly-set-the-mult-field-of-the-endpoint-context.patch +++ /dev/null @@ -1,61 +0,0 @@ -From sarah.a.sharp@linux.intel.com Mon Apr 26 14:02:36 2010 -From: Sarah Sharp <sarah.a.sharp@linux.intel.com> -Date: Fri, 16 Apr 2010 08:07:04 -0700 -Subject: USB: xhci: properly set the "Mult" field of the endpoint context. -To: Greg KH <gregkh@suse.de> -Cc: <Libin.Yang@amd.com>, <Andiry.Xu@amd.com> -Message-ID: <20100416150704.GA5986@xanatos> -Content-Disposition: inline - - -A SuperSpeed interrupt or isochronous endpoint can define the number of -"burst transactions" it can handle in a service interval. This is -indicated by the "Mult" bits in the bmAttributes of the SuperSpeed -Endpoint Companion Descriptor. For example, if it has a max packet size -of 1024, a max burst of 11, and a mult of 3, the host may send 33 -1024-byte packets in one service interval. - -We must tell the xHCI host controller the number of multiple service -opportunities (mults) the device can handle when the endpoint is -installed. We do that by setting the Mult field of the Endpoint Context -before a configure endpoint command is sent down. The Mult field is -invalid for control or bulk SuperSpeed endpoints. - -Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/xhci-mem.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - ---- a/drivers/usb/host/xhci-mem.c -+++ b/drivers/usb/host/xhci-mem.c -@@ -582,6 +582,19 @@ static inline unsigned int xhci_get_endp - return EP_INTERVAL(interval); - } - -+/* The "Mult" field in the endpoint context is only set for SuperSpeed devices. -+ * High speed endpoint descriptors can define "the number of additional -+ * transaction opportunities per microframe", but that goes in the Max Burst -+ * endpoint context field. -+ */ -+static inline u32 xhci_get_endpoint_mult(struct usb_device *udev, -+ struct usb_host_endpoint *ep) -+{ -+ if (udev->speed != USB_SPEED_SUPER || !ep->ss_ep_comp) -+ return 0; -+ return ep->ss_ep_comp->desc.bmAttributes; -+} -+ - static inline u32 xhci_get_endpoint_type(struct usb_device *udev, - struct usb_host_endpoint *ep) - { -@@ -644,6 +657,7 @@ int xhci_endpoint_init(struct xhci_hcd * - ep_ctx->deq = ep_ring->first_seg->dma | ep_ring->cycle_state; - - ep_ctx->ep_info = xhci_get_endpoint_interval(udev, ep); -+ ep_ctx->ep_info |= EP_MULT(xhci_get_endpoint_mult(udev, ep)); - - /* FIXME dig Mult and streams info out of ep companion desc */ - @@ -1 +1 @@ -2.6.34-rc6 +2.6.34-rc6-git1 |
