mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 03:35:32 -04:00
Merge branch 'net-macb-implement-context-swapping'
Théo Lebrun says: ==================== net: macb: implement context swapping [part] ==================== Trivial cleanups from the larger resource management rework. Link: https://patch.msgid.link/20260812-macb-context-v9-0-7ddbf5f715e0@bootlin.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -1201,11 +1201,11 @@ struct macb_or_gem_ops {
|
||||
|
||||
/* MACB-PTP interface: adapt to platform needs. */
|
||||
struct macb_ptp_info {
|
||||
void (*ptp_init)(struct net_device *ndev);
|
||||
void (*ptp_remove)(struct net_device *ndev);
|
||||
void (*ptp_init)(struct net_device *netdev);
|
||||
void (*ptp_remove)(struct net_device *netdev);
|
||||
s32 (*get_ptp_max_adj)(void);
|
||||
unsigned int (*get_tsu_rate)(struct macb *bp);
|
||||
int (*get_ts_info)(struct net_device *dev,
|
||||
int (*get_ts_info)(struct net_device *netdev,
|
||||
struct kernel_ethtool_ts_info *info);
|
||||
int (*get_hwtst)(struct net_device *netdev,
|
||||
struct kernel_hwtstamp_config *tstamp_config);
|
||||
@@ -1320,7 +1320,7 @@ struct macb {
|
||||
struct clk *tx_clk;
|
||||
struct clk *rx_clk;
|
||||
struct clk *tsu_clk;
|
||||
struct net_device *dev;
|
||||
struct net_device *netdev;
|
||||
/* Protects hw_stats and ethtool_stats */
|
||||
spinlock_t stats_lock;
|
||||
union {
|
||||
@@ -1400,8 +1400,8 @@ enum macb_bd_control {
|
||||
TSTAMP_ALL_FRAMES,
|
||||
};
|
||||
|
||||
void gem_ptp_init(struct net_device *ndev);
|
||||
void gem_ptp_remove(struct net_device *ndev);
|
||||
void gem_ptp_init(struct net_device *netdev);
|
||||
void gem_ptp_remove(struct net_device *netdev);
|
||||
void gem_ptp_txstamp(struct macb *bp, struct sk_buff *skb, struct macb_dma_desc *desc);
|
||||
void gem_ptp_rxstamp(struct macb *bp, struct sk_buff *skb, struct macb_dma_desc *desc);
|
||||
static inline void gem_ptp_do_txstamp(struct macb *bp, struct sk_buff *skb, struct macb_dma_desc *desc)
|
||||
@@ -1420,14 +1420,14 @@ static inline void gem_ptp_do_rxstamp(struct macb *bp, struct sk_buff *skb, stru
|
||||
gem_ptp_rxstamp(bp, skb, desc);
|
||||
}
|
||||
|
||||
int gem_get_hwtst(struct net_device *dev,
|
||||
int gem_get_hwtst(struct net_device *netdev,
|
||||
struct kernel_hwtstamp_config *tstamp_config);
|
||||
int gem_set_hwtst(struct net_device *dev,
|
||||
int gem_set_hwtst(struct net_device *netdev,
|
||||
struct kernel_hwtstamp_config *tstamp_config,
|
||||
struct netlink_ext_ack *extack);
|
||||
#else
|
||||
static inline void gem_ptp_init(struct net_device *ndev) { }
|
||||
static inline void gem_ptp_remove(struct net_device *ndev) { }
|
||||
static inline void gem_ptp_init(struct net_device *netdev) { }
|
||||
static inline void gem_ptp_remove(struct net_device *netdev) { }
|
||||
|
||||
static inline void gem_ptp_do_txstamp(struct macb *bp, struct sk_buff *skb, struct macb_dma_desc *desc) { }
|
||||
static inline void gem_ptp_do_rxstamp(struct macb *bp, struct sk_buff *skb, struct macb_dma_desc *desc) { }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,48 +24,48 @@
|
||||
#define GEM_PCLK_RATE 50000000
|
||||
#define GEM_HCLK_RATE 50000000
|
||||
|
||||
static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
static int macb_probe(struct pci_dev *pci, const struct pci_device_id *id)
|
||||
{
|
||||
int err;
|
||||
struct platform_device *plat_dev;
|
||||
struct platform_device *pdev;
|
||||
struct platform_device_info plat_info;
|
||||
struct macb_platform_data plat_data;
|
||||
struct resource res[2];
|
||||
|
||||
/* enable pci device */
|
||||
err = pcim_enable_device(pdev);
|
||||
err = pcim_enable_device(pci);
|
||||
if (err < 0) {
|
||||
dev_err(&pdev->dev, "Enabling PCI device has failed: %d", err);
|
||||
dev_err(&pci->dev, "Enabling PCI device has failed: %d", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
pci_set_master(pdev);
|
||||
pci_set_master(pci);
|
||||
|
||||
/* set up resources */
|
||||
memset(res, 0x00, sizeof(struct resource) * ARRAY_SIZE(res));
|
||||
res[0].start = pci_resource_start(pdev, 0);
|
||||
res[0].end = pci_resource_end(pdev, 0);
|
||||
res[0].start = pci_resource_start(pci, 0);
|
||||
res[0].end = pci_resource_end(pci, 0);
|
||||
res[0].name = PCI_DRIVER_NAME;
|
||||
res[0].flags = IORESOURCE_MEM;
|
||||
res[1].start = pci_irq_vector(pdev, 0);
|
||||
res[1].start = pci_irq_vector(pci, 0);
|
||||
res[1].name = PCI_DRIVER_NAME;
|
||||
res[1].flags = IORESOURCE_IRQ;
|
||||
|
||||
dev_info(&pdev->dev, "EMAC physical base addr: %pa\n",
|
||||
dev_info(&pci->dev, "EMAC physical base addr: %pa\n",
|
||||
&res[0].start);
|
||||
|
||||
/* set up macb platform data */
|
||||
memset(&plat_data, 0, sizeof(plat_data));
|
||||
|
||||
/* initialize clocks */
|
||||
plat_data.pclk = clk_register_fixed_rate(&pdev->dev, "pclk", NULL, 0,
|
||||
plat_data.pclk = clk_register_fixed_rate(&pci->dev, "pclk", NULL, 0,
|
||||
GEM_PCLK_RATE);
|
||||
if (IS_ERR(plat_data.pclk)) {
|
||||
err = PTR_ERR(plat_data.pclk);
|
||||
goto err_pclk_register;
|
||||
}
|
||||
|
||||
plat_data.hclk = clk_register_fixed_rate(&pdev->dev, "hclk", NULL, 0,
|
||||
plat_data.hclk = clk_register_fixed_rate(&pci->dev, "hclk", NULL, 0,
|
||||
GEM_HCLK_RATE);
|
||||
if (IS_ERR(plat_data.hclk)) {
|
||||
err = PTR_ERR(plat_data.hclk);
|
||||
@@ -74,24 +74,24 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
|
||||
/* set up platform device info */
|
||||
memset(&plat_info, 0, sizeof(plat_info));
|
||||
plat_info.parent = &pdev->dev;
|
||||
plat_info.fwnode = pdev->dev.fwnode;
|
||||
plat_info.parent = &pci->dev;
|
||||
plat_info.fwnode = pci->dev.fwnode;
|
||||
plat_info.name = PLAT_DRIVER_NAME;
|
||||
plat_info.id = pdev->devfn;
|
||||
plat_info.id = pci->devfn;
|
||||
plat_info.res = res;
|
||||
plat_info.num_res = ARRAY_SIZE(res);
|
||||
plat_info.data = &plat_data;
|
||||
plat_info.size_data = sizeof(plat_data);
|
||||
plat_info.dma_mask = pdev->dma_mask;
|
||||
plat_info.dma_mask = pci->dma_mask;
|
||||
|
||||
/* register platform device */
|
||||
plat_dev = platform_device_register_full(&plat_info);
|
||||
if (IS_ERR(plat_dev)) {
|
||||
err = PTR_ERR(plat_dev);
|
||||
pdev = platform_device_register_full(&plat_info);
|
||||
if (IS_ERR(pdev)) {
|
||||
err = PTR_ERR(pdev);
|
||||
goto err_plat_dev_register;
|
||||
}
|
||||
|
||||
pci_set_drvdata(pdev, plat_dev);
|
||||
pci_set_drvdata(pci, pdev);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -105,14 +105,14 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return err;
|
||||
}
|
||||
|
||||
static void macb_remove(struct pci_dev *pdev)
|
||||
static void macb_remove(struct pci_dev *pci)
|
||||
{
|
||||
struct platform_device *plat_dev = pci_get_drvdata(pdev);
|
||||
struct macb_platform_data *plat_data = dev_get_platdata(&plat_dev->dev);
|
||||
struct platform_device *pdev = pci_get_drvdata(pci);
|
||||
struct macb_platform_data *plat_data = dev_get_platdata(&pdev->dev);
|
||||
struct clk *pclk = plat_data->pclk;
|
||||
struct clk *hclk = plat_data->hclk;
|
||||
|
||||
platform_device_unregister(plat_dev);
|
||||
platform_device_unregister(pdev);
|
||||
clk_unregister_fixed_rate(pclk);
|
||||
clk_unregister_fixed_rate(hclk);
|
||||
}
|
||||
|
||||
@@ -324,9 +324,9 @@ void gem_ptp_txstamp(struct macb *bp, struct sk_buff *skb,
|
||||
skb_tstamp_tx(skb, &shhwtstamps);
|
||||
}
|
||||
|
||||
void gem_ptp_init(struct net_device *dev)
|
||||
void gem_ptp_init(struct net_device *netdev)
|
||||
{
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
struct macb *bp = netdev_priv(netdev);
|
||||
|
||||
bp->ptp_clock_info = gem_ptp_caps_template;
|
||||
|
||||
@@ -334,7 +334,7 @@ void gem_ptp_init(struct net_device *dev)
|
||||
bp->tsu_rate = bp->ptp_info->get_tsu_rate(bp);
|
||||
bp->ptp_clock_info.max_adj = bp->ptp_info->get_ptp_max_adj();
|
||||
gem_ptp_init_timer(bp);
|
||||
bp->ptp_clock = ptp_clock_register(&bp->ptp_clock_info, &dev->dev);
|
||||
bp->ptp_clock = ptp_clock_register(&bp->ptp_clock_info, &netdev->dev);
|
||||
if (IS_ERR(bp->ptp_clock)) {
|
||||
pr_err("ptp clock register failed: %ld\n",
|
||||
PTR_ERR(bp->ptp_clock));
|
||||
@@ -353,9 +353,9 @@ void gem_ptp_init(struct net_device *dev)
|
||||
GEM_PTP_TIMER_NAME);
|
||||
}
|
||||
|
||||
void gem_ptp_remove(struct net_device *ndev)
|
||||
void gem_ptp_remove(struct net_device *netdev)
|
||||
{
|
||||
struct macb *bp = netdev_priv(ndev);
|
||||
struct macb *bp = netdev_priv(netdev);
|
||||
|
||||
if (bp->ptp_clock) {
|
||||
ptp_clock_unregister(bp->ptp_clock);
|
||||
@@ -378,10 +378,10 @@ static int gem_ptp_set_ts_mode(struct macb *bp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int gem_get_hwtst(struct net_device *dev,
|
||||
int gem_get_hwtst(struct net_device *netdev,
|
||||
struct kernel_hwtstamp_config *tstamp_config)
|
||||
{
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
struct macb *bp = netdev_priv(netdev);
|
||||
|
||||
*tstamp_config = bp->tstamp_config;
|
||||
if (!macb_dma_ptp(bp))
|
||||
@@ -402,13 +402,13 @@ static void gem_ptp_set_one_step_sync(struct macb *bp, u8 enable)
|
||||
macb_writel(bp, NCR, reg_val & ~MACB_BIT(OSSMODE));
|
||||
}
|
||||
|
||||
int gem_set_hwtst(struct net_device *dev,
|
||||
int gem_set_hwtst(struct net_device *netdev,
|
||||
struct kernel_hwtstamp_config *tstamp_config,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
enum macb_bd_control tx_bd_control = TSTAMP_DISABLED;
|
||||
enum macb_bd_control rx_bd_control = TSTAMP_DISABLED;
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
struct macb *bp = netdev_priv(netdev);
|
||||
u32 regval;
|
||||
|
||||
if (!macb_dma_ptp(bp))
|
||||
|
||||
Reference in New Issue
Block a user