mediatek: various fixes for v4.9
* adds MT7530 DSA support * backport latest ethernet driver * add PMIC leds * add auxadc support * add efuse support * add thermal sensor support * add irq affinity support for ethernet still todo * DSA multi cpu support Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
40
target/linux/mediatek/patches-4.9/0094-net-affinity.patch
Normal file
40
target/linux/mediatek/patches-4.9/0094-net-affinity.patch
Normal file
@@ -0,0 +1,40 @@
|
||||
Index: linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
===================================================================
|
||||
--- linux-4.9.17.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -2459,15 +2459,23 @@ static int mtk_probe(struct platform_dev
|
||||
goto err_deinit_hw;
|
||||
}
|
||||
|
||||
+ for (i = 0; i < 3; i++) {
|
||||
+ int cpu = i % num_online_cpus();
|
||||
+
|
||||
+ cpumask_set_cpu(cpu, ð->affinity_mask[i]);
|
||||
+ }
|
||||
+
|
||||
err = devm_request_irq(eth->dev, eth->irq[1], mtk_handle_irq_tx, 0,
|
||||
dev_name(eth->dev), eth);
|
||||
if (err)
|
||||
goto err_free_dev;
|
||||
+ irq_set_affinity_hint(eth->irq[1], ð->affinity_mask[1]);
|
||||
|
||||
err = devm_request_irq(eth->dev, eth->irq[2], mtk_handle_irq_rx, 0,
|
||||
dev_name(eth->dev), eth);
|
||||
if (err)
|
||||
goto err_free_dev;
|
||||
+ irq_set_affinity_hint(eth->irq[2], ð->affinity_mask[2]);
|
||||
|
||||
err = mtk_mdio_init(eth);
|
||||
if (err)
|
||||
Index: linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
===================================================================
|
||||
--- linux-4.9.17.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ linux-4.9.17/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -539,6 +539,7 @@ struct mtk_eth {
|
||||
struct net_device *netdev[MTK_MAX_DEVS];
|
||||
struct mtk_mac *mac[MTK_MAX_DEVS];
|
||||
int irq[3];
|
||||
+ cpumask_t affinity_mask[3];
|
||||
u32 msg_enable;
|
||||
unsigned long sysclk;
|
||||
struct regmap *ethsys;
|
||||
Reference in New Issue
Block a user