1. 20 Jun, 2015 2 commits
    • Thomas Abraham's avatar
      clk: samsung: add infrastructure to register cpu clocks · ddeac8d9
      Thomas Abraham authored
      The CPU clock provider supplies the clock to the CPU clock domain. The
      composition and organization of the CPU clock provider could vary among
      Exynos SoCs. A CPU clock provider can be composed of clock mux, dividers
      and gates. This patch defines a new clock type for CPU clock provider and
      adds infrastructure to register the CPU clock providers for Samsung
      platforms.
      
      Changes by Bartlomiej:
      - fixed issue with setting lower dividers before the parent clock speed
        was lowered (the issue resulted in lockup on Exynos4210 SoC based
        Origen board when "ondemand" cpufreq governor was stress tested)
      - fixed missing spin_unlock on error in exynos_cpuclk_post_rate_change()
        problem by moving cfg_data search outside of the spin locked area
      - removed leftover kfree() in exynos_register_cpu_clock() that could
        result in dereferencing the NULL pointer on error
      - moved spin_lock earlier in exynos_cpuclk_pre_rate_change() to cover
        reading of E4210_SRC_CPU and E4210_DIV_CPU1 registers
      - added missing "last chance" checks to wait_until_divider_stable() and
        wait_until_mux_stable() (needed in case that IRQ handling took long
        time to proceed and resulted in function printing incorrect error
        message about timeout)
      - moved E4210_CPU_DIV[0,1]() macros just before their only users,
        this resulted in moving them from patch #2 to patch #3/6 ("clk:
        samsung: exynos4: add cpu clock configuration data and instantiate
        cpu clock")
      - removed E5250_CPU_DIV[0,1](), E5420_EGL_DIV0() and E5420_KFC_DIV()
        macros for now
      - added my Copyrights to drivers/clk/samsung/clk-cpu.c
      
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
      Signed-off-by: default avatarThomas Abraham <thomas.ab@samsung.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarMichael Turquette <mturquette@baylibre.com>
      ddeac8d9
    • Bartlomiej Zolnierkiewicz's avatar
      clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock support · d8d91987
      Bartlomiej Zolnierkiewicz authored
      This flag is needed to fix the issue with wrong dividers being setup
      by Common Clock Framework when using the new Exynos cpu clock support.
      
      The issue happens because clk_core_set_rate_nolock()  calls
      clk_calc_new_rates(clk, rate) before both pre/post clock notifiers have
      a chance to run.  In case of Exynos cpu clock support pre/post clock
      notifiers are registered for mout_apll clock which is a parent of armclk
      cpu clock and dividers are modified in both pre and post clock notifier.
      This results in wrong dividers values being later programmed by
      clk_change_rate(top).  To workaround the problem CLK_RECALC_NEW_RATES
      flag is added and it is set for mout_apll clock later so the correct
      divider values are re-calculated after both pre and post clock notifiers
      had run.
      
      For example when using "performance" governor on Exynos4210 Origen board
      the cpufreq-dt driver requests to change the frequency from 1000MHz to
      1200MHz and after the change state of the relevant clocks is following:
      
      Without use of CLK_GET_RATE_NOCACHE flag:
      
       fout_apll rate: 1200000000
               fout_apll_div_2 rate: 600000000
                       mout_clkout_cpu rate: 600000000
                               div_clkout_cpu rate: 600000000
                                       clkout_cpu rate: 600000000
               mout_apll rate: 1200000000
                       armclk rate: 1200000000
                       mout_hpm rate: 1200000000
                               div_copy rate: 300000000
                                       div_hpm rate: 300000000
                       mout_core rate: 1200000000
                               div_core rate: 1200000000
                                       div_core2 rate: 1200000000
                                               arm_clk_div_2 rate: 600000000
                                               div_corem0 rate: 300000000
                                               div_corem1 rate: 150000000
                                               div_periph rate: 300000000
                               div_atb rate: 300000000
                                       div_pclk_dbg rate: 150000000
                       sclk_apll rate: 1200000000
                               sclk_apll_div_2 rate: 600000000
      
      With use of CLK_GET_RATE_NOCACHE flag:
      
       fout_apll rate: 1200000000
               fout_apll_div_2 rate: 600000000
                       mout_clkout_cpu rate: 600000000
                               div_clkout_cpu rate: 600000000
                                       clkout_cpu rate: 600000000
               mout_apll rate: 1200000000
                       armclk rate: 1200000000
                       mout_hpm rate: 1200000000
                               div_copy rate: 200000000
                                       div_hpm rate: 200000000
                       mout_core rate: 1200000000
                               div_core rate: 1200000000
                                       div_core2 rate: 1200000000
                                               arm_clk_div_2 rate: 600000000
                                               div_corem0 rate: 300000000
                                               div_corem1 rate: 150000000
                                               div_periph rate: 300000000
                               div_atb rate: 240000000
                                       div_pclk_dbg rate: 120000000
                       sclk_apll rate: 150000000
                               sclk_apll_div_2 rate: 75000000
      
      Without this change cpufreq-dt driver showed ~10 mA larger energy
      consumption when compared to cpufreq-exynos one when "performance"
      cpufreq governor was used on Exynos4210 SoC based Origen board.
      
      This issue was probably meant to be workarounded by use of
      CLK_GET_RATE_NOCACHE and CLK_DIVIDER_READ_ONLY clock flags in
      the original Exynos cpu clock patchset (in "[PATCH v12 6/6] clk:
      samsung: remove unused clock aliases and update clock flags" patch)
      but usage of these flags is not sufficient to fix the issue observed.
      
      Cc: Thomas Abraham <thomas.ab@samsung.com>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarMichael Turquette <mturquette@baylibre.com>
      d8d91987
  2. 08 Jun, 2015 1 commit
  3. 07 Jun, 2015 6 commits
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 866e6441
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "Eight fixes across arch/mips.  Nothing stands particuarly out nor is
        complicated but fixes keep coming in at a higher than comfortable
        rate"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: KVM: Do not sign extend on unsigned MMIO load
        MIPS: BPF: Fix stack pointer allocation
        MIPS: Loongson-3: Fix a cpu-hotplug issue in loongson3_ipi_interrupt()
        MIPS: Fix enabling of DEBUG_STACKOVERFLOW
        MIPS: c-r4k: Fix typo in probe_scache()
        MIPS: Avoid an FPE exception in FCSR mask probing
        MIPS: ath79: Add a missing new line in log message
        MIPS: ralink: Fix clearing the illegal access interrupt
      866e6441
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 37ef1647
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are two fixes for the driver core that resolve some reported
        issues.
      
        One is a regression from 4.0, the other a fixes a reported oops that
        has been there since 3.19.
      
        Both have been in linux-next for a while with no problems"
      
      * tag 'driver-core-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        drivers/base: cacheinfo: handle absence of caches
        drivers: of/base: move of_init to driver_init
      37ef1647
    • Linus Torvalds's avatar
      Merge tag 'staging-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · eadc21f5
      Linus Torvalds authored
      Pull staging / IIO fixes from Greg KH:
       "Here are some IIO driver fixes to resolve reported issues, some ozwpan
        fixes for some reported CVE problems, and a rtl8712 driver fix for a
        reported regression.
      
        All have been in linux-next successfully"
      
      * tag 'staging-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: rtl8712: fix stack dump
        ozwpan: unchecked signed subtraction leads to DoS
        ozwpan: divide-by-zero leading to panic
        ozwpan: Use unsigned ints to prevent heap overflow
        ozwpan: Use proper check to prevent heap overflow
        iio: adc: twl6030-gpadc: Fix modalias
        iio: adis16400: Fix burst transfer for adis16448
        iio: adis16400: Fix burst mode
        iio: adis16400: Compute the scan mask from channel indices
        iio: adis16400: Use != channel indices for the two voltage channels
        iio: adis16400: Report pressure channel scale
      eadc21f5
    • Linus Torvalds's avatar
      Merge tag 'tty-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · b334b773
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are a few TTY and Serial driver fixes for reported regressions
        and crashes.
      
        All of these have been in linux-next with no reported problems"
      
      * tag 'tty-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        n_tty: Fix auditing support for cannonical mode
        serial: 8250_omap: provide complete custom startup & shutdown callbacks
        n_tty: Fix calculation of size in canon_copy_from_read_buf
        serial: imx: Fix DMA handling for IDLE condition aborts
        serial/amba-pl011: Unconditionally poll for FIFO space before each TX char
      b334b773
    • Linus Torvalds's avatar
      Merge tag 'usb-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e900f2c0
      Linus Torvalds authored
      Pull USB and PHY driver fixes from Greg KH:
       "Here are some USB and PHY driver fixes that resolve some reported
        regressions.  Also in here are some new device ids.
      
        All of the details are in the shortlog and these patches have been in
        linux-next with no problems"
      
      * tag 'usb-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (22 commits)
        USB: cp210x: add ID for HubZ dual ZigBee and Z-Wave dongle
        usb: renesas_usbhs: Don't disable the pipe if Control write status stage
        usb: renesas_usbhs: Fix fifo unclear in usbhsf_prepare_pop
        usb: gadget: f_fs: fix check in read operation
        usb: musb: fix order of conditions for assigning end point operations
        usb: gadget: f_uac1: check return code from config_ep_by_speed
        usb: gadget: ffs: fix: Always call ffs_closed() in ffs_data_clear()
        usb: gadget: g_ffs: Fix counting of missing_functions
        usb: s3c2410_udc: correct reversed pullup logic
        usb: dwc3: gadget: Fix incorrect DEPCMD and DGCMD status macros
        usb: phy: tahvo: Pass the IRQF_ONESHOT flag
        usb: phy: ab8500-usb: Pass the IRQF_ONESHOT flag
        usb: renesas_usbhs: Revise the binding document about the dma-names
        usb: host: xhci: add mutex for non-thread-safe data
        usb: make module xhci_hcd removable
        USB: serial: ftdi_sio: Add support for a Motion Tracker Development Board
        usb: gadget: f_midi: fix segfault when reading empty id
        phy: phy-rcar-gen2: Fix USBHS_UGSTS_LOCK value
        phy: omap-usb2: invoke pm_runtime_disable on error path
        phy: fix Kconfig dependencies
        ...
      e900f2c0
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · be19c4ab
      Linus Torvalds authored
      Pull devicetree fix from Grant Likely:
       "Stupid typo fix for v4.1.  One of the IS_ENABLED() macro calls forgot
        the CONFIG_ prefix.  Only affects a tiny number of platforms, but
        still..."
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of/dynamic: Fix test for PPC_PSERIES
      be19c4ab
  4. 06 Jun, 2015 10 commits
  5. 05 Jun, 2015 14 commits
  6. 04 Jun, 2015 7 commits