071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. From cdb26d3387f0cdf7b2a2eea581385173547ef21f Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
  3. Date: Mon, 7 Nov 2016 13:53:27 +0100
  4. Subject: [PATCH] net: bgmac: fix reversed checks for clock control flag
  5. This fixes regression introduced by patch adding feature flags. It was
  6. already reported and patch followed (it got accepted) but it appears it
  7. was incorrect. Instead of fixing reversed condition it broke a good one.
  8. This patch was verified to actually fix SoC hanges caused by bgmac on
  9. BCM47186B0.
  10. Fixes: db791eb2970b ("net: ethernet: bgmac: convert to feature flags")
  11. Fixes: 4af1474e6198 ("net: bgmac: Fix errant feature flag check")
  12. Cc: Jon Mason <jon.mason@broadcom.com>
  13. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
  14. Signed-off-by: David S. Miller <davem@davemloft.net>
  15. ---
  16. drivers/net/ethernet/broadcom/bgmac.c | 4 ++--
  17. 1 file changed, 2 insertions(+), 2 deletions(-)
  18. --- a/drivers/net/ethernet/broadcom/bgmac.c
  19. +++ b/drivers/net/ethernet/broadcom/bgmac.c
  20. @@ -1050,9 +1050,9 @@ static void bgmac_enable(struct bgmac *b
  21. mode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >>
  22. BGMAC_DS_MM_SHIFT;
  23. - if (!(bgmac->feature_flags & BGMAC_FEAT_CLKCTLST) || mode != 0)
  24. + if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST || mode != 0)
  25. bgmac_set(bgmac, BCMA_CLKCTLST, BCMA_CLKCTLST_FORCEHT);
  26. - if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST && mode == 2)
  27. + if (!(bgmac->feature_flags & BGMAC_FEAT_CLKCTLST) && mode == 2)
  28. bgmac_cco_ctl_maskset(bgmac, 1, ~0,
  29. BGMAC_CHIPCTL_1_RXC_DLL_BYPASS);