aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/atm/solos-pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atm/solos-pci.c')
-rw-r--r--drivers/atm/solos-pci.c32
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>");
142MODULE_DESCRIPTION("Solos PCI driver"); 142MODULE_DESCRIPTION("Solos PCI driver");
143MODULE_VERSION(VERSION); 143MODULE_VERSION(VERSION);
144MODULE_LICENSE("GPL"); 144MODULE_LICENSE("GPL");
145MODULE_FIRMWARE("solos-FPGA.bin");
146MODULE_FIRMWARE("solos-Firmware.bin");
147MODULE_FIRMWARE("solos-db-FPGA.bin");
145MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); 148MODULE_PARM_DESC(reset, "Reset Solos chips on startup");
146MODULE_PARM_DESC(atmdebug, "Print ATM data"); 149MODULE_PARM_DESC(atmdebug, "Print ATM data");
147MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade"); 150MODULE_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))