diff options
author | David S. Miller <davem@davemloft.net> | 2013-10-07 15:40:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-07 15:40:44 -0400 |
commit | 7009deab19d7be03e05f67ceac56cfdfc73aa71c (patch) | |
tree | 106f789a079e606753809fad4290644a9310d62d /drivers/net/wireless/rt2x00 | |
parent | 5cde282938915f36a2e6769b51c24c4159654859 (diff) | |
parent | 274dede8c52036a1849ea970fab8d185fb0dce2b (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
Conflicts:
drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
drivers/net/wireless/rtlwifi/rtl8188ee/phy.h
drivers/net/wireless/rtlwifi/rtl8192ce/phy.h
drivers/net/wireless/rtlwifi/rtl8192de/phy.h
drivers/net/wireless/rtlwifi/rtl8723ae/phy.h
Just some minor conflicts between the wireless-next changes
and Joe Perches's "extern" removal from function prototypes
in header files.
John W. Linville says:
====================
Regarding the Bluetooth bits, Gustavo says:
"The big work here is from Marcel and Johan. They did a lot of work
in the L2CAP, HCI and MGMT layers. The most important ones are the
addition of a new MGMT command to enable/disable LE advertisement
and the introduction of the HCI user channel to allow applications
to get directly and exclusive access to Bluetooth devices."
As to the ath10k bits, Kalle says:
"Bartosz dropped support for qca98xx hw1.0 hardware from ath10k, it's
just too much to support it. Michal added support for the new firmware
interface. Marek fixed WEP in AP and IBSS mode. Rest of the changes are
minor fixes or cleanups."
And also:
"Major changes are:
* throughput improvements including aligning the RX frames correctly and
optimising HTT layer (Michal)
* remove qca98xx hw1.0 support (Bartosz)
* add support for firmware version 999.999.0.636 (Michal)
* firmware htt statistics support (Kalle)
* fix WEP in AP and IBSS mode (Marek)
* fix a mutex unlock balance in debugfs file (Shafi)
And of course there's a lot of smaller fixes and cleanup."
For the wl12xx bits, Luca says:
"Here are some patches intended for 3.13. Eliad is upstreaming a bunch
of patches that have been pending in the internal tree. Mostly bugfixes
and other small improvements."
Along with that...
Arend and friends bring us a batch of brcmfmac updates, Larry Finger
offers some rtlwifi refactoring, and Sujith sends the usual batch of
ath9k updates. As usual, there are a number of other small updates
from a variety of players as well.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800lib.c | 49 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800usb.c | 17 |
3 files changed, 54 insertions, 14 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h index fa33b5edf931..e3eb95292a7f 100644 --- a/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h | |||
@@ -52,6 +52,7 @@ | |||
52 | * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392) | 52 | * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392) |
53 | * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662) | 53 | * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662) |
54 | * RF5592 2.4G/5G 2T2R | 54 | * RF5592 2.4G/5G 2T2R |
55 | * RF3070 2.4G 1T1R | ||
55 | * RF5360 2.4G 1T1R | 56 | * RF5360 2.4G 1T1R |
56 | * RF5370 2.4G 1T1R | 57 | * RF5370 2.4G 1T1R |
57 | * RF5390 2.4G 1T1R | 58 | * RF5390 2.4G 1T1R |
@@ -70,6 +71,7 @@ | |||
70 | #define RF3322 0x000c | 71 | #define RF3322 0x000c |
71 | #define RF3053 0x000d | 72 | #define RF3053 0x000d |
72 | #define RF5592 0x000f | 73 | #define RF5592 0x000f |
74 | #define RF3070 0x3070 | ||
73 | #define RF3290 0x3290 | 75 | #define RF3290 0x3290 |
74 | #define RF5360 0x5360 | 76 | #define RF5360 0x5360 |
75 | #define RF5370 0x5370 | 77 | #define RF5370 0x5370 |
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index 88ce656f96cd..25aaa5e12d4e 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c | |||
@@ -3152,6 +3152,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, | |||
3152 | case RF3322: | 3152 | case RF3322: |
3153 | rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info); | 3153 | rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info); |
3154 | break; | 3154 | break; |
3155 | case RF3070: | ||
3155 | case RF5360: | 3156 | case RF5360: |
3156 | case RF5370: | 3157 | case RF5370: |
3157 | case RF5372: | 3158 | case RF5372: |
@@ -3166,7 +3167,8 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, | |||
3166 | rt2800_config_channel_rf2xxx(rt2x00dev, conf, rf, info); | 3167 | rt2800_config_channel_rf2xxx(rt2x00dev, conf, rf, info); |
3167 | } | 3168 | } |
3168 | 3169 | ||
3169 | if (rt2x00_rf(rt2x00dev, RF3290) || | 3170 | if (rt2x00_rf(rt2x00dev, RF3070) || |
3171 | rt2x00_rf(rt2x00dev, RF3290) || | ||
3170 | rt2x00_rf(rt2x00dev, RF3322) || | 3172 | rt2x00_rf(rt2x00dev, RF3322) || |
3171 | rt2x00_rf(rt2x00dev, RF5360) || | 3173 | rt2x00_rf(rt2x00dev, RF5360) || |
3172 | rt2x00_rf(rt2x00dev, RF5370) || | 3174 | rt2x00_rf(rt2x00dev, RF5370) || |
@@ -3315,29 +3317,37 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, | |||
3315 | rt2800_rfcsr_write(rt2x00dev, 8, 0x80); | 3317 | rt2800_rfcsr_write(rt2x00dev, 8, 0x80); |
3316 | 3318 | ||
3317 | if (rt2x00_rt(rt2x00dev, RT3593)) { | 3319 | if (rt2x00_rt(rt2x00dev, RT3593)) { |
3318 | if (rt2x00_is_usb(rt2x00dev)) { | 3320 | rt2800_register_read(rt2x00dev, GPIO_CTRL, ®); |
3319 | rt2800_register_read(rt2x00dev, GPIO_CTRL, ®); | ||
3320 | 3321 | ||
3321 | /* Band selection. GPIO #8 controls all paths */ | 3322 | /* Band selection */ |
3323 | if (rt2x00_is_usb(rt2x00dev) || | ||
3324 | rt2x00_is_pcie(rt2x00dev)) { | ||
3325 | /* GPIO #8 controls all paths */ | ||
3322 | rt2x00_set_field32(®, GPIO_CTRL_DIR8, 0); | 3326 | rt2x00_set_field32(®, GPIO_CTRL_DIR8, 0); |
3323 | if (rf->channel <= 14) | 3327 | if (rf->channel <= 14) |
3324 | rt2x00_set_field32(®, GPIO_CTRL_VAL8, 1); | 3328 | rt2x00_set_field32(®, GPIO_CTRL_VAL8, 1); |
3325 | else | 3329 | else |
3326 | rt2x00_set_field32(®, GPIO_CTRL_VAL8, 0); | 3330 | rt2x00_set_field32(®, GPIO_CTRL_VAL8, 0); |
3331 | } | ||
3327 | 3332 | ||
3333 | /* LNA PE control. */ | ||
3334 | if (rt2x00_is_usb(rt2x00dev)) { | ||
3335 | /* GPIO #4 controls PE0 and PE1, | ||
3336 | * GPIO #7 controls PE2 | ||
3337 | */ | ||
3328 | rt2x00_set_field32(®, GPIO_CTRL_DIR4, 0); | 3338 | rt2x00_set_field32(®, GPIO_CTRL_DIR4, 0); |
3329 | rt2x00_set_field32(®, GPIO_CTRL_DIR7, 0); | 3339 | rt2x00_set_field32(®, GPIO_CTRL_DIR7, 0); |
3330 | 3340 | ||
3331 | /* LNA PE control. | ||
3332 | * GPIO #4 controls PE0 and PE1, | ||
3333 | * GPIO #7 controls PE2 | ||
3334 | */ | ||
3335 | rt2x00_set_field32(®, GPIO_CTRL_VAL4, 1); | 3341 | rt2x00_set_field32(®, GPIO_CTRL_VAL4, 1); |
3336 | rt2x00_set_field32(®, GPIO_CTRL_VAL7, 1); | 3342 | rt2x00_set_field32(®, GPIO_CTRL_VAL7, 1); |
3337 | 3343 | } else if (rt2x00_is_pcie(rt2x00dev)) { | |
3338 | rt2800_register_write(rt2x00dev, GPIO_CTRL, reg); | 3344 | /* GPIO #4 controls PE0, PE1 and PE2 */ |
3345 | rt2x00_set_field32(®, GPIO_CTRL_DIR4, 0); | ||
3346 | rt2x00_set_field32(®, GPIO_CTRL_VAL4, 1); | ||
3339 | } | 3347 | } |
3340 | 3348 | ||
3349 | rt2800_register_write(rt2x00dev, GPIO_CTRL, reg); | ||
3350 | |||
3341 | /* AGC init */ | 3351 | /* AGC init */ |
3342 | if (rf->channel <= 14) | 3352 | if (rf->channel <= 14) |
3343 | reg = 0x1c + 2 * rt2x00dev->lna_gain; | 3353 | reg = 0x1c + 2 * rt2x00dev->lna_gain; |
@@ -4264,6 +4274,7 @@ void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev) | |||
4264 | rt2800_rfcsr_write(rt2x00dev, 7, rfcsr); | 4274 | rt2800_rfcsr_write(rt2x00dev, 7, rfcsr); |
4265 | break; | 4275 | break; |
4266 | case RF3053: | 4276 | case RF3053: |
4277 | case RF3070: | ||
4267 | case RF3290: | 4278 | case RF3290: |
4268 | case RF5360: | 4279 | case RF5360: |
4269 | case RF5370: | 4280 | case RF5370: |
@@ -5985,7 +5996,7 @@ static void rt2800_init_rfcsr_30xx(struct rt2x00_dev *rt2x00dev) | |||
5985 | rt2800_rfcsr_write(rt2x00dev, 20, 0xba); | 5996 | rt2800_rfcsr_write(rt2x00dev, 20, 0xba); |
5986 | rt2800_rfcsr_write(rt2x00dev, 21, 0xdb); | 5997 | rt2800_rfcsr_write(rt2x00dev, 21, 0xdb); |
5987 | rt2800_rfcsr_write(rt2x00dev, 24, 0x16); | 5998 | rt2800_rfcsr_write(rt2x00dev, 24, 0x16); |
5988 | rt2800_rfcsr_write(rt2x00dev, 25, 0x01); | 5999 | rt2800_rfcsr_write(rt2x00dev, 25, 0x03); |
5989 | rt2800_rfcsr_write(rt2x00dev, 29, 0x1f); | 6000 | rt2800_rfcsr_write(rt2x00dev, 29, 0x1f); |
5990 | 6001 | ||
5991 | if (rt2x00_rt_rev_lt(rt2x00dev, RT3070, REV_RT3070F)) { | 6002 | if (rt2x00_rt_rev_lt(rt2x00dev, RT3070, REV_RT3070F)) { |
@@ -6653,17 +6664,20 @@ int rt2800_enable_radio(struct rt2x00_dev *rt2x00dev) | |||
6653 | u16 word; | 6664 | u16 word; |
6654 | 6665 | ||
6655 | /* | 6666 | /* |
6656 | * Initialize all registers. | 6667 | * Initialize MAC registers. |
6657 | */ | 6668 | */ |
6658 | if (unlikely(rt2800_wait_wpdma_ready(rt2x00dev) || | 6669 | if (unlikely(rt2800_wait_wpdma_ready(rt2x00dev) || |
6659 | rt2800_init_registers(rt2x00dev))) | 6670 | rt2800_init_registers(rt2x00dev))) |
6660 | return -EIO; | 6671 | return -EIO; |
6661 | 6672 | ||
6673 | /* | ||
6674 | * Wait BBP/RF to wake up. | ||
6675 | */ | ||
6662 | if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev))) | 6676 | if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev))) |
6663 | return -EIO; | 6677 | return -EIO; |
6664 | 6678 | ||
6665 | /* | 6679 | /* |
6666 | * Send signal to firmware during boot time. | 6680 | * Send signal during boot time to initialize firmware. |
6667 | */ | 6681 | */ |
6668 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); | 6682 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); |
6669 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); | 6683 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); |
@@ -6672,9 +6686,15 @@ int rt2800_enable_radio(struct rt2x00_dev *rt2x00dev) | |||
6672 | rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); | 6686 | rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); |
6673 | msleep(1); | 6687 | msleep(1); |
6674 | 6688 | ||
6689 | /* | ||
6690 | * Make sure BBP is up and running. | ||
6691 | */ | ||
6675 | if (unlikely(rt2800_wait_bbp_ready(rt2x00dev))) | 6692 | if (unlikely(rt2800_wait_bbp_ready(rt2x00dev))) |
6676 | return -EIO; | 6693 | return -EIO; |
6677 | 6694 | ||
6695 | /* | ||
6696 | * Initialize BBP/RF registers. | ||
6697 | */ | ||
6678 | rt2800_init_bbp(rt2x00dev); | 6698 | rt2800_init_bbp(rt2x00dev); |
6679 | rt2800_init_rfcsr(rt2x00dev); | 6699 | rt2800_init_rfcsr(rt2x00dev); |
6680 | 6700 | ||
@@ -7021,6 +7041,7 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
7021 | case RF3022: | 7041 | case RF3022: |
7022 | case RF3052: | 7042 | case RF3052: |
7023 | case RF3053: | 7043 | case RF3053: |
7044 | case RF3070: | ||
7024 | case RF3290: | 7045 | case RF3290: |
7025 | case RF3320: | 7046 | case RF3320: |
7026 | case RF3322: | 7047 | case RF3322: |
@@ -7543,6 +7564,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | |||
7543 | rt2x00_rf(rt2x00dev, RF2020) || | 7564 | rt2x00_rf(rt2x00dev, RF2020) || |
7544 | rt2x00_rf(rt2x00dev, RF3021) || | 7565 | rt2x00_rf(rt2x00dev, RF3021) || |
7545 | rt2x00_rf(rt2x00dev, RF3022) || | 7566 | rt2x00_rf(rt2x00dev, RF3022) || |
7567 | rt2x00_rf(rt2x00dev, RF3070) || | ||
7546 | rt2x00_rf(rt2x00dev, RF3290) || | 7568 | rt2x00_rf(rt2x00dev, RF3290) || |
7547 | rt2x00_rf(rt2x00dev, RF3320) || | 7569 | rt2x00_rf(rt2x00dev, RF3320) || |
7548 | rt2x00_rf(rt2x00dev, RF3322) || | 7570 | rt2x00_rf(rt2x00dev, RF3322) || |
@@ -7671,6 +7693,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | |||
7671 | case RF3320: | 7693 | case RF3320: |
7672 | case RF3052: | 7694 | case RF3052: |
7673 | case RF3053: | 7695 | case RF3053: |
7696 | case RF3070: | ||
7674 | case RF3290: | 7697 | case RF3290: |
7675 | case RF5360: | 7698 | case RF5360: |
7676 | case RF5370: | 7699 | case RF5370: |
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index 96961b9a395c..96677ce55da4 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c | |||
@@ -1176,6 +1176,8 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1176 | /* Linksys */ | 1176 | /* Linksys */ |
1177 | { USB_DEVICE(0x13b1, 0x002f) }, | 1177 | { USB_DEVICE(0x13b1, 0x002f) }, |
1178 | { USB_DEVICE(0x1737, 0x0079) }, | 1178 | { USB_DEVICE(0x1737, 0x0079) }, |
1179 | /* Logitec */ | ||
1180 | { USB_DEVICE(0x0789, 0x0170) }, | ||
1179 | /* Ralink */ | 1181 | /* Ralink */ |
1180 | { USB_DEVICE(0x148f, 0x3572) }, | 1182 | { USB_DEVICE(0x148f, 0x3572) }, |
1181 | /* Sitecom */ | 1183 | /* Sitecom */ |
@@ -1199,6 +1201,8 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1199 | { USB_DEVICE(0x050d, 0x1103) }, | 1201 | { USB_DEVICE(0x050d, 0x1103) }, |
1200 | /* Cameo */ | 1202 | /* Cameo */ |
1201 | { USB_DEVICE(0x148f, 0xf301) }, | 1203 | { USB_DEVICE(0x148f, 0xf301) }, |
1204 | /* D-Link */ | ||
1205 | { USB_DEVICE(0x2001, 0x3c1f) }, | ||
1202 | /* Edimax */ | 1206 | /* Edimax */ |
1203 | { USB_DEVICE(0x7392, 0x7733) }, | 1207 | { USB_DEVICE(0x7392, 0x7733) }, |
1204 | /* Hawking */ | 1208 | /* Hawking */ |
@@ -1212,6 +1216,7 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1212 | { USB_DEVICE(0x0789, 0x016b) }, | 1216 | { USB_DEVICE(0x0789, 0x016b) }, |
1213 | /* NETGEAR */ | 1217 | /* NETGEAR */ |
1214 | { USB_DEVICE(0x0846, 0x9012) }, | 1218 | { USB_DEVICE(0x0846, 0x9012) }, |
1219 | { USB_DEVICE(0x0846, 0x9013) }, | ||
1215 | { USB_DEVICE(0x0846, 0x9019) }, | 1220 | { USB_DEVICE(0x0846, 0x9019) }, |
1216 | /* Planex */ | 1221 | /* Planex */ |
1217 | { USB_DEVICE(0x2019, 0xed19) }, | 1222 | { USB_DEVICE(0x2019, 0xed19) }, |
@@ -1220,6 +1225,7 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1220 | /* Sitecom */ | 1225 | /* Sitecom */ |
1221 | { USB_DEVICE(0x0df6, 0x0067) }, | 1226 | { USB_DEVICE(0x0df6, 0x0067) }, |
1222 | { USB_DEVICE(0x0df6, 0x006a) }, | 1227 | { USB_DEVICE(0x0df6, 0x006a) }, |
1228 | { USB_DEVICE(0x0df6, 0x006e) }, | ||
1223 | /* ZyXEL */ | 1229 | /* ZyXEL */ |
1224 | { USB_DEVICE(0x0586, 0x3421) }, | 1230 | { USB_DEVICE(0x0586, 0x3421) }, |
1225 | #endif | 1231 | #endif |
@@ -1236,6 +1242,9 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1236 | { USB_DEVICE(0x2001, 0x3c1c) }, | 1242 | { USB_DEVICE(0x2001, 0x3c1c) }, |
1237 | { USB_DEVICE(0x2001, 0x3c1d) }, | 1243 | { USB_DEVICE(0x2001, 0x3c1d) }, |
1238 | { USB_DEVICE(0x2001, 0x3c1e) }, | 1244 | { USB_DEVICE(0x2001, 0x3c1e) }, |
1245 | { USB_DEVICE(0x2001, 0x3c20) }, | ||
1246 | { USB_DEVICE(0x2001, 0x3c22) }, | ||
1247 | { USB_DEVICE(0x2001, 0x3c23) }, | ||
1239 | /* LG innotek */ | 1248 | /* LG innotek */ |
1240 | { USB_DEVICE(0x043e, 0x7a22) }, | 1249 | { USB_DEVICE(0x043e, 0x7a22) }, |
1241 | { USB_DEVICE(0x043e, 0x7a42) }, | 1250 | { USB_DEVICE(0x043e, 0x7a42) }, |
@@ -1258,12 +1267,17 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1258 | { USB_DEVICE(0x043e, 0x7a32) }, | 1267 | { USB_DEVICE(0x043e, 0x7a32) }, |
1259 | /* AVM GmbH */ | 1268 | /* AVM GmbH */ |
1260 | { USB_DEVICE(0x057c, 0x8501) }, | 1269 | { USB_DEVICE(0x057c, 0x8501) }, |
1261 | /* D-Link DWA-160-B2 */ | 1270 | /* Buffalo */ |
1271 | { USB_DEVICE(0x0411, 0x0241) }, | ||
1272 | /* D-Link */ | ||
1262 | { USB_DEVICE(0x2001, 0x3c1a) }, | 1273 | { USB_DEVICE(0x2001, 0x3c1a) }, |
1274 | { USB_DEVICE(0x2001, 0x3c21) }, | ||
1263 | /* Proware */ | 1275 | /* Proware */ |
1264 | { USB_DEVICE(0x043e, 0x7a13) }, | 1276 | { USB_DEVICE(0x043e, 0x7a13) }, |
1265 | /* Ralink */ | 1277 | /* Ralink */ |
1266 | { USB_DEVICE(0x148f, 0x5572) }, | 1278 | { USB_DEVICE(0x148f, 0x5572) }, |
1279 | /* TRENDnet */ | ||
1280 | { USB_DEVICE(0x20f4, 0x724a) }, | ||
1267 | #endif | 1281 | #endif |
1268 | #ifdef CONFIG_RT2800USB_UNKNOWN | 1282 | #ifdef CONFIG_RT2800USB_UNKNOWN |
1269 | /* | 1283 | /* |
@@ -1333,6 +1347,7 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
1333 | { USB_DEVICE(0x1d4d, 0x0010) }, | 1347 | { USB_DEVICE(0x1d4d, 0x0010) }, |
1334 | /* Planex */ | 1348 | /* Planex */ |
1335 | { USB_DEVICE(0x2019, 0xab24) }, | 1349 | { USB_DEVICE(0x2019, 0xab24) }, |
1350 | { USB_DEVICE(0x2019, 0xab29) }, | ||
1336 | /* Qcom */ | 1351 | /* Qcom */ |
1337 | { USB_DEVICE(0x18e8, 0x6259) }, | 1352 | { USB_DEVICE(0x18e8, 0x6259) }, |
1338 | /* RadioShack */ | 1353 | /* RadioShack */ |