linux/arch/arm/mach-imx
Shawn Guo 9e1ac462b9 ARM: imx: fix .is_enabled() of shared gate clock
Commit 63288b721a ("ARM: imx: fix shared gate clock") attempted to fix
an issue with particular enable/disable sequence from two shared gate
clocks.  But unfortunately, while it partially fixed the issue, it also
did something wrong in .is_enabled() function hook.  In case of shared
gate, the function shouldn't really query the hardware state via
share_count, because the function is trying to query the enabling state
of the clock in question, not the hardware state which is shared by
multiple clocks.

Fix the issue by returning the enable_count of the clock itself which is
maintained by clock core, in case it's a clock sharing hardware gate
with others.  As the result, the initialization of share_count per
hardware state is not needed now.  So remove it.

Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Fixes: 63288b721a ("ARM: imx: fix shared gate clock")
Cc: <stable@vger.kernel.org>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2014-09-22 21:49:20 -07:00
..
devices ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
3ds_debugboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
3ds_debugboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
anatop.c ARM: imx: use imx_init_revision_from_anatop() on imx6sl 2013-10-21 09:13:13 +08:00
avic.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
board-mx31lilly.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31lite.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31moboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-pcm038.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
clk-busy.c ARM: arm-soc non-critical fixes for 3.10 2013-05-02 08:56:55 -07:00
clk-fixup-div.c ARM: imx: add common clock support for fixup div 2013-08-16 13:11:24 +08:00
clk-fixup-mux.c ARM: imx: initialize clk_init_data.flags for clk-fixup-mux 2013-09-17 10:04:23 +08:00
clk-gate2.c ARM: imx: fix .is_enabled() of shared gate clock 2014-09-22 21:49:20 -07:00
clk-imx1.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx6q.c ARM: imx: correct gpu2d_axi and gpu3d_axi clock setting 2014-08-18 15:05:22 +08:00
clk-imx6sl.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx6sx.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx21.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx25.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx27.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx31.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk-imx35.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk-imx51-imx53.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-pfd.c ARM: imx: add necessary interface for pfd 2013-12-31 09:36:45 +08:00
clk-pllv1.c ARM: imx: pllv1: Fix PLL calculation for i.MX27 2013-12-31 09:36:29 +08:00
clk-pllv2.c ARM: mach-imx: clk-pllv2: Staticize clk_pllv2_ops 2013-04-01 16:17:50 +08:00
clk-pllv3.c ARM: imx: set up pllv3 POWER and BYPASS sequentially 2013-11-11 22:58:45 +08:00
clk-vf610.c ARM: imx: clk-vf610: fix FlexCAN clock gating 2014-07-18 16:11:40 +08:00
clk.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk.h ARM: i.MX21 clk: Clock initialization rework 2014-07-18 16:11:31 +08:00
common.h ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
cpu-imx5.c ARM: imx5: retrieve iim base from device tree 2014-07-18 16:10:07 +08:00
cpu-imx25.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx31.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx35.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu.c ARM: i.MX: allow disabling supervisor protect via DT 2014-07-18 16:11:39 +08:00
cpuidle-imx5.c ARM: imx: cpuidle: use init/exit common routine 2013-04-23 13:45:23 +02:00
cpuidle-imx6q.c ARM: imx: mem bit must be cleared before entering DSM mode 2014-07-18 16:11:30 +08:00
cpuidle-imx6sl.c ARM: imx: add cpuidle support for i.mx6sl 2014-03-05 10:35:01 +08:00
cpuidle.h ARM: imx: add cpuidle support for i.mx6sl 2014-03-05 10:35:01 +08:00
crmregs-imx3.h ARM i.MX3: Make ccm base address a variable 2012-04-25 17:03:45 +02:00
devices-imx1.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx21.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx25.h ARM i.MX: remove PWM platform support 2014-03-05 10:35:09 +08:00
devices-imx27.h ARM : i.MX27 : split code for allocation of ressources of camera and eMMA 2012-11-16 16:21:48 +01:00
devices-imx31.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx35.h ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
ehci-imx25.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx27.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx31.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx35.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci.h ARM: imx5: remove imx51 non-DT support files 2014-07-18 16:10:05 +08:00
epit.c ARM: imx: remove IRQF_DISABLED 2013-10-21 09:11:05 +08:00
eukrea_mbimx27-baseboard.c ARM: cpuimx27 and mbimx27: prepend CONFIG_ to Kconfig macro 2013-04-03 16:50:54 +08:00
eukrea_mbimxsd25-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea_mbimxsd35-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea-baseboards.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
gpc.c ARM: imx: add standby mode support for suspend 2014-07-18 16:11:30 +08:00
hardware.h ARM: imx5: remove mx51.h and mx53.h 2014-07-18 16:10:10 +08:00
headsmp.S ARM: imx6: drop .text.head section annotation from headsmp.S 2014-03-05 10:48:26 +08:00
hotplug.c ARM: imx: do not return from imx_cpu_die() call 2013-10-21 09:37:31 +08:00
iim.h ARM: imx: include iim.h rather than mach/iim.h 2012-10-15 10:03:10 +08:00
imx25-dt.c ARM: i.MX25 clk: Use of_clk_init() for DT case 2014-07-18 16:11:32 +08:00
imx27-dt.c ARM: i.MX27 clk: Use of_clk_init() for DT case 2014-07-18 16:10:12 +08:00
imx31-dt.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
imx35-dt.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
iomux-imx31.c ARM: mach-imx: iomux-imx31: Staticize mxc_pin_alloc_map 2013-04-01 16:17:48 +08:00
iomux-mx1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx2x.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx3.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx21.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx25.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx27.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx35.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v1.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
iomux-v1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v3.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
iomux-v3.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
irq-common.c ARM: imx: irq-common: Include header to avoid sparse warning 2013-06-17 15:45:14 +08:00
irq-common.h ARM: imx: drop support for irq priorisation 2013-12-09 13:18:25 +08:00
Kconfig ARM: imx: remove unnecessary ARCH_HAS_OPP select 2014-08-18 11:38:34 +08:00
mach-apf9328.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-armadillo5x0.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-bug.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-cpuimx27.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-cpuimx35.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-eukrea_cpuimx25.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-imx6q.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-imx6sl.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-imx6sx.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-imx27_visstrim_m10.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-imx50.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-imx51.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-imx53.c ARM: i.MX53: globally disable supervisor protect 2014-07-18 16:11:39 +08:00
mach-kzm_arm11_01.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx1ads.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx21ads.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx25_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx27_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx27ads.c platform: Remove most references to platform_bus device 2014-07-23 19:09:03 -07:00
mach-mx31_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx31ads.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx31lilly.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx31lite.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx31moboard.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mach-mx35_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mxt_td60.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-pca100.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-pcm037_eet.c ARM: imx: include common.h rather than mach/common.h 2012-10-15 10:03:10 +08:00
mach-pcm037.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-pcm038.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-pcm043.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-qong.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-scb9328.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-vf610.c ARM: imx: mark .dt_compat as const 2014-07-18 16:11:33 +08:00
mach-vpr200.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
Makefile ARM: imx6: fix SMP compilation again 2014-08-18 11:38:32 +08:00
mm-imx1.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx3.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-07-03 09:46:29 -07:00
mm-imx21.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx25.c ARM: i.MX: remove sdma script address arrays from platform data 2013-08-26 20:47:16 +05:30
mm-imx27.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mmdc.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mx1.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx2x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx3x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx21.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx25.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx27.h ARM: i.MX27: Typo fix 2013-07-15 08:28:07 +08:00
mx31.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31lilly-db.c ARM: imx: remove IRQF_DISABLED 2013-10-21 09:11:05 +08:00
mx31lite-db.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31moboard-devboard.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx31moboard-marxbot.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx31moboard-smartbot.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx35.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mxc.h ARM: imx: build cpu_is_imx6sl function conditionally 2014-07-18 16:11:36 +08:00
pcm037.h ARM: imx: use machine specific hook for late init 2012-05-08 20:36:16 +08:00
pcm970-baseboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
platsmp.c ARM: clean up cache handling in platform code 2013-12-11 16:24:34 -08:00
pm-imx3.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
pm-imx5.c ARM: imx5: use dynamic mapping for Cortex and GPC block 2014-07-18 16:10:09 +08:00
pm-imx6.c ARM: imx: add standby mode support for suspend 2014-07-18 16:11:30 +08:00
pm-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
src.c ARM: imx: remove imx_src_prepare_restart() call 2013-11-11 22:58:43 +08:00
ssi-fiq-ksym.c ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
ssi-fiq.S ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
suspend-imx6.S ARM: imx: fix TLB missing of IOMUXC base address during suspend 2014-08-18 11:38:33 +08:00
system.c ARM: i.MX system: Add a reset fallback if base address of watchdog is not set 2014-07-18 16:10:13 +08:00
time.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
tzic.c ARM: imx5: tzic_init_irq() can directly be .init_irq hook 2014-07-18 16:10:06 +08:00
ulpi.h ARM: imx: Remove mxc specific ulpi access ops 2013-06-17 15:45:16 +08:00