29 Oct, 2018

16 commits


16 Aug, 2018

1 commit

  • commit 00c0092c5f62147b7d85f0c6f1cf245a0a1ff3b6 upstream.

    When system is running, if usb2 phy is forced to bypass utmi signals,
    all PLL will be turned off, and it can't detect device connection
    anymore, so replace force mode with auto mode which can bypass utmi
    signals automatically if no device attached for normal flow.
    But keep the force mode to fix RX sensitivity degradation issue.

    Signed-off-by: Chunfeng Yun
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Amit Pundir
    Signed-off-by: Greg Kroah-Hartman

    Chunfeng Yun
     

16 Jun, 2018

1 commit

  • commit 0b4555e776ba0712c6fafb98b226b21fd05d2427 upstream.

    Driver currently crashes due to NULL pointer deference
    while updating PHY tune register if nvmem cell is NULL.
    Since, fused value for Tune1/2 register is optional,
    we'd rather bail out.

    Fixes: ca04d9d3e1b1 ("phy: qcom-qusb2: New driver for QUSB2 PHY on Qcom chips")
    Reviewed-by: Vivek Gautam
    Reviewed-by: Evan Green
    Cc: stable # 4.14+
    Signed-off-by: Manu Gautam
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Greg Kroah-Hartman

    Manu Gautam
     

30 May, 2018

2 commits

  • [ Upstream commit f8ba22a39e985c93e278709b1d5f20857a26b49b ]

    Pipe clock comes out of the phy and is available as long as
    the phy is turned on. Clock controller fails to gate this
    clock after the phy is turned off and generates a warning.

    / # [ 33.048561] gcc_usb3_phy_pipe_clk status stuck at 'on'
    [ 33.048585] ------------[ cut here ]------------
    [ 33.052621] WARNING: CPU: 1 PID: 18 at ../drivers/clk/qcom/clk-branch.c:97 clk_branch_wait+0xf0/0x108
    [ 33.057384] Modules linked in:
    [ 33.066497] CPU: 1 PID: 18 Comm: kworker/1:0 Tainted: G W 4.12.0-rc7-00024-gfe926e34c36d-dirty #96
    [ 33.069451] Hardware name: Qualcomm Technologies, Inc. DB820c (DT)
    ...
    [ 33.278565] [] clk_branch_wait+0xf0/0x108
    [ 33.286375] [] clk_branch2_disable+0x28/0x34
    [ 33.291761] [] clk_core_disable+0x5c/0x88
    [ 33.297660] [] clk_core_disable_lock+0x20/0x34
    [ 33.303129] [] clk_disable+0x1c/0x24
    [ 33.309384] [] qcom_qmp_phy_poweroff+0x20/0x48
    [ 33.314328] [] phy_power_off+0x80/0xdc
    [ 33.320492] [] dwc3_core_exit+0x94/0xa0
    [ 33.325784] [] dwc3_suspend_common+0x50/0x60
    [ 33.331080] [] dwc3_runtime_suspend+0x48/0x6c
    [ 33.336810] [] pm_generic_runtime_suspend+0x28/0x38
    [ 33.342627] [] __rpm_callback+0x150/0x254
    [ 33.349222] [] rpm_callback+0x24/0x78
    [ 33.354604] [] rpm_suspend+0xe0/0x4e4
    [ 33.359813] [] pm_runtime_work+0xdc/0xf0
    [ 33.365028] [] process_one_work+0x12c/0x28c
    [ 33.370576] [] worker_thread+0x58/0x3b8
    [ 33.376393] [] kthread+0x100/0x12c
    [ 33.381776] [] ret_from_fork+0x10/0x50

    Fix this by disabling it as the first thing in phy_exit().

    Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets")
    Signed-off-by: Vivek Gautam
    Signed-off-by: Manu Gautam
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Vivek Gautam
     
  • [ Upstream commit a4781c2a74b249cad814ceea7272997bbd20051e ]

    It turns out that 5us isn't enough for all cases, so let's
    retry some more times to wait for caldone.

    Signed-off-by: Shawn Lin
    Tested-by: Ziyuan Xu
    Signed-off-by: Caesar Wang
    Reviewed-by: Douglas Anderson
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Shawn Lin
     

24 Apr, 2018

1 commit

  • commit d7119224bfe6e8efbf821a52db7da9530d790f07 upstream.

    The AXP223 PMIC, like the AXP221, does not generate VBUS change
    interrupts when N_VBUSEN is used to drive VBUS for the OTG port
    on the board.

    This was not noticed until recently, as most A23/A33 boards use
    a GPIO pin that does not support interrupts for OTG ID detection.
    This forces the driver to use polling. However the A33-OlinuXino
    uses a pin that does support interrupts, so the driver uses them.
    However the VBUS interrupt never fires, and the driver never gets
    to update the VBUS status. This results in musb timing out waiting
    for VBUS to rise.

    This was worked around for the AXP221 by resorting to polling
    changes in commit 91d96f06a760 ("phy-sun4i-usb: Add workaround for
    missing Vbus det interrupts on A31"). This patch adds the A23 and
    A33 to the list of SoCs that need the workaround.

    Fixes: fc1f45ed3043 ("phy-sun4i-usb: Add support for the usb-phys on the
    sun8i-a33 SoC")
    Fixes: 123dfdbcfaf5 ("phy-sun4i-usb: Add support for the usb-phys on the
    sun8i-a23 SoC")
    Cc: # 4.3.x: 68dbc2ce77bb phy-sun4i-usb:
    Use of_match_node to get model specific config data
    Cc: # 4.3.x: 5cf700ac9d50 phy: phy-sun4i-usb:
    Fix optional gpios failing probe
    Cc: # 4.3.x: 04e59a0211ff phy-sun4i-usb:
    Fix irq free conditions to match request conditions
    Cc: # 4.3.x: 91d96f06a760 phy-sun4i-usb:
    Add workaround for missing Vbus det interrupts on A31
    Cc: # 4.3.x
    Signed-off-by: Chen-Yu Tsai
    Acked-by: Maxime Ripard
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Greg Kroah-Hartman

    Signed-off-by: Kishon Vijay Abraham I

    Chen-Yu Tsai
     

08 Apr, 2018

1 commit

  • commit 59fba0869acae06ff594dd7e9808ed673f53538a upstream.

    While the specific UFS PHY drivers (14nm and 20nm) have a module
    license, the common base module does not, leading to a Kbuild
    failure:

    WARNING: modpost: missing MODULE_LICENSE() in drivers/phy/qualcomm/phy-qcom-ufs.o
    FATAL: modpost: GPL-incompatible module phy-qcom-ufs.ko uses GPL-only symbol 'clk_enable'

    This adds a module description and license tag to fix the build.
    I added both Yaniv and Vivek as authors here, as Yaniv sent the initial
    submission, while Vivek did most of the work since.

    Signed-off-by: Arnd Bergmann
    Acked-by: Bjorn Andersson
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     

03 Mar, 2018

1 commit

  • [ Upstream commit e796cc6a3a9186c92092e2f5929cf8f65b56cf01 ]

    The platform_get_irq_byname() function returns negative if an error occurs.
    zero or positive number on success. platform_get_irq_byname() error
    checking for zero is not correct.

    Fixes: 6d6ce40f63af ("phy: cpcap-usb: Add CPCAP PMIC USB support")
    Signed-off-by: Arvind Yadav
    Reviewed-by: Sebastian Reichel
    Acked-by: Tony Lindgren
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Arvind Yadav
     

24 Jan, 2018

1 commit

  • commit b7563e2796f8b23c98afcfea7363194227fa089d upstream.

    Stefan Wahren reports a problem with a warning fix that was merged
    for v4.15: we had lots of device nodes with a 'phys' property pointing
    to a device node that is not compliant with the binding documented in
    Documentation/devicetree/bindings/phy/phy-bindings.txt

    This generally works because USB HCD drivers that support both the generic
    phy subsystem and the older usb-phy subsystem ignore most errors from
    phy_get() and related calls and then use the usb-phy driver instead.

    However, it turns out that making the usb-nop-xceiv device compatible with
    the generic-phy binding changes the phy_get() return code from -EINVAL to
    -EPROBE_DEFER, and the dwc2 usb controller driver for bcm2835 now returns
    -EPROBE_DEFER from its probe function rather than ignoring the failure,
    breaking all USB support on raspberry-pi when CONFIG_GENERIC_PHY is
    enabled. The same code is used in the dwc3 driver and the usb_add_hcd()
    function, so a reasonable assumption would be that many other platforms
    are affected as well.

    I have reviewed all the related patches and concluded that "usb-nop-xceiv"
    is the only USB phy that is affected by the change, and since it is by far
    the most commonly referenced phy, all the other USB phy drivers appear
    to be used in ways that are are either safe in DT (they don't use the
    'phys' property), or in the driver (they already ignore -EPROBE_DEFER
    from generic-phy when usb-phy is available).

    To work around the problem, this adds a special case to _of_phy_get()
    so we ignore any PHY node that is compatible with "usb-nop-xceiv",
    as we know that this can never load no matter how much we defer. In the
    future, we might implement a generic-phy driver for "usb-nop-xceiv"
    and then remove this workaround.

    Since we generally want older kernels to also want to work with the
    fixed devicetree files, it would be good to backport the patch into
    stable kernels as well (3.13+ are possibly affected), even though they
    don't contain any of the patches that may have caused regressions.

    Fixes: 014d6da6cb25 ARM: dts: bcm283x: Fix DTC warnings about missing phy-cells
    Fixes: c5bbf358b790 arm: dts: nspire: Add missing #phy-cells to usb-nop-xceiv
    Fixes: 44e5dced2ef6 arm: dts: marvell: Add missing #phy-cells to usb-nop-xceiv
    Fixes: f568f6f554b8 ARM: dts: omap: Add missing #phy-cells to usb-nop-xceiv
    Fixes: d745d5f277bf ARM: dts: imx51-zii-rdu1: Add missing #phy-cells to usb-nop-xceiv
    Fixes: 915fbe59cbf2 ARM: dts: imx: Add missing #phy-cells to usb-nop-xceiv
    Link: https://marc.info/?l=linux-usb&m=151518314314753&w=2
    Link: https://patchwork.kernel.org/patch/10158145/
    Cc: Felipe Balbi
    Cc: Eric Anholt
    Tested-by: Stefan Wahren
    Acked-by: Rob Herring
    Tested-by: Hans Verkuil
    Acked-by: Kishon Vijay Abraham I
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     

03 Jan, 2018

1 commit

  • commit 046046737bd35bed047460f080ea47e186be731e upstream.

    Fix child-node lookups during probe, which ended up searching the whole
    device tree depth-first starting at the parents rather than just
    matching on their children.

    To make things worse, some parent nodes could end up being being
    prematurely freed (by tegra_xusb_pad_register()) as
    of_find_node_by_name() drops a reference to its first argument.

    Fixes: 53d2a715c240 ("phy: Add Tegra XUSB pad controller support")
    Cc: Thierry Reding
    Signed-off-by: Johan Hovold
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

03 Oct, 2017

1 commit

  • The function tcphy_phy_init() could return an error but the callers
    weren't checking the return value. They should. In at least one case
    while testing I saw the message "wait pma ready timeout" which
    indicates that tcphy_phy_init() really could return an error and we
    should account for it.

    Signed-off-by: Douglas Anderson
    Reviewed-by: Guenter Roeck
    Signed-off-by: Kishon Vijay Abraham I

    Douglas Anderson
     

26 Sep, 2017

7 commits

  • On rk3399-gru-kevin there are some cases where we're seeing AUX CH
    failures when trying to do DisplayPort over type C. Problems are
    intermittent and don't reproduce all the time. Problems are often
    bursty and failures persist for several seconds before going away.
    The failure case I focused on is:
    * A particular type C to HDMI adapter.
    * One orientation (flip mode) of that adapter.
    * Easier to see failures when something is plugged into the _other
    type C port at the same time.
    * Problems reproduce on both type C ports (left and right side).

    Ironically problems also stop reproducing when I solder wires onto the
    AUX CH signals on a port (even if no scope is connected to the
    signals). In this case, problems only stop reproducing on the port
    with the wires connected.

    From the above it appears that something about the signaling on the
    aux channel is marginal and any slight differences can bring us over
    the edge to failure.

    It turns out that we can fix our problems by just increasing the
    voltage swing of the AUX CH, giving us a bunch of extra margin. In DP
    up to version 1.2 the voltage swing on the aux channel was specced as
    .29 V to 1.38 V. In DP version 1.3 the aux channel voltage was
    tightened to be between .29 V and .40 V, but it clarifies that it
    really only needs the lower voltage when operating at the highest
    speed (HBR3 mode). So right now we are trying to use a voltage that
    technically should be valid for all versions of the spec (including
    version 1.3 when transmitting at HBR3). That would be great to do if
    it worked reliably. ...but it doesn't seem to.

    It turns out that if you continue to read through the DP part of the
    rk3399 TRM and other parts of the type C PHY spec you'll find out that
    while the rk3399 does support DP 1.3, it doesn't support HBR3. The
    docs specifically say "RBR, HBR and HBR2 data rates only". Thus there
    is actually no requirement to support an AUX CH swing of .4 V.

    Even if there is no actual requirement to support the tighter voltage
    swing, one could possibly argue that we should support it anyway. The
    DP spec clarifies that the lower voltage on the AUX CH will reduce
    cross talk in some cases and that seems like it could be beneficial
    even at the lower bit rates. At the moment, though, we are seeing
    problems with the AUX CH and not on the other lines. Also, checking
    another known working and similar laptop shows that the other laptop
    runs the AUX channel at a higher voltage.

    Other notes:
    * Looking at measurements done on the AUX CH we weren't actually
    compliant with the DP 1.3 spec anyway. AUX CH peek-to-peek voltage
    was measured on rk3399-gru-kevin as .466 V which is > .4 V.
    * With this new patch the AUX channel isn't actually 1.0 V, but it has
    been confirmed that the signal is better and has more margin. Eye
    diagram passes.
    * If someone were truly an expert in the Type C PHY and in DisplayPort
    signaling they might be able to make things work and keep the
    voltage at < .4 V. The Type C PHY seems to have a plethora of
    tuning knobs that could almost certainly improve the signal
    integrity. Some of these things (like enabling tx_fcm_full_margin)
    even seem to fix my problems. However, lacking expertise I can't
    say whether this is a better or worse solution. Tightening signals
    to give cleaner waveforms can often have adverse affects, like
    increasing EMI or adding noise to other signals. I'd rather not
    tune things like this without a healthy application of expertise
    that I don't have.

    Signed-off-by: Douglas Anderson
    Signed-off-by: Kishon Vijay Abraham I

    Douglas Anderson
     
  • On some DP monitors we found that setting the wrong flip state on the
    AUX channel could cause the monitor to stop asserting HotPlug Detect
    (HPD). Setting the right flip state caused these monitors to start
    asserting HotPlug Detect again.

    Here's what we believe was happening:
    * We'd plug in the monitor and we'd see HPD assert
    * We'd quickly see HPD deassert
    * The kernel would try to init the type C PHY but would init it in USB
    mode (because there was a peripheral there but no HPD)
    * Because the kernel never set the flip mode properly we'd never see
    the HPD come back.

    With this change, we'll still see HPD disappear (we don't think
    there's anything we can do about that), but then it will come back.

    Overall we can say that it's sane to set the AUX channel flip state
    even when HPD is not asserted.

    NOTE: to make this change possible, I needed to do a bit of cleanup to
    the tcphy_dp_aux_calibration() function so that it doesn't ever
    clobber the FLIP state. This made it very obvious that a line of code
    documented as "setting bit 12" also did a bunch of other magic,
    undocumented stuff. For now I'll just break out the bits and add a
    comment that this is black magic and we'll try to document
    tcphy_dp_aux_calibration() better in a future CL.

    ALSO NOTE: the old function used to write a bunch of hardcoded
    values in _some_ cases instead of doing a read-modify-write. One
    could possibly assert that these could have had (beneficial) side
    effects and thus with this new code (which always does
    read-modify-write) we could have a bug. We shouldn't need to worry,
    though, since in the old code tcphy_dp_aux_calibration() was always
    called following the de-assertion of "reset" the the type C PHY.
    ...so the type C PHY was always in default state. TX_ANA_CTRL_REG_1
    is documented to be 0x0 after reset. This was also confirmed by
    printk.

    Suggested-by: Shawn Nematbakhsh
    Reviewed-by: Chris Zhong
    Signed-off-by: Douglas Anderson
    Signed-off-by: Kishon Vijay Abraham I

    Douglas Anderson
     
  • devm_ioremap_resource() never returns NULL, it only returns error
    pointers so this test needs to be changed.

    Fixes: d0438bd6aa09 ("phy: add the mvebu cp110 comphy driver")
    Signed-off-by: Dan Carpenter
    Signed-off-by: Kishon Vijay Abraham I

    Dan Carpenter
     
  • The pipe selector is used to select some modes (such as USB or PCIe).
    Otherwise it must be set to 0 (or "unconnected"). This patch does this
    to ensure it is not set to an incompatible value when using the
    supported modes (SGMII, 10GKR).

    Signed-off-by: Antoine Tenart
    Signed-off-by: Kishon Vijay Abraham I

    Antoine Tenart
     
  • The mux value is retrieved from the mvebu_comphy_get_mux() function
    which returns an int. In mvebu_comphy_power_on() this int is stored to a
    u32 and a check is made to ensure it's not negative. Which is wrong.
    This fixes it.

    Fixes: d0438bd6aa09 ("phy: add the mvebu cp110 comphy driver")
    Signed-off-by: Antoine Tenart
    Signed-off-by: Kishon Vijay Abraham I

    Antoine Tenart
     
  • Chip bank of version-1 is initialized as NULL, but it's used
    by pcie_phy_instance_power_on/off(), so assign it a right
    address.

    Signed-off-by: Chunfeng Yun
    Signed-off-by: Kishon Vijay Abraham I

    Chunfeng Yun
     
  • kasprintf() can fail and it's return value must be checked.

    Signed-off-by: Arvind Yadav
    Signed-off-by: Kishon Vijay Abraham I

    Arvind Yadav
     

16 Sep, 2017

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for 4.14 for MIPS; below a summary of
    the non-merge commits:

    CM:
    - Rename mips_cm_base to mips_gcr_base
    - Specify register size when generating accessors
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Add cluster & block args to mips_cm_lock_other()

    CPC:
    - Use common CPS accessor generation macros
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Introduce register modify (set/clear/change) accessors
    - Use change_*, set_* & clear_* where appropriate
    - Add CM/CPC 3.5 register definitions
    - Use GlobalNumber macros rather than magic numbers
    - Have asm/mips-cps.h include CM & CPC headers
    - Cluster support for topology functions
    - Detect CPUs in secondary clusters

    CPS:
    - Read GIC_VL_IDENT directly, not via irqchip driver

    DMA:
    - Consolidate coherent and non-coherent dma_alloc code
    - Don't use dma_cache_sync to implement fd_cacheflush

    FPU emulation / FP assist code:
    - Another series of 14 commits fixing corner cases such as NaN
    propgagation and other special input values.
    - Zero bits 32-63 of the result for a CLASS.D instruction.
    - Enhanced statics via debugfs
    - Do not use bools for arithmetic. GCC 7.1 moans about this.
    - Correct user fault_addr type

    Generic MIPS:
    - Enhancement of stack backtraces
    - Cleanup from non-existing options
    - Handle non word sized instructions when examining frame
    - Fix detection and decoding of ADDIUSP instruction
    - Fix decoding of SWSP16 instruction
    - Refactor handling of stack pointer in get_frame_info
    - Remove unreachable code from force_fcr31_sig()
    - Convert to using %pOF instead of full_name
    - Remove the R6000 support.
    - Move FP code from *_switch.S to *_fpu.S
    - Remove unused ST_OFF from r2300_switch.S
    - Allow platform to specify multiple its.S files
    - Add #includes to various files to ensure code builds reliable and
    without warning..
    - Remove __invalidate_kernel_vmap_range
    - Remove plat_timer_setup
    - Declare various variables & functions static
    - Abstract CPU core & VP(E) ID access through accessor functions
    - Store core & VP IDs in GlobalNumber-style variable
    - Unify checks for sibling CPUs
    - Add CPU cluster number accessors
    - Prevent direct use of generic_defconfig
    - Make CONFIG_MIPS_MT_SMP default y
    - Add __ioread64_copy
    - Remove unnecessary inclusions of linux/irqchip/mips-gic.h

    GIC:
    - Introduce asm/mips-gic.h with accessor functions
    - Use new GIC accessor functions in mips-gic-timer
    - Remove counter access functions from irq-mips-gic.c
    - Remove gic_read_local_vp_id() from irq-mips-gic.c
    - Simplify shared interrupt pending/mask reads in irq-mips-gic.c
    - Simplify gic_local_irq_domain_map() in irq-mips-gic.c
    - Drop gic_(re)set_mask() functions in irq-mips-gic.c
    - Remove gic_set_polarity(), gic_set_trigger(), gic_set_dual_edge(),
    gic_map_to_pin() and gic_map_to_vpe() from irq-mips-gic.c.
    - Convert remaining shared reg access, local int mask access and
    remaining local reg access to new accessors
    - Move GIC_LOCAL_INT_* to asm/mips-gic.h
    - Remove GIC_CPU_INT* macros from irq-mips-gic.c
    - Move various definitions to the driver
    - Remove gic_get_usm_range()
    - Remove __gic_irq_dispatch() forward declaration
    - Remove gic_init()
    - Use mips_gic_present() in place of gic_present and remove
    gic_present
    - Move gic_get_c0_*_int() to asm/mips-gic.h
    - Remove linux/irqchip/mips-gic.h
    - Inline __gic_init()
    - Inline gic_basic_init()
    - Make pcpu_masks a per-cpu variable
    - Use pcpu_masks to avoid reading GIC_SH_MASK*
    - Clean up mti, reserved-cpu-vectors handling
    - Use cpumask_first_and() in gic_set_affinity()
    - Let the core set struct irq_common_data affinity

    microMIPS:
    - Fix microMIPS stack unwinding on big endian systems

    MIPS-GIC:
    - SYNC after enabling GIC region

    NUMA:
    - Remove the unused parent_node() macro

    R6:
    - Constify r2_decoder_tables
    - Add accessor & bit definitions for GlobalNumber

    SMP:
    - Constify smp ops
    - Allow boot_secondary SMP op to return errors

    VDSO:
    - Drop gic_get_usm_range() usage
    - Avoid use of linux/irqchip/mips-gic.h

    Platform changes:

    Alchemy:
    - Add devboard machine type to cpuinfo
    - update cpu feature overrides
    - Threaded carddetect irqs for devboards

    AR7:
    - allow NULL clock for clk_get_rate

    BCM63xx:
    - Fix ENETDMA_6345_MAXBURST_REG offset
    - Allow NULL clock for clk_get_rate

    CI20:
    - Enable GPIO and RTC drivers in defconfig
    - Add ethernet and fixed-regulator nodes to DTS

    Generic platform:
    - Move Boston and NI 169445 FIT image source to their own files
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Allow filtering enabled boards by requirements
    - Don't explicitly disable CONFIG_USB_SUPPORT
    - Bump default NR_CPUS to 16

    JZ4700:
    - Probe the jz4740-rtc driver from devicetree

    Lantiq:
    - Drop check of boot select from the spi-falcon driver.
    - Drop check of boot select from the lantiq-flash MTD driver.
    - Access boot cause register in the watchdog driver through regmap
    - Add device tree binding documentation for the watchdog driver
    - Add docs for the RCU DT bindings.
    - Convert the fpi bus driver to a platform_driver
    - Remove ltq_reset_cause() and ltq_boot_select(
    - Switch to a proper reset driver
    - Switch to a new drivers/soc GPHY driver
    - Add an USB PHY driver for the Lantiq SoCs using the RCU module
    - Use of_platform_default_populate instead of __dt_register_buses
    - Enable MFD_SYSCON to be able to use it for the RCU MFD
    - Replace ltq_boot_select() with dummy implementation.

    Loongson 2F:
    - Allow NULL clock for clk_get_rate

    Malta:
    - Use new GIC accessor functions

    NI 169445:
    - Add support for NI 169445 board.
    - Only include in 32r2el kernels

    Octeon:
    - Add support for watchdog of 78XX SOCs.
    - Add support for watchdog of CN68XX SOCs.
    - Expose support for mips32r1, mips32r2 and mips64r1
    - Enable more drivers in config file
    - Add support for accessing the boot vector.
    - Remove old boot vector code from watchdog driver
    - Define watchdog registers for 70xx, 73xx, 78xx, F75xx.
    - Make CSR functions node aware.
    - Allow access to CIU3 IRQ domains.
    - Misc cleanups in the watchdog driver

    Omega2+:
    - New board, add support and defconfig

    Pistachio:
    - Enable Root FS on NFS in defconfig

    Ralink:
    - Add Mediatek MT7628A SoC
    - Allow NULL clock for clk_get_rate
    - Explicitly request exclusive reset control in the pci-mt7620 PCI driver.

    SEAD3:
    - Only include in 32 bit kernels by default

    VoCore:
    - Add VoCore as a vendor t0 dt-bindings
    - Add defconfig file"

    * '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (167 commits)
    MIPS: Refactor handling of stack pointer in get_frame_info
    MIPS: Stacktrace: Fix microMIPS stack unwinding on big endian systems
    MIPS: microMIPS: Fix decoding of swsp16 instruction
    MIPS: microMIPS: Fix decoding of addiusp instruction
    MIPS: microMIPS: Fix detection of addiusp instruction
    MIPS: Handle non word sized instructions when examining frame
    MIPS: ralink: allow NULL clock for clk_get_rate
    MIPS: Loongson 2F: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: allow NULL clock for clk_get_rate
    MIPS: AR7: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: fix ENETDMA_6345_MAXBURST_REG offset
    mips: Save all registers when saving the frame
    MIPS: Add DWARF unwinding to assembly
    MIPS: Make SAVE_SOME more standard
    MIPS: Fix issues in backtraces
    MIPS: jz4780: DTS: Probe the jz4740-rtc driver from devicetree
    MIPS: Ci20: Enable RTC driver
    watchdog: octeon-wdt: Add support for 78XX SOCs.
    watchdog: octeon-wdt: Add support for cn68XX SOCs.
    watchdog: octeon-wdt: File cleaning.
    ...

    Linus Torvalds
     

09 Sep, 2017

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - add enhanced Downstream Port Containment support, which prints more
    details about Root Port Programmed I/O errors (Dongdong Liu)

    - add Layerscape ls1088a and ls2088a support (Hou Zhiqiang)

    - add MediaTek MT2712 and MT7622 support (Ryder Lee)

    - add MediaTek MT2712 and MT7622 MSI support (Honghui Zhang)

    - add Qualcom IPQ8074 support (Varadarajan Narayanan)

    - add R-Car r8a7743/5 device tree support (Biju Das)

    - add Rockchip per-lane PHY support for better power management (Shawn
    Lin)

    - fix IRQ mapping for hot-added devices by replacing the
    pci_fixup_irqs() boot-time design with a host bridge hook called at
    probe-time (Lorenzo Pieralisi, Matthew Minter)

    - fix race when enabling two devices that results in upstream bridge
    not being enabled correctly (Srinath Mannam)

    - fix pciehp power fault infinite loop (Keith Busch)

    - fix SHPC bridge MSI hotplug events by enabling bus mastering
    (Aleksandr Bezzubikov)

    - fix a VFIO issue by correcting PCIe capability sizes (Alex
    Williamson)

    - fix an INTD issue on Xilinx and possibly other drivers by unifying
    INTx IRQ domain support (Paul Burton)

    - avoid IOMMU stalls by marking AMD Stoney GPU ATS as broken (Joerg
    Roedel)

    - allow APM X-Gene device assignment to guests by adding an ACS quirk
    (Feng Kan)

    - fix driver crashes by disabling Extended Tags on Broadcom HT2100
    (Extended Tags support is required for PCIe Receivers but not
    Requesters, and we now enable them by default when Requesters support
    them) (Sinan Kaya)

    - fix MSIs for devices that use phantom RIDs for DMA by assuming MSIs
    use the real Requester ID (not a phantom RID) (Robin Murphy)

    - prevent assignment of Intel VMD children to guests (which may be
    supported eventually, but isn't yet) by not associating an IOMMU with
    them (Jon Derrick)

    - fix Intel VMD suspend/resume by releasing IRQs on suspend (Scott
    Bauer)

    - fix a Function-Level Reset issue with Intel 750 NVMe by waiting
    longer (up to 60sec instead of 1sec) for device to become ready
    (Sinan Kaya)

    - fix a Function-Level Reset issue on iProc Stingray by working around
    hardware defects in the CRS implementation (Oza Pawandeep)

    - fix an issue with Intel NVMe P3700 after an iProc reset by adding a
    delay during shutdown (Oza Pawandeep)

    - fix a Microsoft Hyper-V lockdep issue by polling instead of blocking
    in compose_msi_msg() (Stephen Hemminger)

    - fix a wireless LAN driver timeout by clearing DesignWare MSI
    interrupt status after it is handled, not before (Faiz Abbas)

    - fix DesignWare ATU enable checking (Jisheng Zhang)

    - reduce Layerscape dependencies on the bootloader by doing more
    initialization in the driver (Hou Zhiqiang)

    - improve Intel VMD performance allowing allocation of more IRQ vectors
    than present CPUs (Keith Busch)

    - improve endpoint framework support for initial DMA mask, different
    BAR sizes, configurable page sizes, MSI, test driver, etc (Kishon
    Vijay Abraham I, Stan Drozd)

    - rework CRS support to add periodic messages while we poll during
    enumeration and after Function-Level Reset and prepare for possible
    other uses of CRS (Sinan Kaya)

    - clean up Root Port AER handling by removing unnecessary code and
    moving error handler methods to struct pcie_port_service_driver
    (Christoph Hellwig)

    - clean up error handling paths in various drivers (Bjorn Andersson,
    Fabio Estevam, Gustavo A. R. Silva, Harunobu Kurokawa, Jeffy Chen,
    Lorenzo Pieralisi, Sergei Shtylyov)

    - clean up SR-IOV resource handling by disabling VF decoding before
    updating the corresponding resource structs (Gavin Shan)

    - clean up DesignWare-based drivers by unifying quirks to update Class
    Code and Interrupt Pin and related handling of write-protected
    registers (Hou Zhiqiang)

    - clean up by adding empty generic pcibios_align_resource() and
    pcibios_fixup_bus() and removing empty arch-specific implementations
    (Palmer Dabbelt)

    - request exclusive reset control for several drivers to allow cleanup
    elsewhere (Philipp Zabel)

    - constify various structures (Arvind Yadav, Bhumika Goyal)

    - convert from full_name() to %pOF (Rob Herring)

    - remove unused variables from iProc, HiSi, Altera, Keystone (Shawn
    Lin)

    * tag 'pci-v4.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (170 commits)
    PCI: xgene: Clean up whitespace
    PCI: xgene: Define XGENE_PCI_EXP_CAP and use generic PCI_EXP_RTCTL offset
    PCI: xgene: Fix platform_get_irq() error handling
    PCI: xilinx-nwl: Fix platform_get_irq() error handling
    PCI: rockchip: Fix platform_get_irq() error handling
    PCI: altera: Fix platform_get_irq() error handling
    PCI: spear13xx: Fix platform_get_irq() error handling
    PCI: artpec6: Fix platform_get_irq() error handling
    PCI: armada8k: Fix platform_get_irq() error handling
    PCI: dra7xx: Fix platform_get_irq() error handling
    PCI: exynos: Fix platform_get_irq() error handling
    PCI: iproc: Clean up whitespace
    PCI: iproc: Rename PCI_EXP_CAP to IPROC_PCI_EXP_CAP
    PCI: iproc: Add 500ms delay during device shutdown
    PCI: Fix typos and whitespace errors
    PCI: Remove unused "res" variable from pci_resource_io()
    PCI: Correct kernel-doc of pci_vpd_srdt_size(), pci_vpd_srdt_tag()
    PCI/AER: Reformat AER register definitions
    iommu/vt-d: Prevent VMD child devices from being remapping targets
    x86/PCI: Use is_vmd() rather than relying on the domain number
    ...

    Linus Torvalds
     

08 Sep, 2017

1 commit

  • Pull MFD updates from Lee Jones:
    "New Drivers
    - RK805 Power Management IC (PMIC)
    - ROHM BD9571MWV-M MFD Power Management IC (PMIC)
    - Texas Instruments TPS68470 Power Management IC (PMIC) & LEDs

    New Device Support:
    - Add support for HiSilicon Hi6421v530 to hi6421-pmic-core
    - Add support for X-Powers AXP806 to axp20x
    - Add support for X-Powers AXP813 to axp20x
    - Add support for Intel Sunrise Point LPSS to intel-lpss-pci

    New Functionality:
    - Amend API to provide register layout; atmel-smc

    Fix-ups:
    - DT re-work; omap, nokia
    - Header file location change {I2C => MFD}; dm355evm_msp, tps65010
    - Fix chip ID formatting issue(s); rk808
    - Optionally register touchscreen devices; da9052-core
    - Documentation improvements; twl-core
    - Constification; rtsx_pcr, ab8500-core, da9055-i2c, da9052-spi
    - Drop unnecessary static declaration; max8925-i2c
    - Kconfig changes (missing deps and remove module support)
    - Slim down oversized licence statement; hi6421-pmic-core
    - Use managed resources (devm_*); lp87565
    - Supply proper error checking/handling; t7l66xb

    Bug Fixes:
    - Fix counter duplication issue; da9052-core
    - Fix potential NULL deference issue; max8998
    - Leave SPI-NOR write-protection bit alone; lpc_ich
    - Ensure device is put into reset during suspend; intel-lpss
    - Correct register offset variable size; omap-usb-tll"

    * tag 'mfd-next-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (61 commits)
    mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants
    mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
    dt-bindings: mfd: Add bindings for ZII RAVE devices
    mfd: omap-usb-tll: Fix register offsets
    mfd: da9052: Constify spi_device_id
    mfd: intel-lpss: Put I2C and SPI controllers into reset state on suspend
    mfd: da9055: Constify i2c_device_id
    mfd: intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices
    mfd: t7l66xb: Handle return value of clk_prepare_enable
    mfd: Add ROHM BD9571MWV-M PMIC DT bindings
    mfd: intel_soc_pmic_chtwc: Turn Kconfig option into a bool
    mfd: lp87565: Convert to use devm_mfd_add_devices()
    mfd: Add support for TPS68470 device
    mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell
    mfd: syscon: atmel-smc: Add helper to retrieve register layout
    mfd: axp20x: Use correct platform device ID for many PEK
    dt-bindings: mfd: axp20x: Introduce bindings for AXP813
    mfd: axp20x: Add support for AXP813 PMIC
    dt-bindings: mfd: axp20x: Add AXP806 to supported list of chips
    mfd: Add ROHM BD9571MWV-M MFD PMIC driver
    ...

    Linus Torvalds
     

07 Sep, 2017

1 commit

  • Pull networking updates from David Miller:

    1) Support ipv6 checksum offload in sunvnet driver, from Shannon
    Nelson.

    2) Move to RB-tree instead of custom AVL code in inetpeer, from Eric
    Dumazet.

    3) Allow generic XDP to work on virtual devices, from John Fastabend.

    4) Add bpf device maps and XDP_REDIRECT, which can be used to build
    arbitrary switching frameworks using XDP. From John Fastabend.

    5) Remove UFO offloads from the tree, gave us little other than bugs.

    6) Remove the IPSEC flow cache, from Florian Westphal.

    7) Support ipv6 route offload in mlxsw driver.

    8) Support VF representors in bnxt_en, from Sathya Perla.

    9) Add support for forward error correction modes to ethtool, from
    Vidya Sagar Ravipati.

    10) Add time filter for packet scheduler action dumping, from Jamal Hadi
    Salim.

    11) Extend the zerocopy sendmsg() used by virtio and tap to regular
    sockets via MSG_ZEROCOPY. From Willem de Bruijn.

    12) Significantly rework value tracking in the BPF verifier, from Edward
    Cree.

    13) Add new jump instructions to eBPF, from Daniel Borkmann.

    14) Rework rtnetlink plumbing so that operations can be run without
    taking the RTNL semaphore. From Florian Westphal.

    15) Support XDP in tap driver, from Jason Wang.

    16) Add 32-bit eBPF JIT for ARM, from Shubham Bansal.

    17) Add Huawei hinic ethernet driver.

    18) Allow to report MD5 keys in TCP inet_diag dumps, from Ivan
    Delalande.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1780 commits)
    i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
    i40e: avoid NVM acquire deadlock during NVM update
    drivers: net: xgene: Remove return statement from void function
    drivers: net: xgene: Configure tx/rx delay for ACPI
    drivers: net: xgene: Read tx/rx delay for ACPI
    rocker: fix kcalloc parameter order
    rds: Fix non-atomic operation on shared flag variable
    net: sched: don't use GFP_KERNEL under spin lock
    vhost_net: correctly check tx avail during rx busy polling
    net: mdio-mux: add mdio_mux parameter to mdio_mux_init()
    rxrpc: Make service connection lookup always check for retry
    net: stmmac: Delete dead code for MDIO registration
    gianfar: Fix Tx flow control deactivation
    cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6
    cxgb4: Fix pause frame count in t4_get_port_stats
    cxgb4: fix memory leak
    tun: rename generic_xdp to skb_xdp
    tun: reserve extra headroom only when XDP is set
    net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping
    net: dsa: bcm_sf2: Advertise number of egress queues
    ...

    Linus Torvalds
     

06 Sep, 2017

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big char/misc driver update for 4.14-rc1.

    Lots of different stuff in here, it's been an active development cycle
    for some reason. Highlights are:

    - updated binder driver, this brings binder up to date with what
    shipped in the Android O release, plus some more changes that
    happened since then that are in the Android development trees.

    - coresight updates and fixes

    - mux driver file renames to be a bit "nicer"

    - intel_th driver updates

    - normal set of hyper-v updates and changes

    - small fpga subsystem and driver updates

    - lots of const code changes all over the driver trees

    - extcon driver updates

    - fmc driver subsystem upadates

    - w1 subsystem minor reworks and new features and drivers added

    - spmi driver updates

    Plus a smattering of other minor driver updates and fixes.

    All of these have been in linux-next with no reported issues for a
    while"

    * tag 'char-misc-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (244 commits)
    ANDROID: binder: don't queue async transactions to thread.
    ANDROID: binder: don't enqueue death notifications to thread todo.
    ANDROID: binder: Don't BUG_ON(!spin_is_locked()).
    ANDROID: binder: Add BINDER_GET_NODE_DEBUG_INFO ioctl
    ANDROID: binder: push new transactions to waiting threads.
    ANDROID: binder: remove proc waitqueue
    android: binder: Add page usage in binder stats
    android: binder: fixup crash introduced by moving buffer hdr
    drivers: w1: add hwmon temp support for w1_therm
    drivers: w1: refactor w1_slave_show to make the temp reading functionality separate
    drivers: w1: add hwmon support structures
    eeprom: idt_89hpesx: Support both ACPI and OF probing
    mcb: Fix an error handling path in 'chameleon_parse_cells()'
    MCB: add support for SC31 to mcb-lpc
    mux: make device_type const
    char: virtio: constify attribute_group structures.
    Documentation/ABI: document the nvmem sysfs files
    lkdtm: fix spelling mistake: "incremeted" -> "incremented"
    perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
    nvmem: include linux/err.h from header
    ...

    Linus Torvalds
     

05 Sep, 2017

1 commit

  • This driver starts the DWC2 core(s) built into the XWAY SoCs and provides
    the PHY interfaces for each core. The phy instances can be passed to the
    dwc2 driver, which already supports the generic phy interface.

    Signed-off-by: Hauke Mehrtens
    Acked-by: Kishon Vijay Abraham I
    Acked-by: Rob Herring
    Cc: martin.blumenstingl@googlemail.com
    Cc: john@phrozen.org
    Cc: andy.shevchenko@gmail.com
    Cc: p.zabel@pengutronix.de
    Cc: mark.rutland@arm.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-mtd@lists.infradead.org
    Cc: linux-watchdog@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-spi@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/17127/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens