| /Linux-v5.10/drivers/net/ethernet/pensando/ionic/ |
| D | ionic_bus_pci.c | 22 int ionic_bus_get_irq(struct ionic *ionic, unsigned int num) in ionic_bus_get_irq() argument 24 return pci_irq_vector(ionic->pdev, num); in ionic_bus_get_irq() 27 const char *ionic_bus_info(struct ionic *ionic) in ionic_bus_info() argument 29 return pci_name(ionic->pdev); in ionic_bus_info() 32 int ionic_bus_alloc_irq_vectors(struct ionic *ionic, unsigned int nintrs) in ionic_bus_alloc_irq_vectors() argument 34 return pci_alloc_irq_vectors(ionic->pdev, nintrs, nintrs, in ionic_bus_alloc_irq_vectors() 38 void ionic_bus_free_irq_vectors(struct ionic *ionic) in ionic_bus_free_irq_vectors() argument 40 if (!ionic->nintrs) in ionic_bus_free_irq_vectors() 43 pci_free_irq_vectors(ionic->pdev); in ionic_bus_free_irq_vectors() 46 static int ionic_map_bars(struct ionic *ionic) in ionic_map_bars() argument [all …]
|
| D | ionic_main.c | 271 err = ionic_heartbeat_check(lif->ionic); in ionic_adminq_post() 312 static void ionic_dev_cmd_clean(struct ionic *ionic) in ionic_dev_cmd_clean() argument 314 union __iomem ionic_dev_cmd_regs *regs = ionic->idev.dev_cmd_regs; in ionic_dev_cmd_clean() 320 int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_seconds) in ionic_dev_cmd_wait() argument 322 struct ionic_dev *idev = &ionic->idev; in ionic_dev_cmd_wait() 348 hb = ionic_heartbeat_check(ionic); in ionic_dev_cmd_wait() 352 dev_dbg(ionic->dev, "DEVCMD %s (%d) done=%d took %ld secs (%ld jiffies)\n", in ionic_dev_cmd_wait() 361 dev_warn(ionic->dev, "DEVCMD %s (%d) failed - FW halted\n", in ionic_dev_cmd_wait() 367 ionic_dev_cmd_clean(ionic); in ionic_dev_cmd_wait() 368 dev_warn(ionic->dev, "DEVCMD %s (%d) timeout after %ld secs\n", in ionic_dev_cmd_wait() [all …]
|
| D | ionic_devlink.c | 16 struct ionic *ionic = devlink_priv(dl); in ionic_dl_flash_update() local 18 return ionic_firmware_update(ionic->lif, params->file_name, extack); in ionic_dl_flash_update() 24 struct ionic *ionic = devlink_priv(dl); in ionic_dl_info_get() local 25 struct ionic_dev *idev = &ionic->idev; in ionic_dl_info_get() 63 struct ionic *ionic_devlink_alloc(struct device *dev) in ionic_devlink_alloc() 67 dl = devlink_alloc(&ionic_dl_ops, sizeof(struct ionic)); in ionic_devlink_alloc() 72 void ionic_devlink_free(struct ionic *ionic) in ionic_devlink_free() argument 74 struct devlink *dl = priv_to_devlink(ionic); in ionic_devlink_free() 79 int ionic_devlink_register(struct ionic *ionic) in ionic_devlink_register() argument 81 struct devlink *dl = priv_to_devlink(ionic); in ionic_devlink_register() [all …]
|
| D | ionic.h | 35 struct ionic { struct 68 int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_wait); argument 69 int ionic_set_dma_mask(struct ionic *ionic); 70 int ionic_setup(struct ionic *ionic); 72 int ionic_identify(struct ionic *ionic); 73 int ionic_init(struct ionic *ionic); 74 int ionic_reset(struct ionic *ionic); 76 int ionic_port_identify(struct ionic *ionic); 77 int ionic_port_init(struct ionic *ionic); 78 int ionic_port_reset(struct ionic *ionic);
|
| D | ionic_debugfs.h | 13 void ionic_debugfs_add_dev(struct ionic *ionic); 14 void ionic_debugfs_del_dev(struct ionic *ionic); 15 void ionic_debugfs_add_ident(struct ionic *ionic); 16 void ionic_debugfs_add_sizes(struct ionic *ionic); 24 static inline void ionic_debugfs_add_dev(struct ionic *ionic) { } in ionic_debugfs_add_dev() argument 25 static inline void ionic_debugfs_del_dev(struct ionic *ionic) { } in ionic_debugfs_del_dev() argument 26 static inline void ionic_debugfs_add_ident(struct ionic *ionic) { } in ionic_debugfs_add_ident() argument 27 static inline void ionic_debugfs_add_sizes(struct ionic *ionic) { } in ionic_debugfs_add_sizes() argument
|
| D | ionic_bus.h | 7 int ionic_bus_get_irq(struct ionic *ionic, unsigned int num); 8 const char *ionic_bus_info(struct ionic *ionic); 9 int ionic_bus_alloc_irq_vectors(struct ionic *ionic, unsigned int nintrs); 10 void ionic_bus_free_irq_vectors(struct ionic *ionic); 13 void __iomem *ionic_bus_map_dbpage(struct ionic *ionic, int page_num); 14 void ionic_bus_unmap_dbpage(struct ionic *ionic, void __iomem *page);
|
| D | ionic_fw.c | 59 static int ionic_fw_status_long_wait(struct ionic *ionic, in ionic_fw_status_long_wait() argument 76 mutex_lock(&ionic->dev_cmd_lock); in ionic_fw_status_long_wait() 77 ionic_dev_cmd_go(&ionic->idev, &cmd); in ionic_fw_status_long_wait() 78 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_fw_status_long_wait() 79 mutex_unlock(&ionic->dev_cmd_lock); in ionic_fw_status_long_wait() 86 dev_err(ionic->dev, "DEV_CMD firmware wait %s timed out\n", label); in ionic_fw_status_long_wait() 97 struct ionic_dev *idev = &lif->ionic->idev; in ionic_firmware_update() 99 struct ionic *ionic = lif->ionic; in ionic_firmware_update() local 110 dl = priv_to_devlink(ionic); in ionic_firmware_update() 114 err = request_firmware(&fw, fw_name, ionic->dev); in ionic_firmware_update() [all …]
|
| D | ionic_lif.c | 54 new_coal = ionic_coal_usec_to_hw(qcq->q.lif->ionic, cur_moder.usec); in ionic_dim_work() 129 ionic_port_identify(lif->ionic); in ionic_link_status_check() 191 struct device *dev = lif->ionic->dev; in ionic_request_irq() 209 struct ionic *ionic = lif->ionic; in ionic_intr_alloc() local 212 index = find_first_zero_bit(ionic->intrs, ionic->nintrs); in ionic_intr_alloc() 213 if (index == ionic->nintrs) { in ionic_intr_alloc() 215 __func__, index, ionic->nintrs); in ionic_intr_alloc() 219 set_bit(index, ionic->intrs); in ionic_intr_alloc() 220 ionic_intr_init(&ionic->idev, intr, index); in ionic_intr_alloc() 225 static void ionic_intr_free(struct ionic *ionic, int index) in ionic_intr_free() argument [all …]
|
| D | ionic_debugfs.c | 26 void ionic_debugfs_add_dev(struct ionic *ionic) in ionic_debugfs_add_dev() argument 28 ionic->dentry = debugfs_create_dir(ionic_bus_info(ionic), ionic_dir); in ionic_debugfs_add_dev() 31 void ionic_debugfs_del_dev(struct ionic *ionic) in ionic_debugfs_del_dev() argument 33 debugfs_remove_recursive(ionic->dentry); in ionic_debugfs_del_dev() 34 ionic->dentry = NULL; in ionic_debugfs_del_dev() 39 struct ionic *ionic = seq->private; in identity_show() local 42 ident = &ionic->ident; in identity_show() 57 void ionic_debugfs_add_ident(struct ionic *ionic) in ionic_debugfs_add_ident() argument 59 debugfs_create_file("identity", 0400, ionic->dentry, in ionic_debugfs_add_ident() 60 ionic, &identity_fops); in ionic_debugfs_add_ident() [all …]
|
| D | ionic_dev.c | 16 struct ionic *ionic = from_timer(ionic, t, watchdog_timer); in ionic_watchdog_cb() local 19 mod_timer(&ionic->watchdog_timer, in ionic_watchdog_cb() 20 round_jiffies(jiffies + ionic->watchdog_period)); in ionic_watchdog_cb() 22 if (!ionic->lif) in ionic_watchdog_cb() 25 hb = ionic_heartbeat_check(ionic); in ionic_watchdog_cb() 28 ionic_link_status_check_request(ionic->lif, false); in ionic_watchdog_cb() 31 void ionic_init_devinfo(struct ionic *ionic) in ionic_init_devinfo() argument 33 struct ionic_dev *idev = &ionic->idev; in ionic_init_devinfo() 49 dev_dbg(ionic->dev, "fw_version %s\n", idev->dev_info.fw_version); in ionic_init_devinfo() 52 int ionic_dev_setup(struct ionic *ionic) in ionic_dev_setup() argument [all …]
|
| D | ionic_ethtool.c | 88 struct ionic *ionic = lif->ionic; in ionic_get_drvinfo() local 91 strlcpy(drvinfo->fw_version, ionic->idev.dev_info.fw_version, in ionic_get_drvinfo() 93 strlcpy(drvinfo->bus_info, ionic_bus_info(ionic), in ionic_get_drvinfo() 113 memcpy_fromio(p + offset, lif->ionic->idev.dev_info_regs->words, size); in ionic_get_regs() 117 memcpy_fromio(p + offset, lif->ionic->idev.dev_cmd_regs->words, size); in ionic_get_regs() 124 struct ionic_dev *idev = &lif->ionic->idev; in ionic_get_link_ksettings() 216 dev_info(lif->ionic->dev, "unknown xcvr type pid=%d / 0x%x\n", in ionic_get_link_ksettings() 267 struct ionic *ionic = lif->ionic; in ionic_set_link_ksettings() local 271 idev = &lif->ionic->idev; in ionic_set_link_ksettings() 275 mutex_lock(&ionic->dev_cmd_lock); in ionic_set_link_ksettings() [all …]
|
| D | ionic_devlink.h | 12 struct ionic *ionic_devlink_alloc(struct device *dev); 13 void ionic_devlink_free(struct ionic *ionic); 14 int ionic_devlink_register(struct ionic *ionic); 15 void ionic_devlink_unregister(struct ionic *ionic);
|
| D | ionic_lif.h | 160 struct ionic *ionic; member 230 static inline u32 ionic_coal_usec_to_hw(struct ionic *ionic, u32 usecs) in ionic_coal_usec_to_hw() argument 232 u32 mult = le32_to_cpu(ionic->ident.dev.intr_coal_mult); in ionic_coal_usec_to_hw() 233 u32 div = le32_to_cpu(ionic->ident.dev.intr_coal_div); in ionic_coal_usec_to_hw() 253 int ionic_lif_alloc(struct ionic *ionic); 259 int ionic_lif_identify(struct ionic *ionic, u8 lif_type, 261 int ionic_lif_size(struct ionic *ionic);
|
| D | ionic_dev.h | 259 struct ionic; 286 void ionic_init_devinfo(struct ionic *ionic); 287 int ionic_dev_setup(struct ionic *ionic); 307 int ionic_set_vf_config(struct ionic *ionic, int vf, u8 attr, u8 *data); 341 int ionic_heartbeat_check(struct ionic *ionic);
|
| D | Makefile | 4 obj-$(CONFIG_IONIC) := ionic.o 6 ionic-y := ionic_main.o ionic_bus_pci.o ionic_devlink.o ionic_dev.o \
|
| D | ionic_txrx.c | 74 struct device *dev = q->lif->ionic->dev; in ionic_rx_frags() 120 struct device *dev = q->lif->ionic->dev; in ionic_rx_copybreak() 265 dev = lif->ionic->dev; in ionic_rx_page_alloc() 305 dev = lif->ionic->dev; in ionic_rx_page_free() 432 ionic_intr_coal_init(lif->ionic->idev.intr_ctrl, in ionic_dim_update() 454 idev = &lif->ionic->idev; in ionic_tx_napi() 487 idev = &lif->ionic->idev; in ionic_rx_napi() 526 idev = &lif->ionic->idev; in ionic_txrx_napi() 559 struct device *dev = q->lif->ionic->dev; in ionic_tx_map_single() 577 struct device *dev = q->lif->ionic->dev; in ionic_tx_map_frag() [all …]
|
| D | ionic_rx_filter.c | 14 struct device *dev = lif->ionic->dev; in ionic_rx_filter_free() 125 struct device *dev = lif->ionic->dev; in ionic_rx_filter_save()
|
| D | ionic_stats.c | 358 port_stats = &lif->ionic->idev.port_info->stats; in ionic_sw_stats_get_values()
|
| /Linux-v5.10/Documentation/networking/device_drivers/ethernet/pensando/ |
| D | ionic.rst | 29 If such devices are listed as above, then the ionic.ko driver should find 33 $ dmesg | grep ionic 34 ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link) 35 ionic 0000:b5:00.0 enp181s0: renamed from eth0 36 ionic 0000:b5:00.0 enp181s0: Link up - 100 Gbps 37 ionic 0000:b6:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link) 38 ionic 0000:b6:00.0 enp182s0: renamed from eth0 39 ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps 45 driver: ionic 52 driver ionic [all …]
|
| /Linux-v5.10/Documentation/networking/devlink/ |
| D | ionic.rst | 4 ionic devlink support 7 This document describes the devlink features implemented by the ``ionic`` 13 The ``ionic`` driver reports the following versions
|
| D | index.rst | 36 ionic
|
| /Linux-v5.10/drivers/net/ethernet/pensando/ |
| D | Kconfig | 29 <file:Documentation/networking/device_drivers/ethernet/pensando/ionic.rst>. 32 will be called ionic.
|
| D | Makefile | 6 obj-$(CONFIG_IONIC) += ionic/
|
| /Linux-v5.10/Documentation/networking/device_drivers/ethernet/ |
| D | index.rst | 47 pensando/ionic
|
| /Linux-v5.10/ |
| D | MAINTAINERS | 13684 F: Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
|