1. 05 Jul, 2017 1 commit
  2. 29 Jun, 2017 1 commit
  3. 07 Jun, 2017 1 commit
  4. 19 Jul, 2016 4 commits
  5. 29 Jun, 2016 1 commit
  6. 14 Jun, 2016 1 commit
  7. 25 Feb, 2016 1 commit
  8. 20 Feb, 2016 1 commit
    • Andrew Lunn's avatar
      phy: marvell/micrel: Fix Unpossible condition · 321b4d4b
      Andrew Lunn authored
      commit 2b2427d0 ("phy: micrel: Add ethtool statistics counters")
      from Dec 30, 2015, leads to the following static checker
      warning:
      
              drivers/net/phy/micrel.c:609 kszphy_get_stat()
              warn: unsigned 'val' is never less than zero.
      
      drivers/net/phy/micrel.c
         602  static u64 kszphy_get_stat(struct phy_device *phydev, int i)
         603  {
         604          struct kszphy_hw_stat stat = kszphy_hw_stats[i];
         605          struct kszphy_priv *priv = phydev->priv;
         606          u64 val;
         607
         608          val = phy_read(phydev, stat.reg);
         609          if (val < 0) {
                          ^^^^^^^
      Unpossible!
      
         610                  val = UINT64_MAX;
         611          } else {
         612                  val = val & ((1 << stat.bits) - 1);
         613                  priv->stats[i] += val;
         614                  val = priv->stats[i];
         615          }
         616
         617          return val;
         618  }
      
      The same problem exists in the Marvell driver. Fix both.
      
      Fixes: 2b2427d0 ("phy: micrel: Add ethtool statistics counters")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reported-by: default avatarJulia.Lawall <julia.lawall@lip6.fr>
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      321b4d4b
  9. 18 Feb, 2016 1 commit
  10. 17 Feb, 2016 1 commit
    • Clemens Gruber's avatar
      phy: marvell: Fix and unify reg-init behavior · 79be1a1c
      Clemens Gruber authored
      For the Marvell 88E1510, marvell_of_reg_init was called too late, in the
      config_aneg function.
      Since commit 113c74d8 ("net: phy: turn carrier off on phy attach"),
      this lead to the link not coming up at boot anymore, due to the phy
      state machine being stuck at waiting for interrupts (off by default on
      the 88E1510).
      For seven other Marvell PHYs, marvell_of_reg_init was not called at all.
      
      Add a generic marvell_config_init function, which in turn calls
      marvell_of_reg_init.
      PHYs, which already have a specific config_init function with a call to
      marvell_of_reg_init, are left untouched. The generic marvell_config_init
      function is called for all the others, to get consistent behavior across
      all Marvell PHYs.
      
      Fixes: 113c74d8 ("net: phy: turn carrier off on phy attach")
      Signed-off-by: default avatarClemens Gruber <clemens.gruber@pqgruber.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79be1a1c
  11. 07 Jan, 2016 2 commits
  12. 31 Dec, 2015 1 commit
  13. 17 Nov, 2015 1 commit
  14. 25 Sep, 2015 1 commit
  15. 10 Aug, 2015 1 commit
  16. 11 Jul, 2015 1 commit
  17. 27 May, 2015 1 commit
  18. 12 Nov, 2014 1 commit
  19. 28 Oct, 2014 2 commits
  20. 24 Oct, 2014 1 commit
  21. 17 Dec, 2013 1 commit
  22. 01 Oct, 2013 1 commit
  23. 31 May, 2013 3 commits
  24. 12 Mar, 2013 1 commit
  25. 17 Jan, 2013 1 commit
  26. 09 Jul, 2012 1 commit
  27. 03 Apr, 2012 1 commit
  28. 22 Nov, 2010 3 commits
    • David Daney's avatar
      of/phylib: Use device tree properties to initialize Marvell PHYs. · cf41a51d
      David Daney authored
      Some aspects of PHY initialization are board dependent, things like
      indicator LED connections and some clocking modes cannot be determined
      by probing.  The dev_flags element of struct phy_device can be used to
      control these things if an appropriate value can be passed from the
      Ethernet driver.  We run into problems however if the PHY connections
      are specified by the device tree.  There is no way for the Ethernet
      driver to know what flags it should pass.
      
      If we are using the device tree, the struct phy_device will be
      populated with the device tree node corresponding to the PHY, and we
      can extract extra configuration information from there.
      
      The next question is what should the format of that information be?
      It is highly device specific, and the device tree representation
      should not be tied to any arbitrary kernel defined constants.  A
      straight forward representation is just to specify the exact bits that
      should be set using the "marvell,reg-init" property:
      
            phy5: ethernet-phy@5 {
              reg = <5>;
              compatible = "marvell,88e1149r";
              marvell,reg-init =
                      /* led[0]:1000, led[1]:100, led[2]:10, led[3]:tx */
                      <3 0x10 0 0x5777>, /* Reg 3,16 <- 0x5777 */
                      /* mix %:0, led[0123]:drive low off hiZ */
                      <3 0x11 0 0x00aa>, /* Reg 3,17 <- 0x00aa */
                      /* default blink periods. */
                      <3 0x12 0 0x4105>, /* Reg 3,18 <- 0x4105 */
                      /* led[4]:rx, led[5]:dplx, led[45]:drive low off hiZ */
                      <3 0x13 0 0x0a60>; /* Reg 3,19 <- 0x0a60 */
            };
      
            phy6: ethernet-phy@6 {
              reg = <6>;
              compatible = "marvell,88e1118";
              marvell,reg-init =
                      /* Fix rx and tx clock transition timing */
                      <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
                      /* Adjust LED drive. */
                      <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
                      /* irq, blink-activity, blink-link */
                      <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
            };
      
      The Marvell PHYs have a page select register at register 22 (0x16), we
      can specify any register by its page and register number.  These are
      the first and second word.  The third word contains a mask to be ANDed
      with the existing register value, and the fourth word is ORed with the
      result to yield the new register value.  The new marvell_of_reg_init
      function leaves the page select register unchanged, so a call to it
      can be dropped into the .config_init functions without unduly
      affecting the state of the PHY.
      
      If CONFIG_OF_MDIO is not set, there is no of_node, or no
      "marvell,reg-init" property, the PHY initialization is unchanged.
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Cyril Chemparathy <cyril@ti.com>
      Cc: David Daney <ddaney@caviumnetworks.com>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Reviewed-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf41a51d
    • David Daney's avatar
      phylib: Add support for Marvell 88E1149R devices. · 90600732
      David Daney authored
      The 88E1149R is 10/100/1000 quad-gigabit Ethernet PHY.  The
      .config_aneg function can be shared with 88E1118, but it needs its own
      .config_init.
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Cc: Cyril Chemparathy <cyril@ti.com>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Wolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90600732
    • David Daney's avatar
      phylib: Use common page register definition for Marvell PHYs. · 27d916d6
      David Daney authored
      The definition of the Marvell PHY page register is not specific to
      88E1121, so rename the macro to MII_MARVELL_PHY_PAGE, and use it
      throughout.
      Suggested-by: default avatarCyril Chemparathy <cyril@ti.com>
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Cc: Cyril Chemparathy <cyril@ti.com>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27d916d6
  29. 29 Oct, 2010 1 commit
  30. 21 Oct, 2010 1 commit
  31. 05 Oct, 2010 1 commit
    • Uwe Kleine-König's avatar
      net/phy: fix many "defined but unused" warnings · cf93c945
      Uwe Kleine-König authored
      MODULE_DEVICE_TABLE only expands to something if it's compiled
      for a module.  So when building-in support for the phys, the
      mdio_device_id tables are unused.  Marking them with __maybe_unused
      fixes the following warnings:
      
      	drivers/net/phy/bcm63xx.c:134: warning: 'bcm63xx_tbl' defined but not used
      	drivers/net/phy/broadcom.c:933: warning: 'broadcom_tbl' defined but not used
      	drivers/net/phy/cicada.c:162: warning: 'cicada_tbl' defined but not used
      	drivers/net/phy/davicom.c:222: warning: 'davicom_tbl' defined but not used
      	drivers/net/phy/et1011c.c:114: warning: 'et1011c_tbl' defined but not used
      	drivers/net/phy/icplus.c:137: warning: 'icplus_tbl' defined but not used
      	drivers/net/phy/lxt.c:226: warning: 'lxt_tbl' defined but not used
      	drivers/net/phy/marvell.c:724: warning: 'marvell_tbl' defined but not used
      	drivers/net/phy/micrel.c:234: warning: 'micrel_tbl' defined but not used
      	drivers/net/phy/national.c:154: warning: 'ns_tbl' defined but not used
      	drivers/net/phy/qsemi.c:141: warning: 'qs6612_tbl' defined but not used
      	drivers/net/phy/realtek.c:82: warning: 'realtek_tbl' defined but not used
      	drivers/net/phy/smsc.c:257: warning: 'smsc_tbl' defined but not used
      	drivers/net/phy/ste10Xp.c:135: warning: 'ste10Xp_tbl' defined but not used
      	drivers/net/phy/vitesse.c:195: warning: 'vitesse_tbl' defined but not used
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf93c945