net: ethernet: ti: am65-cpsw-nuss: fix irqs type
The K3 INTA driver, which is source TX/RX IRQs for CPSW NUSS, defines IRQs
triggering type as EDGE by default, but triggering type for CPSW NUSS TX/RX
IRQs has to be LEVEL as the EDGE triggering type may cause unnecessary IRQs
triggering and NAPI scheduling for empty queues. It was discovered with
RT-kernel.
Fix it by explicitly specifying CPSW NUSS TX/RX IRQ type as
IRQF_TRIGGER_HIGH.
Fixes: 93a7653031
("net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver")
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
0735ccc9d9
Коммит
6f5c27f9c6
|
@ -1719,7 +1719,8 @@ static int am65_cpsw_nuss_ndev_add_napi_2g(struct am65_cpsw_common *common)
|
||||||
|
|
||||||
ret = devm_request_irq(dev, tx_chn->irq,
|
ret = devm_request_irq(dev, tx_chn->irq,
|
||||||
am65_cpsw_nuss_tx_irq,
|
am65_cpsw_nuss_tx_irq,
|
||||||
0, tx_chn->tx_chn_name, tx_chn);
|
IRQF_TRIGGER_HIGH,
|
||||||
|
tx_chn->tx_chn_name, tx_chn);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failure requesting tx%u irq %u, %d\n",
|
dev_err(dev, "failure requesting tx%u irq %u, %d\n",
|
||||||
tx_chn->id, tx_chn->irq, ret);
|
tx_chn->id, tx_chn->irq, ret);
|
||||||
|
@ -1744,7 +1745,7 @@ static int am65_cpsw_nuss_ndev_reg_2g(struct am65_cpsw_common *common)
|
||||||
|
|
||||||
ret = devm_request_irq(dev, common->rx_chns.irq,
|
ret = devm_request_irq(dev, common->rx_chns.irq,
|
||||||
am65_cpsw_nuss_rx_irq,
|
am65_cpsw_nuss_rx_irq,
|
||||||
0, dev_name(dev), common);
|
IRQF_TRIGGER_HIGH, dev_name(dev), common);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failure requesting rx irq %u, %d\n",
|
dev_err(dev, "failure requesting rx irq %u, %d\n",
|
||||||
common->rx_chns.irq, ret);
|
common->rx_chns.irq, ret);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче