diff options
Diffstat (limited to 'drivers/atm/solos-pci.c')
-rw-r--r-- | drivers/atm/solos-pci.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index c5f5186d62a3..51eed679a059 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c | |||
@@ -142,6 +142,9 @@ MODULE_AUTHOR("Traverse Technologies <support@traverse.com.au>"); | |||
142 | MODULE_DESCRIPTION("Solos PCI driver"); | 142 | MODULE_DESCRIPTION("Solos PCI driver"); |
143 | MODULE_VERSION(VERSION); | 143 | MODULE_VERSION(VERSION); |
144 | MODULE_LICENSE("GPL"); | 144 | MODULE_LICENSE("GPL"); |
145 | MODULE_FIRMWARE("solos-FPGA.bin"); | ||
146 | MODULE_FIRMWARE("solos-Firmware.bin"); | ||
147 | MODULE_FIRMWARE("solos-db-FPGA.bin"); | ||
145 | MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); | 148 | MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); |
146 | MODULE_PARM_DESC(atmdebug, "Print ATM data"); | 149 | MODULE_PARM_DESC(atmdebug, "Print ATM data"); |
147 | MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade"); | 150 | MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade"); |
@@ -528,34 +531,37 @@ static int flash_upgrade(struct solos_card *card, int chip) | |||
528 | int numblocks = 0; | 531 | int numblocks = 0; |
529 | int offset; | 532 | int offset; |
530 | 533 | ||
531 | if (chip == 0) { | 534 | switch (chip) { |
535 | case 0: | ||
532 | fw_name = "solos-FPGA.bin"; | 536 | fw_name = "solos-FPGA.bin"; |
533 | blocksize = FPGA_BLOCK; | 537 | blocksize = FPGA_BLOCK; |
534 | } | 538 | break; |
535 | 539 | case 1: | |
536 | if (chip == 1) { | ||
537 | fw_name = "solos-Firmware.bin"; | 540 | fw_name = "solos-Firmware.bin"; |
538 | blocksize = SOLOS_BLOCK; | 541 | blocksize = SOLOS_BLOCK; |
539 | } | 542 | break; |
540 | 543 | case 2: | |
541 | if (chip == 2){ | ||
542 | if (card->fpga_version > LEGACY_BUFFERS){ | 544 | if (card->fpga_version > LEGACY_BUFFERS){ |
543 | fw_name = "solos-db-FPGA.bin"; | 545 | fw_name = "solos-db-FPGA.bin"; |
544 | blocksize = FPGA_BLOCK; | 546 | blocksize = FPGA_BLOCK; |
545 | } else { | 547 | } else { |
546 | dev_info(&card->dev->dev, "FPGA version doesn't support daughter board upgrades\n"); | 548 | dev_info(&card->dev->dev, "FPGA version doesn't support" |
549 | " daughter board upgrades\n"); | ||
547 | return -EPERM; | 550 | return -EPERM; |
548 | } | 551 | } |
549 | } | 552 | break; |
550 | 553 | case 3: | |
551 | if (chip == 3){ | ||
552 | if (card->fpga_version > LEGACY_BUFFERS){ | 554 | if (card->fpga_version > LEGACY_BUFFERS){ |
553 | fw_name = "solos-Firmware.bin"; | 555 | fw_name = "solos-Firmware.bin"; |
554 | blocksize = SOLOS_BLOCK; | 556 | blocksize = SOLOS_BLOCK; |
555 | } else { | 557 | } else { |
556 | dev_info(&card->dev->dev, "FPGA version doesn't support daughter board upgrades\n"); | 558 | dev_info(&card->dev->dev, "FPGA version doesn't support" |
557 | return -EPERM; | 559 | " daughter board upgrades\n"); |
560 | return -EPERM; | ||
558 | } | 561 | } |
562 | break; | ||
563 | default: | ||
564 | return -ENODEV; | ||
559 | } | 565 | } |
560 | 566 | ||
561 | if (request_firmware(&fw, fw_name, &card->dev->dev)) | 567 | if (request_firmware(&fw, fw_name, &card->dev->dev)) |