nixge.c (71af75b6929458d85f63c0649dc26d6f4c19729e) | nixge.c (464a57281f29afc202905b456b0cb8bc729b383a) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* Copyright (c) 2016-2017, National Instruments Corp. 3 * 4 * Author: Moritz Fischer <mdf@kernel.org> 5 */ 6 7#include <linux/etherdevice.h> 8#include <linux/module.h> --- 979 unchanged lines hidden (view full) --- 988 989static void nixge_ethtools_get_drvinfo(struct net_device *ndev, 990 struct ethtool_drvinfo *ed) 991{ 992 strlcpy(ed->driver, "nixge", sizeof(ed->driver)); 993 strlcpy(ed->bus_info, "platform", sizeof(ed->bus_info)); 994} 995 | 1// SPDX-License-Identifier: GPL-2.0 2/* Copyright (c) 2016-2017, National Instruments Corp. 3 * 4 * Author: Moritz Fischer <mdf@kernel.org> 5 */ 6 7#include <linux/etherdevice.h> 8#include <linux/module.h> --- 979 unchanged lines hidden (view full) --- 988 989static void nixge_ethtools_get_drvinfo(struct net_device *ndev, 990 struct ethtool_drvinfo *ed) 991{ 992 strlcpy(ed->driver, "nixge", sizeof(ed->driver)); 993 strlcpy(ed->bus_info, "platform", sizeof(ed->bus_info)); 994} 995 |
996static int nixge_ethtools_get_coalesce(struct net_device *ndev, 997 struct ethtool_coalesce *ecoalesce) | 996static int 997nixge_ethtools_get_coalesce(struct net_device *ndev, 998 struct ethtool_coalesce *ecoalesce, 999 struct kernel_ethtool_coalesce *kernel_coal, 1000 struct netlink_ext_ack *extack) |
998{ 999 struct nixge_priv *priv = netdev_priv(ndev); 1000 u32 regval = 0; 1001 1002 regval = nixge_dma_read_reg(priv, XAXIDMA_RX_CR_OFFSET); 1003 ecoalesce->rx_max_coalesced_frames = (regval & XAXIDMA_COALESCE_MASK) 1004 >> XAXIDMA_COALESCE_SHIFT; 1005 regval = nixge_dma_read_reg(priv, XAXIDMA_TX_CR_OFFSET); 1006 ecoalesce->tx_max_coalesced_frames = (regval & XAXIDMA_COALESCE_MASK) 1007 >> XAXIDMA_COALESCE_SHIFT; 1008 return 0; 1009} 1010 | 1001{ 1002 struct nixge_priv *priv = netdev_priv(ndev); 1003 u32 regval = 0; 1004 1005 regval = nixge_dma_read_reg(priv, XAXIDMA_RX_CR_OFFSET); 1006 ecoalesce->rx_max_coalesced_frames = (regval & XAXIDMA_COALESCE_MASK) 1007 >> XAXIDMA_COALESCE_SHIFT; 1008 regval = nixge_dma_read_reg(priv, XAXIDMA_TX_CR_OFFSET); 1009 ecoalesce->tx_max_coalesced_frames = (regval & XAXIDMA_COALESCE_MASK) 1010 >> XAXIDMA_COALESCE_SHIFT; 1011 return 0; 1012} 1013 |
1011static int nixge_ethtools_set_coalesce(struct net_device *ndev, 1012 struct ethtool_coalesce *ecoalesce) | 1014static int 1015nixge_ethtools_set_coalesce(struct net_device *ndev, 1016 struct ethtool_coalesce *ecoalesce, 1017 struct kernel_ethtool_coalesce *kernel_coal, 1018 struct netlink_ext_ack *extack) |
1013{ 1014 struct nixge_priv *priv = netdev_priv(ndev); 1015 1016 if (netif_running(ndev)) { 1017 netdev_err(ndev, 1018 "Please stop netif before applying configuration\n"); 1019 return -EBUSY; 1020 } --- 197 unchanged lines hidden (view full) --- 1218 {}, 1219}; 1220MODULE_DEVICE_TABLE(of, nixge_dt_ids); 1221 1222static int nixge_of_get_resources(struct platform_device *pdev) 1223{ 1224 const struct of_device_id *of_id; 1225 enum nixge_version version; | 1019{ 1020 struct nixge_priv *priv = netdev_priv(ndev); 1021 1022 if (netif_running(ndev)) { 1023 netdev_err(ndev, 1024 "Please stop netif before applying configuration\n"); 1025 return -EBUSY; 1026 } --- 197 unchanged lines hidden (view full) --- 1224 {}, 1225}; 1226MODULE_DEVICE_TABLE(of, nixge_dt_ids); 1227 1228static int nixge_of_get_resources(struct platform_device *pdev) 1229{ 1230 const struct of_device_id *of_id; 1231 enum nixge_version version; |
1226 struct resource *ctrlres; | |
1227 struct net_device *ndev; 1228 struct nixge_priv *priv; 1229 1230 ndev = platform_get_drvdata(pdev); 1231 priv = netdev_priv(ndev); 1232 of_id = of_match_node(nixge_dt_ids, pdev->dev.of_node); 1233 if (!of_id) 1234 return -ENODEV; 1235 1236 version = (enum nixge_version)of_id->data; 1237 if (version <= NIXGE_V2) 1238 priv->dma_regs = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); 1239 else 1240 priv->dma_regs = devm_platform_ioremap_resource_byname(pdev, "dma"); 1241 if (IS_ERR(priv->dma_regs)) { 1242 netdev_err(ndev, "failed to map dma regs\n"); 1243 return PTR_ERR(priv->dma_regs); 1244 } | 1232 struct net_device *ndev; 1233 struct nixge_priv *priv; 1234 1235 ndev = platform_get_drvdata(pdev); 1236 priv = netdev_priv(ndev); 1237 of_id = of_match_node(nixge_dt_ids, pdev->dev.of_node); 1238 if (!of_id) 1239 return -ENODEV; 1240 1241 version = (enum nixge_version)of_id->data; 1242 if (version <= NIXGE_V2) 1243 priv->dma_regs = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); 1244 else 1245 priv->dma_regs = devm_platform_ioremap_resource_byname(pdev, "dma"); 1246 if (IS_ERR(priv->dma_regs)) { 1247 netdev_err(ndev, "failed to map dma regs\n"); 1248 return PTR_ERR(priv->dma_regs); 1249 } |
1245 if (version <= NIXGE_V2) { | 1250 if (version <= NIXGE_V2) |
1246 priv->ctrl_regs = priv->dma_regs + NIXGE_REG_CTRL_OFFSET; | 1251 priv->ctrl_regs = priv->dma_regs + NIXGE_REG_CTRL_OFFSET; |
1247 } else { 1248 ctrlres = platform_get_resource_byname(pdev, IORESOURCE_MEM, 1249 "ctrl"); 1250 priv->ctrl_regs = devm_ioremap_resource(&pdev->dev, ctrlres); 1251 } | 1252 else 1253 priv->ctrl_regs = devm_platform_ioremap_resource_byname(pdev, "ctrl"); |
1252 if (IS_ERR(priv->ctrl_regs)) { 1253 netdev_err(ndev, "failed to map ctrl regs\n"); 1254 return PTR_ERR(priv->ctrl_regs); 1255 } 1256 return 0; 1257} 1258 1259static int nixge_probe(struct platform_device *pdev) --- 139 unchanged lines hidden --- | 1254 if (IS_ERR(priv->ctrl_regs)) { 1255 netdev_err(ndev, "failed to map ctrl regs\n"); 1256 return PTR_ERR(priv->ctrl_regs); 1257 } 1258 return 0; 1259} 1260 1261static int nixge_probe(struct platform_device *pdev) --- 139 unchanged lines hidden --- |