diff options
Diffstat (limited to 'drivers/scsi/qla1280.c')
-rw-r--r-- | drivers/scsi/qla1280.c | 72 |
1 files changed, 1 insertions, 71 deletions
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index 3732230b2e3a..9f975f7c1ea8 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c | |||
@@ -1733,69 +1733,6 @@ qla1280_initialize_adapter(struct scsi_qla_host *ha) | |||
1733 | return status; | 1733 | return status; |
1734 | } | 1734 | } |
1735 | 1735 | ||
1736 | |||
1737 | /* | ||
1738 | * ISP Firmware Test | ||
1739 | * Checks if present version of RISC firmware is older than | ||
1740 | * driver firmware. | ||
1741 | * | ||
1742 | * Input: | ||
1743 | * ha = adapter block pointer. | ||
1744 | * | ||
1745 | * Returns: | ||
1746 | * 0 = firmware does not need to be loaded. | ||
1747 | */ | ||
1748 | static int | ||
1749 | qla1280_isp_firmware(struct scsi_qla_host *ha) | ||
1750 | { | ||
1751 | struct nvram *nv = (struct nvram *) ha->response_ring; | ||
1752 | int status = 0; /* dg 2/27 always loads RISC */ | ||
1753 | uint16_t mb[MAILBOX_REGISTER_COUNT]; | ||
1754 | |||
1755 | ENTER("qla1280_isp_firmware"); | ||
1756 | |||
1757 | dprintk(1, "scsi(%li): Determining if RISC is loaded\n", ha->host_no); | ||
1758 | |||
1759 | /* Bad NVRAM data, load RISC code. */ | ||
1760 | if (!ha->nvram_valid) { | ||
1761 | ha->flags.disable_risc_code_load = 0; | ||
1762 | } else | ||
1763 | ha->flags.disable_risc_code_load = | ||
1764 | nv->cntr_flags_1.disable_loading_risc_code; | ||
1765 | |||
1766 | if (ha->flags.disable_risc_code_load) { | ||
1767 | dprintk(3, "qla1280_isp_firmware: Telling RISC to verify " | ||
1768 | "checksum of loaded BIOS code.\n"); | ||
1769 | |||
1770 | /* Verify checksum of loaded RISC code. */ | ||
1771 | mb[0] = MBC_VERIFY_CHECKSUM; | ||
1772 | /* mb[1] = ql12_risc_code_addr01; */ | ||
1773 | mb[1] = *ql1280_board_tbl[ha->devnum].fwstart; | ||
1774 | |||
1775 | if (!(status = | ||
1776 | qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]))) { | ||
1777 | /* Start firmware execution. */ | ||
1778 | dprintk(3, "qla1280_isp_firmware: Startng F/W " | ||
1779 | "execution.\n"); | ||
1780 | |||
1781 | mb[0] = MBC_EXECUTE_FIRMWARE; | ||
1782 | /* mb[1] = ql12_risc_code_addr01; */ | ||
1783 | mb[1] = *ql1280_board_tbl[ha->devnum].fwstart; | ||
1784 | qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]); | ||
1785 | } else | ||
1786 | printk(KERN_INFO "qla1280: RISC checksum failed.\n"); | ||
1787 | } else { | ||
1788 | dprintk(1, "qla1280: NVRAM configured to load RISC load.\n"); | ||
1789 | status = 1; | ||
1790 | } | ||
1791 | |||
1792 | if (status) | ||
1793 | dprintk(2, "qla1280_isp_firmware: **** Load RISC code ****\n"); | ||
1794 | |||
1795 | LEAVE("qla1280_isp_firmware"); | ||
1796 | return status; | ||
1797 | } | ||
1798 | |||
1799 | /* | 1736 | /* |
1800 | * Chip diagnostics | 1737 | * Chip diagnostics |
1801 | * Test chip for proper operation. | 1738 | * Test chip for proper operation. |
@@ -2080,14 +2017,7 @@ qla1280_start_firmware(struct scsi_qla_host *ha) | |||
2080 | static int | 2017 | static int |
2081 | qla1280_load_firmware(struct scsi_qla_host *ha) | 2018 | qla1280_load_firmware(struct scsi_qla_host *ha) |
2082 | { | 2019 | { |
2083 | int err = -ENODEV; | 2020 | int err; |
2084 | |||
2085 | /* If firmware needs to be loaded */ | ||
2086 | if (!qla1280_isp_firmware(ha)) { | ||
2087 | printk(KERN_ERR "scsi(%li): isp_firmware() failed!\n", | ||
2088 | ha->host_no); | ||
2089 | goto out; | ||
2090 | } | ||
2091 | 2021 | ||
2092 | err = qla1280_chip_diag(ha); | 2022 | err = qla1280_chip_diag(ha); |
2093 | if (err) | 2023 | if (err) |