1. 07 9月, 2016 1 次提交
    • V
      net: dsa: mv88e6xxx: move Global2 code · ec561276
      Vivien Didelot 提交于
      Marvell chips are composed of multiple SMI devices. One of them at
      address 0x1C is called Global2. It provides an extended set of
      registers, used for interrupt control, EEPROM access, indirect PHY
      access (to bypass the PHY Polling Unit) and cross-chip related setup.
      
      Most chips have it, but some others don't (older ones such as 6060).
      
      Now that its related code is isolated in mv88e6xxx_g2_* functions, move
      it to its own global2.c file, making most of its setup code static.
      Document each registers in the meantime.
      
      Its compilation can be later avoided for chips without such registers.
      Signed-off-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec561276
  2. 02 9月, 2016 1 次提交
  3. 01 9月, 2016 2 次提交
  4. 25 8月, 2016 1 次提交
    • V
      net: dsa: rename switch operations structure · 9d490b4e
      Vivien Didelot 提交于
      Now that the dsa_switch_driver structure contains only function pointers
      as it is supposed to, rename it to the more appropriate dsa_switch_ops,
      uniformly to any other operations structure in the kernel.
      
      No functional changes here, basically just the result of something like:
      s/dsa_switch_driver *drv/dsa_switch_ops *ops/g
      
      However keep the {un,}register_switch_driver functions and their
      dsa_switch_drivers list as is, since they represent the -- likely to be
      deprecated soon -- legacy DSA registration framework.
      
      In the meantime, also fix the following checks from checkpatch.pl to
      make it happy with this patch:
      
          CHECK: Comparison to NULL could be written "!ops"
          #403: FILE: net/dsa/dsa.c:470:
          +	if (ops == NULL) {
      
          CHECK: Comparison to NULL could be written "ds->ops->get_strings"
          #773: FILE: net/dsa/slave.c:697:
          +		if (ds->ops->get_strings != NULL)
      
          CHECK: Comparison to NULL could be written "ds->ops->get_ethtool_stats"
          #824: FILE: net/dsa/slave.c:785:
          +	if (ds->ops->get_ethtool_stats != NULL)
      
          CHECK: Comparison to NULL could be written "ds->ops->get_sset_count"
          #835: FILE: net/dsa/slave.c:798:
          +		if (ds->ops->get_sset_count != NULL)
      
          total: 0 errors, 0 warnings, 4 checks, 784 lines checked
      Signed-off-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Acked-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9d490b4e
  5. 24 8月, 2016 1 次提交
  6. 23 8月, 2016 4 次提交
  7. 20 8月, 2016 3 次提交
  8. 16 8月, 2016 6 次提交
  9. 13 8月, 2016 1 次提交
  10. 21 7月, 2016 2 次提交
    • V
      net: dsa: mv88e6xxx: kill last locked reg_read · 8f6345b2
      Vivien Didelot 提交于
      Get rid of the last usage of the locked mv88e6xxx_reg_read function with
      a new mv88e6xxx_port_read helper, useful later for chips with different
      port registers base address.
      Signed-off-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f6345b2
    • V
      net: dsa: mv88e6xxx: rework EEPROM access · 855b1932
      Vivien Didelot 提交于
      The 6352 family of switches and compatibles provide a 8-bit address and
      16-bit data access to an optional EEPROM.
      
      Newer chip such as the 6390 family slightly changed the access to 16-bit
      address and 8-bit data.
      
      This commit cleans up the EEPROM access code for 16-bit access and makes
      it easy to eventually introduce future support for 8-bit access.
      
      Here's a list of notable changes brought by this patch:
      
        - provide Global2 unlocked helpers for EEPROM commands
        - remove eeprom_mutex, only reg_lock is necessary for driver functions
        - eeprom_len is 0 for chip without EEPROM, so return it directly
        - the Running bit must be 0 before r/w, so wait for Busy *and* Running
        - remove now unused mv88e6xxx_wait and mv88e6xxx_reg_write
        - other than that, the logic (in _{get,set}_eeprom16) didn't change
      
      Chips with an 8-bit EEPROM access will require to implement the
      8-suffixed variant of G2 helpers and the related flag:
      
          #define MV88E6XXX_FLAGS_EEPROM8	\
          	(MV88E6XXX_FLAG_G2_EEPROM_CMD |	\
          	 MV88E6XXX_FLAG_G2_EEPROM_ADDR)
      Signed-off-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      855b1932
  11. 20 7月, 2016 11 次提交
  12. 25 6月, 2016 2 次提交
  13. 21 6月, 2016 5 次提交