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:
Grygorii Strashko 2020-05-05 19:31:26 +03:00 коммит произвёл David S. Miller
Родитель 0735ccc9d9
Коммит 6f5c27f9c6
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -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);