28 May, 2016

1 commit

  • Most users of IS_ERR_VALUE() in the kernel are wrong, as they
    pass an 'int' into a function that takes an 'unsigned long'
    argument. This happens to work because the type is sign-extended
    on 64-bit architectures before it gets converted into an
    unsigned type.

    However, anything that passes an 'unsigned short' or 'unsigned int'
    argument into IS_ERR_VALUE() is guaranteed to be broken, as are
    8-bit integers and types that are wider than 'unsigned long'.

    Andrzej Hajda has already fixed a lot of the worst abusers that
    were causing actual bugs, but it would be nice to prevent any
    users that are not passing 'unsigned long' arguments.

    This patch changes all users of IS_ERR_VALUE() that I could find
    on 32-bit ARM randconfig builds and x86 allmodconfig. For the
    moment, this doesn't change the definition of IS_ERR_VALUE()
    because there are probably still architecture specific users
    elsewhere.

    Almost all the warnings I got are for files that are better off
    using 'if (err)' or 'if (err < 0)'.
    The only legitimate user I could find that we get a warning for
    is the (32-bit only) freescale fman driver, so I did not remove
    the IS_ERR_VALUE() there but changed the type to 'unsigned long'.
    For 9pfs, I just worked around one user whose calling conventions
    are so obscure that I did not dare change the behavior.

    I was using this definition for testing:

    #define IS_ERR_VALUE(x) ((unsigned long*)NULL == (typeof (x)*)NULL && \
    unlikely((unsigned long long)(x) >= (unsigned long long)(typeof(x))-MAX_ERRNO))

    which ends up making all 16-bit or wider types work correctly with
    the most plausible interpretation of what IS_ERR_VALUE() was supposed
    to return according to its users, but also causes a compile-time
    warning for any users that do not pass an 'unsigned long' argument.

    I suggested this approach earlier this year, but back then we ended
    up deciding to just fix the users that are obviously broken. After
    the initial warning that caused me to get involved in the discussion
    (fs/gfs2/dir.c) showed up again in the mainline kernel, Linus
    asked me to send the whole thing again.

    [ Updated the 9p parts as per Al Viro - Linus ]

    Signed-off-by: Arnd Bergmann
    Cc: Andrzej Hajda
    Cc: Andrew Morton
    Link: https://lkml.org/lkml/2016/1/7/363
    Link: https://lkml.org/lkml/2016/5/27/486
    Acked-by: Srinivas Kandagatla # For nvmem part
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

26 May, 2016

1 commit

  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes introduces an atomic API to the PWM subsystem.
    This is influenced by the DRM atomic API that was introduced a while
    back, though it is obviously a lot simpler. The fundamental idea
    remains the same, though: drivers provide a single callback to
    implement the atomic configuration of a PWM channel.

    As a side-effect the PWM subsystem gains the ability for initial state
    retrieval, so that the logical state mirrors that of the hardware.
    Many use-cases don't care about this, but for others it is essential.

    These new features require changes in all users, which these patches
    take care of. The core is transitioned to use the atomic callback if
    available and provides a fallback mechanism for other drivers.

    Changes to transition users and drivers to the atomic API are
    postponed to v4.8"

    * tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (30 commits)
    pwm: Add information about polarity, duty cycle and period to debugfs
    pwm: Switch to the atomic API
    pwm: Update documentation
    pwm: Add core infrastructure to allow atomic updates
    pwm: Add hardware readout infrastructure
    pwm: Move the enabled/disabled info into pwm_state
    pwm: Introduce the pwm_state concept
    pwm: Keep PWM state in sync with hardware state
    ARM: Explicitly apply PWM config extracted from pwm_args
    drm: i915: Explicitly apply PWM config extracted from pwm_args
    input: misc: pwm-beeper: Explicitly apply PWM config extracted from pwm_args
    input: misc: max8997: Explicitly apply PWM config extracted from pwm_args
    backlight: lm3630a: explicitly apply PWM config extracted from pwm_args
    backlight: lp855x: Explicitly apply PWM config extracted from pwm_args
    backlight: lp8788: Explicitly apply PWM config extracted from pwm_args
    backlight: pwm_bl: Use pwm_get_args() where appropriate
    fbdev: ssd1307fb: Use pwm_get_args() where appropriate
    regulator: pwm: Use pwm_get_args() where appropriate
    leds: pwm: Use pwm_get_args() where appropriate
    input: misc: max77693: Use pwm_get_args() where appropriate
    ...

    Linus Torvalds
     

24 May, 2016

1 commit

  • Pull drm updates from Dave Airlie:
    "Here's the main drm pull request for 4.7, it's been a busy one, and
    I've been a bit more distracted in real life this merge window. Lots
    more ARM drivers, not sure if it'll ever end. I think I've at least
    one more coming the next merge window.

    But changes are all over the place, support for AMD Polaris GPUs is in
    here, some missing GM108 support for nouveau (found in some Lenovos),
    a bunch of MST and skylake fixes.

    I've also noticed a few fixes from Arnd in my inbox, that I'll try and
    get in asap, but I didn't think they should hold this up.

    New drivers:
    - Hisilicon kirin display driver
    - Mediatek MT8173 display driver
    - ARC PGU - bitstreamer on Synopsys ARC SDP boards
    - Allwinner A13 initial RGB output driver
    - Analogix driver for DisplayPort IP found in exynos and rockchip

    DRM Core:
    - UAPI headers fixes and C++ safety
    - DRM connector reference counting
    - DisplayID mode parsing for Dell 5K monitors
    - Removal of struct_mutex from drivers
    - Connector registration cleanups
    - MST robustness fixes
    - MAINTAINERS updates
    - Lockless GEM object freeing
    - Generic fbdev deferred IO support

    panel:
    - Support for a bunch of new panels

    i915:
    - VBT refactoring
    - PLL computation cleanups
    - DSI support for BXT
    - Color manager support
    - More atomic patches
    - GEM improvements
    - GuC fw loading fixes
    - DP detection fixes
    - SKL GPU hang fixes
    - Lots of BXT fixes

    radeon/amdgpu:
    - Initial Polaris support
    - GPUVM/Scheduler/Clock/Power improvements
    - ASYNC pageflip support
    - New mesa feature support

    nouveau:
    - GM108 support
    - Power sensor support improvements
    - GR init + ucode fixes.
    - Use GPU provided topology information

    vmwgfx:
    - Add host messaging support

    gma500:
    - Some cleanups and fixes

    atmel:
    - Bridge support
    - Async atomic commit support

    fsl-dcu:
    - Timing controller for LCD support
    - Pixel clock polarity support

    rcar-du:
    - Misc fixes

    exynos:
    - Pipeline clock support
    - Exynoss4533 SoC support
    - HW trigger mode support
    - export HDMI_PHY clock
    - DECON5433 fixes
    - Use generic prime functions
    - use DMA mapping APIs

    rockchip:
    - Lots of little fixes

    vc4:
    - Render node support
    - Gamma ramp support
    - DPI output support

    msm:
    - Mostly cleanups and fixes
    - Conversion to generic struct fence

    etnaviv:
    - Fix for prime buffer handling
    - Allow hangcheck to be coalesced with other wakeups

    tegra:
    - Gamme table size fix"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1050 commits)
    drm/edid: add displayid detailed 1 timings to the modelist. (v1.1)
    drm/edid: move displayid validation to it's own function.
    drm/displayid: Iterate over all DisplayID blocks
    drm/edid: move displayid tiled block parsing into separate function.
    drm: Nuke ->vblank_disable_allowed
    drm/vmwgfx: Report vmwgfx version to vmware.log
    drm/vmwgfx: Add VMWare host messaging capability
    drm/vmwgfx: Kill some lockdep warnings
    drm/nouveau/gr/gf100-: fix race condition in fecs/gpccs ucode
    drm/nouveau/core: recognise GM108 chipsets
    drm/nouveau/gr/gm107-: fix touching non-existent ppcs in attrib cb setup
    drm/nouveau/gr/gk104-: share implementation of ppc exception init
    drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx
    drm/nouveau/bios/pll: check BIT table version before trying to parse it
    drm/nouveau/bios/pll: prevent oops when limits table can't be parsed
    drm/nouveau/volt/gk104: round up in gk104_volt_set
    drm/nouveau/fb/gm200: setup mmu debug buffer registers at init()
    drm/nouveau/fb/gk20a,gm20b: setup mmu debug buffer registers at init()
    drm/nouveau/fb/gf100-: allocate mmu debug buffers
    drm/nouveau/fb: allow chipset-specific actions for oneinit()
    ...

    Linus Torvalds
     

21 May, 2016

1 commit

  • Pull clk updates from Stephen Boyd:
    "It's the usual big pile of driver updates and additions, but we do
    have a couple core changes in here as well.

    Core:

    - CLK_IS_CRITICAL support has been added. This should allow drivers
    to properly express that a certain clk should stay on even if their
    prepare/enable count drops to 0 (and in turn the parents of these
    clks should stay enabled).

    - A clk registration API has been added, clk_hw_register(), and an OF
    clk provider API has been added, of_clk_add_hw_provider(). These
    APIs have been put in place to further split clk providers from clk
    consumers, with the goal being to have clk providers never deal
    with struct clk pointers at all. Conversion of provider drivers is
    on going. clkdev has also gained support for registering clk_hw
    pointers directly so we can convert drivers that don't use
    devicetree.

    New Drivers:

    - Marvell ap806 and cp110 system controllers (with clks inside!)
    - Hisilicon Hi3519 clock and reset controller
    - Axis ARTPEC-6 clock controllers
    - Oxford Semiconductor OXNAS clock controllers
    - AXS10X I2S PLL
    - Rockchip RK3399 clock and reset controller

    Updates:

    - MMC2 and UART2 clks on Samsung Exynos 3250, ACLK on Samsung Exynos
    542x SoCs, and some more clk ID exporting for bus frequency scaling
    - Proper BCM2835 PCM clk support and various other clks
    - i.MX clk updates for i.MX6SX, i.MX7, and VF610
    - Renesas updates for R-Car H3
    - Tegra210 got updates for DisplayPort and HDMI 2.0
    - Rockchip driver refactorings and fixes due to adding RK3399 support"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (139 commits)
    clk: fix critical clock locking
    clk: qcom: mmcc-8996: Remove clocks that should be controlled by RPM
    clk: ingenic: Allow divider value to be divided
    clk: sunxi: Add display and TCON0 clocks driver
    clk: rockchip: drop old_rate calculation on pll rate changes
    clk: rockchip: simplify GRF handling in pll clocks
    clk: rockchip: lookup General Register Files in rockchip_clk_init
    clk: rockchip: fix the rk3399 sdmmc sample / drv name
    clk: mvebu: new driver for Armada CP110 system controller
    dt-bindings: arm: add DT binding for Marvell CP110 system controller
    clk: mvebu: new driver for Armada AP806 system controller
    clk: hisilicon: add CRG driver for hi3519 soc
    clk: hisilicon: export some hisilicon APIs to modules
    reset: hisilicon: add reset controller driver for hisilicon SOCs
    clk: bcm/kona: Do not use sizeof on pointer type
    clk: qcom: msm8916: Fix crypto clock flags
    clk: nxp: lpc18xx: Initialize clk_init_data::flags to 0
    clk/axs10x: Add I2S PLL clock driver
    clk: imx7d: fix ahb clock mux 1
    clk: fix comment of devm_clk_hw_register()
    ...

    Linus Torvalds
     

20 May, 2016

2 commits

  • The critical clock handling in __clk_core_init isn't taking the enable lock
    before calling clk_core_enable, which in turns triggers the warning in the
    lockdep_assert_held call in that function when lockep is enabled.

    Add the calls to clk_enable_lock/unlock to make sure it doesn't happen.

    Fixes: 32b9b1096186 ("clk: Allow clocks to be marked as CRITICAL")
    Signed-off-by: Maxime Ripard
    Reviewed-by: Heiko Stuebner
    Tested-by: Heiko Stuebner
    Signed-off-by: Stephen Boyd

    Maxime Ripard
     
  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for 4.7. Here's the summary of
    the changes:

    - ATH79: Support for DTB passuing using the UHI boot protocol
    - ATH79: Remove support for builtin DTB.
    - ATH79: Add zboot debug serial support.
    - ATH79: Add initial support for Dragino MS14 (Dragine 2), Onion Omega
    and DPT-Module.
    - ATH79: Update devicetree clock support for AR9132 and AR9331.
    - ATH79: Cleanup the DT code.
    - ATH79: Support newer SOCs in ath79_ddr_ctrl_init.
    - ATH79: Fix regression in PCI window initialization.
    - BCM47xx: Move SPROM driver to drivers/firmware/
    - BCM63xx: Enable partition parser in defconfig.
    - BMIPS: BMIPS5000 has I cache filing from D cache
    - BMIPS: BMIPS: Add cpu-feature-overrides.h
    - BMIPS: Add Whirlwind support
    - BMIPS: Adjust mips-hpt-frequency for BCM7435
    - BMIPS: Remove maxcpus from BCM97435SVMB DTS
    - BMIPS: Add missing 7038 L1 register cells to BCM7435
    - BMIPS: Various tweaks to initialization code.
    - BMIPS: Enable partition parser in defconfig.
    - BMIPS: Cache tweaks.
    - BMIPS: Add UART, I2C and SATA devices to DT.
    - BMIPS: Add BCM6358 and BCM63268support
    - BMIPS: Add device tree example for BCM6358.
    - BMIPS: Improve Improve BCM6328 and BCM6368 device trees
    - Lantiq: Add support for device tree file from boot loader
    - Lantiq: Allow build with no built-in DT.
    - Loongson 3: Reserve 32MB for RS780E integrated GPU.
    - Loongson 3: Fix build error after ld-version.sh modification
    - Loongson 3: Move chipset ACPI code from drivers to arch.
    - Loongson 3: Speedup irq processing.
    - Loongson 3: Add basic Loongson 3A support.
    - Loongson 3: Set cache flush handlers to nop.
    - Loongson 3: Invalidate special TLBs when needed.
    - Loongson 3: Fast TLB refill handler.
    - MT7620: Fallback strategy for invalid syscfg0.
    - Netlogic: Fix CP0_EBASE redefinition warnings
    - Octeon: Initialization fixes
    - Octeon: Add DTS files for the D-Link DSR-1000N and EdgeRouter Lite
    - Octeon: Enable add Octeon-drivers in cavium_octeon_defconfig
    - Octeon: Correctly handle endian-swapped initramfs images.
    - Octeon: Support CN73xx, CN75xx and CN78xx.
    - Octeon: Remove dead code from cvmx-sysinfo.
    - Octeon: Extend number of supported CPUs past 32.
    - Octeon: Remove some code limiting NR_IRQS to 255.
    - Octeon: Simplify octeon_irq_ciu_gpio_set_type.
    - Octeon: Mark some functions __init in smp.c
    - Octeon: Octeon: Add Octeon III CN7xxx interface detection
    - PIC32: Add serial driver and bindings for it.
    - PIC32: Add PIC32 deadman timer driver and bindings.
    - PIC32: Add PIC32 clock timer driver and bindings.
    - Pistachio: Determine SoC revision during boot
    - Sibyte: Fix Kconfig dependencies of SIBYTE_BUS_WATCHER.
    - Sibyte: Strip redundant comments from bcm1480_regs.h.
    - Panic immediately if panic_on_oops is set.
    - module: fix incorrect IS_ERR_VALUE macro usage.
    - module: Make consistent use of pr_*
    - Remove no longer needed work_on_cpu() call.
    - Remove CONFIG_IPV6_PRIVACY from defconfigs.
    - Fix registers of non-crashing CPUs in dumps.
    - Handle MIPSisms in new vmcore_elf32_check_arch.
    - Select CONFIG_HANDLE_DOMAIN_IRQ and make it work.
    - Allow RIXI to be used on non-R2 or R6 cores.
    - Reserve nosave data for hibernation
    - Fix siginfo.h to use strict POSIX types.
    - Don't unwind user mode with EVA.
    - Fix watchpoint restoration
    - Ptrace watchpoints for R6.
    - Sync icache when it fills from dcache
    - I6400 I-cache fills from dcache.
    - Various MSA fixes.
    - Cleanup MIPS_CPU_* definitions.
    - Signal: Move generic copy_siginfo to signal.h
    - Signal: Fix uapi include in exported asm/siginfo.h
    - Timer fixes for sake of KVM.
    - XPA TLB refill fixes.
    - Treat perf counter feature
    - Update John Crispin's email address
    - Add PIC32 watchdog and bindings.
    - Handle R10000 LL/SC bug in set_pte()
    - cpufreq: Various fixes for Longson1.
    - R6: Fix R2 emulation.
    - mathemu: Cosmetic fix to ADDIUPC emulation, plenty of other small fixes
    - ELF: ABI and FP fixes.
    - Allow for relocatable kernel and use that to support KASLR.
    - Fix CPC_BASE_ADDR mask
    - Plenty fo smp-cps, CM, R6 and M6250 fixes.
    - Make reset_control_ops const.
    - Fix kernel command line handling of leading whitespace.
    - Cleanups to cache handling.
    - Add brcm, bcm6345-l1-intc device tree bindings.
    - Use generic clkdev.h header
    - Remove CLK_IS_ROOT usage.
    - Misc small cleanups.
    - CM: Fix compilation error when !MIPS_CM
    - oprofile: Fix a preemption issue
    - Detect DSP ASE v3 support:1"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (275 commits)
    MIPS: pic32mzda: fix getting timer clock rate.
    MIPS: ath79: fix regression in PCI window initialization
    MIPS: ath79: make ath79_ddr_ctrl_init() compatible for newer SoCs
    MIPS: Fix VZ probe gas errors with binutils of MSA context in non-MSA kernels
    MIPS: cevt-r4k: Dynamically calculate min_delta_ns
    MIPS: malta-time: Take seconds into account
    MIPS: malta-time: Start GIC count before syncing to RTC
    MIPS: Force CPUs to lose FP context during mode switches
    ...

    Linus Torvalds
     

19 May, 2016

2 commits

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "Driver updates for ARM SoCs, these contain various things that touch
    the drivers/ directory but got merged through arm-soc for practical
    reasons.

    For the most part, this is now related to power management
    controllers, which have not yet been abstracted into a separate
    subsystem, and typically require some code in drivers/soc or arch/arm
    to control the power domains.

    Another large chunk here is a rework of the NVIDIA Tegra USB3.0
    support, which was surprisingly tricky and took a long time to get
    done.

    Finally, reset controller handling as always gets merged through here
    as well"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (97 commits)
    arm-ccn: Enable building as module
    soc/tegra: pmc: Add generic PM domain support
    usb: xhci: tegra: Add Tegra210 support
    usb: xhci: Add NVIDIA Tegra XUSB controller driver
    dt-bindings: usb: xhci-tegra: Add Tegra210 XUSB controller support
    dt-bindings: usb: Add NVIDIA Tegra XUSB controller binding
    PCI: tegra: Support per-lane PHYs
    dt-bindings: pci: tegra: Update for per-lane PHYs
    phy: tegra: Add Tegra210 support
    phy: Add Tegra XUSB pad controller support
    dt-bindings: phy: tegra-xusb-padctl: Add Tegra210 support
    dt-bindings: phy: Add NVIDIA Tegra XUSB pad controller binding
    phy: core: Allow children node to be overridden
    clk: tegra: Add interface to enable hardware control of SATA/XUSB PLLs
    drivers: firmware: psci: make two helper functions inline
    soc: renesas: rcar-sysc: Add support for R-Car H3 power areas
    soc: renesas: rcar-sysc: Add support for R-Car E2 power areas
    soc: renesas: rcar-sysc: Add support for R-Car M2-N power areas
    soc: renesas: rcar-sysc: Add support for R-Car M2-W power areas
    soc: renesas: rcar-sysc: Add support for R-Car H2 power areas
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Arnd Bergmann:
    "These are all the updates to device tree files for 32-bit platforms,
    which as usual makes up the bulk of the ARM SoC changes: 462 non-merge
    changesets, 450 files changed, 23340 insertions, 5216 deletions.

    The three platforms that are added with the "soc" branch are here as
    well, and we add some related machine files:

    - For Aspeed AST2400/AST2500, we get the evaluation platform and the
    Tyan Palmetto POWER8 mainboard that uses the AST2400 BMC
    - For Oxnas 810SE, the Western Digital "My Book World Edition" is
    added as the only platform at the moment.
    - For ARM MPS2, the AN385 (Cortex-M3) and AN399 (Cortex-M7) are
    supported

    On the ARM Realview development platform, we now support all machines
    with device tree, previously only the board files were supported,
    which in turn will likely be removed soon.

    Qualcomm IPQ4019 is the second generation ARM based "Internet
    Processor", following the IPQ806x that is used in many high-end WiFi
    routers. This one integrates two ath10k wifi radios that were
    previously on separate chips.

    Other boards that got added for existing chips are:

    Ti OMAP family:
    - Amazon Kindle Fire, first generation, tablet and ebook reader
    - OnRISC Baltos iR 2110 and 3220 embedded industrial PCs
    - TI AM5728 IDK, TI AM3359 ICE-V2, and TI DRA722 Rev C EVM
    development systems

    Samsung EXYNOS platform:
    - Samsung ARTIK5 evaluation board, see

    https://www.artik.io/modules/overview/artik-5/

    NXP i.MX platforms:
    - Ka-Ro electronics TX6S-8034, TX6S-8035, TX6U-8033, TX6U-81xx,
    TX6Q-1036, TX6Q-1110/-1130, TXUL-0010 and TXUL-0011 industrial
    SoM modules
    - Embest MarS Board i.MX6Dual DIY platform
    - Boundary Devices i.MX6 Quad Plus Nitrogen6_MAX and SoloX
    Nitrogen6sx embedded boards
    - Technexion Pico i.MX6UL compute module
    - ZII VF610 Development Board

    Marvell embedded (mvebu, orion, kirkwood) platforms:
    - Linksys Viper (E4200v2 / EA4500) WiFi router
    - Buffalo Kurobox Pro NAS

    Qualcomm Snapdragon:
    - Arrow DragonBoard 600c (96boards) with APQ8064 Snapdragon 600

    Rockchips platform:
    - mqmaker MiQi single-board computer

    Altera SoCFPGA:
    - samtec VIN|ING 1000 vehicle communication interface

    Allwinner Sunxi platforms:
    - Dserve DSRV9703C tablet
    - Difrnce DIT4350 tablet
    - Colorfly E708 Q1 tablet
    - Polaroid MID2809PXE04 tablet
    - Olimex A20 OLinuXino LIME2 single board computer
    - Xunlong Orange Pi 2, Orange Pi One, and Orange Pi PC single board
    computers

    Across many platforms, bug fixes went in to address warnings that dtc
    now emits with 'make dtbs W=1'. Further changes for device enablement
    went into Ti OMAP, bcm283x (Raspberry Pi), bcm47xx (wifi router), Ti
    Davinci, Samsung EXYNOS, Marvell mvebu/kirkwood/orion, NXP i.MX/Vybrid
    NXP LPC18xx, NXP LPC32xx, Renesas shmobile/r-mobile/r-car, Rockchips
    rk3xxx, ST Ux500, ST STi, Atmel AT91/SAMA5, Altera SoCFPGA, Allwinner
    Sunxi, Sigma Designs Tango, NVIDIA Tegra, Socionext Uniphier and ARM
    Versatile Express"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (458 commits)
    ARM: dts: tango4: Import watchdog node
    ARM: dts: tango4: Update cpus node for cpufreq
    ARM: dts: tango4: Update DT to match clk driver
    ARM: dts: tango4: Initial thermal support
    arm/dst: Add Aspeed ast2500 device tree
    arm/dts: Add Aspeed ast2400 device tree
    ARM: sun7i: dt: Add pll3 and pll7 clocks
    ARM: dts: sunxi: Add a olinuxino-lime2-emmc
    ARM: dts: at91: sama5d4: add trng node
    ARM: dts: at91: sama5d3: add trng node
    ARM: dts: at91: sama5d2: add trng node
    ARM: dts: at91: at91sam9g45 family: reduce the trng register map size
    ARM: sun4i: dt: Add pll3 and pll7 clocks
    ARM: sun5i: chip: Enable the TV Encoder
    ARM: sun5i: r8: Add display blocks to the DTSI
    ARM: sun5i: a13: Add display and TCON clocks
    ARM: dts: ux500: configure the accelerometers open drain
    ARM: mx5: dts: Enable USB OTG on M53EVK
    ARM: dts: imx6ul-14x14-evk: Add audio support
    ARM: dts: imx6qdl: Remove unneeded unit-addresses
    ...

    Linus Torvalds
     

18 May, 2016

1 commit

  • Pull trivial tree updates from Jiri Kosina.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
    gitignore: fix wording
    mfd: ab8500-debugfs: fix "between" in printk
    memstick: trivial fix of spelling mistake on management
    cpupowerutils: bench: fix "average"
    treewide: Fix typos in printk
    IB/mlx4: printk fix
    pinctrl: sirf/atlas7: fix printk spelling
    serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
    w1: comment spelling s/minmum/minimum/
    Blackfin: comment spelling s/divsor/divisor/
    metag: Fix misspellings in comments.
    ia64: Fix misspellings in comments.
    hexagon: Fix misspellings in comments.
    tools/perf: Fix misspellings in comments.
    cris: Fix misspellings in comments.
    c6x: Fix misspellings in comments.
    blackfin: Fix misspelling of 'register' in comment.
    avr32: Fix misspelling of 'definitions' in comment.
    treewide: Fix typos in printk
    Doc: treewide : Fix typos in DocBook/filesystem.xml
    ...

    Linus Torvalds
     

17 May, 2016

1 commit

  • The PWM framework has clarified the concept of reference PWM config (the
    platform dependent config retrieved from the DT or the PWM lookup table)
    and real PWM state.

    Use pwm_get_args() when the PWM user wants to retrieve this reference
    config and not the current state.

    This is part of the rework allowing the PWM framework to support
    hardware readout and expose real PWM state even when the PWM has just
    been requested (before the user calls pwm_config/enable/disable()).

    Signed-off-by: Boris Brezillon
    Acked-by: Stephen Boyd
    Signed-off-by: Thierry Reding

    Boris Brezillon
     

13 May, 2016

6 commits

  • This clock driver implements PIC32 specific clock-tree. clock-tree
    entities can only be configured through device-tree file (OF).

    Signed-off-by: Purna Chandra Mandal
    Cc: Michael Turquette
    Cc: Stephen Boyd
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-clk@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/13247/
    Signed-off-by: Ralf Baechle

    Purna Chandra Mandal
     
  • The branch clocks MMSS_MMAGIC_AXI_CLK and MMAGIC_BIMC_AXI_CLK are
    controlled by RPM when the APPs processor enable or disable the
    RPM_MMAXI_CLK.

    During the boot sequence, someone can enable the RPM_MMAXI_CLK, resulting
    in register status bits showing that these clocks are enabled, our
    clock driver may look at the enabled status of these clocks and try to
    disable them since it thinks they are unused.

    Don't make the clock driver touch these clocks.

    Signed-off-by: Archit Taneja
    Signed-off-by: Stephen Boyd

    Archit Taneja
     
  • …/shawnguo/linux into clk-next

    Pull some non-critical i.MX clk fixes from Shawn Guo:

    * Fix the commit 3713e3f5e927 ("clk: imx35: define two clocks for rtc")
    which messed up the clock enumeration when adding new clock.

    * tag 'imx-clk-fixes-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    ARM: dts: imx35: restore existing used clock enumeration
    clk: imx6q: fix typo in CAN clock definition

    Stephen Boyd
     
  • The JZ4780's MSC clock divider registers multiply the clock divider by 2.
    This means that MMC devices run at half their expected speed. Add the
    ability to divide the clock divider in order to solve this.

    Signed-off-by: Harvey Hunt
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: linux-clk@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Stephen Boyd

    Harvey Hunt
     
  • …mmind/linux-rockchip into clk-next

    Pull rockchip clk updates from Heiko Stuebner:

    Another small rk3399 fixup as well as simplifications around
    our handling of the General-Register-Files syscon.

    * tag 'v4.7-rockchip-clk4' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
    clk: rockchip: drop old_rate calculation on pll rate changes
    clk: rockchip: simplify GRF handling in pll clocks
    clk: rockchip: lookup General Register Files in rockchip_clk_init
    clk: rockchip: fix the rk3399 sdmmc sample / drv name

    Stephen Boyd
     
  • The A10 SoCs and its relatives has a special clock controller to drive the
    display engines (both frontend and backend), that have a lot in common with
    the clock to drive the first TCON channel.

    Add a driver to support both.

    Signed-off-by: Maxime Ripard
    Acked-by: Rob Herring
    [sboyd@codeaurora.org: Silence variable sized array warning]
    Signed-off-by: Stephen Boyd

    Maxime Ripard
     

10 May, 2016

1 commit

  • MT8173 DRM support

    - device tree binding documentation for all MT8173 display
    subsystem components
    - basic mediatek-drm driver for MT8173 with two optional,
    currently fixed output paths:
    - DSI encoder support for DSI and (via bridge) eDP panels
    - DPI encoder support for output to HDMI bridge
    - necessary clock tree changes for the DPI->HDMI path
    - export mtk-smi functions used by mediatek-drm

    * tag 'mediatek-drm-2016-05-09' of git://git.pengutronix.de/git/pza/linux:
    clk: mediatek: remove hdmitx_dig_cts from TOP clocks
    clk: mediatek: Add hdmi_ref HDMI PHY PLL reference clock output
    clk: mediatek: make dpi0_sel propagate rate changes
    drm/mediatek: Add DPI sub driver
    drm/mediatek: Add DSI sub driver
    drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.
    dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding
    memory: mtk-smi: export mtk_smi_larb_get/put

    Dave Airlie
     

09 May, 2016

5 commits

  • …egra/linux into next/drivers

    Merge "phy: tegra: Changes for v4.7-rc1" from Thierry Reding:

    This set of patches adds support for the Tegra XUSB pad controller. The
    controller provides a set of pads (lanes) that are used for I/O by other
    IP blocks within Tegra SoCs (PCIe, SATA and XUSB).

    * tag 'tegra-for-4.7-phy' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    phy: tegra: Add Tegra210 support
    phy: Add Tegra XUSB pad controller support
    dt-bindings: phy: tegra-xusb-padctl: Add Tegra210 support
    dt-bindings: phy: Add NVIDIA Tegra XUSB pad controller binding
    phy: core: Allow children node to be overridden
    clk: tegra: Add interface to enable hardware control of SATA/XUSB PLLs

    Arnd Bergmann
     
  • Previously when everything happened in the set_rate callbacks itself we
    needed the old_rate value for the possible rate rollback, so that made
    it easy to also use it in the debug output.

    Now with the param-handling being done in separate functions, reading and
    recalculating the current pll rate only to use it in a debug message that
    won't get displayed in regular cases anyway is quite a waste.

    Therefore drop that value from the debug output. In the worst case that
    previous rate will have been displayed on the rate change before.

    Signed-off-by: Heiko Stuebner

    Heiko Stuebner
     
  • With the previous commit, the clock drivers now know at init time if the
    GRF regmap is available. That means if it isn't available then, it also
    won't become available later and we can therefore switch PLLs, that need
    the GRF for the lock-status, to read-only mode - similar behaviour as the
    aborting of rate changes we did before.

    This saves some conditionals on every rate change and we can also drop
    the rockchip_clk_get_grf function completely.

    Signed-off-by: Heiko Stuebner

    Heiko Stuebner
     
  • In the distant past syscons were initialized pretty late and weren't
    available at the time the clock init ran. As the GRF is mainly needed
    for PLL lock-status checking, we had this lazy init that tried to grab
    the syscon on PLL rate changes and denied these changes if it was not
    available.

    These days syscons are available very early and recent addition to
    rockchip clocks, like the PLL clk_init actually also rely on them
    being available at that time, so there is no need to keep that lazy
    init around, as it will also result in some more simplifications in
    other parts of the clock-code.

    Signed-off-by: Heiko Stuebner

    Heiko Stuebner
     
  • The rk3399 clock table had a simple typo in it, calling the SDMMC sample
    and drive clocks by the wrong name. Fix this minor typo.

    Signed-off-by: Douglas Anderson
    Tested-by: Brian Norris
    Acked-by: Brian Norris
    Signed-off-by: Heiko Stuebner

    Douglas Anderson
     

07 May, 2016

11 commits

  • The Armada CP110 system controller provides, amongst other things, a
    number of clocks for the platform: a small number of core clocks, and
    then a number of gatable clocks, derived from some of the core
    clocks. Those clocks are configured via registers of the CP110 System
    Controller.

    The CP110 is the other core HW block (next to the AP806) used in the
    Marvel Armada 7K and 8K SoCs.

    Signed-off-by: Thomas Petazzoni
    [sboyd@codeaurora.org: Silence some checkpatch noise]
    Signed-off-by: Stephen Boyd

    Thomas Petazzoni
     
  • The Armada AP806 system controller, amongst other things, provides a
    number of clocks for the platform: the CPU cluster clocks, whose
    frequencies are found by reading the Sample At Reset register, one
    fixed clock, and another clock derived from the fixed clock, which is
    the one used by most peripherals in AP806.

    The AP806 is one of the two core HW blocks used in the Marvell 7K/8K
    SoCs.

    Signed-off-by: Thomas Petazzoni
    [sboyd@codeaurora.org: Silence some checkpatch noise]
    Signed-off-by: Stephen Boyd

    Thomas Petazzoni
     
  • * clk-hi3519:
    clk: hisilicon: add CRG driver for hi3519 soc
    clk: hisilicon: export some hisilicon APIs to modules
    reset: hisilicon: add reset controller driver for hisilicon SOCs

    Stephen Boyd
     
  • The CRG(Clock and Reset Generator) block provides clock
    and reset signals for other modules in hi3519 soc.

    Signed-off-by: Jiancheng Xue
    Acked-by: Rob Herring
    Signed-off-by: Stephen Boyd

    Jiancheng Xue
     
  • Change some arguments to constant type.
    Export some hisilicon APIs to modules.

    Signed-off-by: Jiancheng Xue
    Signed-off-by: Stephen Boyd

    Jiancheng Xue
     
  • In most of hisilicon SOCs, reset controller and clock provider are
    combined together as a block named CRG (Clock and Reset Generator).
    This patch mainly implements the reset function.

    Signed-off-by: Jiancheng Xue
    Acked-by: Philipp Zabel
    Signed-off-by: Stephen Boyd

    Jiancheng Xue
     
  • When sizeof is applied to a pointer typed expression, it gives
    the size of the pointer. So, here do not use sizeof on pointer
    type. Also, silent checkpatch.pl by using kmalloc_array over
    kmalloc.

    Note that this has no effect on runtime because 'parent_names'
    is a pointer to a pointer.

    Problem found using Coccinelle.

    Signed-off-by: Vaishali Thakkar
    Signed-off-by: Stephen Boyd

    Vaishali Thakkar
     
  • This patch adds the CLK_SET_RATE_PARENT flag for the crypto core and
    ahb blocks. Without this flag, clk_set_rate can fail for certain
    frequency requests.

    Signed-off-by: Andy Gross
    Fixes: 3966fab8b6ab ("clk: qcom: Add MSM8916 Global Clock Controller support")
    Signed-off-by: Stephen Boyd

    Andy Gross
     
  • …guo/linux into clk-next

    Pull i.MX clk updates from Shawn Guo:

    - Update clk-pllv3 driver to get it return correct frequency for
    Ethernet PLL on i.MX7D.
    - Correct ahb clock mux settings for i.MX7D per latest hardware
    document.

    * tag 'imx-clk-4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    clk: imx7d: fix ahb clock mux 1
    clk: imx: return correct frequency for Ethernet PLL

    Stephen Boyd
     
  • Failure to initialize this flag to 0 by default can result in
    stack junk filling the clk_init_data structure and weird things
    happen. Joachim noticed that the critical clk feature started
    triggering for these clks causing boot failures, when it really
    shouldn't have happened:

    BUG: scheduling while atomic: swapper/0/0x00000002
    CPU: 0 PID: 0 Comm: swapper Not tainted
    4.6.0-rc6-next-20160505-00001-g5c8320450d1c #826
    Hardware name: NXP LPC18xx/43xx (Device Tree)
    [] (unwind_backtrace) from [] (show_stack+0xb/0xc)
    [] (show_stack) from [] (__schedule_bug+0x2d/0x44)
    [] (__schedule_bug) from [] (__schedule+0x3b/0x268)
    [] (__schedule) from [] (schedule+0x57/0x64)
    [] (schedule) from [] (schedule_timeout+0xfb/0x120)
    [] (schedule_timeout) from [] (msleep+0xf/0x12)
    [] (msleep) from [] (clk_creg_32k_prepare+0x1f/0x24)
    [] (clk_creg_32k_prepare) from []
    (clk_core_prepare+0x1d/0x36)
    [] (clk_core_prepare) from [] (clk_register+0x22f/0x318)
    [] (clk_register) from [] (lpc18xx_creg_clk_init+0x55/0x84)
    [] (lpc18xx_creg_clk_init) from [] (of_clk_init+0xc1/0x12c)
    [] (of_clk_init) from [] (time_init+0x15/0x20)
    [] (time_init) from [] (start_kernel+0x169/0x274)
    [] (start_kernel) from [] (0x28008025)
    bad: scheduling from the idle thread!
    CPU: 0 PID: 0 Comm: swapper Tainted: G W
    4.6.0-rc6-next-20160505-00001-g5c8320450d1c #826

    Fix this by initializing the flags member to 0.

    Acked-by: Joachim Eastwood
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • The ARC SDP I2S clock can be programmed using a
    specific PLL.

    This patch has the goal of adding a clock driver
    that programs this PLL.

    At this moment the rate values are hardcoded in
    a table but in the future it would be ideal to
    use a function which determines the PLL values
    given the desired rate.

    Signed-off-by: Jose Abreu
    Acked-by: Rob Herring
    Signed-off-by: Stephen Boyd

    Jose Abreu
     

06 May, 2016

3 commits


03 May, 2016

4 commits

  • The clock parent of the AHB root clock when using mux option 1
    is the SYS PLL 270MHz clock. This is specified in Table 5-11
    Clock Root Table of the i.MX 7Dual Applications Processor
    Reference Manual.

    While it could be a documentation error, the 270MHz parent is
    also mentioned in the boot ROM configuration in Table 6-28: The
    clock is by default at 135MHz due to a POST_PODF value of 1
    (=> divider of 2).

    Signed-off-by: Stefan Agner
    Signed-off-by: Shawn Guo

    Stefan Agner
     
  • Unlike devm_clk_register(), devm_clk_hw_register() returns integer.
    So, the statement "Clocks returned from this function ..." sounds
    odd. Adjust the comment for this new API.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Stephen Boyd

    Masahiro Yamada
     
  • …el/git/geert/renesas-drivers into clk-next

    Pull Renesas clk driver updates from Geert Uytterhoeven:

    - Support for CSI2 and VIN module clocks on R-Car H3,
    - Renesas CPG/MSTP and CPG/MSSR Clock Domain fixes.

    * tag 'clk-renesas-for-v4.7-tag3' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers:
    clk: renesas: cpg-mssr: Use always-on governor for Clock Domain
    clk: renesas: cpg-mssr: Postpone call to pm_genpd_init()
    clk: renesas: mstp: Use always-on governor for Clock Domain
    clk: renesas: mstp: Postpone call to pm_genpd_init()
    clk: renesas: r8a7795: Add VIN clocks
    clk: renesas: r8a7795: Add CSI2 clocks

    Stephen Boyd
     
  • …git/mripard/linux into clk-next

    Pull Allwinner clock driver updates from Maxime Ripard:

    As usual, a bunch of clocks patches for 4.7, mostly fixes and cleanups, and
    display-related clocks.

    * tag 'sunxi-clocks-for-4.7' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
    clk: sunxi: Let divs clocks read the base factor clock name from devicetree
    clk: sunxi: Add TCON channel1 clock
    clk: sunxi: Add PLL3 clock
    dt-bindings: clk: sun5i: add DRAM gates compatible
    clk: sunxi: Use resource_size
    clk: sunxi: Add sun6i/8i display support
    clk: sunxi: mod1 clock should modify it's parent

    Stephen Boyd