USB: ti_usb_3410_5052: fix big-endian firmware handling
Fix endianess bugs in firmware handling introduced by commitscb7a7c6a
("ti_usb_3410_5052: add Multi-Tech modem support") and05a3d905
("ti_usb_3410_5052: support alternate firmware") which made the driver use the wrong firmware for certain devices on big-endian machines. Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d482b9d558
commit
e877dd2f25
1 changed files with 5 additions and 4 deletions
|
@ -1536,14 +1536,15 @@ static int ti_download_firmware(struct ti_device *tdev)
|
|||
char buf[32];
|
||||
|
||||
/* try ID specific firmware first, then try generic firmware */
|
||||
sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor,
|
||||
dev->descriptor.idProduct);
|
||||
sprintf(buf, "ti_usb-v%04x-p%04x.fw",
|
||||
le16_to_cpu(dev->descriptor.idVendor),
|
||||
le16_to_cpu(dev->descriptor.idProduct));
|
||||
status = request_firmware(&fw_p, buf, &dev->dev);
|
||||
|
||||
if (status != 0) {
|
||||
buf[0] = '\0';
|
||||
if (dev->descriptor.idVendor == MTS_VENDOR_ID) {
|
||||
switch (dev->descriptor.idProduct) {
|
||||
if (le16_to_cpu(dev->descriptor.idVendor) == MTS_VENDOR_ID) {
|
||||
switch (le16_to_cpu(dev->descriptor.idProduct)) {
|
||||
case MTS_CDMA_PRODUCT_ID:
|
||||
strcpy(buf, "mts_cdma.fw");
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue