aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_os.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c175
1 files changed, 142 insertions, 33 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 9207aeb3cdbe..f92b22bca7ea 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1247,7 +1247,7 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd)
1247 if (qla2x00_vp_abort_isp(vha)) 1247 if (qla2x00_vp_abort_isp(vha))
1248 goto eh_host_reset_lock; 1248 goto eh_host_reset_lock;
1249 } else { 1249 } else {
1250 if (IS_QLA82XX(vha->hw)) { 1250 if (IS_P3P_TYPE(vha->hw)) {
1251 if (!qla82xx_fcoe_ctx_reset(vha)) { 1251 if (!qla82xx_fcoe_ctx_reset(vha)) {
1252 /* Ctx reset success */ 1252 /* Ctx reset success */
1253 ret = SUCCESS; 1253 ret = SUCCESS;
@@ -1911,7 +1911,7 @@ static struct isp_operations qla2300_isp_ops = {
1911 .get_flash_version = qla2x00_get_flash_version, 1911 .get_flash_version = qla2x00_get_flash_version,
1912 .start_scsi = qla2x00_start_scsi, 1912 .start_scsi = qla2x00_start_scsi,
1913 .abort_isp = qla2x00_abort_isp, 1913 .abort_isp = qla2x00_abort_isp,
1914 .iospace_config = qla2x00_iospace_config, 1914 .iospace_config = qla2x00_iospace_config,
1915 .initialize_adapter = qla2x00_initialize_adapter, 1915 .initialize_adapter = qla2x00_initialize_adapter,
1916}; 1916};
1917 1917
@@ -1949,7 +1949,7 @@ static struct isp_operations qla24xx_isp_ops = {
1949 .get_flash_version = qla24xx_get_flash_version, 1949 .get_flash_version = qla24xx_get_flash_version,
1950 .start_scsi = qla24xx_start_scsi, 1950 .start_scsi = qla24xx_start_scsi,
1951 .abort_isp = qla2x00_abort_isp, 1951 .abort_isp = qla2x00_abort_isp,
1952 .iospace_config = qla2x00_iospace_config, 1952 .iospace_config = qla2x00_iospace_config,
1953 .initialize_adapter = qla2x00_initialize_adapter, 1953 .initialize_adapter = qla2x00_initialize_adapter,
1954}; 1954};
1955 1955
@@ -1987,7 +1987,7 @@ static struct isp_operations qla25xx_isp_ops = {
1987 .get_flash_version = qla24xx_get_flash_version, 1987 .get_flash_version = qla24xx_get_flash_version,
1988 .start_scsi = qla24xx_dif_start_scsi, 1988 .start_scsi = qla24xx_dif_start_scsi,
1989 .abort_isp = qla2x00_abort_isp, 1989 .abort_isp = qla2x00_abort_isp,
1990 .iospace_config = qla2x00_iospace_config, 1990 .iospace_config = qla2x00_iospace_config,
1991 .initialize_adapter = qla2x00_initialize_adapter, 1991 .initialize_adapter = qla2x00_initialize_adapter,
1992}; 1992};
1993 1993
@@ -2025,7 +2025,7 @@ static struct isp_operations qla81xx_isp_ops = {
2025 .get_flash_version = qla24xx_get_flash_version, 2025 .get_flash_version = qla24xx_get_flash_version,
2026 .start_scsi = qla24xx_dif_start_scsi, 2026 .start_scsi = qla24xx_dif_start_scsi,
2027 .abort_isp = qla2x00_abort_isp, 2027 .abort_isp = qla2x00_abort_isp,
2028 .iospace_config = qla2x00_iospace_config, 2028 .iospace_config = qla2x00_iospace_config,
2029 .initialize_adapter = qla2x00_initialize_adapter, 2029 .initialize_adapter = qla2x00_initialize_adapter,
2030}; 2030};
2031 2031
@@ -2060,13 +2060,51 @@ static struct isp_operations qla82xx_isp_ops = {
2060 .beacon_blink = NULL, 2060 .beacon_blink = NULL,
2061 .read_optrom = qla82xx_read_optrom_data, 2061 .read_optrom = qla82xx_read_optrom_data,
2062 .write_optrom = qla82xx_write_optrom_data, 2062 .write_optrom = qla82xx_write_optrom_data,
2063 .get_flash_version = qla24xx_get_flash_version, 2063 .get_flash_version = qla82xx_get_flash_version,
2064 .start_scsi = qla82xx_start_scsi, 2064 .start_scsi = qla82xx_start_scsi,
2065 .abort_isp = qla82xx_abort_isp, 2065 .abort_isp = qla82xx_abort_isp,
2066 .iospace_config = qla82xx_iospace_config, 2066 .iospace_config = qla82xx_iospace_config,
2067 .initialize_adapter = qla2x00_initialize_adapter, 2067 .initialize_adapter = qla2x00_initialize_adapter,
2068}; 2068};
2069 2069
2070static struct isp_operations qla8044_isp_ops = {
2071 .pci_config = qla82xx_pci_config,
2072 .reset_chip = qla82xx_reset_chip,
2073 .chip_diag = qla24xx_chip_diag,
2074 .config_rings = qla82xx_config_rings,
2075 .reset_adapter = qla24xx_reset_adapter,
2076 .nvram_config = qla81xx_nvram_config,
2077 .update_fw_options = qla24xx_update_fw_options,
2078 .load_risc = qla82xx_load_risc,
2079 .pci_info_str = qla24xx_pci_info_str,
2080 .fw_version_str = qla24xx_fw_version_str,
2081 .intr_handler = qla8044_intr_handler,
2082 .enable_intrs = qla82xx_enable_intrs,
2083 .disable_intrs = qla82xx_disable_intrs,
2084 .abort_command = qla24xx_abort_command,
2085 .target_reset = qla24xx_abort_target,
2086 .lun_reset = qla24xx_lun_reset,
2087 .fabric_login = qla24xx_login_fabric,
2088 .fabric_logout = qla24xx_fabric_logout,
2089 .calc_req_entries = NULL,
2090 .build_iocbs = NULL,
2091 .prep_ms_iocb = qla24xx_prep_ms_iocb,
2092 .prep_ms_fdmi_iocb = qla24xx_prep_ms_fdmi_iocb,
2093 .read_nvram = NULL,
2094 .write_nvram = NULL,
2095 .fw_dump = qla24xx_fw_dump,
2096 .beacon_on = qla82xx_beacon_on,
2097 .beacon_off = qla82xx_beacon_off,
2098 .beacon_blink = NULL,
2099 .read_optrom = qla82xx_read_optrom_data,
2100 .write_optrom = qla8044_write_optrom_data,
2101 .get_flash_version = qla82xx_get_flash_version,
2102 .start_scsi = qla82xx_start_scsi,
2103 .abort_isp = qla8044_abort_isp,
2104 .iospace_config = qla82xx_iospace_config,
2105 .initialize_adapter = qla2x00_initialize_adapter,
2106};
2107
2070static struct isp_operations qla83xx_isp_ops = { 2108static struct isp_operations qla83xx_isp_ops = {
2071 .pci_config = qla25xx_pci_config, 2109 .pci_config = qla25xx_pci_config,
2072 .reset_chip = qla24xx_reset_chip, 2110 .reset_chip = qla24xx_reset_chip,
@@ -2237,6 +2275,14 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
2237 /* Initialize 82XX ISP flags */ 2275 /* Initialize 82XX ISP flags */
2238 qla82xx_init_flags(ha); 2276 qla82xx_init_flags(ha);
2239 break; 2277 break;
2278 case PCI_DEVICE_ID_QLOGIC_ISP8044:
2279 ha->device_type |= DT_ISP8044;
2280 ha->device_type |= DT_ZIO_SUPPORTED;
2281 ha->device_type |= DT_FWI2;
2282 ha->fw_srisc_address = RISC_START_ADDRESS_2400;
2283 /* Initialize 82XX ISP flags */
2284 qla82xx_init_flags(ha);
2285 break;
2240 case PCI_DEVICE_ID_QLOGIC_ISP2031: 2286 case PCI_DEVICE_ID_QLOGIC_ISP2031:
2241 ha->device_type |= DT_ISP2031; 2287 ha->device_type |= DT_ISP2031;
2242 ha->device_type |= DT_ZIO_SUPPORTED; 2288 ha->device_type |= DT_ZIO_SUPPORTED;
@@ -2317,7 +2363,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
2317 uint16_t req_length = 0, rsp_length = 0; 2363 uint16_t req_length = 0, rsp_length = 0;
2318 struct req_que *req = NULL; 2364 struct req_que *req = NULL;
2319 struct rsp_que *rsp = NULL; 2365 struct rsp_que *rsp = NULL;
2320
2321 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); 2366 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
2322 sht = &qla2xxx_driver_template; 2367 sht = &qla2xxx_driver_template;
2323 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 || 2368 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 ||
@@ -2330,7 +2375,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
2330 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8021 || 2375 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8021 ||
2331 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2031 || 2376 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2031 ||
2332 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8031 || 2377 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8031 ||
2333 pdev->device == PCI_DEVICE_ID_QLOGIC_ISPF001) { 2378 pdev->device == PCI_DEVICE_ID_QLOGIC_ISPF001 ||
2379 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8044) {
2334 bars = pci_select_bars(pdev, IORESOURCE_MEM); 2380 bars = pci_select_bars(pdev, IORESOURCE_MEM);
2335 mem_only = 1; 2381 mem_only = 1;
2336 ql_dbg_pci(ql_dbg_init, pdev, 0x0007, 2382 ql_dbg_pci(ql_dbg_init, pdev, 0x0007,
@@ -2484,6 +2530,21 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
2484 ha->flash_data_off = FARX_ACCESS_FLASH_DATA; 2530 ha->flash_data_off = FARX_ACCESS_FLASH_DATA;
2485 ha->nvram_conf_off = FARX_ACCESS_NVRAM_CONF; 2531 ha->nvram_conf_off = FARX_ACCESS_NVRAM_CONF;
2486 ha->nvram_data_off = FARX_ACCESS_NVRAM_DATA; 2532 ha->nvram_data_off = FARX_ACCESS_NVRAM_DATA;
2533 } else if (IS_QLA8044(ha)) {
2534 ha->max_fibre_devices = MAX_FIBRE_DEVICES_2400;
2535 ha->mbx_count = MAILBOX_REGISTER_COUNT;
2536 req_length = REQUEST_ENTRY_CNT_82XX;
2537 rsp_length = RESPONSE_ENTRY_CNT_82XX;
2538 ha->max_loop_id = SNS_LAST_LOOP_ID_2300;
2539 ha->init_cb_size = sizeof(struct mid_init_cb_81xx);
2540 ha->gid_list_info_size = 8;
2541 ha->optrom_size = OPTROM_SIZE_83XX;
2542 ha->nvram_npiv_size = QLA_MAX_VPORTS_QLA25XX;
2543 ha->isp_ops = &qla8044_isp_ops;
2544 ha->flash_conf_off = FARX_ACCESS_FLASH_CONF;
2545 ha->flash_data_off = FARX_ACCESS_FLASH_DATA;
2546 ha->nvram_conf_off = FARX_ACCESS_NVRAM_CONF;
2547 ha->nvram_data_off = FARX_ACCESS_NVRAM_DATA;
2487 } else if (IS_QLA83XX(ha)) { 2548 } else if (IS_QLA83XX(ha)) {
2488 ha->portnum = PCI_FUNC(ha->pdev->devfn); 2549 ha->portnum = PCI_FUNC(ha->pdev->devfn);
2489 ha->max_fibre_devices = MAX_FIBRE_DEVICES_2400; 2550 ha->max_fibre_devices = MAX_FIBRE_DEVICES_2400;
@@ -2676,7 +2737,7 @@ que_init:
2676 rsp->rsp_q_out = &ha->iobase->ispfx00.rsp_q_out; 2737 rsp->rsp_q_out = &ha->iobase->ispfx00.rsp_q_out;
2677 } 2738 }
2678 2739
2679 if (IS_QLA82XX(ha)) { 2740 if (IS_P3P_TYPE(ha)) {
2680 req->req_q_out = &ha->iobase->isp82.req_q_out[0]; 2741 req->req_q_out = &ha->iobase->isp82.req_q_out[0];
2681 rsp->rsp_q_in = &ha->iobase->isp82.rsp_q_in[0]; 2742 rsp->rsp_q_in = &ha->iobase->isp82.rsp_q_in[0];
2682 rsp->rsp_q_out = &ha->iobase->isp82.rsp_q_out[0]; 2743 rsp->rsp_q_out = &ha->iobase->isp82.rsp_q_out[0];
@@ -2709,6 +2770,14 @@ que_init:
2709 qla82xx_idc_unlock(ha); 2770 qla82xx_idc_unlock(ha);
2710 ql_log(ql_log_fatal, base_vha, 0x00d7, 2771 ql_log(ql_log_fatal, base_vha, 0x00d7,
2711 "HW State: FAILED.\n"); 2772 "HW State: FAILED.\n");
2773 } else if (IS_QLA8044(ha)) {
2774 qla8044_idc_lock(ha);
2775 qla8044_wr_direct(base_vha,
2776 QLA8044_CRB_DEV_STATE_INDEX,
2777 QLA8XXX_DEV_FAILED);
2778 qla8044_idc_unlock(ha);
2779 ql_log(ql_log_fatal, base_vha, 0x0150,
2780 "HW State: FAILED.\n");
2712 } 2781 }
2713 2782
2714 ret = -ENODEV; 2783 ret = -ENODEV;
@@ -2881,8 +2950,13 @@ probe_hw_failed:
2881 qla82xx_clear_drv_active(ha); 2950 qla82xx_clear_drv_active(ha);
2882 qla82xx_idc_unlock(ha); 2951 qla82xx_idc_unlock(ha);
2883 } 2952 }
2953 if (IS_QLA8044(ha)) {
2954 qla8044_idc_lock(ha);
2955 qla8044_clear_drv_active(base_vha);
2956 qla8044_idc_unlock(ha);
2957 }
2884iospace_config_failed: 2958iospace_config_failed:
2885 if (IS_QLA82XX(ha)) { 2959 if (IS_P3P_TYPE(ha)) {
2886 if (!ha->nx_pcibase) 2960 if (!ha->nx_pcibase)
2887 iounmap((device_reg_t __iomem *)ha->nx_pcibase); 2961 iounmap((device_reg_t __iomem *)ha->nx_pcibase);
2888 if (!ql2xdbwr) 2962 if (!ql2xdbwr)
@@ -3061,6 +3135,11 @@ qla2x00_remove_one(struct pci_dev *pdev)
3061 3135
3062 scsi_host_put(base_vha->host); 3136 scsi_host_put(base_vha->host);
3063 3137
3138 if (IS_QLA8044(ha)) {
3139 qla8044_idc_lock(ha);
3140 qla8044_clear_drv_active(base_vha);
3141 qla8044_idc_unlock(ha);
3142 }
3064 if (IS_QLA82XX(ha)) { 3143 if (IS_QLA82XX(ha)) {
3065 qla82xx_idc_lock(ha); 3144 qla82xx_idc_lock(ha);
3066 qla82xx_clear_drv_active(ha); 3145 qla82xx_clear_drv_active(ha);
@@ -3284,7 +3363,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
3284 if (!ha->srb_mempool) 3363 if (!ha->srb_mempool)
3285 goto fail_free_gid_list; 3364 goto fail_free_gid_list;
3286 3365
3287 if (IS_QLA82XX(ha)) { 3366 if (IS_P3P_TYPE(ha)) {
3288 /* Allocate cache for CT6 Ctx. */ 3367 /* Allocate cache for CT6 Ctx. */
3289 if (!ctx_cachep) { 3368 if (!ctx_cachep) {
3290 ctx_cachep = kmem_cache_create("qla2xxx_ctx", 3369 ctx_cachep = kmem_cache_create("qla2xxx_ctx",
@@ -3318,7 +3397,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
3318 "init_cb=%p gid_list=%p, srb_mempool=%p s_dma_pool=%p.\n", 3397 "init_cb=%p gid_list=%p, srb_mempool=%p s_dma_pool=%p.\n",
3319 ha->init_cb, ha->gid_list, ha->srb_mempool, ha->s_dma_pool); 3398 ha->init_cb, ha->gid_list, ha->srb_mempool, ha->s_dma_pool);
3320 3399
3321 if (IS_QLA82XX(ha) || ql2xenabledif) { 3400 if (IS_P3P_TYPE(ha) || ql2xenabledif) {
3322 ha->dl_dma_pool = dma_pool_create(name, &ha->pdev->dev, 3401 ha->dl_dma_pool = dma_pool_create(name, &ha->pdev->dev,
3323 DSD_LIST_DMA_POOL_SIZE, 8, 0); 3402 DSD_LIST_DMA_POOL_SIZE, 8, 0);
3324 if (!ha->dl_dma_pool) { 3403 if (!ha->dl_dma_pool) {
@@ -3526,7 +3605,7 @@ fail:
3526* Frees fw dump stuff. 3605* Frees fw dump stuff.
3527* 3606*
3528* Input: 3607* Input:
3529* ha = adapter block pointer. 3608* ha = adapter block pointer
3530*/ 3609*/
3531static void 3610static void
3532qla2x00_free_fw_dump(struct qla_hw_data *ha) 3611qla2x00_free_fw_dump(struct qla_hw_data *ha)
@@ -4693,17 +4772,33 @@ qla2x00_do_dpc(void *data)
4693 4772
4694 qla2x00_do_work(base_vha); 4773 qla2x00_do_work(base_vha);
4695 4774
4696 if (IS_QLA82XX(ha)) { 4775 if (IS_P3P_TYPE(ha)) {
4697 if (test_and_clear_bit(ISP_UNRECOVERABLE, 4776 if (IS_QLA8044(ha)) {
4698 &base_vha->dpc_flags)) { 4777 if (test_and_clear_bit(ISP_UNRECOVERABLE,
4699 qla82xx_idc_lock(ha); 4778 &base_vha->dpc_flags)) {
4700 qla82xx_wr_32(ha, QLA82XX_CRB_DEV_STATE, 4779 qla8044_idc_lock(ha);
4701 QLA8XXX_DEV_FAILED); 4780 qla8044_wr_direct(base_vha,
4702 qla82xx_idc_unlock(ha); 4781 QLA8044_CRB_DEV_STATE_INDEX,
4703 ql_log(ql_log_info, base_vha, 0x4004, 4782 QLA8XXX_DEV_FAILED);
4704 "HW State: FAILED.\n"); 4783 qla8044_idc_unlock(ha);
4705 qla82xx_device_state_handler(base_vha); 4784 ql_log(ql_log_info, base_vha, 0x4004,
4706 continue; 4785 "HW State: FAILED.\n");
4786 qla8044_device_state_handler(base_vha);
4787 continue;
4788 }
4789
4790 } else {
4791 if (test_and_clear_bit(ISP_UNRECOVERABLE,
4792 &base_vha->dpc_flags)) {
4793 qla82xx_idc_lock(ha);
4794 qla82xx_wr_32(ha, QLA82XX_CRB_DEV_STATE,
4795 QLA8XXX_DEV_FAILED);
4796 qla82xx_idc_unlock(ha);
4797 ql_log(ql_log_info, base_vha, 0x0151,
4798 "HW State: FAILED.\n");
4799 qla82xx_device_state_handler(base_vha);
4800 continue;
4801 }
4707 } 4802 }
4708 4803
4709 if (test_and_clear_bit(FCOE_CTX_RESET_NEEDED, 4804 if (test_and_clear_bit(FCOE_CTX_RESET_NEEDED,
@@ -4803,16 +4898,26 @@ qla2x00_do_dpc(void *data)
4803 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { 4898 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) {
4804 ql_dbg(ql_dbg_dpc, base_vha, 0x4009, 4899 ql_dbg(ql_dbg_dpc, base_vha, 0x4009,
4805 "Quiescence mode scheduled.\n"); 4900 "Quiescence mode scheduled.\n");
4806 if (IS_QLA82XX(ha)) { 4901 if (IS_P3P_TYPE(ha)) {
4807 qla82xx_device_state_handler(base_vha); 4902 if (IS_QLA82XX(ha))
4903 qla82xx_device_state_handler(base_vha);
4904 if (IS_QLA8044(ha))
4905 qla8044_device_state_handler(base_vha);
4808 clear_bit(ISP_QUIESCE_NEEDED, 4906 clear_bit(ISP_QUIESCE_NEEDED,
4809 &base_vha->dpc_flags); 4907 &base_vha->dpc_flags);
4810 if (!ha->flags.quiesce_owner) { 4908 if (!ha->flags.quiesce_owner) {
4811 qla2x00_perform_loop_resync(base_vha); 4909 qla2x00_perform_loop_resync(base_vha);
4812 4910 if (IS_QLA82XX(ha)) {
4813 qla82xx_idc_lock(ha); 4911 qla82xx_idc_lock(ha);
4814 qla82xx_clear_qsnt_ready(base_vha); 4912 qla82xx_clear_qsnt_ready(
4815 qla82xx_idc_unlock(ha); 4913 base_vha);
4914 qla82xx_idc_unlock(ha);
4915 } else if (IS_QLA8044(ha)) {
4916 qla8044_idc_lock(ha);
4917 qla8044_clear_qsnt_ready(
4918 base_vha);
4919 qla8044_idc_unlock(ha);
4920 }
4816 } 4921 }
4817 } else { 4922 } else {
4818 clear_bit(ISP_QUIESCE_NEEDED, 4923 clear_bit(ISP_QUIESCE_NEEDED,
@@ -4986,10 +5091,13 @@ qla2x00_timer(scsi_qla_host_t *vha)
4986 pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w); 5091 pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w);
4987 5092
4988 /* Make sure qla82xx_watchdog is run only for physical port */ 5093 /* Make sure qla82xx_watchdog is run only for physical port */
4989 if (!vha->vp_idx && IS_QLA82XX(ha)) { 5094 if (!vha->vp_idx && IS_P3P_TYPE(ha)) {
4990 if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) 5095 if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags))
4991 start_dpc++; 5096 start_dpc++;
4992 qla82xx_watchdog(vha); 5097 if (IS_QLA82XX(ha))
5098 qla82xx_watchdog(vha);
5099 else if (IS_QLA8044(ha))
5100 qla8044_watchdog(vha);
4993 } 5101 }
4994 5102
4995 if (!vha->vp_idx && IS_QLAFX00(ha)) 5103 if (!vha->vp_idx && IS_QLAFX00(ha))
@@ -5069,7 +5177,7 @@ qla2x00_timer(scsi_qla_host_t *vha)
5069 /* Check if beacon LED needs to be blinked for physical host only */ 5177 /* Check if beacon LED needs to be blinked for physical host only */
5070 if (!vha->vp_idx && (ha->beacon_blink_led == 1)) { 5178 if (!vha->vp_idx && (ha->beacon_blink_led == 1)) {
5071 /* There is no beacon_blink function for ISP82xx */ 5179 /* There is no beacon_blink function for ISP82xx */
5072 if (!IS_QLA82XX(ha)) { 5180 if (!IS_P3P_TYPE(ha)) {
5073 set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags); 5181 set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags);
5074 start_dpc++; 5182 start_dpc++;
5075 } 5183 }
@@ -5513,6 +5621,7 @@ static struct pci_device_id qla2xxx_pci_tbl[] = {
5513 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) }, 5621 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) },
5514 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) }, 5622 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) },
5515 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) }, 5623 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) },
5624 { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) },
5516 { 0 }, 5625 { 0 },
5517}; 5626};
5518MODULE_DEVICE_TABLE(pci, qla2xxx_pci_tbl); 5627MODULE_DEVICE_TABLE(pci, qla2xxx_pci_tbl);