Lines Matching refs:ionic

281 	err = ionic_heartbeat_check(lif->ionic);  in ionic_adminq_post()
329 static void ionic_dev_cmd_clean(struct ionic *ionic) in ionic_dev_cmd_clean() argument
331 union __iomem ionic_dev_cmd_regs *regs = ionic->idev.dev_cmd_regs; in ionic_dev_cmd_clean()
337 int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_seconds) in ionic_dev_cmd_wait() argument
339 struct ionic_dev *idev = &ionic->idev; in ionic_dev_cmd_wait()
365 hb = ionic_heartbeat_check(ionic); in ionic_dev_cmd_wait()
369 dev_dbg(ionic->dev, "DEVCMD %s (%d) done=%d took %ld secs (%ld jiffies)\n", in ionic_dev_cmd_wait()
378 dev_dbg(ionic->dev, "DEVCMD %s (%d) failed - FW halted\n", in ionic_dev_cmd_wait()
384 ionic_dev_cmd_clean(ionic); in ionic_dev_cmd_wait()
385 dev_warn(ionic->dev, "DEVCMD %s (%d) timeout after %ld secs\n", in ionic_dev_cmd_wait()
390 err = ionic_dev_cmd_status(&ionic->idev); in ionic_dev_cmd_wait()
394 dev_dbg(ionic->dev, "DEV_CMD %s (%d), %s (%d) retrying...\n", in ionic_dev_cmd_wait()
405 dev_err(ionic->dev, "DEV_CMD %s (%d) error, %s (%d) failed\n", in ionic_dev_cmd_wait()
415 int ionic_setup(struct ionic *ionic) in ionic_setup() argument
419 err = ionic_dev_setup(ionic); in ionic_setup()
422 ionic_reset(ionic); in ionic_setup()
427 int ionic_identify(struct ionic *ionic) in ionic_identify() argument
429 struct ionic_identity *ident = &ionic->ident; in ionic_identify()
430 struct ionic_dev *idev = &ionic->idev; in ionic_identify()
440 mutex_lock(&ionic->dev_cmd_lock); in ionic_identify()
446 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_identify()
451 mutex_unlock(&ionic->dev_cmd_lock); in ionic_identify()
453 dev_info(ionic->dev, "FW: %s\n", idev->dev_info.fw_version); in ionic_identify()
456 dev_err(ionic->dev, "Cannot identify ionic: %dn", err); in ionic_identify()
460 err = ionic_lif_identify(ionic, IONIC_LIF_TYPE_CLASSIC, in ionic_identify()
461 &ionic->ident.lif); in ionic_identify()
463 dev_err(ionic->dev, "Cannot identify LIFs: %d\n", err); in ionic_identify()
473 int ionic_init(struct ionic *ionic) in ionic_init() argument
475 struct ionic_dev *idev = &ionic->idev; in ionic_init()
478 mutex_lock(&ionic->dev_cmd_lock); in ionic_init()
480 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_init()
481 mutex_unlock(&ionic->dev_cmd_lock); in ionic_init()
486 int ionic_reset(struct ionic *ionic) in ionic_reset() argument
488 struct ionic_dev *idev = &ionic->idev; in ionic_reset()
491 mutex_lock(&ionic->dev_cmd_lock); in ionic_reset()
493 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_reset()
494 mutex_unlock(&ionic->dev_cmd_lock); in ionic_reset()
499 int ionic_port_identify(struct ionic *ionic) in ionic_port_identify() argument
501 struct ionic_identity *ident = &ionic->ident; in ionic_port_identify()
502 struct ionic_dev *idev = &ionic->idev; in ionic_port_identify()
506 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_identify()
509 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_identify()
515 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_identify()
520 int ionic_port_init(struct ionic *ionic) in ionic_port_init() argument
522 struct ionic_identity *ident = &ionic->ident; in ionic_port_init()
523 struct ionic_dev *idev = &ionic->idev; in ionic_port_init()
529 idev->port_info = dma_alloc_coherent(ionic->dev, in ionic_port_init()
539 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_init()
543 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_init()
545 ionic_dev_cmd_port_state(&ionic->idev, IONIC_PORT_ADMIN_STATE_UP); in ionic_port_init()
546 (void)ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_init()
548 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_init()
550 dev_err(ionic->dev, "Failed to init port\n"); in ionic_port_init()
551 dma_free_coherent(ionic->dev, idev->port_info_sz, in ionic_port_init()
560 int ionic_port_reset(struct ionic *ionic) in ionic_port_reset() argument
562 struct ionic_dev *idev = &ionic->idev; in ionic_port_reset()
568 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_reset()
570 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_reset()
571 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_reset()
573 dma_free_coherent(ionic->dev, idev->port_info_sz, in ionic_port_reset()
580 dev_err(ionic->dev, "Failed to reset port\n"); in ionic_port_reset()