]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'clk-for-linus' of git://git.linaro.org/people/mturquette/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Dec 2012 19:25:08 +0000 (11:25 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Dec 2012 19:25:08 +0000 (11:25 -0800)
Pull clock framework changes from Mike Turquette:
 "The common clock framework changes for 3.8 are comprised of lots of
  fixes for existing platforms as well as new ports for some ARM
  platforms.  In addition there are new clk drivers for audio devices
  and MFDs."

Fix up trivial conflict in <linux/clk-provider.h> (removal of 'inline'
clashing with return type fixes)

* tag 'clk-for-linus' of git://git.linaro.org/people/mturquette/linux: (51 commits)
  MAINTAINERS: bad email address for Mike Turquette
  clk: introduce optional disable_unused callback
  clk: ux500: fix bit error
  clk: clock multiplexers may register out of order
  clk: ux500: Initial support for abx500 clock driver
  CLK: SPEAr: Remove unused dummy apb_pclk
  CLK: SPEAr: Correct index scanning done for clock synths
  CLK: SPEAr: Update clock rate table
  CLK: SPEAr: Add missing clocks
  CLK: SPEAr: Set CLK_SET_RATE_PARENT for few clocks
  CLK: SPEAr13xx: fix parent names of multiple clocks
  CLK: SPEAr13xx: Fix mux clock names
  CLK: SPEAr: Fix dev_id & con_id for multiple clocks
  clk: move IM-PD1 clocks to drivers/clk
  clk: make ICST driver handle the VCO registers
  clk: add GPLv2 headers to the Versatile clock files
  clk: mxs: Use a better name for the USB PHY clock
  clk: spear: Add stub functions for spear3[0|1|2]0_clk_init()
  CLK: clk-twl6040: fix return value check in twl6040_clk_probe()
  clk: ux500: Register nomadik keypad clock lookups for u8500
  ...

1  2 
MAINTAINERS
arch/arm/mach-ux500/cpu-db8500.c
include/linux/clk-provider.h

diff --combined MAINTAINERS
index d02cdb596d3576079e28800a246ff38cadd7f5c8,6d7295f490e256213e80b1258aef9294e8210bfd..cf7ff78f019bdb33f6697da88da9af64733d07ef
@@@ -503,7 -503,7 +503,7 @@@ F: include/linux/altera_uart.
  F:    include/linux/altera_jtaguart.h
  
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
 -M:    Andreas Herrmann <andreas.herrmann3@amd.com>
 +M:    Andreas Herrmann <herrmann.der.user@googlemail.com>
  L:    lm-sensors@lm-sensors.org
  S:    Maintained
  F:    Documentation/hwmon/fam15h_power
@@@ -526,17 -526,17 +526,17 @@@ F:      drivers/video/geode
  F:    arch/x86/include/asm/geode.h
  
  AMD IOMMU (AMD-VI)
 -M:    Joerg Roedel <joerg.roedel@amd.com>
 +M:    Joerg Roedel <joro@8bytes.org>
  L:    iommu@lists.linux-foundation.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 -S:    Supported
 +S:    Maintained
  F:    drivers/iommu/amd_iommu*.[ch]
  F:    include/linux/amd-iommu.h
  
  AMD MICROCODE UPDATE SUPPORT
 -M:    Andreas Herrmann <andreas.herrmann3@amd.com>
 +M:    Andreas Herrmann <herrmann.der.user@googlemail.com>
  L:    amd64-microcode@amd64.org
 -S:    Supported
 +S:    Maintained
  F:    arch/x86/kernel/microcode_amd.c
  
  AMS (Apple Motion Sensor) DRIVER
@@@ -841,14 -841,6 +841,14 @@@ T:       git git://git.kernel.org/pub/scm/lin
  F:    arch/arm/mach-sa1100/jornada720.c
  F:    arch/arm/mach-sa1100/include/mach/jornada720.h
  
 +ARM/IGEP MACHINE SUPPORT
 +M:    Enric Balletbo i Serra <eballetbo@gmail.com>
 +M:    Javier Martinez Canillas <javier@dowhile0.org>
 +L:    linux-omap@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    arch/arm/mach-omap2/board-igep0020.c
 +
  ARM/INCOME PXA270 SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1237,7 -1229,6 +1237,7 @@@ F:      drivers/video/wm8505fb
  F:    drivers/video/wmt_ge_rops.*
  F:    drivers/tty/serial/vt8500_serial.c
  F:    drivers/rtc/rtc-vt8500-c
 +F:    drivers/mmc/host/wmt-sdmmc.c
  
  ARM/ZIPIT Z2 SUPPORT
  M:    Marek Vasut <marek.vasut@gmail.com>
@@@ -1369,6 -1360,14 +1369,6 @@@ S:     Maintaine
  F:    drivers/atm/
  F:    include/linux/atm*
  
 -ATMEL AT91 MCI DRIVER
 -M:    Ludovic Desroches <ludovic.desroches@atmel.com>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -W:    http://www.atmel.com/products/AT91/
 -W:    http://www.at91.com/
 -S:    Maintained
 -F:    drivers/mmc/host/at91_mci.c
 -
  ATMEL AT91 / AT32 MCI DRIVER
  M:    Ludovic Desroches <ludovic.desroches@atmel.com>
  S:    Maintained
@@@ -1987,7 -1986,6 +1987,6 @@@ F:      fs/coda
  F:    include/linux/coda*.h
  
  COMMON CLK FRAMEWORK
- M:    Mike Turquette <mturquette@ti.com>
  M:    Mike Turquette <mturquette@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (same as CLK API & CLKDEV)
  T:    git git://git.linaro.org/people/mturquette/linux.git
@@@ -2508,7 -2506,6 +2507,7 @@@ M:      Joonyoung Shim <jy0922.shim@samsung.
  M:    Seung-Woo Kim <sw0312.kim@samsung.com>
  M:    Kyungmin Park <kyungmin.park@samsung.com>
  L:    dri-devel@lists.freedesktop.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
  S:    Supported
  F:    drivers/gpu/drm/exynos
  F:    include/drm/exynos*
@@@ -2709,10 -2706,10 +2708,10 @@@ F:   include/linux/edac.
  
  EDAC-AMD64
  M:    Doug Thompson <dougthompson@xmission.com>
 -M:    Borislav Petkov <borislav.petkov@amd.com>
 +M:    Borislav Petkov <bp@alien8.de>
  L:    linux-edac@vger.kernel.org
  W:    bluesmoke.sourceforge.net
 -S:    Supported
 +S:    Maintained
  F:    drivers/edac/amd64_edac*
  
  EDAC-E752X
@@@ -3599,49 -3596,6 +3598,49 @@@ F:    drivers/hid/hid-hyperv.
  F:    drivers/net/hyperv/
  F:    drivers/staging/hv/
  
 +I2C OVER PARALLEL PORT
 +M:    Jean Delvare <khali@linux-fr.org>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/i2c/busses/i2c-parport
 +F:    Documentation/i2c/busses/i2c-parport-light
 +F:    drivers/i2c/busses/i2c-parport.c
 +F:    drivers/i2c/busses/i2c-parport-light.c
 +
 +I2C/SMBUS CONTROLLER DRIVERS FOR PC
 +M:    Jean Delvare <khali@linux-fr.org>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/i2c/busses/i2c-ali1535
 +F:    Documentation/i2c/busses/i2c-ali1563
 +F:    Documentation/i2c/busses/i2c-ali15x3
 +F:    Documentation/i2c/busses/i2c-amd756
 +F:    Documentation/i2c/busses/i2c-amd8111
 +F:    Documentation/i2c/busses/i2c-i801
 +F:    Documentation/i2c/busses/i2c-nforce2
 +F:    Documentation/i2c/busses/i2c-piix4
 +F:    Documentation/i2c/busses/i2c-sis5595
 +F:    Documentation/i2c/busses/i2c-sis630
 +F:    Documentation/i2c/busses/i2c-sis96x
 +F:    Documentation/i2c/busses/i2c-via
 +F:    Documentation/i2c/busses/i2c-viapro
 +F:    drivers/i2c/busses/i2c-ali1535.c
 +F:    drivers/i2c/busses/i2c-ali1563.c
 +F:    drivers/i2c/busses/i2c-ali15x3.c
 +F:    drivers/i2c/busses/i2c-amd756.c
 +F:    drivers/i2c/busses/i2c-amd756-s4882.c
 +F:    drivers/i2c/busses/i2c-amd8111.c
 +F:    drivers/i2c/busses/i2c-i801.c
 +F:    drivers/i2c/busses/i2c-isch.c
 +F:    drivers/i2c/busses/i2c-nforce2.c
 +F:    drivers/i2c/busses/i2c-nforce2-s4985.c
 +F:    drivers/i2c/busses/i2c-piix4.c
 +F:    drivers/i2c/busses/i2c-sis5595.c
 +F:    drivers/i2c/busses/i2c-sis630.c
 +F:    drivers/i2c/busses/i2c-sis96x.c
 +F:    drivers/i2c/busses/i2c-via.c
 +F:    drivers/i2c/busses/i2c-viapro.c
 +
  I2C/SMBUS STUB DRIVER
  M:    "Mark M. Hoffman" <mhoffman@lightlink.com>
  L:    linux-i2c@vger.kernel.org
@@@ -3649,8 -3603,9 +3648,8 @@@ S:      Maintaine
  F:    drivers/i2c/busses/i2c-stub.c
  
  I2C SUBSYSTEM
 -M:    "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>
 +M:    Wolfram Sang <w.sang@pengutronix.de>
  M:    "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
 -M:    "Wolfram Sang (embedded platforms)" <w.sang@pengutronix.de>
  L:    linux-i2c@vger.kernel.org
  W:    http://i2c.wiki.kernel.org/
  T:    quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
@@@ -3661,13 -3616,6 +3660,13 @@@ F:    drivers/i2c
  F:    include/linux/i2c.h
  F:    include/linux/i2c-*.h
  
 +I2C-TAOS-EVM DRIVER
 +M:    Jean Delvare <khali@linux-fr.org>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/i2c/busses/i2c-taos-evm
 +F:    drivers/i2c/busses/i2c-taos-evm.c
 +
  I2C-TINY-USB DRIVER
  M:    Till Harbaum <till@harbaum.org>
  L:    linux-i2c@vger.kernel.org
@@@ -3754,7 -3702,7 +3753,7 @@@ S:      Maintaine
  F:    drivers/platform/x86/ideapad-laptop.c
  
  IDE/ATAPI DRIVERS
 -M:    Borislav Petkov <petkovbb@gmail.com>
 +M:    Borislav Petkov <bp@alien8.de>
  L:    linux-ide@vger.kernel.org
  S:    Maintained
  F:    Documentation/cdrom/ide-cd
@@@ -4281,8 -4229,8 +4280,8 @@@ F:      include/linux/lockd
  F:    include/linux/sunrpc/
  
  KERNEL VIRTUAL MACHINE (KVM)
 -M:    Avi Kivity <avi@redhat.com>
  M:    Marcelo Tosatti <mtosatti@redhat.com>
 +M:    Gleb Natapov <gleb@redhat.com>
  L:    kvm@vger.kernel.org
  W:    http://kvm.qumranet.com
  S:    Supported
@@@ -5414,7 -5362,7 +5413,7 @@@ S:      Maintaine
  F:    sound/drivers/opl4/
  
  OPROFILE
 -M:    Robert Richter <robert.richter@amd.com>
 +M:    Robert Richter <rric@kernel.org>
  L:    oprofile-list@lists.sf.net
  S:    Maintained
  F:    arch/*/include/asm/oprofile*.h
@@@ -5689,12 -5637,6 +5688,12 @@@ S:    Maintaine
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
 +PIN CONTROLLER - ATMEL AT91
 +M:    Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/pinctrl/pinctrl-at91.c
 +
  PIN CONTROLLER - ST SPEAR
  M:    Viresh Kumar <viresh.linux@gmail.com>
  L:    spear-devel@list.st.com
@@@ -5704,7 -5646,7 +5703,7 @@@ S:      Maintaine
  F:    drivers/pinctrl/spear/
  
  PKTCDVD DRIVER
 -M:    Peter Osterlund <petero2@telia.com>
 +M:    Jiri Kosina <jkosina@suse.cz>
  S:    Maintained
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
@@@ -7266,14 -7208,6 +7265,14 @@@ L:    linux-xtensa@linux-xtensa.or
  S:    Maintained
  F:    arch/xtensa/
  
 +THERMAL
 +M:      Zhang Rui <rui.zhang@intel.com>
 +L:      linux-pm@vger.kernel.org
 +T:      git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
 +S:      Supported
 +F:      drivers/thermal/
 +F:      include/linux/thermal.h
 +
  THINKPAD ACPI EXTRAS DRIVER
  M:    Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
  L:    ibm-acpi-devel@lists.sourceforge.net
@@@ -7951,6 -7885,13 +7950,6 @@@ M:     Roger Luethi <rl@hellgate.ch
  S:    Maintained
  F:    drivers/net/ethernet/via/via-rhine.c
  
 -VIAPRO SMBUS DRIVER
 -M:    Jean Delvare <khali@linux-fr.org>
 -L:    linux-i2c@vger.kernel.org
 -S:    Maintained
 -F:    Documentation/i2c/busses/i2c-viapro
 -F:    drivers/i2c/busses/i2c-viapro.c
 -
  VIA SD/MMC CARD CONTROLLER DRIVER
  M:    Bruce Chang <brucechang@via.com.tw>
  M:    Harald Welte <HaraldWelte@viatech.com>
@@@ -8205,7 -8146,7 +8204,7 @@@ F:      drivers/platform/x8
  
  X86 MCE INFRASTRUCTURE
  M:    Tony Luck <tony.luck@intel.com>
 -M:    Borislav Petkov <bp@amd64.org>
 +M:    Borislav Petkov <bp@alien8.de>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    arch/x86/kernel/cpu/mcheck/*
index 113d9c47a8428ffebf8d40e6e2e762de61f80640,41b27799dbd8a3fabd4837caa0609dc52cd72dea..91f028c1264a856c88c47b5ae024707604729cad
  #include <linux/platform_device.h>
  #include <linux/io.h>
  #include <linux/mfd/abx500/ab8500.h>
 +#include <linux/platform_data/usb-musb-ux500.h>
 +#include <linux/platform_data/pinctrl-nomadik.h>
  
  #include <asm/pmu.h>
  #include <asm/mach/map.h>
 -#include <plat/gpio-nomadik.h>
  #include <mach/hardware.h>
  #include <mach/setup.h>
  #include <mach/devices.h>
 -#include <linux/platform_data/usb-musb-ux500.h>
  #include <mach/db8500-regs.h>
  
  #include "devices-db8500.h"
@@@ -158,7 -158,7 +158,7 @@@ static void __init db8500_add_gpios(str
  
        dbx500_add_gpios(parent, ARRAY_AND_SIZE(db8500_gpio_base),
                         IRQ_DB8500_GPIO0, &pdata);
 -      dbx500_add_pinctrl(parent, "pinctrl-db8500");
 +      dbx500_add_pinctrl(parent, "pinctrl-db8500", U8500_PRCMU_BASE);
  }
  
  static int usb_db8500_rx_dma_cfg[] = {
@@@ -214,9 -214,6 +214,6 @@@ struct device * __init u8500_init_devic
        db8500_add_gpios(parent);
        db8500_add_usb(parent, usb_db8500_rx_dma_cfg, usb_db8500_tx_dma_cfg);
  
-       platform_device_register_data(parent,
-               "cpufreq-u8500", -1, NULL, 0);
        for (i = 0; i < ARRAY_SIZE(platform_devs); i++)
                platform_devs[i]->dev.parent = parent;
  
@@@ -236,9 -233,6 +233,6 @@@ struct device * __init u8500_of_init_de
  
        db8500_add_usb(parent, usb_db8500_rx_dma_cfg, usb_db8500_tx_dma_cfg);
  
-       platform_device_register_data(parent,
-               "cpufreq-u8500", -1, NULL, 0);
        u8500_dma40_device.dev.parent = parent;
  
        /*
index f9f5e9eeb9dd1f37f59cc95cf1da0cdbd91b7001,1c94d18514e2db0f4c0aba29bf5e121e7348cac9..4989b8a7bed1703659c8f9a3fd7d955b5c6f6ffb
@@@ -53,9 -53,18 +53,18 @@@ struct clk_hw
   * @disable:  Disable the clock atomically. Called with enable_lock held.
   *            This function must not sleep.
   *
-  * @recalc_rate       Recalculate the rate of this clock, by quering hardware.  The
+  * @is_enabled:       Queries the hardware to determine if the clock is enabled.
+  *            This function must not sleep. Optional, if this op is not
+  *            set then the enable count will be used.
+  *
+  * @disable_unused: Disable the clock atomically.  Only called from
+  *            clk_disable_unused for gate clocks with special needs.
+  *            Called with enable_lock held.  This function must not
+  *            sleep.
+  *
+  * @recalc_rate       Recalculate the rate of this clock, by querying hardware. The
   *            parent rate is an input parameter.  It is up to the caller to
-  *            insure that the prepare_mutex is held across this call.
+  *            ensure that the prepare_mutex is held across this call.
   *            Returns the calculated rate.  Optional, but recommended - if
   *            this op is not set then clock rate will be initialized to 0.
   *
@@@ -89,7 -98,7 +98,7 @@@
   * implementations to split any work between atomic (enable) and sleepable
   * (prepare) contexts.  If enabling a clock requires code that might sleep,
   * this must be done in clk_prepare.  Clock enable code that will never be
-  * called in a sleepable context may be implement in clk_enable.
+  * called in a sleepable context may be implemented in clk_enable.
   *
   * Typically, drivers will call clk_prepare when a clock may be needed later
   * (eg. when a device is opened), and clk_enable when the clock is actually
@@@ -102,6 -111,7 +111,7 @@@ struct clk_ops 
        int             (*enable)(struct clk_hw *hw);
        void            (*disable)(struct clk_hw *hw);
        int             (*is_enabled)(struct clk_hw *hw);
+       void            (*disable_unused)(struct clk_hw *hw);
        unsigned long   (*recalc_rate)(struct clk_hw *hw,
                                        unsigned long parent_rate);
        long            (*round_rate)(struct clk_hw *hw, unsigned long,
@@@ -327,19 -337,21 +337,21 @@@ struct clk *clk_register_fixed_factor(s
   * error code; drivers must test for an error code after calling clk_register.
   */
  struct clk *clk_register(struct device *dev, struct clk_hw *hw);
+ struct clk *devm_clk_register(struct device *dev, struct clk_hw *hw);
  
  void clk_unregister(struct clk *clk);
+ void devm_clk_unregister(struct device *dev, struct clk *clk);
  
  /* helper functions */
  const char *__clk_get_name(struct clk *clk);
  struct clk_hw *__clk_get_hw(struct clk *clk);
  u8 __clk_get_num_parents(struct clk *clk);
  struct clk *__clk_get_parent(struct clk *clk);
- int __clk_get_enable_count(struct clk *clk);
- int __clk_get_prepare_count(struct clk *clk);
 -inline unsigned int __clk_get_enable_count(struct clk *clk);
 -inline unsigned int __clk_get_prepare_count(struct clk *clk);
++unsigned int __clk_get_enable_count(struct clk *clk);
++unsigned int __clk_get_prepare_count(struct clk *clk);
  unsigned long __clk_get_rate(struct clk *clk);
  unsigned long __clk_get_flags(struct clk *clk);
int __clk_is_enabled(struct clk *clk);
bool __clk_is_enabled(struct clk *clk);
  struct clk *__clk_lookup(const char *name);
  
  /*