Lines Matching refs:idev
282 if (lif->ionic->idev.fw_status_ready &&
445 !lif->ionic->idev.fw_status_ready) ||
471 if (!ionic_is_fw_running(&lif->ionic->idev))
491 struct ionic_dev *idev = &ionic->idev;
493 if (!idev->dev_cmd_regs)
496 iowrite32(0, &idev->dev_cmd_regs->doorbell);
497 memset_io(&idev->dev_cmd_regs->cmd, 0, sizeof(idev->dev_cmd_regs->cmd));
515 struct ionic_dev *idev = &ionic->idev;
530 opcode = idev->opcode;
532 for (fw_up = ionic_is_fw_running(idev);
534 fw_up = ionic_is_fw_running(idev)) {
535 done = ionic_dev_cmd_done(idev);
560 err = ionic_dev_cmd_status(&ionic->idev);
568 iowrite32(0, &idev->dev_cmd_regs->done);
570 iowrite32(1, &idev->dev_cmd_regs->doorbell);
612 struct ionic_dev *idev = &ionic->idev;
624 sz = min(sizeof(ident->drv), sizeof(idev->dev_cmd_regs->data));
625 memcpy_toio(&idev->dev_cmd_regs->data, &ident->drv, sz);
627 ionic_dev_cmd_identify(idev, IONIC_DEV_IDENTITY_VERSION_2);
630 sz = min(sizeof(ident->dev), sizeof(idev->dev_cmd_regs->data));
631 memcpy_fromio(&ident->dev, &idev->dev_cmd_regs->data, sz);
640 if (isprint(idev->dev_info.fw_version[0]) &&
641 isascii(idev->dev_info.fw_version[0]))
643 (int)(sizeof(idev->dev_info.fw_version) - 1),
644 idev->dev_info.fw_version);
647 (u8)idev->dev_info.fw_version[0],
648 (u8)idev->dev_info.fw_version[1],
649 (u8)idev->dev_info.fw_version[2],
650 (u8)idev->dev_info.fw_version[3]);
667 struct ionic_dev *idev = &ionic->idev;
671 ionic_dev_cmd_init(idev);
680 struct ionic_dev *idev = &ionic->idev;
683 if (!ionic_is_fw_running(idev))
687 ionic_dev_cmd_reset(idev);
697 struct ionic_dev *idev = &ionic->idev;
703 ionic_dev_cmd_port_identify(idev);
706 sz = min(sizeof(ident->port), sizeof(idev->dev_cmd_regs->data));
707 memcpy_fromio(&ident->port, &idev->dev_cmd_regs->data, sz);
718 struct ionic_dev *idev = &ionic->idev;
722 if (!idev->port_info) {
723 idev->port_info_sz = ALIGN(sizeof(*idev->port_info), PAGE_SIZE);
724 idev->port_info = dma_alloc_coherent(ionic->dev,
725 idev->port_info_sz,
726 &idev->port_info_pa,
728 if (!idev->port_info)
732 sz = min(sizeof(ident->port.config), sizeof(idev->dev_cmd_regs->data));
736 memcpy_toio(&idev->dev_cmd_regs->data, &ident->port.config, sz);
737 ionic_dev_cmd_port_init(idev);
740 ionic_dev_cmd_port_state(&ionic->idev, IONIC_PORT_ADMIN_STATE_UP);
746 dma_free_coherent(ionic->dev, idev->port_info_sz,
747 idev->port_info, idev->port_info_pa);
748 idev->port_info = NULL;
749 idev->port_info_pa = 0;
757 struct ionic_dev *idev = &ionic->idev;
760 if (!idev->port_info)
763 if (ionic_is_fw_running(idev)) {
765 ionic_dev_cmd_port_reset(idev);
770 dma_free_coherent(ionic->dev, idev->port_info_sz,
771 idev->port_info, idev->port_info_pa);
773 idev->port_info = NULL;
774 idev->port_info_pa = 0;