diff options
Diffstat (limited to 'drivers/media/usb/siano')
-rw-r--r-- | drivers/media/usb/siano/smsusb.c | 22 |
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 | ||
554 | static const struct usb_device_id smsusb_id_table[] = { | 565 | static 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), |