]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
8 years agoMerge remote-tracking branch 'hdlcd/for-upstream/hdlcd'
Stephen Rothwell [Wed, 10 Feb 2016 01:26:14 +0000 (12:26 +1100)]
Merge remote-tracking branch 'hdlcd/for-upstream/hdlcd'

8 years agoMerge remote-tracking branch 'drm-tegra/drm/tegra/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 01:12:35 +0000 (12:12 +1100)]
Merge remote-tracking branch 'drm-tegra/drm/tegra/for-next'

8 years agoMerge remote-tracking branch 'drm-intel/for-linux-next'
Stephen Rothwell [Wed, 10 Feb 2016 01:10:13 +0000 (12:10 +1100)]
Merge remote-tracking branch 'drm-intel/for-linux-next'

8 years agoMerge remote-tracking branch 'drm-panel/drm/panel/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 01:10:09 +0000 (12:10 +1100)]
Merge remote-tracking branch 'drm-panel/drm/panel/for-next'

8 years agoMerge remote-tracking branch 'drm/drm-next'
Stephen Rothwell [Wed, 10 Feb 2016 01:07:37 +0000 (12:07 +1100)]
Merge remote-tracking branch 'drm/drm-next'

8 years agoMerge remote-tracking branch 'crypto/master'
Stephen Rothwell [Wed, 10 Feb 2016 01:04:42 +0000 (12:04 +1100)]
Merge remote-tracking branch 'crypto/master'

8 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Wed, 10 Feb 2016 01:02:37 +0000 (12:02 +1100)]
Merge remote-tracking branch 'l2-mtd/master'

8 years agoMerge remote-tracking branch 'mac80211-next/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:59:41 +0000 (11:59 +1100)]
Merge remote-tracking branch 'mac80211-next/master'

8 years agoMerge remote-tracking branch 'bluetooth/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:58:14 +0000 (11:58 +1100)]
Merge remote-tracking branch 'bluetooth/master'

8 years agoMerge remote-tracking branch 'wireless-drivers-next/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:56:38 +0000 (11:56 +1100)]
Merge remote-tracking branch 'wireless-drivers-next/master'

8 years agoMerge remote-tracking branch 'ipvs-next/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:55:14 +0000 (11:55 +1100)]
Merge remote-tracking branch 'ipvs-next/master'

8 years agoMerge remote-tracking branch 'net-next/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:49:11 +0000 (11:49 +1100)]
Merge remote-tracking branch 'net-next/master'

8 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Wed, 10 Feb 2016 00:43:45 +0000 (11:43 +1100)]
Merge remote-tracking branch 'slave-dma/next'

8 years agoMerge remote-tracking branch 'thermal-soc/next'
Stephen Rothwell [Wed, 10 Feb 2016 00:41:37 +0000 (11:41 +1100)]
Merge remote-tracking branch 'thermal-soc/next'

8 years agoMerge remote-tracking branch 'pm/linux-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:31:15 +0000 (11:31 +1100)]
Merge remote-tracking branch 'pm/linux-next'

8 years agoMerge remote-tracking branch 'libata/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:29:42 +0000 (11:29 +1100)]
Merge remote-tracking branch 'libata/for-next'

8 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:27:39 +0000 (11:27 +1100)]
Merge remote-tracking branch 'kbuild/for-next'

8 years agoMerge remote-tracking branch 'v4l-dvb/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:25:01 +0000 (11:25 +1100)]
Merge remote-tracking branch 'v4l-dvb/master'

8 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:23:37 +0000 (11:23 +1100)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

8 years agoMerge branch 'dmi/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:23:33 +0000 (11:23 +1100)]
Merge branch 'dmi/master'

8 years agoMerge branch 'jdelvare-hwmon/master'
Stephen Rothwell [Wed, 10 Feb 2016 00:22:09 +0000 (11:22 +1100)]
Merge branch 'jdelvare-hwmon/master'

8 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:20:39 +0000 (11:20 +1100)]
Merge remote-tracking branch 'hid/for-next'

8 years agoMerge remote-tracking branch 'pci/next'
Stephen Rothwell [Wed, 10 Feb 2016 00:16:02 +0000 (11:16 +1100)]
Merge remote-tracking branch 'pci/next'

8 years agoMerge remote-tracking branch 'vfs/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:15:49 +0000 (11:15 +1100)]
Merge remote-tracking branch 'vfs/for-next'

8 years agoMerge remote-tracking branch 'xfs/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:06:27 +0000 (11:06 +1100)]
Merge remote-tracking branch 'xfs/for-next'

8 years agoMerge remote-tracking branch 'orangefs/for-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:04:53 +0000 (11:04 +1100)]
Merge remote-tracking branch 'orangefs/for-next'

8 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:03:23 +0000 (11:03 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

8 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Wed, 10 Feb 2016 00:01:15 +0000 (11:01 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

8 years agoMerge remote-tracking branch 'gfs2/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:59:47 +0000 (10:59 +1100)]
Merge remote-tracking branch 'gfs2/for-next'

8 years agoMerge remote-tracking branch 'fscache/fscache'
Stephen Rothwell [Tue, 9 Feb 2016 23:59:33 +0000 (10:59 +1100)]
Merge remote-tracking branch 'fscache/fscache'

8 years agoMerge remote-tracking branch 'f2fs/dev'
Stephen Rothwell [Tue, 9 Feb 2016 23:58:09 +0000 (10:58 +1100)]
Merge remote-tracking branch 'f2fs/dev'

8 years agoMerge remote-tracking branch 'ext4/dev'
Stephen Rothwell [Tue, 9 Feb 2016 23:56:38 +0000 (10:56 +1100)]
Merge remote-tracking branch 'ext4/dev'

8 years agoMerge remote-tracking branch 'ext3/for_next'
Stephen Rothwell [Tue, 9 Feb 2016 23:46:36 +0000 (10:46 +1100)]
Merge remote-tracking branch 'ext3/for_next'

8 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Tue, 9 Feb 2016 23:45:08 +0000 (10:45 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

8 years agoMerge remote-tracking branch 'ceph/master'
Stephen Rothwell [Tue, 9 Feb 2016 23:45:03 +0000 (10:45 +1100)]
Merge remote-tracking branch 'ceph/master'

8 years agoMerge remote-tracking branch 'btrfs-kdave/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:43:34 +0000 (10:43 +1100)]
Merge remote-tracking branch 'btrfs-kdave/for-next'

8 years agoMerge remote-tracking branch 'xtensa/for_next'
Stephen Rothwell [Tue, 9 Feb 2016 23:42:04 +0000 (10:42 +1100)]
Merge remote-tracking branch 'xtensa/for_next'

8 years agoMerge remote-tracking branch 'uml/linux-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:40:38 +0000 (10:40 +1100)]
Merge remote-tracking branch 'uml/linux-next'

8 years agoMerge remote-tracking branch 'tile/master'
Stephen Rothwell [Tue, 9 Feb 2016 23:39:14 +0000 (10:39 +1100)]
Merge remote-tracking branch 'tile/master'

8 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Tue, 9 Feb 2016 23:37:49 +0000 (10:37 +1100)]
Merge remote-tracking branch 's390/features'

8 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:36:18 +0000 (10:36 +1100)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

8 years agoMerge remote-tracking branch 'microblaze/next'
Stephen Rothwell [Tue, 9 Feb 2016 23:34:52 +0000 (10:34 +1100)]
Merge remote-tracking branch 'microblaze/next'

8 years agoMerge remote-tracking branch 'metag/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:33:26 +0000 (10:33 +1100)]
Merge remote-tracking branch 'metag/for-next'

8 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:32:03 +0000 (10:32 +1100)]
Merge remote-tracking branch 'm68knommu/for-next'

8 years agoMerge remote-tracking branch 'm68k/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:30:39 +0000 (10:30 +1100)]
Merge remote-tracking branch 'm68k/for-next'

8 years agoMerge remote-tracking branch 'h8300/h8300-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:29:12 +0000 (10:29 +1100)]
Merge remote-tracking branch 'h8300/h8300-next'

8 years agoMerge remote-tracking branch 'arm64/for-next/core'
Stephen Rothwell [Tue, 9 Feb 2016 23:19:38 +0000 (10:19 +1100)]
Merge remote-tracking branch 'arm64/for-next/core'

8 years agoMerge remote-tracking branch 'tegra/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:18:15 +0000 (10:18 +1100)]
Merge remote-tracking branch 'tegra/for-next'

8 years agoMerge remote-tracking branch 'sunxi/sunxi/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:16:51 +0000 (10:16 +1100)]
Merge remote-tracking branch 'sunxi/sunxi/for-next'

8 years agoMerge remote-tracking branch 'samsung-krzk/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:15:26 +0000 (10:15 +1100)]
Merge remote-tracking branch 'samsung-krzk/for-next'

8 years agoMerge remote-tracking branch 'rockchip/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:14:00 +0000 (10:14 +1100)]
Merge remote-tracking branch 'rockchip/for-next'

8 years agoMerge remote-tracking branch 'renesas/next'
Stephen Rothwell [Tue, 9 Feb 2016 23:12:27 +0000 (10:12 +1100)]
Merge remote-tracking branch 'renesas/next'

8 years agoMerge remote-tracking branch 'qcom/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:10:59 +0000 (10:10 +1100)]
Merge remote-tracking branch 'qcom/for-next'

8 years agoMerge remote-tracking branch 'omap-pending/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:10:55 +0000 (10:10 +1100)]
Merge remote-tracking branch 'omap-pending/for-next'

8 years agoMerge remote-tracking branch 'omap/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:09:13 +0000 (10:09 +1100)]
Merge remote-tracking branch 'omap/for-next'

8 years agoMerge remote-tracking branch 'mvebu/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:07:42 +0000 (10:07 +1100)]
Merge remote-tracking branch 'mvebu/for-next'

8 years agoMerge remote-tracking branch 'keystone/next'
Stephen Rothwell [Tue, 9 Feb 2016 23:06:19 +0000 (10:06 +1100)]
Merge remote-tracking branch 'keystone/next'

8 years agoMerge remote-tracking branch 'imx-mxs/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:04:55 +0000 (10:04 +1100)]
Merge remote-tracking branch 'imx-mxs/for-next'

8 years agoMerge remote-tracking branch 'berlin/berlin/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:04:44 +0000 (10:04 +1100)]
Merge remote-tracking branch 'berlin/berlin/for-next'

8 years agoMerge remote-tracking branch 'bcm2835-dt/bcm2835-dt-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:03:21 +0000 (10:03 +1100)]
Merge remote-tracking branch 'bcm2835-dt/bcm2835-dt-next'

8 years agoMerge remote-tracking branch 'at91/at91-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:03:18 +0000 (10:03 +1100)]
Merge remote-tracking branch 'at91/at91-next'

8 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 23:01:55 +0000 (10:01 +1100)]
Merge remote-tracking branch 'arm-soc/for-next'

8 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 22:59:28 +0000 (09:59 +1100)]
Merge remote-tracking branch 'arm/for-next'

8 years agoMerge remote-tracking branch 'arc/for-next'
Stephen Rothwell [Tue, 9 Feb 2016 22:58:03 +0000 (09:58 +1100)]
Merge remote-tracking branch 'arc/for-next'

8 years agoMerge remote-tracking branch 'drm-intel-fixes/for-linux-next-fixes'
Stephen Rothwell [Tue, 9 Feb 2016 22:47:08 +0000 (09:47 +1100)]
Merge remote-tracking branch 'drm-intel-fixes/for-linux-next-fixes'

8 years agoMerge remote-tracking branch 'rr-fixes/fixes'
Stephen Rothwell [Tue, 9 Feb 2016 22:47:04 +0000 (09:47 +1100)]
Merge remote-tracking branch 'rr-fixes/fixes'

8 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:59 +0000 (09:46 +1100)]
Merge remote-tracking branch 'input-current/for-linus'

8 years agoMerge remote-tracking branch 'char-misc.current/char-misc-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:58 +0000 (09:46 +1100)]
Merge remote-tracking branch 'char-misc.current/char-misc-linus'

8 years agoMerge remote-tracking branch 'tty.current/tty-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:56 +0000 (09:46 +1100)]
Merge remote-tracking branch 'tty.current/tty-linus'

8 years agoMerge remote-tracking branch 'driver-core.current/driver-core-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:55 +0000 (09:46 +1100)]
Merge remote-tracking branch 'driver-core.current/driver-core-linus'

8 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:54 +0000 (09:46 +1100)]
Merge remote-tracking branch 'pci-current/for-linus'

8 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:53 +0000 (09:46 +1100)]
Merge remote-tracking branch 'sound-current/for-linus'

8 years agoMerge remote-tracking branch 'mac80211/master'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:52 +0000 (09:46 +1100)]
Merge remote-tracking branch 'mac80211/master'

8 years agoMerge remote-tracking branch 'wireless-drivers/master'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:51 +0000 (09:46 +1100)]
Merge remote-tracking branch 'wireless-drivers/master'

8 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:48 +0000 (09:46 +1100)]
Merge remote-tracking branch 'net/master'

8 years agoMerge remote-tracking branch 'sparc/master'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:47 +0000 (09:46 +1100)]
Merge remote-tracking branch 'sparc/master'

8 years agoMerge remote-tracking branch 'powerpc-fixes/fixes'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:45 +0000 (09:46 +1100)]
Merge remote-tracking branch 'powerpc-fixes/fixes'

8 years agoMerge remote-tracking branch 'm68k-current/for-linus'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:40 +0000 (09:46 +1100)]
Merge remote-tracking branch 'm68k-current/for-linus'

8 years agoMerge remote-tracking branch 'arm-current/fixes'
Stephen Rothwell [Tue, 9 Feb 2016 22:46:40 +0000 (09:46 +1100)]
Merge remote-tracking branch 'arm-current/fixes'

8 years agothermal: allow u8500-thermal driver to be a module
Arnd Bergmann [Mon, 25 Jan 2016 16:44:12 +0000 (17:44 +0100)]
thermal: allow u8500-thermal driver to be a module

When the thermal subsystem is a loadable module, the u8500 driver
fails to build:

drivers/thermal/built-in.o: In function `db8500_thermal_probe':
db8500_thermal.c:(.text+0x96c): undefined reference to `thermal_zone_device_register'
drivers/thermal/built-in.o: In function `db8500_thermal_work':
db8500_thermal.c:(.text+0xab4): undefined reference to `thermal_zone_device_update'

This changes the symbol to a tristate, so Kconfig can track the
dependency correctly.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
8 years agothermal: allow spear-thermal driver to be a module
Arnd Bergmann [Mon, 25 Jan 2016 16:44:11 +0000 (17:44 +0100)]
thermal: allow spear-thermal driver to be a module

When the thermal subsystem is a loadable module, the spear driver
fails to build:

drivers/thermal/built-in.o: In function `spear_thermal_exit':
spear_thermal.c:(.text+0xf8): undefined reference to `thermal_zone_device_unregister'
drivers/thermal/built-in.o: In function `spear_thermal_probe':
spear_thermal.c:(.text+0x230): undefined reference to `thermal_zone_device_register'

This changes the symbol to a tristate, so Kconfig can track the
dependency correctly.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
8 years agothermal: spear: use __maybe_unused for PM functions
Arnd Bergmann [Mon, 25 Jan 2016 16:44:10 +0000 (17:44 +0100)]
thermal: spear: use __maybe_unused for PM functions

The spear thermal driver hides its suspend/resume function conditionally
based on CONFIG_PM, but references them based on CONFIG_PM_SLEEP, so
we get a warning if the former is set but the latter is not:

thermal/spear_thermal.c:58:12: warning: 'spear_thermal_suspend' defined but not used [-Wunused-function]
thermal/spear_thermal.c:75:12: warning: 'spear_thermal_resume' defined but not used [-Wunused-function]

This removes the #ifdef and instead uses a __maybe_uninitialized
annotation to avoid the warning and improve compile-time coverage.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
8 years agoMerge branch 'topic/core-fixes' into for-linus
Takashi Iwai [Tue, 9 Feb 2016 22:08:37 +0000 (23:08 +0100)]
Merge branch 'topic/core-fixes' into for-linus

8 years agothermal: rcar: enable to use thermal-zone on DT
Kuninori Morimoto [Thu, 28 Jan 2016 02:45:08 +0000 (02:45 +0000)]
thermal: rcar: enable to use thermal-zone on DT

This patch enables to use thermal-zone on DT if it was calles as
"renesas,rcar-thermal-gen2".
Previous style (= non thermal-zone) is still supported by
"renesas,rcar-thermal" to keep compatibility for "git bisect".

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
8 years agothermal: of: use for_each_available_child_of_node for child iterator
Laxman Dewangan [Mon, 8 Feb 2016 13:28:34 +0000 (18:58 +0530)]
thermal: of: use for_each_available_child_of_node for child iterator

Use for_each_available_child_of_node() for iterating over each
available child instead of iterating over each child and then
checking their status.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
8 years agoMerge branch 'pm-cpufreq' into linux-next
Rafael J. Wysocki [Tue, 9 Feb 2016 20:35:46 +0000 (21:35 +0100)]
Merge branch 'pm-cpufreq' into linux-next

* pm-cpufreq: (22 commits)
  cpufreq: governor: Drop pointless goto from cpufreq_governor_init()
  cpufreq: governor: Rename skip_work to work_count
  cpufreq: governor: Symmetrize cpu_dbs_info initialization and cleanup
  cpufreq: governor: Rearrange governor data structures
  cpufreq: governor: Simplify cpufreq_governor_limits()
  cpufreq: governor: Drop cpu argument from dbs_check_cpu()
  cpufreq: governor: Rename cpu_common_dbs_info to policy_dbs_info
  cpufreq: governor: Drop the gov pointer from struct dbs_data
  cpufreq: governor: Rework cpufreq_governor_dbs()
  cpufreq: governor: Rename some data types and variables
  cpufreq: governor: Put governor structure into common_dbs_data
  cpufreq: governor: Avoid passing dbs_data pointers around unnecessarily
  cpufreq: governor: Use common mutex for dbs_data protection
  cpufreq: governor: Replace timers with utilization update callbacks
  cpufreq: intel_pstate: Replace timers with utilization update callbacks
  cpufreq: Add a mechanism for registering utilization update callbacks
  cpufreq: powernv: Replace pr_info with trace print for throttle event
  cpufreq: powernv/tracing: Add powernv_throttle tracepoint
  cpufreq: powernv: Remove cpu_to_chip_id() from hot-path
  cpufreq: powernv: Hot-plug safe the kworker thread
  ...

8 years agocpufreq: governor: Drop pointless goto from cpufreq_governor_init()
Rafael J. Wysocki [Mon, 8 Feb 2016 22:57:22 +0000 (23:57 +0100)]
cpufreq: governor: Drop pointless goto from cpufreq_governor_init()

It is silly to jump around "return 0", so don't do that.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Rename skip_work to work_count
Rafael J. Wysocki [Mon, 8 Feb 2016 22:41:10 +0000 (23:41 +0100)]
cpufreq: governor: Rename skip_work to work_count

The skip_work field in struct policy_dbs_info technically is a
counter, so give it a new name to reflect that.

No functional changes.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Symmetrize cpu_dbs_info initialization and cleanup
Rafael J. Wysocki [Sun, 7 Feb 2016 15:25:02 +0000 (16:25 +0100)]
cpufreq: governor: Symmetrize cpu_dbs_info initialization and cleanup

Make the initialization of struct cpu_dbs_info objects in
alloc_policy_dbs_info() and the code that cleans them up in
free_policy_dbs_info() more symmetrical.  In particular,
set/clear the update_util.func field in those functions along
with the policy_dbs field.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Rearrange governor data structures
Rafael J. Wysocki [Sun, 7 Feb 2016 15:24:26 +0000 (16:24 +0100)]
cpufreq: governor: Rearrange governor data structures

The struct policy_dbs_info objects representing per-policy governor
data are not accessible directly from the corresponding policy
objects.  To access them, one has to get a pointer to the
struct cpu_dbs_info of policy->cpu and use the policy_dbs field of
that which isn't really straightforward.

To address that rearrange the governor data structures so the
governor_data pointer in struct cpufreq_policy will point to
struct policy_dbs_info (instead of struct dbs_data) and that will
contain a pointer to struct dbs_data.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Simplify cpufreq_governor_limits()
Rafael J. Wysocki [Sun, 7 Feb 2016 15:23:49 +0000 (16:23 +0100)]
cpufreq: governor: Simplify cpufreq_governor_limits()

Use the observation that cpufreq_governor_limits() doesn't have to
get to the policy object it wants to manipulate by walking the
reference chain cdbs->policy_dbs->policy, as the final pointer is
actually equal to its argument, and make it access the policy
object directy via its argument.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Drop cpu argument from dbs_check_cpu()
Rafael J. Wysocki [Sat, 6 Feb 2016 12:50:24 +0000 (13:50 +0100)]
cpufreq: governor: Drop cpu argument from dbs_check_cpu()

Since policy->cpu is always passed as the second argument to
dbs_check_cpu(), it is not really necessary to pass it, because
the function can obtain that value via its first argument just fine.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Rename cpu_common_dbs_info to policy_dbs_info
Rafael J. Wysocki [Sun, 7 Feb 2016 15:11:15 +0000 (16:11 +0100)]
cpufreq: governor: Rename cpu_common_dbs_info to policy_dbs_info

The struct cpu_common_dbs_info structure represents the per-policy
part of the governor data (for the ondemand and conservative
governors), but its name doesn't reflect its purpose.

Rename it to struct policy_dbs_info and rename variables related to
it accordingly.

No functional changes.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Drop the gov pointer from struct dbs_data
Rafael J. Wysocki [Sun, 7 Feb 2016 15:09:51 +0000 (16:09 +0100)]
cpufreq: governor: Drop the gov pointer from struct dbs_data

Since it is possible to obtain a pointer to struct dbs_governor
from a pointer to the struct governor embedded in it with the help
of container_of(), the additional gov pointer in struct dbs_data
isn't really necessary.

Drop that pointer and make the code using it reach the dbs_governor
object via policy->governor.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Rework cpufreq_governor_dbs()
Rafael J. Wysocki [Sun, 7 Feb 2016 15:07:51 +0000 (16:07 +0100)]
cpufreq: governor: Rework cpufreq_governor_dbs()

Since it is possible to obtain a pointer to struct dbs_governor
from a pointer to the struct governor embedded in it via
container_of(), the second argument of cpufreq_governor_init()
is not necessary.  Accordingly, cpufreq_governor_dbs() doesn't
need its second argument either and the ->governor callbacks
for both the ondemand and conservative governors may be set
to cpufreq_governor_dbs() directly.  Make that happen.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Saravana Kannan <skannan@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Rename some data types and variables
Rafael J. Wysocki [Sun, 7 Feb 2016 15:05:07 +0000 (16:05 +0100)]
cpufreq: governor: Rename some data types and variables

The ondemand and conservative governors are represented by
struct common_dbs_data whose name doesn't reflect the purpose it
is used for, so rename it to struct dbs_governor and rename
variables of that type accordingly.

No functional changes.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Put governor structure into common_dbs_data
Rafael J. Wysocki [Fri, 5 Feb 2016 02:16:08 +0000 (03:16 +0100)]
cpufreq: governor: Put governor structure into common_dbs_data

For the ondemand and conservative governors (generally, governors
that use the common code in cpufreq_governor.c), there are two static
data structures representing the governor, the struct governor
structure (the interface to the cpufreq core) and the struct
common_dbs_data one (the interface to the cpufreq_governor.c code).

There's no fundamental reason why those two structures have to be
separate.  Moreover, if the struct governor one is included into
struct common_dbs_data, it will be possible to reach the latter from
the policy via its policy->governor pointer, so it won't be necessary
to pass a separate pointer to it around.  For this reason, embed
struct governor in struct common_dbs_data.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Saravana Kannan <skannan@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Avoid passing dbs_data pointers around unnecessarily
Rafael J. Wysocki [Fri, 5 Feb 2016 02:15:24 +0000 (03:15 +0100)]
cpufreq: governor: Avoid passing dbs_data pointers around unnecessarily

Do not pass struct dbs_data pointers to the family of functions
implementing governor operations in cpufreq_governor.c as they can
take that pointer from policy->governor by themselves.

The cpufreq_governor_init() case is slightly more complicated, since
policy->governor may be NULL when it is invoked, but then it can reach
the pointer in question via its cdata argument just fine.

While at it, rework cpufreq_governor_dbs() to avoid a pointless
policy_governor check in the CPUFREQ_GOV_POLICY_INIT case.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Use common mutex for dbs_data protection
Rafael J. Wysocki [Sun, 7 Feb 2016 15:01:31 +0000 (16:01 +0100)]
cpufreq: governor: Use common mutex for dbs_data protection

Every governor relying on the common code in cpufreq_governor.c
has to provide its own mutex in struct common_dbs_data.  However,
there actually is no need to have a separate mutex per governor
for this purpose, they may be using the same global mutex just
fine.  Accordingly, introduce a single common mutex for that and
drop the mutex field from struct common_dbs_data.

That at least will ensure that the mutex is always present and
initialized regardless of what the particular governors do.

Another benefit is that the common code does not need a pointer to
a governor-related structure to get to the mutex which sometimes
helps.

Finally, it makes the code generally easier to follow.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Saravana Kannan <skannan@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
8 years agocpufreq: governor: Replace timers with utilization update callbacks
Rafael J. Wysocki [Sun, 7 Feb 2016 14:50:31 +0000 (15:50 +0100)]
cpufreq: governor: Replace timers with utilization update callbacks

Instead of using a per-CPU deferrable timer for queuing up governor
work items, register a utilization update callback that will be
invoked from the scheduler on utilization changes.

The sampling rate is still the same as what was used for the
deferrable timers and the added irq_work overhead should be offset by
the eliminated timers overhead, so in theory the functional impact of
this patch should not be significant.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>