1. 26 5月, 2015 1 次提交
    • M
      net: stmmac: create one debugfs dir per net-device · 466c5ac8
      Mathieu Olivari 提交于
      stmmac DebugFS entries are currently global to the driver. As a result,
      having more than one stmmac device in the system creates the following
      error:
      * ERROR stmmaceth, debugfs create directory failed
      * stmmac_hw_setup: failed debugFS registration
      
      This also results in being able to access the debugfs information for
      the first registered device only.
      
      This patch changes the debugfs structure to have one sub-directory per
      net-device. Files under "/sys/kernel/debug/stmmaceth" will now show-up
      under /sys/kernel/debug/stmmaceth/ethN/.
      Signed-off-by: NMathieu Olivari <mathieu@codeaurora.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      466c5ac8
  2. 04 5月, 2015 1 次提交
  3. 17 4月, 2015 5 次提交
  4. 10 4月, 2015 1 次提交
  5. 09 4月, 2015 1 次提交
  6. 01 4月, 2015 2 次提交
  7. 09 3月, 2015 2 次提交
  8. 05 3月, 2015 1 次提交
    • A
      stmmac: check IRQ availability early on probe · 8f02d8da
      Alexey Brodkin 提交于
      Currently we're getting IRQs after lots of resources are already
      allocated:
       * netdev
       * clocks
       * MDIO bus
      Also HW gets initialized by the time when checking IRQs as well.
      
      Now there's a possibility for master interrupt controller to be not
      probed yet. This will lead to exit from GMAC probe routine with "-
      EPROBE_DEFER" and so deferred probe will hapen later on.
      
      But since we exited the first GMAC probe without release of all
      allocated resources there could be conflicts on subsequent probes.
      
      For example this is what happens for me:
       --->8---
       stmmaceth e0018000.ethernet: no reset control found
       stmmac - user ID: 0x10, Synopsys ID: 0x37
        Ring mode enabled
        DMA HW capability register supported
        Normal descriptors
        RX Checksum Offload Engine supported (type 2)
        TX Checksum insertion supported
        Enable RX Mitigation via HW Watchdog Timer
       libphy: stmmac: probed
       eth0: PHY ID 20005c7a at 1 IRQ POLL (stmmac-0:01) active
       platform e0018000.ethernet: Driver stmmaceth requests probe deferral
       ...
       ...
       ...
       stmmaceth e0018000.ethernet: no reset control found
       stmmac - user ID: 0x10, Synopsys ID: 0x37
        Ring mode enabled
        DMA HW capability register supported
        Normal descriptors
        RX Checksum Offload Engine supported (type 2)
        TX Checksum insertion supported
        Enable RX Mitigation via HW Watchdog Timer
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 6 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x4e/0x68()
       sysfs: cannot create duplicate filename
      '/devices/platform/axs10x_mb/e0018000.ethernet/mdio_bus/stmmac-0'
       CPU: 0 PID: 6 Comm: kworker/u2:0 Not tainted 4.0.0-rc1-next-20150303+#8
       Workqueue: deferwq deferred_probe_work_func
      
       Stack Trace:
        arc_unwind_core+0xb8/0x114
        warn_slowpath_common+0x5a/0x8c
        warn_slowpath_fmt+0x2e/0x38
        sysfs_warn_dup+0x4e/0x68
        sysfs_create_dir_ns+0x98/0xa0
        kobject_add_internal+0x8c/0x2e8
        kobject_add+0x4a/0x8c
        device_add+0xc6/0x448
        mdiobus_register+0x6c/0x164
        stmmac_mdio_register+0x112/0x264
        stmmac_dvr_probe+0x6c0/0x85c
        stmmac_pltfr_probe+0x2e4/0x50c
        platform_drv_probe+0x26/0x5c
        really_probe+0x76/0x1dc
        bus_for_each_drv+0x42/0x7c
        device_attach+0x64/0x6c
        bus_probe_device+0x74/0xa4
        deferred_probe_work_func+0x50/0x84
        process_one_work+0xf8/0x2cc
        worker_thread+0x110/0x478
        kthread+0x8a/0x9c
        ret_from_fork+0x14/0x18
       ---[ end trace a2dfaa7d630c8be1 ]---
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 6 at lib/kobject.c:240
      kobject_add_internal+0x218/0x2e8()
       kobject_add_internal failed for stmmac-0 with -EEXIST, don't try to
      register things with the same name in the same di.
       CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W
      4.0.0-rc1-next-20150303+ #8
       Workqueue: deferwq deferred_probe_work_func
      
       Stack Trace:
        arc_unwind_core+0xb8/0x114
        warn_slowpath_common+0x5a/0x8c
        warn_slowpath_fmt+0x2e/0x38
        kobject_add_internal+0x218/0x2e8
        kobject_add+0x4a/0x8c
        device_add+0xc6/0x448
        mdiobus_register+0x6c/0x164
        stmmac_mdio_register+0x112/0x264
        stmmac_dvr_probe+0x6c0/0x85c
        stmmac_pltfr_probe+0x2e4/0x50c
        platform_drv_probe+0x26/0x5c
        really_probe+0x76/0x1dc
        bus_for_each_drv+0x42/0x7c
        device_attach+0x64/0x6c
        bus_probe_device+0x74/0xa4
        deferred_probe_work_func+0x50/0x84
        process_one_work+0xf8/0x2cc
        worker_thread+0x110/0x478
        kthread+0x8a/0x9c
        ret_from_fork+0x14/0x18
       ---[ end trace a2dfaa7d630c8be2 ]---
       libphy: mii_bus stmmac-0 failed to register
       : Cannot register as MDIO bus
       stmmac_pltfr_probe: main driver probe failed
       stmmaceth: probe of e0018000.ethernet failed with error -22
       --->8---
      
      Essential fix is to check for IRQs availability as early as possible and
      then safely go to deferred probe if IRQs are not there yet.
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: Sonic Zhang <sonic.zhang@analog.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f02d8da
  9. 02 3月, 2015 1 次提交
    • V
      net: stmmac: Use setup_timer and mod_timer · ccb36da1
      Vaishali Thakkar 提交于
      Use timer API functions setup_timer and mod_timer instead
      of structure assignments as they are standard way to set
      the timer and to update the expire field of an active timer
      respectively.
      
      This is done using Coccinelle and semantic patch used for
      this is as follows:
      
      // <smpl>
      @@
      expression x,y,z,a,b;
      @@
      
      -init_timer (&x);
      +setup_timer (&x, y, z);
      +mod_timer (&a, b);
      -x.function = y;
      -x.data = z;
      -x.expires = b;
      -add_timer(&a);
      // </smpl>
      Signed-off-by: NVaishali Thakkar <vthakkar1994@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ccb36da1
  10. 02 2月, 2015 1 次提交
  11. 28 1月, 2015 4 次提交
  12. 27 1月, 2015 4 次提交
  13. 25 1月, 2015 2 次提交
  14. 12 1月, 2015 1 次提交
  15. 01 1月, 2015 1 次提交
    • R
      GMAC: add driver for Rockchip RK3288 SoCs integrated GMAC · 7ad269ea
      Roger Chen 提交于
      This driver is based on stmmac driver.
      
      changes since v2:
      - use tab instead of space for macros
      - use HIWORD_UPDATE macro for GMAC_CLK_RX_DL_CFG and GMAC_CLK_TX_DL_CFG
      - remove drive-strength setting in the driver and set it in the pinctrl settings
      - use dev_err instead of pr_err
      - remove clock names's macros, just use the real name of the clock
      - use devm_clk_get() instead of clk_get()
      - remove clk_set_parent(bsp_priv->clk_mac, bsp_priv->clk_mac_pll)
      - remove gpio setting for LDO, just use regulator API
      - remove phy reset using gpio in the glue layer, it has been handled in the stmmac driver
      - remove handling phy interrupt (mii interrupt)
      
      changes since v1:
      - use BIT() to set register
      - combine two remap_write() operations into one for the same register
      - use macros for register value setting
      - remove grf fail check in rk_gmac_setup() and save all the check in set_rgmii_speed()
      - remove .tx_coe=1 in rk_gmac_data
      Signed-off-by: NRoger Chen <roger.chen@rock-chips.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ad269ea
  16. 23 12月, 2014 2 次提交
  17. 16 12月, 2014 1 次提交
  18. 10 12月, 2014 1 次提交
  19. 06 12月, 2014 1 次提交
  20. 30 11月, 2014 1 次提交
  21. 27 11月, 2014 1 次提交
  22. 20 11月, 2014 2 次提交
  23. 12 11月, 2014 1 次提交
  24. 08 11月, 2014 2 次提交
    • A
      stmmac: platform: fix sparse warnings · f10f9fb2
      Andy Shevchenko 提交于
      This patch fixes the following sparse warnings. One is fixed by casting return
      value to a return type of the function. The others by creating a specific
      stmmac_platform.h which provides the bits related to the platform driver.
      
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29: warning: incorrect type in return expression (different address spaces)
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29:    expected void *
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:59:29:    got void [noderef] <asn:2>*reg
      
      drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c:64:29: warning: symbol 'meson6_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c:354:29: warning: symbol 'stih4xx_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c:361:29: warning: symbol 'stid127_dwmac_data' was not declared. Should it be static?
      drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c:133:29: warning: symbol 'sun7i_gmac_data' was not declared. Should it be static?
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f10f9fb2
    • A
      stmmac: remove custom implementation of print_hex_dump() · 424c4f78
      Andy Shevchenko 提交于
      There is a kernel helper to dump buffers in a hexdecimal format. This patch
      substitutes the open coded function by calling that helper.
      
      The output is slightly changed:
       - no lead space
       - ASCII part will be printed along with the dump
       - offset is longer than 3 characters (now 8)
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      424c4f78