aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/atm/solos-pci.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/atm/solos-pci.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/atm/solos-pci.c')
-rw-r--r--drivers/atm/solos-pci.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index c5f5186d62a3..ded76c4c9f4f 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -40,6 +40,7 @@
40#include <linux/firmware.h> 40#include <linux/firmware.h>
41#include <linux/ctype.h> 41#include <linux/ctype.h>
42#include <linux/swab.h> 42#include <linux/swab.h>
43#include <linux/slab.h>
43 44
44#define VERSION "0.07" 45#define VERSION "0.07"
45#define PTAG "solos-pci" 46#define PTAG "solos-pci"
@@ -142,6 +143,9 @@ MODULE_AUTHOR("Traverse Technologies <support@traverse.com.au>");
142MODULE_DESCRIPTION("Solos PCI driver"); 143MODULE_DESCRIPTION("Solos PCI driver");
143MODULE_VERSION(VERSION); 144MODULE_VERSION(VERSION);
144MODULE_LICENSE("GPL"); 145MODULE_LICENSE("GPL");
146MODULE_FIRMWARE("solos-FPGA.bin");
147MODULE_FIRMWARE("solos-Firmware.bin");
148MODULE_FIRMWARE("solos-db-FPGA.bin");
145MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); 149MODULE_PARM_DESC(reset, "Reset Solos chips on startup");
146MODULE_PARM_DESC(atmdebug, "Print ATM data"); 150MODULE_PARM_DESC(atmdebug, "Print ATM data");
147MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade"); 151MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade");
@@ -528,34 +532,37 @@ static int flash_upgrade(struct solos_card *card, int chip)
528 int numblocks = 0; 532 int numblocks = 0;
529 int offset; 533 int offset;
530 534
531 if (chip == 0) { 535 switch (chip) {
536 case 0:
532 fw_name = "solos-FPGA.bin"; 537 fw_name = "solos-FPGA.bin";
533 blocksize = FPGA_BLOCK; 538 blocksize = FPGA_BLOCK;
534 } 539 break;
535 540 case 1:
536 if (chip == 1) {
537 fw_name = "solos-Firmware.bin"; 541 fw_name = "solos-Firmware.bin";
538 blocksize = SOLOS_BLOCK; 542 blocksize = SOLOS_BLOCK;
539 } 543 break;
540 544 case 2:
541 if (chip == 2){
542 if (card->fpga_version > LEGACY_BUFFERS){ 545 if (card->fpga_version > LEGACY_BUFFERS){
543 fw_name = "solos-db-FPGA.bin"; 546 fw_name = "solos-db-FPGA.bin";
544 blocksize = FPGA_BLOCK; 547 blocksize = FPGA_BLOCK;
545 } else { 548 } else {
546 dev_info(&card->dev->dev, "FPGA version doesn't support daughter board upgrades\n"); 549 dev_info(&card->dev->dev, "FPGA version doesn't support"
550 " daughter board upgrades\n");
547 return -EPERM; 551 return -EPERM;
548 } 552 }
549 } 553 break;
550 554 case 3:
551 if (chip == 3){
552 if (card->fpga_version > LEGACY_BUFFERS){ 555 if (card->fpga_version > LEGACY_BUFFERS){
553 fw_name = "solos-Firmware.bin"; 556 fw_name = "solos-Firmware.bin";
554 blocksize = SOLOS_BLOCK; 557 blocksize = SOLOS_BLOCK;
555 } else { 558 } else {
556 dev_info(&card->dev->dev, "FPGA version doesn't support daughter board upgrades\n"); 559 dev_info(&card->dev->dev, "FPGA version doesn't support"
557 return -EPERM; 560 " daughter board upgrades\n");
561 return -EPERM;
558 } 562 }
563 break;
564 default:
565 return -ENODEV;
559 } 566 }
560 567
561 if (request_firmware(&fw, fw_name, &card->dev->dev)) 568 if (request_firmware(&fw, fw_name, &card->dev->dev))