aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/siano
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/usb/siano')
-rw-r--r--drivers/media/usb/siano/smsusb.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c
index 74236b8007c7..33f357510194 100644
--- a/drivers/media/usb/siano/smsusb.c
+++ b/drivers/media/usb/siano/smsusb.c
@@ -491,15 +491,26 @@ static int smsusb_probe(struct usb_interface *intf,
491 } 491 }
492 492
493 if (id->driver_info == SMS1XXX_BOARD_SIANO_STELLAR_ROM) { 493 if (id->driver_info == SMS1XXX_BOARD_SIANO_STELLAR_ROM) {
494 /* Detected a Siano Stellar uninitialized */
495
494 snprintf(devpath, sizeof(devpath), "usb\\%d-%s", 496 snprintf(devpath, sizeof(devpath), "usb\\%d-%s",
495 udev->bus->busnum, udev->devpath); 497 udev->bus->busnum, udev->devpath);
496 sms_info("stellar device was found."); 498 sms_info("stellar device in cold state was found at %s.", devpath);
497 return smsusb1_load_firmware( 499 rc = smsusb1_load_firmware(
498 udev, smscore_registry_getmode(devpath), 500 udev, smscore_registry_getmode(devpath),
499 id->driver_info); 501 id->driver_info);
502
503 /* This device will reset and gain another USB ID */
504 if (!rc)
505 sms_info("stellar device now in warm state");
506 else
507 sms_err("Failed to put stellar in warm state. Error: %d", rc);
508
509 return rc;
510 } else {
511 rc = smsusb_init_device(intf, id->driver_info);
500 } 512 }
501 513
502 rc = smsusb_init_device(intf, id->driver_info);
503 sms_info("Device initialized with return code %d", rc); 514 sms_info("Device initialized with return code %d", rc);
504 sms_board_load_modules(id->driver_info); 515 sms_board_load_modules(id->driver_info);
505 return rc; 516 return rc;
@@ -552,10 +563,13 @@ static int smsusb_resume(struct usb_interface *intf)
552} 563}
553 564
554static const struct usb_device_id smsusb_id_table[] = { 565static const struct usb_device_id smsusb_id_table[] = {
566 /* This device is only present before firmware load */
555 { USB_DEVICE(0x187f, 0x0010), 567 { USB_DEVICE(0x187f, 0x0010),
556 .driver_info = SMS1XXX_BOARD_SIANO_STELLAR }, 568 .driver_info = SMS1XXX_BOARD_SIANO_STELLAR_ROM },
569 /* This device pops up after firmware load */
557 { USB_DEVICE(0x187f, 0x0100), 570 { USB_DEVICE(0x187f, 0x0100),
558 .driver_info = SMS1XXX_BOARD_SIANO_STELLAR }, 571 .driver_info = SMS1XXX_BOARD_SIANO_STELLAR },
572
559 { USB_DEVICE(0x187f, 0x0200), 573 { USB_DEVICE(0x187f, 0x0200),
560 .driver_info = SMS1XXX_BOARD_SIANO_NOVA_A }, 574 .driver_info = SMS1XXX_BOARD_SIANO_NOVA_A },
561 { USB_DEVICE(0x187f, 0x0201), 575 { USB_DEVICE(0x187f, 0x0201),