• Home
  • Raw
  • Download

Lines Matching refs:idev

51 	struct ionic_dev *idev = &ionic->idev;  in ionic_init_devinfo()  local
53 idev->dev_info.asic_type = ioread8(&idev->dev_info_regs->asic_type); in ionic_init_devinfo()
54 idev->dev_info.asic_rev = ioread8(&idev->dev_info_regs->asic_rev); in ionic_init_devinfo()
56 memcpy_fromio(idev->dev_info.fw_version, in ionic_init_devinfo()
57 idev->dev_info_regs->fw_version, in ionic_init_devinfo()
60 memcpy_fromio(idev->dev_info.serial_num, in ionic_init_devinfo()
61 idev->dev_info_regs->serial_num, in ionic_init_devinfo()
64 idev->dev_info.fw_version[IONIC_DEVINFO_FWVERS_BUFLEN] = 0; in ionic_init_devinfo()
65 idev->dev_info.serial_num[IONIC_DEVINFO_SERIAL_BUFLEN] = 0; in ionic_init_devinfo()
67 dev_dbg(ionic->dev, "fw_version %s\n", idev->dev_info.fw_version); in ionic_init_devinfo()
74 struct ionic_dev *idev = &ionic->idev; in ionic_dev_setup() local
90 idev->dev_info_regs = bar->vaddr + IONIC_BAR0_DEV_INFO_REGS_OFFSET; in ionic_dev_setup()
91 idev->dev_cmd_regs = bar->vaddr + IONIC_BAR0_DEV_CMD_REGS_OFFSET; in ionic_dev_setup()
92 idev->intr_status = bar->vaddr + IONIC_BAR0_INTR_STATUS_OFFSET; in ionic_dev_setup()
93 idev->intr_ctrl = bar->vaddr + IONIC_BAR0_INTR_CTRL_OFFSET; in ionic_dev_setup()
95 idev->hwstamp_regs = &idev->dev_info_regs->hwstamp; in ionic_dev_setup()
97 sig = ioread32(&idev->dev_info_regs->signature); in ionic_dev_setup()
116 atomic_long_set(&idev->last_check_time, jiffies - 2 * HZ); in ionic_dev_setup()
117 idev->last_hb_time = jiffies - 2 * ionic->watchdog_period; in ionic_dev_setup()
119 idev->last_fw_hb = 0; in ionic_dev_setup()
120 idev->fw_hb_ready = true; in ionic_dev_setup()
121 idev->fw_status_ready = true; in ionic_dev_setup()
122 idev->fw_generation = IONIC_FW_STS_F_GENERATION & in ionic_dev_setup()
123 ioread8(&idev->dev_info_regs->fw_status); in ionic_dev_setup()
125 idev->db_pages = bar->vaddr; in ionic_dev_setup()
126 idev->phy_db_pages = bar->bus_addr; in ionic_dev_setup()
132 bool ionic_is_fw_running(struct ionic_dev *idev) in ionic_is_fw_running() argument
134 u8 fw_status = ioread8(&idev->dev_info_regs->fw_status); in ionic_is_fw_running()
144 struct ionic_dev *idev = &ionic->idev; in ionic_heartbeat_check() local
154 last_check_time = atomic_long_read(&idev->last_check_time); in ionic_heartbeat_check()
158 if (!atomic_long_try_cmpxchg_relaxed(&idev->last_check_time, in ionic_heartbeat_check()
165 fw_status = ioread8(&idev->dev_info_regs->fw_status); in ionic_heartbeat_check()
168 if (!ionic_is_fw_running(idev)) { in ionic_heartbeat_check()
172 if (idev->fw_generation != fw_generation) { in ionic_heartbeat_check()
174 idev->fw_generation, fw_generation); in ionic_heartbeat_check()
176 idev->fw_generation = fw_generation; in ionic_heartbeat_check()
189 if (fw_status_ready != idev->fw_status_ready) { in ionic_heartbeat_check()
193 idev->fw_status_ready = fw_status_ready; in ionic_heartbeat_check()
221 last_check_time = idev->last_hb_time; in ionic_heartbeat_check()
225 fw_hb = ioread32(&idev->dev_info_regs->fw_heartbeat); in ionic_heartbeat_check()
226 fw_hb_ready = fw_hb != idev->last_fw_hb; in ionic_heartbeat_check()
233 __func__, fw_hb, idev->last_fw_hb, fw_hb_ready); in ionic_heartbeat_check()
235 idev->last_fw_hb = fw_hb; in ionic_heartbeat_check()
238 if (fw_hb_ready != idev->fw_hb_ready) { in ionic_heartbeat_check()
239 idev->fw_hb_ready = fw_hb_ready; in ionic_heartbeat_check()
249 idev->last_hb_time = check_time; in ionic_heartbeat_check()
254 u8 ionic_dev_cmd_status(struct ionic_dev *idev) in ionic_dev_cmd_status() argument
256 return ioread8(&idev->dev_cmd_regs->comp.comp.status); in ionic_dev_cmd_status()
259 bool ionic_dev_cmd_done(struct ionic_dev *idev) in ionic_dev_cmd_done() argument
261 return ioread32(&idev->dev_cmd_regs->done) & IONIC_DEV_CMD_DONE; in ionic_dev_cmd_done()
264 void ionic_dev_cmd_comp(struct ionic_dev *idev, union ionic_dev_cmd_comp *comp) in ionic_dev_cmd_comp() argument
266 memcpy_fromio(comp, &idev->dev_cmd_regs->comp, sizeof(*comp)); in ionic_dev_cmd_comp()
269 void ionic_dev_cmd_go(struct ionic_dev *idev, union ionic_dev_cmd *cmd) in ionic_dev_cmd_go() argument
271 idev->opcode = cmd->cmd.opcode; in ionic_dev_cmd_go()
272 memcpy_toio(&idev->dev_cmd_regs->cmd, cmd, sizeof(*cmd)); in ionic_dev_cmd_go()
273 iowrite32(0, &idev->dev_cmd_regs->done); in ionic_dev_cmd_go()
274 iowrite32(1, &idev->dev_cmd_regs->doorbell); in ionic_dev_cmd_go()
278 void ionic_dev_cmd_identify(struct ionic_dev *idev, u8 ver) in ionic_dev_cmd_identify() argument
285 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_identify()
288 void ionic_dev_cmd_init(struct ionic_dev *idev) in ionic_dev_cmd_init() argument
295 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_init()
298 void ionic_dev_cmd_reset(struct ionic_dev *idev) in ionic_dev_cmd_reset() argument
304 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_reset()
308 void ionic_dev_cmd_port_identify(struct ionic_dev *idev) in ionic_dev_cmd_port_identify() argument
315 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_identify()
318 void ionic_dev_cmd_port_init(struct ionic_dev *idev) in ionic_dev_cmd_port_init() argument
323 .port_init.info_pa = cpu_to_le64(idev->port_info_pa), in ionic_dev_cmd_port_init()
326 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_init()
329 void ionic_dev_cmd_port_reset(struct ionic_dev *idev) in ionic_dev_cmd_port_reset() argument
336 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_reset()
339 void ionic_dev_cmd_port_state(struct ionic_dev *idev, u8 state) in ionic_dev_cmd_port_state() argument
348 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_state()
351 void ionic_dev_cmd_port_speed(struct ionic_dev *idev, u32 speed) in ionic_dev_cmd_port_speed() argument
360 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_speed()
363 void ionic_dev_cmd_port_autoneg(struct ionic_dev *idev, u8 an_enable) in ionic_dev_cmd_port_autoneg() argument
372 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_autoneg()
375 void ionic_dev_cmd_port_fec(struct ionic_dev *idev, u8 fec_type) in ionic_dev_cmd_port_fec() argument
384 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_fec()
387 void ionic_dev_cmd_port_pause(struct ionic_dev *idev, u8 pause_type) in ionic_dev_cmd_port_pause() argument
396 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_port_pause()
450 ionic_dev_cmd_go(&ionic->idev, &cmd); in ionic_set_vf_config()
458 void ionic_dev_cmd_queue_identify(struct ionic_dev *idev, in ionic_dev_cmd_queue_identify() argument
468 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_queue_identify()
471 void ionic_dev_cmd_lif_identify(struct ionic_dev *idev, u8 type, u8 ver) in ionic_dev_cmd_lif_identify() argument
479 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_lif_identify()
482 void ionic_dev_cmd_lif_init(struct ionic_dev *idev, u16 lif_index, in ionic_dev_cmd_lif_init() argument
491 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_lif_init()
494 void ionic_dev_cmd_lif_reset(struct ionic_dev *idev, u16 lif_index) in ionic_dev_cmd_lif_reset() argument
501 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_lif_reset()
504 void ionic_dev_cmd_adminq_init(struct ionic_dev *idev, struct ionic_qcq *qcq, in ionic_dev_cmd_adminq_init() argument
525 ionic_dev_cmd_go(idev, &cmd); in ionic_dev_cmd_adminq_init()
601 int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev, in ionic_q_init() argument
616 q->idev = idev; in ionic_q_init()