• Home
  • Raw
  • Download

Lines Matching refs:p_dev

40 static int qlcnic_83xx_check_heartbeat(struct qlcnic_adapter *p_dev);
42 static int qlcnic_83xx_check_hw_status(struct qlcnic_adapter *p_dev);
1576 static int qlcnic_83xx_check_heartbeat(struct qlcnic_adapter *p_dev) in qlcnic_83xx_check_heartbeat() argument
1582 p_dev->heartbeat = QLC_SHARED_REG_RD32(p_dev, in qlcnic_83xx_check_heartbeat()
1587 heartbeat = QLC_SHARED_REG_RD32(p_dev, in qlcnic_83xx_check_heartbeat()
1589 if (heartbeat != p_dev->heartbeat) { in qlcnic_83xx_check_heartbeat()
1596 dev_err(&p_dev->pdev->dev, "firmware hang detected\n"); in qlcnic_83xx_check_heartbeat()
1597 qlcnic_83xx_take_eport_out_of_reset(p_dev); in qlcnic_83xx_check_heartbeat()
1598 qlcnic_83xx_disable_pause_frames(p_dev); in qlcnic_83xx_check_heartbeat()
1599 peg_status = QLC_SHARED_REG_RD32(p_dev, in qlcnic_83xx_check_heartbeat()
1601 dev_info(&p_dev->pdev->dev, "Dumping HW/FW registers\n" in qlcnic_83xx_check_heartbeat()
1606 QLC_SHARED_REG_RD32(p_dev, QLCNIC_PEG_HALT_STATUS2), in qlcnic_83xx_check_heartbeat()
1607 QLCRD32(p_dev, QLC_83XX_CRB_PEG_NET_0, &err), in qlcnic_83xx_check_heartbeat()
1608 QLCRD32(p_dev, QLC_83XX_CRB_PEG_NET_1, &err), in qlcnic_83xx_check_heartbeat()
1609 QLCRD32(p_dev, QLC_83XX_CRB_PEG_NET_2, &err), in qlcnic_83xx_check_heartbeat()
1610 QLCRD32(p_dev, QLC_83XX_CRB_PEG_NET_3, &err), in qlcnic_83xx_check_heartbeat()
1611 QLCRD32(p_dev, QLC_83XX_CRB_PEG_NET_4, &err)); in qlcnic_83xx_check_heartbeat()
1614 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_check_heartbeat()
1621 static int qlcnic_83xx_check_cmd_peg_status(struct qlcnic_adapter *p_dev) in qlcnic_83xx_check_cmd_peg_status() argument
1627 val = QLC_SHARED_REG_RD32(p_dev, QLCNIC_CMDPEG_STATE); in qlcnic_83xx_check_cmd_peg_status()
1633 dev_err(&p_dev->pdev->dev, "%s: failed, state = 0x%x\n", __func__, val); in qlcnic_83xx_check_cmd_peg_status()
1637 static int qlcnic_83xx_check_hw_status(struct qlcnic_adapter *p_dev) in qlcnic_83xx_check_hw_status() argument
1641 err = qlcnic_83xx_check_cmd_peg_status(p_dev); in qlcnic_83xx_check_hw_status()
1645 err = qlcnic_83xx_check_heartbeat(p_dev); in qlcnic_83xx_check_hw_status()
1652 static int qlcnic_83xx_poll_reg(struct qlcnic_adapter *p_dev, u32 addr, in qlcnic_83xx_poll_reg() argument
1659 value = QLCRD32(p_dev, addr, &err); in qlcnic_83xx_poll_reg()
1668 value = QLCRD32(p_dev, addr, &err); in qlcnic_83xx_poll_reg()
1678 p_dev->ahw->reset.seq_error++; in qlcnic_83xx_poll_reg()
1679 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_poll_reg()
1681 __func__, p_dev->ahw->reset.seq_index); in qlcnic_83xx_poll_reg()
1682 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_poll_reg()
1690 static int qlcnic_83xx_reset_template_checksum(struct qlcnic_adapter *p_dev) in qlcnic_83xx_reset_template_checksum() argument
1693 u16 *buff = (u16 *)p_dev->ahw->reset.buff; in qlcnic_83xx_reset_template_checksum()
1694 int count = p_dev->ahw->reset.hdr->size / sizeof(u16); in qlcnic_83xx_reset_template_checksum()
1705 dev_err(&p_dev->pdev->dev, "%s: failed\n", __func__); in qlcnic_83xx_reset_template_checksum()
1710 static int qlcnic_83xx_get_reset_instruction_template(struct qlcnic_adapter *p_dev) in qlcnic_83xx_get_reset_instruction_template() argument
1712 struct qlcnic_hardware_context *ahw = p_dev->ahw; in qlcnic_83xx_get_reset_instruction_template()
1717 prev_ver = p_dev->fw_version; in qlcnic_83xx_get_reset_instruction_template()
1718 curr_ver = qlcnic_83xx_get_fw_version(p_dev); in qlcnic_83xx_get_reset_instruction_template()
1730 p_buff = p_dev->ahw->reset.buff; in qlcnic_83xx_get_reset_instruction_template()
1735 if (qlcnic_83xx_flash_read32(p_dev, addr, p_buff, count)) { in qlcnic_83xx_get_reset_instruction_template()
1736 dev_err(&p_dev->pdev->dev, "%s: flash read failed\n", __func__); in qlcnic_83xx_get_reset_instruction_template()
1745 if (qlcnic_83xx_flash_read32(p_dev, addr, p_buff, count)) { in qlcnic_83xx_get_reset_instruction_template()
1746 dev_err(&p_dev->pdev->dev, "%s: flash read failed\n", __func__); in qlcnic_83xx_get_reset_instruction_template()
1750 if (qlcnic_83xx_reset_template_checksum(p_dev)) in qlcnic_83xx_get_reset_instruction_template()
1761 static void qlcnic_83xx_read_write_crb_reg(struct qlcnic_adapter *p_dev, in qlcnic_83xx_read_write_crb_reg() argument
1767 value = QLCRD32(p_dev, raddr, &err); in qlcnic_83xx_read_write_crb_reg()
1770 qlcnic_83xx_wrt_reg_indirect(p_dev, waddr, value); in qlcnic_83xx_read_write_crb_reg()
1774 static void qlcnic_83xx_rmw_crb_reg(struct qlcnic_adapter *p_dev, in qlcnic_83xx_rmw_crb_reg() argument
1782 value = p_dev->ahw->reset.array[p_rmw_hdr->index_a]; in qlcnic_83xx_rmw_crb_reg()
1784 value = QLCRD32(p_dev, raddr, &err); in qlcnic_83xx_rmw_crb_reg()
1794 qlcnic_83xx_wrt_reg_indirect(p_dev, waddr, value); in qlcnic_83xx_rmw_crb_reg()
1798 static void qlcnic_83xx_write_list(struct qlcnic_adapter *p_dev, in qlcnic_83xx_write_list() argument
1808 qlcnic_83xx_wrt_reg_indirect(p_dev, entry->arg1, in qlcnic_83xx_write_list()
1816 static void qlcnic_83xx_read_write_list(struct qlcnic_adapter *p_dev, in qlcnic_83xx_read_write_list() argument
1826 qlcnic_83xx_read_write_crb_reg(p_dev, entry->arg1, in qlcnic_83xx_read_write_list()
1834 static void qlcnic_83xx_poll_list(struct qlcnic_adapter *p_dev, in qlcnic_83xx_poll_list() argument
1852 qlcnic_83xx_poll_reg(p_dev, entry->arg1, in qlcnic_83xx_poll_list()
1860 if (qlcnic_83xx_poll_reg(p_dev, in qlcnic_83xx_poll_list()
1864 QLCRD32(p_dev, arg1, &err); in qlcnic_83xx_poll_list()
1867 QLCRD32(p_dev, arg2, &err); in qlcnic_83xx_poll_list()
1877 static void qlcnic_83xx_poll_write_list(struct qlcnic_adapter *p_dev, in qlcnic_83xx_poll_write_list() argument
1892 qlcnic_83xx_wrt_reg_indirect(p_dev, entry->dr_addr, in qlcnic_83xx_poll_write_list()
1894 qlcnic_83xx_wrt_reg_indirect(p_dev, entry->ar_addr, in qlcnic_83xx_poll_write_list()
1897 qlcnic_83xx_poll_reg(p_dev, entry->ar_addr, delay, in qlcnic_83xx_poll_write_list()
1903 static void qlcnic_83xx_read_modify_write(struct qlcnic_adapter *p_dev, in qlcnic_83xx_read_modify_write() argument
1917 qlcnic_83xx_rmw_crb_reg(p_dev, entry->arg1, in qlcnic_83xx_read_modify_write()
1931 static void qlcnic_83xx_poll_read_list(struct qlcnic_adapter *p_dev, in qlcnic_83xx_poll_read_list() argument
1948 qlcnic_83xx_wrt_reg_indirect(p_dev, entry->ar_addr, in qlcnic_83xx_poll_read_list()
1951 if (!qlcnic_83xx_poll_reg(p_dev, entry->ar_addr, delay, in qlcnic_83xx_poll_read_list()
1953 index = p_dev->ahw->reset.array_index; in qlcnic_83xx_poll_read_list()
1955 j = QLCRD32(p_dev, addr, &err); in qlcnic_83xx_poll_read_list()
1959 p_dev->ahw->reset.array[index++] = j; in qlcnic_83xx_poll_read_list()
1962 p_dev->ahw->reset.array_index = 1; in qlcnic_83xx_poll_read_list()
1968 static inline void qlcnic_83xx_seq_end(struct qlcnic_adapter *p_dev) in qlcnic_83xx_seq_end() argument
1970 p_dev->ahw->reset.seq_end = 1; in qlcnic_83xx_seq_end()
1973 static void qlcnic_83xx_template_end(struct qlcnic_adapter *p_dev) in qlcnic_83xx_template_end() argument
1975 p_dev->ahw->reset.template_end = 1; in qlcnic_83xx_template_end()
1976 if (p_dev->ahw->reset.seq_error == 0) in qlcnic_83xx_template_end()
1977 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_template_end()
1980 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_template_end()
1998 static void qlcnic_83xx_exec_template_cmd(struct qlcnic_adapter *p_dev, in qlcnic_83xx_exec_template_cmd() argument
2005 p_dev->ahw->reset.seq_end = 0; in qlcnic_83xx_exec_template_cmd()
2006 p_dev->ahw->reset.template_end = 0; in qlcnic_83xx_exec_template_cmd()
2007 entries = p_dev->ahw->reset.hdr->entries; in qlcnic_83xx_exec_template_cmd()
2008 index = p_dev->ahw->reset.seq_index; in qlcnic_83xx_exec_template_cmd()
2010 for (; (!p_dev->ahw->reset.seq_end) && (index < entries); index++) { in qlcnic_83xx_exec_template_cmd()
2017 qlcnic_83xx_write_list(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2020 qlcnic_83xx_read_write_list(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2023 qlcnic_83xx_poll_list(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2026 qlcnic_83xx_poll_write_list(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2029 qlcnic_83xx_read_modify_write(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2035 qlcnic_83xx_seq_end(p_dev); in qlcnic_83xx_exec_template_cmd()
2038 qlcnic_83xx_template_end(p_dev); in qlcnic_83xx_exec_template_cmd()
2041 qlcnic_83xx_poll_read_list(p_dev, p_hdr); in qlcnic_83xx_exec_template_cmd()
2044 dev_err(&p_dev->pdev->dev, in qlcnic_83xx_exec_template_cmd()
2052 p_dev->ahw->reset.seq_index = index; in qlcnic_83xx_exec_template_cmd()
2055 static void qlcnic_83xx_stop_hw(struct qlcnic_adapter *p_dev) in qlcnic_83xx_stop_hw() argument
2057 p_dev->ahw->reset.seq_index = 0; in qlcnic_83xx_stop_hw()
2059 qlcnic_83xx_exec_template_cmd(p_dev, p_dev->ahw->reset.stop_offset); in qlcnic_83xx_stop_hw()
2060 if (p_dev->ahw->reset.seq_end != 1) in qlcnic_83xx_stop_hw()
2061 dev_err(&p_dev->pdev->dev, "%s: failed\n", __func__); in qlcnic_83xx_stop_hw()
2064 static void qlcnic_83xx_start_hw(struct qlcnic_adapter *p_dev) in qlcnic_83xx_start_hw() argument
2066 qlcnic_83xx_exec_template_cmd(p_dev, p_dev->ahw->reset.start_offset); in qlcnic_83xx_start_hw()
2067 if (p_dev->ahw->reset.template_end != 1) in qlcnic_83xx_start_hw()
2068 dev_err(&p_dev->pdev->dev, "%s: failed\n", __func__); in qlcnic_83xx_start_hw()
2071 static void qlcnic_83xx_init_hw(struct qlcnic_adapter *p_dev) in qlcnic_83xx_init_hw() argument
2073 qlcnic_83xx_exec_template_cmd(p_dev, p_dev->ahw->reset.init_offset); in qlcnic_83xx_init_hw()
2074 if (p_dev->ahw->reset.seq_end != 1) in qlcnic_83xx_init_hw()
2075 dev_err(&p_dev->pdev->dev, "%s: failed\n", __func__); in qlcnic_83xx_init_hw()