18 Feb, 2014

14 commits

  • This patch does multiple things:

    * add .set_csma_params and .set_frame_retries for the RF212 radio.
    This should work fine with RF230, but since I have no RF230 radios to
    test with, RF230 does not implement these right now
    * enable TX_ARET for frame retransmission limits greater than -1

    Since RF230 has no operations to change CSMA parameters or frame retry
    limits, RF230 will not be able to enter TX_ARET with this patch.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • A documented erratum of the RF212 chip describes that some versions of
    RF212 may not be properly reset by the standard reset procedure. The
    described workaround seems to not fully work either; my RF212 chips will
    not correctly receive any frames unless they are taken from RX mode to
    TRX_OFF and back to RX mode, effectively forcing a up-down-up-cycle.
    Going to TRX_OFF and to RX without intermediate state changes at least
    once fixes this.

    The same transition is allowed for RF230, so simply do it all the time.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Since three of the four clear channel assesment modes make use of energy
    detection, provide an API to set the energy detection threshold.
    Driver support for this is available in at86rf230 for the RF212 chips.
    Since for these chips the minimal energy detection threshold depends on
    page and channel used, add a field to struct at86rf230_local that stores
    the minimal threshold. Actual ED thresholds are configured as offsets
    from this value.

    For RF212, setting the ED threshold will not work before a channel/page
    has been set due to the dependency of energy detection in the chip and
    the actual channel/page selected.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The standard describes four modes of clear channel assesment: "energy
    above threshold", "carrier found", and the logical and/or of these two.
    Support for CCA mode setting is included in the at86rf230 driver,
    predicated for RF212 chips.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Listen-before-talk is an alternative to CSMA in uncoordinated networks
    and prescribed by european regulations if one wants to have a device
    with radio duty cycles above 10% (or less in some bands). Add a phy
    property to enable/disable LBT in the phy, including support in the
    at86rf230 driver for RF212 chips.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The standard assigns channel 0 on page 2 to be 100kbps QPSK in the
    868.3MHz band. Add support to the at86rf230 driver for this channel and
    page, at the moment predicated only for the RF212 chip.

    Per the datasheet, configurations for page 0, channels 0 to 10 and page
    2, channels 0 to 10 differ only in the BPSK_QPSK bit. Support for
    channels 1 to 10 is untested.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Replace the current u8 transmit_power in wpan_phy with s8 transmit_power.
    The u8 field contained the actual tx power and a tolerance field,
    which no physical radio every used. Adjust sysfs entries to keep
    compatibility with userspace, give tolerances of +-1dB statically there.

    This patch only adds support for this in the at86rf230 driver and the
    RF212 chip. Configuration calculation for RF212 is also somewhat basic,
    but does the job - the RF212 datasheet gives a large table with
    suggested values for combinations of TX power and page/channel, if this
    does not work well, we might have to copy the whole table.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The current IEEE802.15.4 stack assumes that a radio will never deliver
    packets with a bad CRC into the stack, as required by the standard.
    at86rf230 driven radios violates this assumption because of another
    incompatibility: devices are required to send ACKs if requested by a
    sender, but RF2xx will only send ACKs from a special receive mode that
    is currently not used by the driver.

    Enable this receive mode to fix both bugs. Frames with bad CRCs will not
    be received at all, and ACKs will be sent if so requested.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Since the AT86RF2xy chips are mostly compatible, this is only a small
    change to the actual driver code. The at86rf230 driver already supports the
    RF212 in most places, only three small adjustments are required:

    * force the initial state after P_ON to FORCE_TRX_OFF to work around a
    documented erratum
    * channels_supported depends on the frequency of the transceiver, and
    thus is_rf212
    * do early detection of chip version select an appropriate _ops struct
    based on the chip version.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • As pointed out by Shaohui, most 10G PHYs out there have a non-standard
    compliant software reset sequence, eventually something much more
    complex than just toggling the BMCR_RESET bit. Allow PHY driver to
    implement their own soft_reset() callback to deal with that. If no
    callback is provided, call into genphy_soft_reset() which makes sure the
    existing behavior is kept intact.

    Reported-by: Shaohui Xie
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • As pointed out by Shaohui, this function is generic for 10/100/1000
    PHYs, but 10G PHYs might have a slightly different reset sequence which
    prevents most of them from using this function.

    Move the BMCR_RESET based software resent sequence to
    genphy_soft_reset() in preparation for allowing PHY drivers to implement
    a soft_reset() callback.

    Reported-by: Shaohui Xie
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Get rid of the buffer allocation in the receive path for normal packets.

    Signed-off-by: K. Y. Srinivasan
    Signed-off-by: David S. Miller

    KY Srinivasan
     
  • Make the receive path a little more efficient by parameterizing the
    required state rather than re-establishing that state.

    Signed-off-by: K. Y. Srinivasan
    Reviewed-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    KY Srinivasan
     
  • This structure is redundant; get rid of it make the code little more efficient -
    get rid of the unnecessary indirection.

    Signed-off-by: K. Y. Srinivasan
    Reviewed-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    KY Srinivasan
     

17 Feb, 2014

6 commits


15 Feb, 2014

7 commits


14 Feb, 2014

13 commits

  • This patch adds a new configuration symbol: CONFIG_BCMGENET which allows
    us to build the Broadcom GENET driver and hook the driver files into the
    build system.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • This patch adds support for configuring the port multiplexer hardware
    which resides in front of the GENET Ethernet MAC controller. This allows
    us to support:

    - internal PHYs (using drivers/net/phy/bcm7xxx.c)
    - MoCA PHYs which are an entirely separate hardware block not covered
    here
    - external PHYs and switches

    Note that MoCA and switches are currently supported using the emulated
    "fixed PHY" driver.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • This patch adds the BCMGENET main driver file which supports the
    following:

    - GENET hardware from V1 to V4
    - support for reading the UniMAC MIB counters statistics
    - support for the 5 transmit queues
    - support for RX/TX checksum offload and SG

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • This patchs adds the bcmgenet.h header file which contains all the
    hardware definitions for the GENETv1 to v4 hardware blocks as well as
    the driver private structure and MIB counters.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • This patch adds support for the Broadcom BCM7xxx Set Top Box SoCs
    internal PHYs. This driver supports the following generation of SoCs:

    - BCM7366, BCM7439, BCM7445 (28nm process)
    - all 40nm and 65nm (older MIPS-based SoCs)

    The PHYs on these SoCs require a bunch of workarounds to operate
    correctly, both during configuration time and at suspend/resume time,
    the driver handles that for us.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The Broadcom BCM54xx register definitions are shared between BCM54xx and
    BCM7xx internal PHYs for which we are adding support. Extract these
    register definitions and put them in include/linux/brcmphy.h for use by
    the BCM7xxx internal PHY driver.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • MoCA PHYs are using coaxial (BNC-like) connectors, update the
    transceiver port type when replying to ethtool.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Currently multi-channel configuration is read via the QUERY_FW_CONFIG cmd.
    This method has been deprecated by the Skyhawk-R FW. Instead,
    GET_PROFILE_CONFIG::port-desc must be used to query this configuration.

    This patch also:
    a) introduces a few macros to identify certain categories of multi-channel
    configs
    2) re-factors the be_cmd_set_profile_config() code to be able to read any kind
    of desc (and not just the nic-desc.)

    Signed-off-by: Vasundhara Volam
    Signed-off-by: Sathya Perla
    Signed-off-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Vasundhara Volam
     
  • Signed-off-by: Vasundhara Volam
    Signed-off-by: Sathya Perla
    Signed-off-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Vasundhara Volam
     
  • This patch logs a kernel message when a HW error(SLIPORT_ERROR in Lancer and UE
    in BEx/Skyhawk) is detected. The log message for BE3 was missing earlier.
    This patch also refactors the code by segregating error-detection and reporting
    code for Lancer and BEx/SH.

    Signed-off-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Somnath Kotur
     
  • linux-can-next-for-3.15-20140212

    Marc Kleine-Budde says:

    ====================
    this is a pull request of eight patches for net-next/master.

    Florian Vaussard contributed a series that merged the sja1000 of_platform
    into the platform driver. The of_platform driver is finally removed.
    Stephane Grosjean supplied a patch to allocate CANFD skbs. In a patch
    by Uwe Kleine-König another missing copyright information was added to
    a userspace header. And a patch by Yoann DI RUZZA that adds listen only
    mode to the at91_can driver.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The driver #define's and uses ETHERSMALL macro for the minimum Ethernet frame
    size for which we have a standard macro ETH_ZLEN. Use the latter instead of
    the home-grown one.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     
  • The dev_valid_name() will check the buffer length for input name, no need to
    check it twice.

    Cc: Jay Vosburgh
    Cc: Veaceslav Falico
    Cc: Andy Gospodarek
    Signed-off-by: Ding Tianhong
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    dingtianhong