1. 21 Apr, 2018 9 commits
  2. 20 Apr, 2018 28 commits
  3. 19 Apr, 2018 3 commits
    • David S. Miller's avatar
      Merge branch 'Amiga-xsurf100' · bda73d4e
      David S. Miller authored
      Michael Schmitz says:
      
      ====================
      New network driver for Amiga X-Surf 100 (m68k)
      
      [This is a resend of my v3 series which was based on the wrong version and
      tree. Only substantial change is to Asix AX99796B PHY driver.]
      
      This patch series adds support for the Individual Computers X-Surf 100
      network card for m68k Amiga, a network adapter based on the AX88796 chip set.
      
      The driver was originally written for kernel version 3.19 by Michael Karcher
      (see CC:), and adapted to 4.16+ for submission to netdev by me. Questions
      regarding motivation for some of the changes are probably best directed at
      Michael Karcher.
      
      The driver has been tested by Adrian <glaubitz@physik.fu-berlin.de> who will
      send his Tested-by tag separately.
      
      A few changes to the ax88796 driver were required:
      - to read the MAC address, some setup of the ax99796 chip must be done,
      - attach to the MII bus only on device open to allow module unloading,
      - allow to supersede ax_block_input/ax_block_output by card-specific
        optimized code,
      - use an optional interrupt status callback to allow easier sharing of the
        card interrupt,
      - set IRQF_SHARED if platform IRQ resource is marked shareable
      
      The Asix Electronix PHY used on the X-Surf 100 is buggy, and causes the
      software reset to hang if the previous command sent to the PHY was also
      a soft reset. This bug requires addition of a PHY driver for Asix PHYs
      to provide a fixed .soft_reset function, included in this series.
      
      Some additional cleanup:
      - do not attempt to free IRQ in ax_remove (complements 82533ad9),
      - clear platform drvdata on probe fail and module remove.
      
      Changes since v1:
      
      Raised in review by Andrew Lunn:
      - move MII code around to avoid need for forward declaration,
      - combine patches 2 and 7 to add cleanup in error path
      
      Changes since v2:
      
      - corrected authorship attribution to Michael Karcher
      
      Suggested by Geert Uytterhoeven:
      - use ei_local->reset_8390() instead of duplicating ax_reset_8390(),
      - use %pR to format struct resource pointers,
      - assign pdev and xs100 pointers in declaration,
      - don't split error messages,
      - change Kconfig logic to only require XSURF100 set on Amiga
      
      Suggested by Andrew Lunn:
      - add COMPILE_TEST to ax88796 Kconfig options,
      - use new Asix PHY driver for X-Surf 100
      
      Suggested by Andrew Lunn/Finn Thain:
      - declare struct sk_buff in ax88796.h,
      - correct whitespace error in ax88796.h
      
      Changes since v3:
      
      - various checkpatch cleanup
      
      Andrew Lunn:
      - don't duplicate genphy_soft_reset in Asix PHY driver, just call
        genphy_soft_reset after writing zero to control register
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bda73d4e
    • Michael Karcher's avatar
      net-next: New ax88796 platform driver for Amiga X-Surf 100 Zorro board (m68k) · 861928f4
      Michael Karcher authored
      Add platform device driver to populate the ax88796 platform data from
      information provided by the XSurf100 zorro device driver. The ax88796
      module will be loaded through this module's probe function.
      Signed-off-by: default avatarMichael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
      Signed-off-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      861928f4
    • Michael Schmitz's avatar
      net-next: ax88796: release platform device drvdata on probe error and module remove · 453da988
      Michael Schmitz authored
      The net device struct pointer is stored as platform device drvdata on
      module probe - clear the drvdata entry on probe fail there, as well as
      when unloading the module.
      Signed-off-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      453da988