Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'net-macb-clean-up-several-member-settings-of-macb_config-instances'

Kevin Hao says:

====================
net: macb: Clean up several member settings of macb_config instances

While debugging an issue in the macb driver, I noticed that many macb_config
instances have very similar member settings. This makes it difficult to
identify the actual differences between these instances. This patch series
aims to clean up some of these settings and clarify the specific configurations
of each macb_config instance. No functional changes are introduced.
====================

Link: https://patch.msgid.link/20260310-macb-cleanup-v1-0-928c1a91a7dc@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+34 -58
+34 -58
drivers/net/ethernet/cadence/macb_main.c
··· 4548 4548 clk_bulk_disable_unprepare(ARRAY_SIZE(clks), clks); 4549 4549 } 4550 4550 4551 - static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, 4552 - struct clk **hclk, struct clk **tx_clk, 4553 - struct clk **rx_clk, struct clk **tsu_clk) 4551 + static int macb_clk_init_dflt(struct platform_device *pdev, struct clk **pclk, 4552 + struct clk **hclk, struct clk **tx_clk, 4553 + struct clk **rx_clk, struct clk **tsu_clk) 4554 4554 { 4555 4555 struct macb_platform_data *pdata; 4556 4556 int err; ··· 4633 4633 return err; 4634 4634 } 4635 4635 4636 - static int macb_init(struct platform_device *pdev) 4636 + static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, 4637 + struct clk **hclk, struct clk **tx_clk, 4638 + struct clk **rx_clk, struct clk **tsu_clk, 4639 + const struct macb_config *config) 4640 + { 4641 + if (config->clk_init) 4642 + return config->clk_init(pdev, pclk, hclk, tx_clk, rx_clk, 4643 + tsu_clk); 4644 + else 4645 + return macb_clk_init_dflt(pdev, pclk, hclk, tx_clk, rx_clk, 4646 + tsu_clk); 4647 + } 4648 + 4649 + static int macb_init_dflt(struct platform_device *pdev) 4637 4650 { 4638 4651 struct net_device *dev = platform_get_drvdata(pdev); 4639 4652 unsigned int hw_q, q; ··· 4799 4786 macb_writel(bp, NCFGR, val); 4800 4787 4801 4788 return 0; 4789 + } 4790 + 4791 + static int macb_init(struct platform_device *pdev, 4792 + const struct macb_config *config) 4793 + { 4794 + if (config->init) 4795 + return config->init(pdev); 4796 + else 4797 + return macb_init_dflt(pdev); 4802 4798 } 4803 4799 4804 4800 static const struct macb_usrio_config macb_default_usrio = { ··· 5263 5241 struct clk_init_data init; 5264 5242 int err = 0; 5265 5243 5266 - err = macb_clk_init(pdev, pclk, hclk, tx_clk, rx_clk, tsu_clk); 5244 + err = macb_clk_init_dflt(pdev, pclk, hclk, tx_clk, rx_clk, tsu_clk); 5267 5245 if (err) 5268 5246 return err; 5269 5247 ··· 5310 5288 if (IS_ERR(mgmt->reg)) 5311 5289 return PTR_ERR(mgmt->reg); 5312 5290 5313 - return macb_init(pdev); 5291 + return macb_init_dflt(pdev); 5314 5292 } 5315 5293 5316 5294 static int init_reset_optional(struct platform_device *pdev) ··· 5360 5338 return dev_err_probe(&pdev->dev, ret, "failed to reset controller"); 5361 5339 } 5362 5340 5363 - ret = macb_init(pdev); 5341 + ret = macb_init_dflt(pdev); 5364 5342 5365 5343 err_out_phy_exit: 5366 5344 if (ret) ··· 5385 5363 if (ret) 5386 5364 return dev_err_probe(dev, ret, "failed to init PHY\n"); 5387 5365 5388 - ret = macb_init(pdev); 5366 + ret = macb_init_dflt(pdev); 5389 5367 if (ret) 5390 5368 phy_exit(bp->phy); 5391 5369 return ret; ··· 5406 5384 .clk_init = fu540_c000_clk_init, 5407 5385 .init = fu540_c000_init, 5408 5386 .jumbo_max_len = 10240, 5409 - .usrio = &macb_default_usrio, 5410 5387 }; 5411 5388 5412 5389 static const struct macb_config at91sam9260_config = { 5413 5390 .caps = MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII, 5414 - .clk_init = macb_clk_init, 5415 - .init = macb_init, 5416 - .usrio = &macb_default_usrio, 5417 5391 }; 5418 5392 5419 5393 static const struct macb_config sama5d3macb_config = { 5420 5394 .caps = MACB_CAPS_SG_DISABLED | 5421 5395 MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII, 5422 - .clk_init = macb_clk_init, 5423 - .init = macb_init, 5424 - .usrio = &macb_default_usrio, 5425 5396 }; 5426 5397 5427 5398 static const struct macb_config pc302gem_config = { 5428 5399 .caps = MACB_CAPS_SG_DISABLED | MACB_CAPS_GIGABIT_MODE_AVAILABLE, 5429 5400 .dma_burst_length = 16, 5430 - .clk_init = macb_clk_init, 5431 - .init = macb_init, 5432 - .usrio = &macb_default_usrio, 5433 5401 }; 5434 5402 5435 5403 static const struct macb_config sama5d2_config = { 5436 5404 .caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_JUMBO, 5437 5405 .dma_burst_length = 16, 5438 - .clk_init = macb_clk_init, 5439 - .init = macb_init, 5440 5406 .jumbo_max_len = 10240, 5441 - .usrio = &macb_default_usrio, 5442 5407 }; 5443 5408 5444 5409 static const struct macb_config sama5d29_config = { 5445 5410 .caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_GEM_HAS_PTP, 5446 5411 .dma_burst_length = 16, 5447 - .clk_init = macb_clk_init, 5448 - .init = macb_init, 5449 - .usrio = &macb_default_usrio, 5450 5412 }; 5451 5413 5452 5414 static const struct macb_config sama5d3_config = { 5453 5415 .caps = MACB_CAPS_SG_DISABLED | MACB_CAPS_GIGABIT_MODE_AVAILABLE | 5454 5416 MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_JUMBO, 5455 5417 .dma_burst_length = 16, 5456 - .clk_init = macb_clk_init, 5457 - .init = macb_init, 5458 5418 .jumbo_max_len = 10240, 5459 - .usrio = &macb_default_usrio, 5460 5419 }; 5461 5420 5462 5421 static const struct macb_config sama5d4_config = { 5463 5422 .caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII, 5464 5423 .dma_burst_length = 4, 5465 - .clk_init = macb_clk_init, 5466 - .init = macb_init, 5467 - .usrio = &macb_default_usrio, 5468 5424 }; 5469 5425 5470 5426 static const struct macb_config emac_config = { 5471 5427 .caps = MACB_CAPS_NEEDS_RSTONUBR | MACB_CAPS_MACB_IS_EMAC, 5472 5428 .clk_init = at91ether_clk_init, 5473 5429 .init = at91ether_init, 5474 - .usrio = &macb_default_usrio, 5475 5430 }; 5476 5431 5477 5432 static const struct macb_config np4_config = { 5478 5433 .caps = MACB_CAPS_USRIO_DISABLED, 5479 - .clk_init = macb_clk_init, 5480 - .init = macb_init, 5481 - .usrio = &macb_default_usrio, 5482 5434 }; 5483 5435 5484 5436 static const struct macb_config zynqmp_config = { ··· 5460 5464 MACB_CAPS_JUMBO | 5461 5465 MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_BD_RD_PREFETCH, 5462 5466 .dma_burst_length = 16, 5463 - .clk_init = macb_clk_init, 5464 5467 .init = init_reset_optional, 5465 5468 .jumbo_max_len = 10240, 5466 - .usrio = &macb_default_usrio, 5467 5469 }; 5468 5470 5469 5471 static const struct macb_config zynq_config = { 5470 5472 .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_NO_GIGABIT_HALF | 5471 5473 MACB_CAPS_NEEDS_RSTONUBR, 5472 5474 .dma_burst_length = 16, 5473 - .clk_init = macb_clk_init, 5474 - .init = macb_init, 5475 - .usrio = &macb_default_usrio, 5476 5475 }; 5477 5476 5478 5477 static const struct macb_config mpfs_config = { ··· 5475 5484 MACB_CAPS_JUMBO | 5476 5485 MACB_CAPS_GEM_HAS_PTP, 5477 5486 .dma_burst_length = 16, 5478 - .clk_init = macb_clk_init, 5479 5487 .init = init_reset_optional, 5480 - .usrio = &macb_default_usrio, 5481 5488 .max_tx_length = 4040, /* Cadence Erratum 1686 */ 5482 5489 .jumbo_max_len = 4040, 5483 5490 }; ··· 5485 5496 MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | 5486 5497 MACB_CAPS_MIIONRGMII | MACB_CAPS_GEM_HAS_PTP, 5487 5498 .dma_burst_length = 16, 5488 - .clk_init = macb_clk_init, 5489 - .init = macb_init, 5490 5499 .usrio = &sama7g5_usrio, 5491 5500 }; 5492 5501 ··· 5493 5506 MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_MIIONRGMII | 5494 5507 MACB_CAPS_GEM_HAS_PTP, 5495 5508 .dma_burst_length = 16, 5496 - .clk_init = macb_clk_init, 5497 - .init = macb_init, 5498 5509 .usrio = &sama7g5_usrio, 5499 5510 }; 5500 5511 ··· 5502 5517 MACB_CAPS_NEED_TSUCLK | MACB_CAPS_QUEUE_DISABLE | 5503 5518 MACB_CAPS_QBV, 5504 5519 .dma_burst_length = 16, 5505 - .clk_init = macb_clk_init, 5506 5520 .init = init_reset_optional, 5507 5521 .jumbo_max_len = 10240, 5508 - .usrio = &macb_default_usrio, 5509 5522 }; 5510 5523 5511 5524 static const struct macb_config eyeq5_config = { ··· 5511 5528 MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_QUEUE_DISABLE | 5512 5529 MACB_CAPS_NO_LSO | MACB_CAPS_EEE, 5513 5530 .dma_burst_length = 16, 5514 - .clk_init = macb_clk_init, 5515 5531 .init = eyeq5_init, 5516 5532 .jumbo_max_len = 10240, 5517 - .usrio = &macb_default_usrio, 5518 5533 }; 5519 5534 5520 5535 static const struct macb_config raspberrypi_rp1_config = { ··· 5521 5540 MACB_CAPS_GEM_HAS_PTP | 5522 5541 MACB_CAPS_EEE, 5523 5542 .dma_burst_length = 16, 5524 - .clk_init = macb_clk_init, 5525 - .init = macb_init, 5526 - .usrio = &macb_default_usrio, 5527 5543 .jumbo_max_len = 10240, 5528 5544 }; 5529 5545 ··· 5559 5581 MACB_CAPS_JUMBO | 5560 5582 MACB_CAPS_GEM_HAS_PTP, 5561 5583 .dma_burst_length = 16, 5562 - .clk_init = macb_clk_init, 5563 - .init = macb_init, 5564 - .usrio = &macb_default_usrio, 5565 5584 .jumbo_max_len = 10240, 5566 5585 }; 5567 5586 ··· 5586 5611 if (!macb_config) 5587 5612 macb_config = &default_gem_config; 5588 5613 5589 - err = macb_config->clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk); 5614 + err = macb_clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk, 5615 + macb_config); 5590 5616 if (err) 5591 5617 return err; 5592 5618 ··· 5645 5669 bp->wol = 0; 5646 5670 device_set_wakeup_capable(&pdev->dev, 1); 5647 5671 5648 - bp->usrio = macb_config->usrio; 5672 + bp->usrio = macb_config->usrio ? : &macb_default_usrio; 5649 5673 5650 5674 /* By default we set to partial store and forward mode for zynqmp. 5651 5675 * Disable if not set in devicetree. ··· 5727 5751 bp->phy_interface = interface; 5728 5752 5729 5753 /* IP specific init */ 5730 - err = macb_config->init(pdev); 5754 + err = macb_init(pdev, macb_config); 5731 5755 if (err) 5732 5756 goto err_out_free_netdev; 5733 5757