diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/atm/solos-pci.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (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.c | 33 |
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>"); | |||
142 | MODULE_DESCRIPTION("Solos PCI driver"); | 143 | MODULE_DESCRIPTION("Solos PCI driver"); |
143 | MODULE_VERSION(VERSION); | 144 | MODULE_VERSION(VERSION); |
144 | MODULE_LICENSE("GPL"); | 145 | MODULE_LICENSE("GPL"); |
146 | MODULE_FIRMWARE("solos-FPGA.bin"); | ||
147 | MODULE_FIRMWARE("solos-Firmware.bin"); | ||
148 | MODULE_FIRMWARE("solos-db-FPGA.bin"); | ||
145 | MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); | 149 | MODULE_PARM_DESC(reset, "Reset Solos chips on startup"); |
146 | MODULE_PARM_DESC(atmdebug, "Print ATM data"); | 150 | MODULE_PARM_DESC(atmdebug, "Print ATM data"); |
147 | MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade"); | 151 | MODULE_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)) |