Lines Matching +full:0 +full:x8006
71 uint pcs_event_log_severity = 0x03;
83 [chip_8001] = {0, 8, &pm8001_8001_dispatch,},
84 [chip_8008] = {0, 8, &pm8001_80xx_dispatch,},
86 [chip_8018] = {0, 16, &pm8001_80xx_dispatch,},
88 [chip_8074] = {0, 8, &pm8001_80xx_dispatch,},
89 [chip_8076] = {0, 16, &pm8001_80xx_dispatch,},
90 [chip_8077] = {0, 16, &pm8001_80xx_dispatch,},
91 [chip_8006] = {0, 16, &pm8001_80xx_dispatch,},
92 [chip_8070] = {0, 8, &pm8001_80xx_dispatch,},
93 [chip_8072] = {0, 16, &pm8001_80xx_dispatch,},
166 sas_phy->enabled = (phy_id < pm8001_ha->chip->n_phy) ? 1 : 0; in pm8001_phy_init()
168 sas_phy->tproto = 0; in pm8001_phy_init()
174 sas_phy->frame_rcvd = &phy->frame_rcvd[0]; in pm8001_phy_init()
190 for (i = 0; i < USI_MAX_MEMCNT; i++) { in pm8001_free()
231 tasklet_init(&pm8001_ha->tasklet[0], pm8001_tasklet, in pm8001_init_tasklet()
232 (unsigned long)&(pm8001_ha->irq_vector[0])); in pm8001_init_tasklet()
235 for (i = 0; i < PM8001_MAX_MSIX_VEC; i++) in pm8001_init_tasklet()
250 tasklet_kill(&pm8001_ha->tasklet[0]); in pm8001_kill_tasklet()
254 for (i = 0; i < PM8001_MAX_MSIX_VEC; i++) in pm8001_kill_tasklet()
301 return pm8001_handle_irq(pm8001_ha, 0); in pm8001_interrupt_handler_intx()
315 int i, count = 0, rc = 0; in pm8001_alloc()
338 for (i = 0; i < pm8001_ha->chip->n_phy; i++) { in pm8001_alloc()
340 pm8001_ha->port[i].wide_port_phymap = 0; in pm8001_alloc()
341 pm8001_ha->port[i].port_attached = 0; in pm8001_alloc()
342 pm8001_ha->port[i].port_state = 0; in pm8001_alloc()
358 for (i = 0; i < count; i++) { in pm8001_alloc()
388 for (i = 0; i < count; i++) { in pm8001_alloc()
428 pm8001_ha->memoryMap.region[FORENSIC_MEM].total_len = 0x10000; in pm8001_alloc()
429 pm8001_ha->memoryMap.region[FORENSIC_MEM].element_size = 0x10000; in pm8001_alloc()
430 pm8001_ha->memoryMap.region[FORENSIC_MEM].alignment = 0x10000; in pm8001_alloc()
431 for (i = 0; i < pm8001_ha->max_memcnt; i++) { in pm8001_alloc()
440 region->alignment) != 0) { in pm8001_alloc()
453 for (i = 0; i < PM8001_MAX_DEVICES; i++) { in pm8001_alloc()
457 return 0; in pm8001_alloc()
460 for (i = 0; i < pm8001_ha->max_memcnt; i++) { in pm8001_alloc()
481 u32 logicalBar = 0; in pm8001_ioremap()
485 /* map pci mem (PMC pci base 0-3)*/ in pm8001_ioremap()
486 for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) { in pm8001_ioremap()
489 ** bar 0 and 1 - logical BAR0 in pm8001_ioremap()
518 pm8001_ha->io_mem[logicalBar].membase = 0; in pm8001_ioremap()
519 pm8001_ha->io_mem[logicalBar].memsize = 0; in pm8001_ioremap()
524 return 0; in pm8001_ioremap()
554 pm8001_ha->non_fatal_count = 0; in pm8001_pci_alloc()
614 memset(sha, 0x00, sizeof(*sha)); in pm8001_prep_sas_ha_init()
632 return 0; in pm8001_prep_sas_ha_init()
649 int i = 0; in pm8001_post_sas_ha_init()
654 for (i = 0; i < chip_info->n_phy; i++) { in pm8001_post_sas_ha_init()
663 sha->sas_addr = &pm8001_ha->sas_addr[0]; in pm8001_post_sas_ha_init()
686 __be64 dev_sas_addr = cpu_to_be64(0x50010c600047f9d0ULL); in pm8001_init_sas_add()
688 for (i = 0; i < pm8001_ha->chip->n_phy; i++) in pm8001_init_sas_add()
691 memcpy(pm8001_ha->sas_addr, &pm8001_ha->phy[0].dev_sas_addr, in pm8001_init_sas_add()
693 return 0; in pm8001_init_sas_add()
710 if (deviceid == 0x8081 || deviceid == 0x0042) { in pm8001_init_sas_add()
714 payload.minor_function = 0; in pm8001_init_sas_add()
726 payload.offset = 0; in pm8001_init_sas_add()
747 for (i = 0, j = 0; i <= 7; i++, j++) { in pm8001_init_sas_add()
749 if (deviceid == 0x8081) in pm8001_init_sas_add()
751 payload.func_specific[0x704 + i]; in pm8001_init_sas_add()
752 else if (deviceid == 0x0042) in pm8001_init_sas_add()
754 payload.func_specific[0x010 + i]; in pm8001_init_sas_add()
759 payload.func_specific[0x010 + i]; in pm8001_init_sas_add()
762 payload.func_specific[0x804 + i]; in pm8001_init_sas_add()
765 for (i = 0; i < pm8001_ha->chip->n_phy; i++) { in pm8001_init_sas_add()
766 if (i && ((i % 4) == 0)) in pm8001_init_sas_add()
775 return 0; in pm8001_init_sas_add()
789 return 0; in pm8001_get_phy_settings_info()
794 payload.offset = 0; in pm8001_get_phy_settings_info()
810 return 0; in pm8001_get_phy_settings_info()
834 phycfg->LaneLosCfg = 0x00000132; in pm8001_get_internal_phy_settings()
835 phycfg->LanePgaCfg1 = 0x00203949; in pm8001_get_internal_phy_settings()
836 phycfg->LanePisoCfg1 = 0x000000FF; in pm8001_get_internal_phy_settings()
837 phycfg->LanePisoCfg2 = 0xFF000001; in pm8001_get_internal_phy_settings()
838 phycfg->LanePisoCfg3 = 0xE7011300; in pm8001_get_internal_phy_settings()
839 phycfg->LanePisoCfg4 = 0x631C40C0; in pm8001_get_internal_phy_settings()
840 phycfg->LanePisoCfg5 = 0xF8102036; in pm8001_get_internal_phy_settings()
841 phycfg->LanePisoCfg6 = 0xF74A1000; in pm8001_get_internal_phy_settings()
842 phycfg->LaneBctCtrl = 0x00FB33F8; in pm8001_get_internal_phy_settings()
854 phycfg->LaneLosCfg = 0x00000132; in pm8001_get_external_phy_settings()
855 phycfg->LanePgaCfg1 = 0x00203949; in pm8001_get_external_phy_settings()
856 phycfg->LanePisoCfg1 = 0x000000FF; in pm8001_get_external_phy_settings()
857 phycfg->LanePisoCfg2 = 0xFF000001; in pm8001_get_external_phy_settings()
858 phycfg->LanePisoCfg3 = 0xE7011300; in pm8001_get_external_phy_settings()
859 phycfg->LanePisoCfg4 = 0x63349140; in pm8001_get_external_phy_settings()
860 phycfg->LanePisoCfg5 = 0xF8102036; in pm8001_get_external_phy_settings()
861 phycfg->LanePisoCfg6 = 0xF80D9300; in pm8001_get_external_phy_settings()
862 phycfg->LaneBctCtrl = 0x00FB33F8; in pm8001_get_external_phy_settings()
874 case 0x0070: /* H1280 - 8 external 0 internal */ in pm8001_get_phy_mask()
875 case 0x0072: /* H12F0 - 16 external 0 internal */ in pm8001_get_phy_mask()
876 *phymask = 0x0000; in pm8001_get_phy_mask()
879 case 0x0071: /* H1208 - 0 external 8 internal */ in pm8001_get_phy_mask()
880 case 0x0073: /* H120F - 0 external 16 internal */ in pm8001_get_phy_mask()
881 *phymask = 0xFFFF; in pm8001_get_phy_mask()
884 case 0x0080: /* H1244 - 4 external 4 internal */ in pm8001_get_phy_mask()
885 *phymask = 0x00F0; in pm8001_get_phy_mask()
888 case 0x0081: /* H1248 - 4 external 8 internal */ in pm8001_get_phy_mask()
889 *phymask = 0x0FF0; in pm8001_get_phy_mask()
892 case 0x0082: /* H1288 - 8 external 8 internal */ in pm8001_get_phy_mask()
893 *phymask = 0xFF00; in pm8001_get_phy_mask()
898 "Unknown subsystem device=0x%.04x\n", in pm8001_get_phy_mask()
912 int phymask = 0; in pm8001_set_phy_settings_ven_117c_12G()
913 int i = 0; in pm8001_set_phy_settings_ven_117c_12G()
915 memset(&phycfg_int, 0, sizeof(phycfg_int)); in pm8001_set_phy_settings_ven_117c_12G()
916 memset(&phycfg_ext, 0, sizeof(phycfg_ext)); in pm8001_set_phy_settings_ven_117c_12G()
922 for (i = 0; i < pm8001_ha->chip->n_phy; i++) { in pm8001_set_phy_settings_ven_117c_12G()
935 return 0; in pm8001_set_phy_settings_ven_117c_12G()
946 if (pm8001_ha->pdev->device == 0x0042) /* 6Gb */ in pm8001_configure_phy_settings()
947 return 0; in pm8001_configure_phy_settings()
952 case 0: in pm8001_configure_phy_settings()
953 return 0; in pm8001_configure_phy_settings()
975 * Queue index #0 is used always for housekeeping, so don't in pm8001_setup_msix()
987 if (rc < 0) in pm8001_setup_msix()
999 return 0; in pm8001_setup_msix()
1004 u32 i = 0, j = 0; in pm8001_request_msix()
1005 int flag = 0, rc = 0; in pm8001_request_msix()
1018 for (i = 0; i < nr_irqs; i++) { in pm8001_request_msix()
1020 sizeof(pm8001_ha->intr_drvname[0]), in pm8001_request_msix()
1030 for (j = 0; j < i; j++) { in pm8001_request_msix()
1068 return 0; in pm8001_request_irq()
1075 pm8001_ha->irq_vector[0].irq_id = 0; in pm8001_request_irq()
1076 pm8001_ha->irq_vector[0].drv_inst = pm8001_ha; in pm8001_request_irq()
1089 for (i = 0; i < pm8001_ha->number_of_intr; i++) in pm8001_free_irq()
1092 for (i = 0; i < pm8001_ha->number_of_intr; i++) in pm8001_free_irq()
1117 u8 i = 0; in pm8001_pci_probe()
1135 pci_reg |= 0x157; in pm8001_pci_probe()
1199 PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, 0); in pm8001_pci_probe()
1225 return 0; in pm8001_pci_probe()
1272 for (i = 0; i < ccb_count; i++) { in pm8001_init_ccb_tag()
1287 return 0; in pm8001_init_ccb_tag()
1304 PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); in pm8001_pci_remove()
1311 for (i = 0; i < pm8001_ha->ccb_count; i++) { in pm8001_pci_remove()
1332 * Return: 0 on success, anything else on error.
1347 PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); in pm8001_pci_suspend()
1353 pm8001_info(pm8001_ha, "pdev=0x%p, slot=%s, entering " in pm8001_pci_suspend()
1356 return 0; in pm8001_pci_suspend()
1363 * Return: 0 on success, anything else on error.
1371 u8 i = 0; in pm8001_pci_resume()
1377 "pdev=0x%p, slot=%s, resuming from previous operating state [D%d]\n", in pm8001_pci_resume()
1394 PM8001_CHIP_DISP->interrupt_disable(pm8001_ha, 0xFF); in pm8001_pci_resume()
1402 PM8001_CHIP_DISP->interrupt_enable(pm8001_ha, 0); in pm8001_pci_resume()
1421 for (i = 0; i < pm8001_ha->chip->n_phy; i++) { in pm8001_pci_resume()
1427 return 0; in pm8001_pci_resume()
1439 { PCI_VDEVICE(PMC_Sierra, 0x8001), chip_8001 },
1440 { PCI_VDEVICE(PMC_Sierra, 0x8006), chip_8006 },
1441 { PCI_VDEVICE(ADAPTEC2, 0x8006), chip_8006 },
1442 { PCI_VDEVICE(ATTO, 0x0042), chip_8001 },
1444 { PCI_VDEVICE(ADAPTEC2, 0x8001), chip_8001 },
1445 { PCI_VDEVICE(PMC_Sierra, 0x8008), chip_8008 },
1446 { PCI_VDEVICE(ADAPTEC2, 0x8008), chip_8008 },
1447 { PCI_VDEVICE(PMC_Sierra, 0x8018), chip_8018 },
1448 { PCI_VDEVICE(ADAPTEC2, 0x8018), chip_8018 },
1449 { PCI_VDEVICE(PMC_Sierra, 0x8009), chip_8009 },
1450 { PCI_VDEVICE(ADAPTEC2, 0x8009), chip_8009 },
1451 { PCI_VDEVICE(PMC_Sierra, 0x8019), chip_8019 },
1452 { PCI_VDEVICE(ADAPTEC2, 0x8019), chip_8019 },
1453 { PCI_VDEVICE(PMC_Sierra, 0x8074), chip_8074 },
1454 { PCI_VDEVICE(ADAPTEC2, 0x8074), chip_8074 },
1455 { PCI_VDEVICE(PMC_Sierra, 0x8076), chip_8076 },
1456 { PCI_VDEVICE(ADAPTEC2, 0x8076), chip_8076 },
1457 { PCI_VDEVICE(PMC_Sierra, 0x8077), chip_8077 },
1458 { PCI_VDEVICE(ADAPTEC2, 0x8077), chip_8077 },
1459 { PCI_VENDOR_ID_ADAPTEC2, 0x8081,
1460 PCI_VENDOR_ID_ADAPTEC2, 0x0400, 0, 0, chip_8001 },
1461 { PCI_VENDOR_ID_ADAPTEC2, 0x8081,
1462 PCI_VENDOR_ID_ADAPTEC2, 0x0800, 0, 0, chip_8001 },
1463 { PCI_VENDOR_ID_ADAPTEC2, 0x8088,
1464 PCI_VENDOR_ID_ADAPTEC2, 0x0008, 0, 0, chip_8008 },
1465 { PCI_VENDOR_ID_ADAPTEC2, 0x8088,
1466 PCI_VENDOR_ID_ADAPTEC2, 0x0800, 0, 0, chip_8008 },
1467 { PCI_VENDOR_ID_ADAPTEC2, 0x8089,
1468 PCI_VENDOR_ID_ADAPTEC2, 0x0008, 0, 0, chip_8009 },
1469 { PCI_VENDOR_ID_ADAPTEC2, 0x8089,
1470 PCI_VENDOR_ID_ADAPTEC2, 0x0800, 0, 0, chip_8009 },
1471 { PCI_VENDOR_ID_ADAPTEC2, 0x8088,
1472 PCI_VENDOR_ID_ADAPTEC2, 0x0016, 0, 0, chip_8018 },
1473 { PCI_VENDOR_ID_ADAPTEC2, 0x8088,
1474 PCI_VENDOR_ID_ADAPTEC2, 0x1600, 0, 0, chip_8018 },
1475 { PCI_VENDOR_ID_ADAPTEC2, 0x8089,
1476 PCI_VENDOR_ID_ADAPTEC2, 0x0016, 0, 0, chip_8019 },
1477 { PCI_VENDOR_ID_ADAPTEC2, 0x8089,
1478 PCI_VENDOR_ID_ADAPTEC2, 0x1600, 0, 0, chip_8019 },
1479 { PCI_VENDOR_ID_ADAPTEC2, 0x8074,
1480 PCI_VENDOR_ID_ADAPTEC2, 0x0800, 0, 0, chip_8074 },
1481 { PCI_VENDOR_ID_ADAPTEC2, 0x8076,
1482 PCI_VENDOR_ID_ADAPTEC2, 0x1600, 0, 0, chip_8076 },
1483 { PCI_VENDOR_ID_ADAPTEC2, 0x8077,
1484 PCI_VENDOR_ID_ADAPTEC2, 0x1600, 0, 0, chip_8077 },
1485 { PCI_VENDOR_ID_ADAPTEC2, 0x8074,
1486 PCI_VENDOR_ID_ADAPTEC2, 0x0008, 0, 0, chip_8074 },
1487 { PCI_VENDOR_ID_ADAPTEC2, 0x8076,
1488 PCI_VENDOR_ID_ADAPTEC2, 0x0016, 0, 0, chip_8076 },
1489 { PCI_VENDOR_ID_ADAPTEC2, 0x8077,
1490 PCI_VENDOR_ID_ADAPTEC2, 0x0016, 0, 0, chip_8077 },
1491 { PCI_VENDOR_ID_ADAPTEC2, 0x8076,
1492 PCI_VENDOR_ID_ADAPTEC2, 0x0808, 0, 0, chip_8076 },
1493 { PCI_VENDOR_ID_ADAPTEC2, 0x8077,
1494 PCI_VENDOR_ID_ADAPTEC2, 0x0808, 0, 0, chip_8077 },
1495 { PCI_VENDOR_ID_ADAPTEC2, 0x8074,
1496 PCI_VENDOR_ID_ADAPTEC2, 0x0404, 0, 0, chip_8074 },
1497 { PCI_VENDOR_ID_ATTO, 0x8070,
1498 PCI_VENDOR_ID_ATTO, 0x0070, 0, 0, chip_8070 },
1499 { PCI_VENDOR_ID_ATTO, 0x8070,
1500 PCI_VENDOR_ID_ATTO, 0x0071, 0, 0, chip_8070 },
1501 { PCI_VENDOR_ID_ATTO, 0x8072,
1502 PCI_VENDOR_ID_ATTO, 0x0072, 0, 0, chip_8072 },
1503 { PCI_VENDOR_ID_ATTO, 0x8072,
1504 PCI_VENDOR_ID_ATTO, 0x0073, 0, 0, chip_8072 },
1505 { PCI_VENDOR_ID_ATTO, 0x8070,
1506 PCI_VENDOR_ID_ATTO, 0x0080, 0, 0, chip_8070 },
1507 { PCI_VENDOR_ID_ATTO, 0x8072,
1508 PCI_VENDOR_ID_ATTO, 0x0081, 0, 0, chip_8072 },
1509 { PCI_VENDOR_ID_ATTO, 0x8072,
1510 PCI_VENDOR_ID_ATTO, 0x0082, 0, 0, chip_8072 },
1536 pm8001_wq = alloc_workqueue("pm80xx", 0, 0); in pm8001_init()
1540 pm8001_id = 0; in pm8001_init()
1547 return 0; in pm8001_init()