Lines Matching refs:ionic

286 	err = ionic_heartbeat_check(lif->ionic);  in ionic_adminq_post()
345 dev_dbg(lif->ionic->dev, "%s: elapsed %d msecs\n", in ionic_adminq_wait()
371 static void ionic_dev_cmd_clean(struct ionic *ionic) in ionic_dev_cmd_clean() argument
373 union __iomem ionic_dev_cmd_regs *regs = ionic->idev.dev_cmd_regs; in ionic_dev_cmd_clean()
379 int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_seconds) in ionic_dev_cmd_wait() argument
381 struct ionic_dev *idev = &ionic->idev; in ionic_dev_cmd_wait()
407 hb = ionic_heartbeat_check(ionic); in ionic_dev_cmd_wait()
411 dev_dbg(ionic->dev, "DEVCMD %s (%d) done=%d took %ld secs (%ld jiffies)\n", in ionic_dev_cmd_wait()
420 dev_dbg(ionic->dev, "DEVCMD %s (%d) failed - FW halted\n", in ionic_dev_cmd_wait()
426 ionic_dev_cmd_clean(ionic); in ionic_dev_cmd_wait()
427 dev_warn(ionic->dev, "DEVCMD %s (%d) timeout after %ld secs\n", in ionic_dev_cmd_wait()
432 err = ionic_dev_cmd_status(&ionic->idev); in ionic_dev_cmd_wait()
436 dev_dbg(ionic->dev, "DEV_CMD %s (%d), %s (%d) retrying...\n", in ionic_dev_cmd_wait()
447 dev_err(ionic->dev, "DEV_CMD %s (%d) error, %s (%d) failed\n", in ionic_dev_cmd_wait()
457 int ionic_setup(struct ionic *ionic) in ionic_setup() argument
461 err = ionic_dev_setup(ionic); in ionic_setup()
464 ionic_reset(ionic); in ionic_setup()
469 int ionic_identify(struct ionic *ionic) in ionic_identify() argument
471 struct ionic_identity *ident = &ionic->ident; in ionic_identify()
472 struct ionic_dev *idev = &ionic->idev; in ionic_identify()
482 mutex_lock(&ionic->dev_cmd_lock); in ionic_identify()
488 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_identify()
493 mutex_unlock(&ionic->dev_cmd_lock); in ionic_identify()
496 dev_err(ionic->dev, "Cannot identify ionic: %d\n", err); in ionic_identify()
502 dev_info(ionic->dev, "FW: %.*s\n", in ionic_identify()
506 dev_info(ionic->dev, "FW: (invalid string) 0x%02x 0x%02x 0x%02x 0x%02x ...\n", in ionic_identify()
512 err = ionic_lif_identify(ionic, IONIC_LIF_TYPE_CLASSIC, in ionic_identify()
513 &ionic->ident.lif); in ionic_identify()
515 dev_err(ionic->dev, "Cannot identify LIFs: %d\n", err); in ionic_identify()
525 int ionic_init(struct ionic *ionic) in ionic_init() argument
527 struct ionic_dev *idev = &ionic->idev; in ionic_init()
530 mutex_lock(&ionic->dev_cmd_lock); in ionic_init()
532 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_init()
533 mutex_unlock(&ionic->dev_cmd_lock); in ionic_init()
538 int ionic_reset(struct ionic *ionic) in ionic_reset() argument
540 struct ionic_dev *idev = &ionic->idev; in ionic_reset()
543 mutex_lock(&ionic->dev_cmd_lock); in ionic_reset()
545 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_reset()
546 mutex_unlock(&ionic->dev_cmd_lock); in ionic_reset()
551 int ionic_port_identify(struct ionic *ionic) in ionic_port_identify() argument
553 struct ionic_identity *ident = &ionic->ident; in ionic_port_identify()
554 struct ionic_dev *idev = &ionic->idev; in ionic_port_identify()
558 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_identify()
561 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_identify()
567 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_identify()
572 int ionic_port_init(struct ionic *ionic) in ionic_port_init() argument
574 struct ionic_identity *ident = &ionic->ident; in ionic_port_init()
575 struct ionic_dev *idev = &ionic->idev; in ionic_port_init()
581 idev->port_info = dma_alloc_coherent(ionic->dev, in ionic_port_init()
591 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_init()
595 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_init()
597 ionic_dev_cmd_port_state(&ionic->idev, IONIC_PORT_ADMIN_STATE_UP); in ionic_port_init()
598 (void)ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_init()
600 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_init()
602 dev_err(ionic->dev, "Failed to init port\n"); in ionic_port_init()
603 dma_free_coherent(ionic->dev, idev->port_info_sz, in ionic_port_init()
612 int ionic_port_reset(struct ionic *ionic) in ionic_port_reset() argument
614 struct ionic_dev *idev = &ionic->idev; in ionic_port_reset()
620 mutex_lock(&ionic->dev_cmd_lock); in ionic_port_reset()
622 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_port_reset()
623 mutex_unlock(&ionic->dev_cmd_lock); in ionic_port_reset()
625 dma_free_coherent(ionic->dev, idev->port_info_sz, in ionic_port_reset()
632 dev_err(ionic->dev, "Failed to reset port\n"); in ionic_port_reset()