420-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. From: Russell King <[email protected]>
  2. Date: Sat, 24 Dec 2016 10:27:08 +0000
  3. Subject: [PATCH] net: mvneta: disable MVNETA_CAUSE_PSC_SYNC_CHANGE
  4. interrupt
  5. The PSC sync change interrupt can fire multiple times while the link is
  6. down. As this isn't information we make use of, it's pointless having
  7. the interrupt enabled, so let's disable this interrupt.
  8. Signed-off-by: Russell King <[email protected]>
  9. ---
  10. --- a/drivers/net/ethernet/marvell/mvneta.c
  11. +++ b/drivers/net/ethernet/marvell/mvneta.c
  12. @@ -2629,9 +2629,11 @@ static int mvneta_poll(struct napi_struc
  13. mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
  14. if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
  15. - MVNETA_CAUSE_LINK_CHANGE |
  16. - MVNETA_CAUSE_PSC_SYNC_CHANGE))
  17. + MVNETA_CAUSE_LINK_CHANGE)) {
  18. + printk(KERN_DEBUG "%s: cause 0x%08x:0x%08x\n",
  19. + __func__, cause_rx_tx, cause_misc);
  20. mvneta_link_change(pp);
  21. + }
  22. }
  23. /* Release Tx descriptors */
  24. @@ -2948,8 +2950,7 @@ static void mvneta_start_dev(struct mvne
  25. mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  26. MVNETA_CAUSE_PHY_STATUS_CHANGE |
  27. - MVNETA_CAUSE_LINK_CHANGE |
  28. - MVNETA_CAUSE_PSC_SYNC_CHANGE);
  29. + MVNETA_CAUSE_LINK_CHANGE);
  30. phylink_start(pp->phylink);
  31. netif_tx_start_all_queues(pp->dev);
  32. @@ -3440,8 +3441,7 @@ static int mvneta_cpu_online(unsigned in
  33. on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
  34. mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  35. MVNETA_CAUSE_PHY_STATUS_CHANGE |
  36. - MVNETA_CAUSE_LINK_CHANGE |
  37. - MVNETA_CAUSE_PSC_SYNC_CHANGE);
  38. + MVNETA_CAUSE_LINK_CHANGE);
  39. netif_tx_start_all_queues(pp->dev);
  40. spin_unlock(&pp->lock);
  41. return 0;
  42. @@ -3482,8 +3482,7 @@ static int mvneta_cpu_dead(unsigned int
  43. on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
  44. mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  45. MVNETA_CAUSE_PHY_STATUS_CHANGE |
  46. - MVNETA_CAUSE_LINK_CHANGE |
  47. - MVNETA_CAUSE_PSC_SYNC_CHANGE);
  48. + MVNETA_CAUSE_LINK_CHANGE);
  49. netif_tx_start_all_queues(pp->dev);
  50. return 0;
  51. }