--- /dev/null
+From 55ed7d4d1469eafbe3ad7e8fcd44f5af27845a81 Mon Sep 17 00:00:00 2001
+From: AceLan Kao <acelan.kao@canonical.com>
+Date: Wed, 28 Mar 2012 10:25:36 +0800
+Subject: Bluetooth: Add support for Atheros [04ca:3005]
+
+From: AceLan Kao <acelan.kao@canonical.com>
+
+commit 55ed7d4d1469eafbe3ad7e8fcd44f5af27845a81 upstream.
+
+Add another vendor specific ID for Atheros AR3012 device.
+This chip is wrapped by Lite-On Technology Corp.
+
+output of usb-devices:
+T: Bus=04 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
+D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
+P: Vendor=04ca ProdID=3005 Rev=00.02
+S: Manufacturer=Atheros Communications
+S: Product=Bluetooth USB Host Controller
+S: SerialNumber=Alaska Day 2006
+C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
+I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+
+Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
+Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/bluetooth/ath3k.c | 2 ++
+ drivers/bluetooth/btusb.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+--- a/drivers/bluetooth/ath3k.c
++++ b/drivers/bluetooth/ath3k.c
+@@ -73,6 +73,7 @@ static struct usb_device_id ath3k_table[
+ { USB_DEVICE(0x0CF3, 0x3004) },
+ { USB_DEVICE(0x0CF3, 0x311D) },
+ { USB_DEVICE(0x13d3, 0x3375) },
++ { USB_DEVICE(0x04CA, 0x3005) },
+
+ /* Atheros AR5BBU12 with sflash firmware */
+ { USB_DEVICE(0x0489, 0xE02C) },
+@@ -91,6 +92,7 @@ static struct usb_device_id ath3k_blist_
+ { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
++ { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+
+ { } /* Terminating entry */
+ };
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -125,6 +125,7 @@ static struct usb_device_id blacklist_ta
+ { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
++ { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+
+ /* Atheros AR5BBU12 with sflash firmware */
+ { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
--- /dev/null
+From 93dc6107a76daed81c07f50215fa6ae77691634f Mon Sep 17 00:00:00 2001
+From: Jason Baron <jbaron@redhat.com>
+Date: Fri, 16 Mar 2012 16:34:03 -0400
+Subject: Don't limit non-nested epoll paths
+
+From: Jason Baron <jbaron@redhat.com>
+
+commit 93dc6107a76daed81c07f50215fa6ae77691634f upstream.
+
+Commit 28d82dc1c4ed ("epoll: limit paths") that I did to limit the
+number of possible wakeup paths in epoll is causing a few applications
+to longer work (dovecot for one).
+
+The original patch is really about limiting the amount of epoll nesting
+(since epoll fds can be attached to other fds). Thus, we probably can
+allow an unlimited number of paths of depth 1. My current patch limits
+it at 1000. And enforce the limits on paths that have a greater depth.
+
+This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578
+
+Signed-off-by: Jason Baron <jbaron@redhat.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/eventpoll.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/fs/eventpoll.c
++++ b/fs/eventpoll.c
+@@ -988,6 +988,10 @@ static int path_count[PATH_ARR_SIZE];
+
+ static int path_count_inc(int nests)
+ {
++ /* Allow an arbitrary number of depth 1 paths */
++ if (nests == 0)
++ return 0;
++
+ if (++path_count[nests] > path_limits[nests])
+ return -1;
+ return 0;
--- /dev/null
+From af1584f570b19b0285e4402a0b54731495d31784 Mon Sep 17 00:00:00 2001
+From: Al Viro <viro@zeniv.linux.org.uk>
+Date: Thu, 12 Apr 2012 20:32:25 -0400
+Subject: ext4: fix endianness breakage in ext4_split_extent_at()
+
+From: Al Viro <viro@zeniv.linux.org.uk>
+
+commit af1584f570b19b0285e4402a0b54731495d31784 upstream.
+
+->ee_len is __le16, so assigning cpu_to_le32() to it is going to do
+Bad Things(tm) on big-endian hosts...
+
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Cc: Ted Ts'o <tytso@mit.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/extents.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/ext4/extents.c
++++ b/fs/ext4/extents.c
+@@ -2846,7 +2846,7 @@ static int ext4_split_extent_at(handle_t
+ if (err)
+ goto fix_extent_len;
+ /* update the extent length and mark as initialized */
+- ex->ee_len = cpu_to_le32(ee_len);
++ ex->ee_len = cpu_to_le16(ee_len);
+ ext4_ext_try_to_merge(inode, path, ex);
+ err = ext4_ext_dirty(handle, inode, path + depth);
+ goto out;
--- /dev/null
+From 3ac44670ad0fca8b6c43b3e4d8494c67c419f494 Mon Sep 17 00:00:00 2001
+From: Alan Cox <alan@linux.intel.com>
+Date: Mon, 19 Dec 2011 21:07:33 +0000
+Subject: rt2800: Add support for the Fujitsu Stylistic Q550
+
+From: Alan Cox <alan@linux.intel.com>
+
+commit 3ac44670ad0fca8b6c43b3e4d8494c67c419f494 upstream.
+
+Just another USB identifier.
+
+Signed-off-by: Alan Cox <alan@linux.intel.com>
+Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -1064,6 +1064,8 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x7392, 0x7722) },
+ /* Encore */
+ { USB_DEVICE(0x203d, 0x14a1) },
++ /* Fujitsu Stylistic 550 */
++ { USB_DEVICE(0x1690, 0x0761) },
+ /* Gemtek */
+ { USB_DEVICE(0x15a9, 0x0010) },
+ /* Gigabyte */
--- /dev/null
+From 43bf8c245237b8309153aa39d4e8f1586cf56af0 Mon Sep 17 00:00:00 2001
+From: Eduardo Bacchi Kienetz <eduardo@kienetz.com>
+Date: Sun, 10 Jul 2011 17:05:14 +0200
+Subject: rt2800usb: Add new device ID for Belkin
+
+From: Eduardo Bacchi Kienetz <eduardo@kienetz.com>
+
+commit 43bf8c245237b8309153aa39d4e8f1586cf56af0 upstream.
+
+Belkin's Connect N150 Wireless USB Adapter, model F7D1101 version 2, uses ID 0x945b.
+Chipset info: rt: 3390, rf: 000b, rev: 3213.
+I have just bought one, which started to work perfectly after the ID was added through this patch.
+
+Signed-off-by: Eduardo Bacchi Kienetz <eduardo@kienetz.com>
+Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -976,6 +976,8 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x0586, 0x341e) },
+ { USB_DEVICE(0x0586, 0x343e) },
+ #ifdef CONFIG_RT2800USB_RT33XX
++ /* Belkin */
++ { USB_DEVICE(0x050d, 0x945b) },
+ /* Ralink */
+ { USB_DEVICE(0x148f, 0x3370) },
+ { USB_DEVICE(0x148f, 0x8070) },
--- /dev/null
+From c18b7806e4f3373b2f296a65fb19251a3b49a532 Mon Sep 17 00:00:00 2001
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+Date: Sat, 12 Nov 2011 19:10:43 +0100
+Subject: rt2x00: Add USB device ID of Buffalo WLI-UC-GNHP.
+
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+
+commit c18b7806e4f3373b2f296a65fb19251a3b49a532 upstream.
+
+This is reported to be an RT3070 based device.
+
+Reported-by: Teika Kazura <teika@lavabit.com>
+Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -824,6 +824,7 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x050d, 0x935b) },
+ /* Buffalo */
+ { USB_DEVICE(0x0411, 0x00e8) },
++ { USB_DEVICE(0x0411, 0x0158) },
+ { USB_DEVICE(0x0411, 0x016f) },
+ { USB_DEVICE(0x0411, 0x01a2) },
+ /* Corega */
--- /dev/null
+From bc93eda7e903ff75cefcb6e247ed9b8e9f8e9783 Mon Sep 17 00:00:00 2001
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+Date: Wed, 28 Dec 2011 01:53:18 +0100
+Subject: rt2x00: Identify rt2800usb chipsets.
+
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+
+commit bc93eda7e903ff75cefcb6e247ed9b8e9f8e9783 upstream.
+
+According to the latest USB ID database these are all RT2770 / RT2870 / RT307x
+devices.
+
+Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 26 ++++++++++++--------------
+ 1 file changed, 12 insertions(+), 14 deletions(-)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -819,12 +819,14 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x050d, 0x8053) },
+ { USB_DEVICE(0x050d, 0x805c) },
+ { USB_DEVICE(0x050d, 0x815c) },
++ { USB_DEVICE(0x050d, 0x825a) },
+ { USB_DEVICE(0x050d, 0x825b) },
+ { USB_DEVICE(0x050d, 0x935a) },
+ { USB_DEVICE(0x050d, 0x935b) },
+ /* Buffalo */
+ { USB_DEVICE(0x0411, 0x00e8) },
+ { USB_DEVICE(0x0411, 0x0158) },
++ { USB_DEVICE(0x0411, 0x015d) },
+ { USB_DEVICE(0x0411, 0x016f) },
+ { USB_DEVICE(0x0411, 0x01a2) },
+ /* Corega */
+@@ -839,6 +841,8 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x07d1, 0x3c0e) },
+ { USB_DEVICE(0x07d1, 0x3c0f) },
+ { USB_DEVICE(0x07d1, 0x3c11) },
++ { USB_DEVICE(0x07d1, 0x3c13) },
++ { USB_DEVICE(0x07d1, 0x3c15) },
+ { USB_DEVICE(0x07d1, 0x3c16) },
+ { USB_DEVICE(0x2001, 0x3c1b) },
+ /* Draytek */
+@@ -847,6 +851,7 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x7392, 0x7711) },
+ { USB_DEVICE(0x7392, 0x7717) },
+ { USB_DEVICE(0x7392, 0x7718) },
++ { USB_DEVICE(0x7392, 0x7722) },
+ /* Encore */
+ { USB_DEVICE(0x203d, 0x1480) },
+ { USB_DEVICE(0x203d, 0x14a9) },
+@@ -881,6 +886,7 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x1737, 0x0070) },
+ { USB_DEVICE(0x1737, 0x0071) },
+ { USB_DEVICE(0x1737, 0x0077) },
++ { USB_DEVICE(0x1737, 0x0078) },
+ /* Logitec */
+ { USB_DEVICE(0x0789, 0x0162) },
+ { USB_DEVICE(0x0789, 0x0163) },
+@@ -904,9 +910,13 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x0db0, 0x871b) },
+ { USB_DEVICE(0x0db0, 0x871c) },
+ { USB_DEVICE(0x0db0, 0x899a) },
++ /* Ovislink */
++ { USB_DEVICE(0x1b75, 0x3071) },
++ { USB_DEVICE(0x1b75, 0x3072) },
+ /* Para */
+ { USB_DEVICE(0x20b8, 0x8888) },
+ /* Pegatron */
++ { USB_DEVICE(0x1d4d, 0x0002) },
+ { USB_DEVICE(0x1d4d, 0x000c) },
+ { USB_DEVICE(0x1d4d, 0x000e) },
+ { USB_DEVICE(0x1d4d, 0x0011) },
+@@ -959,7 +969,9 @@ static struct usb_device_id rt2800usb_de
+ /* Sparklan */
+ { USB_DEVICE(0x15a9, 0x0006) },
+ /* Sweex */
++ { USB_DEVICE(0x177f, 0x0153) },
+ { USB_DEVICE(0x177f, 0x0302) },
++ { USB_DEVICE(0x177f, 0x0313) },
+ /* U-Media */
+ { USB_DEVICE(0x157e, 0x300e) },
+ { USB_DEVICE(0x157e, 0x3013) },
+@@ -1043,25 +1055,20 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x13d3, 0x3322) },
+ /* Belkin */
+ { USB_DEVICE(0x050d, 0x1003) },
+- { USB_DEVICE(0x050d, 0x825a) },
+ /* Buffalo */
+ { USB_DEVICE(0x0411, 0x012e) },
+ { USB_DEVICE(0x0411, 0x0148) },
+ { USB_DEVICE(0x0411, 0x0150) },
+- { USB_DEVICE(0x0411, 0x015d) },
+ /* Corega */
+ { USB_DEVICE(0x07aa, 0x0041) },
+ { USB_DEVICE(0x07aa, 0x0042) },
+ { USB_DEVICE(0x18c5, 0x0008) },
+ /* D-Link */
+ { USB_DEVICE(0x07d1, 0x3c0b) },
+- { USB_DEVICE(0x07d1, 0x3c13) },
+- { USB_DEVICE(0x07d1, 0x3c15) },
+ { USB_DEVICE(0x07d1, 0x3c17) },
+ { USB_DEVICE(0x2001, 0x3c17) },
+ /* Edimax */
+ { USB_DEVICE(0x7392, 0x4085) },
+- { USB_DEVICE(0x7392, 0x7722) },
+ /* Encore */
+ { USB_DEVICE(0x203d, 0x14a1) },
+ /* Fujitsu Stylistic 550 */
+@@ -1077,19 +1084,13 @@ static struct usb_device_id rt2800usb_de
+ /* LevelOne */
+ { USB_DEVICE(0x1740, 0x0605) },
+ { USB_DEVICE(0x1740, 0x0615) },
+- /* Linksys */
+- { USB_DEVICE(0x1737, 0x0078) },
+ /* Logitec */
+ { USB_DEVICE(0x0789, 0x0168) },
+ { USB_DEVICE(0x0789, 0x0169) },
+ /* Motorola */
+ { USB_DEVICE(0x100d, 0x9032) },
+- /* Ovislink */
+- { USB_DEVICE(0x1b75, 0x3071) },
+- { USB_DEVICE(0x1b75, 0x3072) },
+ /* Pegatron */
+ { USB_DEVICE(0x05a6, 0x0101) },
+- { USB_DEVICE(0x1d4d, 0x0002) },
+ { USB_DEVICE(0x1d4d, 0x0010) },
+ /* Planex */
+ { USB_DEVICE(0x2019, 0x5201) },
+@@ -1108,9 +1109,6 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x083a, 0xc522) },
+ { USB_DEVICE(0x083a, 0xd522) },
+ { USB_DEVICE(0x083a, 0xf511) },
+- /* Sweex */
+- { USB_DEVICE(0x177f, 0x0153) },
+- { USB_DEVICE(0x177f, 0x0313) },
+ /* Zyxel */
+ { USB_DEVICE(0x0586, 0x341a) },
+ #endif
--- /dev/null
+From acb56120d2c386d6dd104a6515c1a15dabc1ef87 Mon Sep 17 00:00:00 2001
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+Date: Wed, 6 Jul 2011 22:59:19 +0200
+Subject: rt2x00: Properly identify rt2800usb devices.
+
+From: Gertjan van Wingerde <gwingerde@gmail.com>
+
+commit acb56120d2c386d6dd104a6515c1a15dabc1ef87 upstream.
+
+Sitecom WLA4000 (USB ID 0x0df6:0x0060) is an RT3072 chipset.
+Sitecom WLA5000 (USB ID 0x0df6:0x0062) is an RT3572 chipset.
+
+Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -943,6 +943,7 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x0df6, 0x0048) },
+ { USB_DEVICE(0x0df6, 0x0051) },
+ { USB_DEVICE(0x0df6, 0x005f) },
++ { USB_DEVICE(0x0df6, 0x0060) },
+ /* SMC */
+ { USB_DEVICE(0x083a, 0x6618) },
+ { USB_DEVICE(0x083a, 0x7511) },
+@@ -999,6 +1000,7 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x148f, 0x3572) },
+ /* Sitecom */
+ { USB_DEVICE(0x0df6, 0x0041) },
++ { USB_DEVICE(0x0df6, 0x0062) },
+ /* Toshiba */
+ { USB_DEVICE(0x0930, 0x0a07) },
+ /* Zinwell */
+@@ -1096,8 +1098,6 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x0df6, 0x004a) },
+ { USB_DEVICE(0x0df6, 0x004d) },
+ { USB_DEVICE(0x0df6, 0x0053) },
+- { USB_DEVICE(0x0df6, 0x0060) },
+- { USB_DEVICE(0x0df6, 0x0062) },
+ /* SMC */
+ { USB_DEVICE(0x083a, 0xa512) },
+ { USB_DEVICE(0x083a, 0xc522) },
usb-musb-omap-fix-crash-when-musb-glue-omap-gets-initialized.patch
usb-musb-omap-fix-the-error-check-for-pm_runtime_get_sync.patch
pci-add-quirk-for-still-enabled-interrupts-on-intel-sandy-bridge-gpus.patch
+ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
+bluetooth-add-support-for-atheros.patch
+don-t-limit-non-nested-epoll-paths.patch
+spi-fix-device-unregistration-when-unregistering-the-bus-master.patch
+rt2x00-properly-identify-rt2800usb-devices.patch
+rt2800usb-add-new-device-id-for-belkin.patch
+rt2x00-add-usb-device-id-of-buffalo-wli-uc-gnhp.patch
+rt2800-add-support-for-the-fujitsu-stylistic-q550.patch
+rt2x00-identify-rt2800usb-chipsets.patch
--- /dev/null
+From 178db7d30f94707efca1a189753c105ef69942ed Mon Sep 17 00:00:00 2001
+From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Date: Mon, 12 Dec 2011 01:15:06 +0100
+Subject: spi: Fix device unregistration when unregistering the bus master
+
+From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+commit 178db7d30f94707efca1a189753c105ef69942ed upstream.
+
+Device are added as children of the bus master's parent device, but
+spi_unregister_master() looks for devices to unregister in the bus
+master's children. This results in the child devices not being
+unregistered.
+
+Fix this by registering devices as direct children of the bus master.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+Cc: Takahiro AKASHI <akashi@jp.fujitsu.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/spi/spi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/spi/spi.c
++++ b/drivers/spi/spi.c
+@@ -318,7 +318,7 @@ struct spi_device *spi_alloc_device(stru
+ }
+
+ spi->master = master;
+- spi->dev.parent = dev;
++ spi->dev.parent = &master->dev;
+ spi->dev.bus = &spi_bus_type;
+ spi->dev.release = spidev_release;
+ device_initialize(&spi->dev);