Commit graph

576,624 commits

Author SHA1 Message Date
Arnd Bergmann
38d2cfcc8d ARM: realview: clean up header files
This contains multiple trivial cleanups to the realview headers:

- removing the file names from the introductory comment
- removing the uncompress.h header that is unused
- removing the irqs.h header and NR_IRQS logic that is
  obsoleted by sparse IRQs

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-12-18 14:09:45 +01:00
Arnd Bergmann
6d407a6eac ARM: realview: make all header files local
Nothing includes these files any more, so we can simply move them
from arch/arm/mach-realview/include/mach/ to arch/arm/mach-realview.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[Two fixes added to make everything compile]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-12-18 14:09:34 +01:00
Arnd Bergmann
17d44d7d87 ARM: no longer make CPU targets visible separately
Now that realview and integrator always select the correct CPU
type themselves based on the core tiles, there is no need to
still have them user-visible in arch/arm/mm/Kconfig. The
ARM925T symbol has been selected by the only user for many
years, so that can be removed along with the realview and
integrator specific ones.

This also solves randconfig build problems on realview.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-12-18 14:09:21 +01:00
Arnd Bergmann
abc466951a ARM: integrator: use explicit core module options
For consistency with the other platforms, this remove the CPU
selection logic in mm/Kconfig that was only used by integrator,
and adds specific options for each available core tile and core
module, which in turn select the correct CPUs.

This is consistent with the new way that we do it for realview
and all other platforms.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-12-18 14:09:08 +01:00
Arnd Bergmann
2934167dd0 ARM: realview: enable multiplatform
All obstacles are out of the way by now, so we can finally move realview
to multiplatform.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
[Rebased Kconfig, fixed if $(X) to if X in Makefile]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-12-18 14:08:15 +01:00
Kalle Valo
01d85b9b2b * don't load firmware that won't exist for 7260
* fix RCU splat
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWcRtgAAoJEC0Llv5uNjIB8SsP/jgsZT5J8xxLpMThe0Pw7C9d
 zZ9Hk1GGBtw9bqMxb7ZjXiGufJQoCf4ckYIEd8OVTOj/3UNE+ZS1StLYmOgie1Ah
 XEgGH9mCuhBAPHGjjsi/YgxNKiwVQ4XOTuV5V9QVUotcTlZGTmtx6UBIxPtnbhWr
 9/uthiDTzgR6c/3sHLSYv66qkrBRMLWbqAdfyJdv4fRW9jwJKTkjexNXuDLMN/Vz
 vgOoSgl62+ixZ211RdLSpO5CasO/FwYabDfcO2UK/h81MetZIn09BQAxBy6p0D1E
 CbMfH1C1Y8TBScRwVEdHgaZ36M+waOfQ0QOcBZOzWveH3xagajNspLaz8yUPO08w
 DCJykrIRkh8C4g1lxK3X5VXh1nyMAuXxAJ9XSr2Rt6ihxi4bA7sFs88xzSCNXyNM
 5QbDjDrJAxb8amprG7F7Ge2N1vO5NQ2dsbluSiMtU43KxhwOvIBjqVbaZmDhYF6m
 in7AndtM1xkSY32KWDVMJYhycwm/ZOQL1kN2WRLEOgnnCW0JQ84kLIBkyFkBMYPs
 Go42+BnOr3qPEfnTd7xufjXK/1hJ+lZt58UM6qlhMsGY48ZXw+vrPe1/vWlq61rT
 ZP+V1LaBAg5nk6jGuA67mN7Wbof0oCaHqljNe9eX/GewahKS0Rn8TpHpw0z05rvI
 CcitRAsPwMQNGW3WdmIo
 =OIVH
 -----END PGP SIGNATURE-----

Merge tag 'iwlwifi-for-kalle-2015-12-16' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes

* don't load firmware that won't exist for 7260
* fix RCU splat
2015-12-18 14:57:02 +02:00
Fengguang Wu
07cd6bf5f3 MAINTAINERS: Fix EDAC repo URLs format
Make it comply with the T: format.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Link: http://lkml.kernel.org/r/20151218080625.745540243@intel.com
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
2015-12-18 13:44:16 +01:00
Marek Vasut
dfd35b779d ARM: socfpga: Repair incorrectly applied MCV patch
For whatever reason, this patch was not applied verbatim and had all
tabs replaced with spaces. Replace them back by a quick sed.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alan Tull <atull@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Cc: Thor Thayer <tthayer@altera.com>
Cc: Vince Bridgers <vbridgers2013@gmail.com>
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-12-18 06:22:13 -06:00
Daniel Kurtz
47769cbc09 regulator: mt6311: Use REGCACHE_RBTREE
This regulator is on a slow i2c bus.  Register accesses are very simple,
they all either enable/disable a regulator channel, or select a new
voltage level.  Thus, reading registers from the device will always
return what was last written.

Therefore we can save a lot of time when reading registers by using a
regmap_cache.  Since the register map is relatively large, but we only
ever access a few of them, we use an RBTREE cache.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Henry Chen <henryc.chen@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:14:27 +00:00
Kuninori Morimoto
44bf5361e2 ASoC: rsnd: add missing DT example for Simple Card with TDM
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
f3f17d32fe ASoC: rsnd: add missing DT example for Simple Card
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
89b66174ec ASoC: rsnd: add rsnd_parse_connect_common() and remove complex macro
Current rsnd driver is using complex macro to parse DAI connection.
This patch adds new rsnd_parse_connect_common() and replace current
macro to it.
This is prepare for multi channel support

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
750fd445ac ASoC: rsnd: add rsnd_set_slot() / rsnd_get_slot_num()
TDM will use 6 or 8 slots on 1 SSI, and Multi channel will use
6 or 8 slots on few SSI (each SSI uses 2 slots).
Thus, this adds new slot control functions which can be prepare
for Multi channel support.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
c140284b80 ASoC: rsnd: tidyup rsnd_get_slot_xxx() naming
rsnd_get_slot_rdai() returns total slots (it returns 6 if total 6
channels) , and rsnd_get_slot_extend() returns extended SSI width
(it returns 8 if total 6 channels). This will be used on SSI multi
channel support too (It will return 2 if total 6 channels with 3 SSI).
But, it is using confusable naming.
This patch changes rsnd_get_slot_rdai() -> rsnd_get_slot(),
rsnd_get_slot_extend() -> rsnd_get_slot_width()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
5858a7d17e ASoC: rsnd: remove rsnd_get_slot_runtime()
Current Renesas sound driver is using rsnd_get_slot_runtime(), but
it is same as runtime->channels. This patch removes
rsnd_get_slot_runtime()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
49ee73b441 ASoC: rsnd: SSI/SSIU use rsnd_get_slot_extend() to check TDM
Current SSI/SSIU are using rsnd_get_slot_runtime() to check TDM,
but using rsnd_get_slot_extend() is more sane.
This patch fix it up

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
52dc685243 ASoC: rsnd: rsnd_dai_connect() returns error if it connect to existing mod
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
c90269c1fb ASoC: rsnd: tidyup debug print position on rsnd_dma_attach()
It can't output corrent dma name *before* rsnd_mod_init().
It goes to *after* rsnd_mod_init() by this patch

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
5e7b9edd92 ASoC: rsnd: tidyup return value of rsnd_get_adinr_bit()
Renesas sound driver has rsnd_get_adinr_bit/chan() functions.
It is assuming _bit() returns ADINR :: OTBL,
and _chan() returns ADINR :: CHNUM.
Current _bit() returns both OTBL and CHNUM. This patch fixup it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Kuninori Morimoto
cdf310ce11 ASoC: rsnd: fixup SSIU control timing
SSIU should be controlled after SSI. This patch fix up it

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 12:10:56 +00:00
Paul Gortmaker
9189922675 fs: make locks.c explicitly non-modular
The Kconfig currently controlling compilation of this code is:

config FILE_LOCKING
     bool "Enable POSIX file locking API" if EXPERT

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modularity so that when reading the
driver there is no doubt it is builtin-only.

Since module_init translates to device_initcall in the non-modular
case, the init ordering gets bumped to one level earlier when we
use the more appropriate fs_initcall here.  However we've made similar
changes before without any fallout and none is expected here either.

Cc: Jeff Layton <jlayton@poochiereds.net>
Acked-by: Jeff Layton <jlayton@poochiereds.net>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
2015-12-18 07:05:06 -05:00
Pavel Fedin
c7da6fa43c arm/arm64: KVM: Detect vGIC presence at runtime
Before commit 662d971584
("arm/arm64: KVM: Kill CONFIG_KVM_ARM_{VGIC,TIMER}") is was possible to
compile the kernel without vGIC and vTimer support. Commit message says
about possibility to detect vGIC support in runtime, but this has never
been implemented.

This patch introduces runtime check, restoring the lost functionality.
It again allows to use KVM on hardware without vGIC. Interrupt
controller has to be emulated in userspace in this case.

-ENODEV return code from probe function means there's no GIC at all.
-ENXIO happens when, for example, there is GIC node in the device tree,
but it does not specify vGIC resources. Any other error code is still
treated as full stop because it might mean some really serious problems.

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 12:01:58 +00:00
Ma Jun
a6c2f87b88 irqchip/mbigen: Implement the mbigen irq chip operation functions
Add the interrupt controller chip operation functions of mbigen chip.

Signed-off-by: Ma Jun <majun258@huawei.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 11:47:13 +00:00
Ma Jun
9650c60ebf irqchip/mbigen: Create irq domain for each mbigen device
For peripheral devices which connect to mbigen,mbigen is a interrupt
controller. So, we create irq domain for each mbigen device and add
mbigen irq domain into irq hierarchy structure.

Signed-off-by: Ma Jun <majun258@huawei.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 11:47:07 +00:00
Ma Jun
717c3dbc11 irqchip/mgigen: Add platform device driver for mbigen device
Mbigen means Message Based Interrupt Generator(MBIGEN).

Its a kind of interrupt controller that collects
the interrupts from external devices and generate msi interrupt.
Mbigen is applied to reduce the number of wire connected interrupts.

As the peripherals increasing, the interrupts lines needed is
increasing much, especially on the Arm64 server SOC.

Therefore, the interrupt pin in GIC is not enough to cover so
many peripherals.

Mbigen is designed to fix this problem.

Mbigen chip locates in ITS or outside of ITS.

Mbigen chip hardware structure shows as below:

		mbigen chip
|---------------------|-------------------|
mgn_node0	  mgn_node1		mgn_node2
 |		 |-------|		|-------|------|
dev1		dev1    dev2		dev1   dev3   dev4

Each mbigen chip contains several mbigen nodes.

External devices can connect to mbigen node through wire connecting way.

Because a mbigen node only can support 128 interrupt maximum, depends
on the interrupt lines number of devices, a device can connects to one
more mbigen nodes.

Also, several different devices can connect to a same mbigen node.

When devices triggered interrupt,mbigen chip detects and collects
the interrupts and generates the MBI interrupts by writing the ITS
Translator register.

To simplify mbigen driver,I used a new conception--mbigen device.
Each mbigen device is initialized as a platform device.

Mbigen device presents the parts(register, pin definition etc.) in
mbigen chip corresponding to a peripheral device.

So from software view, the structure likes below

	            mbigen chip
     |---------------------|-----------------|
mbigen device1       mbigen device2  mbigen device3
      |                   |                |
     dev1                dev2             dev3

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ma Jun <majun258@huawei.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 11:44:20 +00:00
Ma Jun
752b1b94e6 dt-bindings: Documents the mbigen bindings
Add the mbigen msi interrupt controller bindings document.

This patch based on Mark Rutland's patch
https://lkml.org/lkml/2015/7/23/558

Signed-off-by: Ma Jun <majun258@huawei.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 11:44:20 +00:00
Alistair Popple
036592fbbe powerpc/opal-irqchip: Fix deadlock introduced by "Fix double endian conversion"
Commit 25642e1459 ("powerpc/opal-irqchip: Fix double endian
conversion") fixed an endian bug by calling opal_handle_events() in
opal_event_unmask().

However this introduced a deadlock if we find an event is active
during unmasking and call opal_handle_events() again. The bad call
sequence is:

  opal_interrupt()
  -> opal_handle_events()
     -> generic_handle_irq()
        -> handle_level_irq()
           -> raw_spin_lock(&desc->lock)
              handle_irq_event(desc)
              unmask_irq(desc)
              -> opal_event_unmask()
                 -> opal_handle_events()
                    -> generic_handle_irq()
                       -> handle_level_irq()
                          -> raw_spin_lock(&desc->lock)	(BOOM)

When generating multiple opal events in quick succession this would lead
to the following stall warnings:

EEH: Fenced PHB#0 detected, location: U78C9.001.WZS09XA-P1-C32
INFO: rcu_sched detected stalls on CPUs/tasks:

         12-...: (1 GPs behind) idle=68f/140000000000001/0 softirq=860/861 fqs=2065
         15-...: (1 GPs behind) idle=be5/140000000000001/0 softirq=1142/1143 fqs=2065
         (detected by 13, t=2102 jiffies, g=1325, c=1324, q=602)
NMI watchdog: BUG: soft lockup - CPU#18 stuck for 22s! [irqbalance:2696]
INFO: rcu_sched detected stalls on CPUs/tasks:
         12-...: (1 GPs behind) idle=68f/140000000000001/0 softirq=860/861 fqs=8371
         15-...: (1 GPs behind) idle=be5/140000000000001/0 softirq=1142/1143 fqs=8371
         (detected by 20, t=8407 jiffies, g=1325, c=1324, q=1290)

This patch corrects the problem by queuing the work if an event is
active during unmasking, which is similar to the pre-endian fix
behaviour.

Fixes: 25642e1459 ("powerpc/opal-irqchip: Fix double endian conversion")
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Reported-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-12-18 22:24:15 +11:00
Linus Walleij
a27d21e03e irqchip/gic: Kconfig the number of instances
There is currently a hack in the GIC driver making it possible
to pass the number of GIC instances from the platform-specific
include files and thus override the variable MAX_GIC_NR.

With multiplatform deployments, this will not work as we need
to get rid of the platform-specific include files.

It turns out that this feature is only used by the RealView
platform which has a cascaded GIC. So move the configuration
to Kconfig and bump to 2 instances if we're building for the
RealView. The include file hacks can then be removed.

Tested on the ARM PB11MPCore with its cascaded GIC.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:37:00 +00:00
Fengguang Wu
1b1ebe820f MAINTAINERS: add git URL for KVM/ARM
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:16:21 +00:00
Vladimir Murzin
20475f784d arm64: KVM: Add support for 16-bit VMID
The ARMv8.1 architecture extension allows to choose between 8-bit and
16-bit of VMID, so use this capability for KVM.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:15:12 +00:00
Vladimir Murzin
8420dcd37e arm: KVM: Make kvm_arm.h friendly to assembly code
kvm_arm.h is included from both C code and assembly code; however some
definitions in this header supplied with U/UL/ULL suffixes which might
confuse assembly once they got evaluated.
We have _AC macro for such cases, so just wrap problem places with it.

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:15:11 +00:00
Vladimir Murzin
9d4dc68834 arm/arm64: KVM: Remove unreferenced S2_PGD_ORDER
Since commit a987370 ("arm64: KVM: Fix stage-2 PGD allocation to have
per-page refcounting") there is no reference to S2_PGD_ORDER, so kill it
for the good.

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:15:11 +00:00
Marc Zyngier
281243cbe0 arm64: KVM: debug: Remove spurious inline attributes
The debug trapping code is pretty heavy on the "inline" attribute,
but most functions are actually referenced in the sysreg tables,
making the inlining imposible.

Removing the useless inline qualifier seems the right thing to do,
having verified that the output code is similar.

Cc: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:15:11 +00:00
Marc Zyngier
e078ef8151 ARM: KVM: Cleanup exception injection
David Binderman reported that the exception injection code had a
couple of unused variables lingering around.

Upon examination, it looked like this code could do with an
anticipated spring cleaning, which amounts to deduplicating
the CPSR/SPSR update, and making it look a bit more like
the architecture spec.

The spurious variables are removed in the process.

Reported-by: David Binderman <dcb314@hotmail.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2015-12-18 10:14:54 +00:00
Jani Nikula
e6cb3727f8 drm/i915/backlight: prefer dev_priv over dev pointer
Use dev_priv rather than dev pointer where applicable. Remove plenty of
unnecessary temp variables. No functional changes.

Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450428695-28831-1-git-send-email-jani.nikula@intel.com
2015-12-18 11:37:44 +02:00
Ingo Molnar
d64fe8e6b3 perf/core improvement.
User visible:
 
 - Generate perf.data files from 'perf stat', to tap into the scripting
   capabilities perf has instead of defining a 'perf stat' specific scripting
   support to calculate event ratios, etc. Simple example:
 
   $ perf stat record -e cycles usleep 1
 
    Performance counter stats for 'usleep 1':
 
          1,134,996      cycles
 
        0.000670644 seconds time elapsed
 
   $ perf stat report
 
    Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1':
 
          1,134,996      cycles
 
        0.000670644 seconds time elapsed
 
   $
 
   It generates PERF_RECORD_ userspace records to store the details:
 
   $ perf report -D | grep PERF_RECORD
   0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637
   0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535
   0x12a [0x40]: PERF_RECORD_STAT_CONFIG
   0x16a [0x30]: PERF_RECORD_STAT
   -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text
   0x1da [0x18]: PERF_RECORD_STAT_ROUND
   [acme@ssdandy linux]$
 
   An effort was made to make perf.data files generated like this to not
   generate cryptic messages when processed by older tools.
 
   The 'perf script' bits need rebasing, will go up later.
 
 Jiri's cover letter for this series:
 
 The initial attempt defined its own formula lang and allowed triggering user's
 script on the end of the stat command:
 
   http://marc.info/?l=linux-kernel&m=136742146322273&w=2
 
 This patchset abandons the idea of new formula language and rather adds support
 to:
 
   - store stat data into perf.data file
   - add python support to process stat events
 
 Basically it allows to store stat data into perf.data and post process it with
 python scripts in a similar way we do for sampling data.
 
 The stat data are stored in new stat, stat-round, stat-config user events.
   stat        - stored for each read syscall of the counter
   stat round  - stored for each interval or end of the command invocation
   stat config - stores all the config information needed to process data
                 so report tool could restore the same output as record
 
 The python script can now define 'stat__<eventname>_<modifier>' functions
 to get stat events data and 'stat__interval' to get stat-round data.
 
 See CPI script example in scripts/python/stat-cpi.py.
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWcxCQAAoJENZQFvNTUqpAp/QQAJcu8R5MBLBiktaaJLEKawcZ
 cVh5OslEVL7oIaGYZOWtqLE2sRJiY/GdLlkxaVKhkxU7Zebbgy6G97N9zfAAzJd4
 zecKZ1GhHuGgncSflS9uzF2yTr8glZRTYTBgdqSzriUzvuicm/BRmwWRgfPPVVL6
 t/6foo+1HlKG0hpTek19uQZJtR0MgQyQ/HeYmPu8aQTYGrBzvb1iv5l4xW3L8zZV
 6z4VtoeymrC/U+O/lC4CJRQpl1nmTch+Zzm83NEyAD76N7Qy5ur2iwfYP80tJkYB
 9k7LTAiuWZnapRPY9SxsItqF/NHWUIDdQyg7AVu+mDqFzdqrOxxj+qLMNOiKlX0G
 zgIQqL6pQnEsYs2bo7RaRat/LeVl4wARfY1zHkvXoXI45e1Q+wOPB3br9Sl6m82M
 tuyNlgawhEGRTi4gsOmt+CmKRFr+Sa/QDDY1vIzIRUh6hAdb+WQtDBg8ZQR4+UjN
 6j/f6zZ5Ez0qh5sAPmlpyuD9Q2FHezgSoS5EAltrDDjd+qTZhFvX5E4cNGVBcLez
 pq2LbRmf0ZrXPpLLTTTLIjey6UF5dU3b94iQMUcHo2EpfluKhvhuNN4uLrufKlr0
 wZL6lyeNFw4hf0KU1DUki2/DBeNEA3nlQuhV6hJSGQ+C4r7Xh2NPD3xSGv9saRQh
 zJ3QwTM1XEqLF2JaaWth
 =qwUx
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo-3' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull new perf tool feature from Arnaldo Carvalho de Melo:

" User visible changes:

  - Generate perf.data files from 'perf stat', to tap into the scripting
    capabilities perf has instead of defining a 'perf stat' specific scripting
    support to calculate event ratios, etc. Simple example:

    $ perf stat record -e cycles usleep 1

     Performance counter stats for 'usleep 1':

           1,134,996      cycles

         0.000670644 seconds time elapsed

    $ perf stat report

     Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1':

           1,134,996      cycles

         0.000670644 seconds time elapsed

    $

    It generates PERF_RECORD_ userspace records to store the details:

    $ perf report -D | grep PERF_RECORD
    0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637
    0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535
    0x12a [0x40]: PERF_RECORD_STAT_CONFIG
    0x16a [0x30]: PERF_RECORD_STAT
    -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text
    0x1da [0x18]: PERF_RECORD_STAT_ROUND
    [acme@ssdandy linux]$

    An effort was made to make perf.data files generated like this to not
    generate cryptic messages when processed by older tools.

    The 'perf script' bits need rebasing, will go up later.

  Jiri's cover letter for this series:

  The initial attempt defined its own formula lang and allowed triggering user's
  script on the end of the stat command:

    http://marc.info/?l=linux-kernel&m=136742146322273&w=2

  This patchset abandons the idea of new formula language and rather adds support
  to:

    - store stat data into perf.data file
    - add python support to process stat events

  Basically it allows to store stat data into perf.data and post process it with
  python scripts in a similar way we do for sampling data.

  The stat data are stored in new stat, stat-round, stat-config user events.
    stat        - stored for each read syscall of the counter
    stat round  - stored for each interval or end of the command invocation
    stat config - stores all the config information needed to process data
                  so report tool could restore the same output as record

  The python script can now define 'stat__<eventname>_<modifier>' functions
  to get stat events data and 'stat__interval' to get stat-round data.

  See CPI script example in scripts/python/stat-cpi.py."

Also a few other changes:

User visible changes:

  - Make command line options always available, even when they
    depend on some feature being enabled, warning the user about
    use of such options (Wang Nan)

  - Support --vmlinux in perf record, useful, so far, for eBPF,
    where we will set up events that will be used in the record
    session (He Kuang)

  - Automatically disable collecting branch flags and cycles with
    --call-graph lbr. This allows avoiding a bunch of extra MSR
    reads in the PMI on Skylake.  (Andi Kleen)

Infrastructure changes:

  - Dump the stack when a 'perf test -v ' entry segfaults, so far we
    would have to run it under gdb with 'set follow-fork-mode child'
    set to get a proper backtrace (Arnaldo Carvalho de Melo)

  - Initialize the refcnt in 'struct thread' to 1 and fixup its
    users accordingly, so that we try to have the same refcount
    model accross the perf codebase (Arnaldo Carvalho de Melo)

  - More prep work for moving the subcmd infrastructure out of
    tools/perf/ and into tools/lib/subcmd/ to be used by other
    tools/ living utilities (Josh Poimboeuf)

  - Fix 'perf test' hist testcases when kptr_restrict is on (Namhyung Kim)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-12-18 09:56:52 +01:00
Xiong Zhang
3e6db33aaf ALSA: hda - Set SKL+ hda controller power at freeze() and thaw()
It takes three minutes to enter into hibernation on some OEM SKL
machines and we see many codec spurious response after thaw() opertion.
This is because HDA is still in D0 state after freeze() call and
pci_pm_freeze/pci_pm_freeze_noirq() don't set D3 hot in pci_bus driver.
It seems bios still access HDA when system enter into freeze state,
HDA will receive codec response interrupt immediately after thaw() call.
Because of this unexpected interrupt, HDA enter into a abnormal
state and slow down the system enter into hibernation.

In this patch, we put HDA into D3 hot state in azx_freeze_noirq() and
put HDA into D0 state in azx_thaw_noirq().

V2: Only apply this fix to SKL+
    Fix compile error when CONFIG_PM_SLEEP isn't defined

[Yet another fix for CONFIG_PM_SLEEP ifdef and the additional comment
 by tiwai]

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2015-12-18 09:49:13 +01:00
Ingo Molnar
141a361e1d Merge branch 'perf/urgent' into perf/core, to make sure a cherry-picked commit does not create conflicts
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-12-18 09:43:24 +01:00
Paul Gortmaker
e50be5cd0c drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular
The Kconfig currently controlling compilation of this code is:

drivers/soc/mediatek/Kconfig:config MTK_SCPSYS
drivers/soc/mediatek/Kconfig:   bool "MediaTek SCPSYS Support"

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modularity so that when reading the
driver there is no doubt it is builtin-only.

Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.

Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Daniel Kurtz <djkurtz@chromium.org>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mediatek@lists.infradead.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2015-12-18 09:41:43 +01:00
Sascha Hauer
4688f3856d soc: mediatek: SCPSYS: Add regulator support
The power domains are supplied by regulators. Add support for them so
that the regulators are properly turned on before a domain is powered up
and turned off when a domain is powered down.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2015-12-18 09:41:42 +01:00
Yingjoe Chen
c050b45d87 arm64: mediatek: enable MTK_TIMER
Enable MTK_TIMER for MediaTek plaform, which will be used as
tick broadcast device and schedule clock.

Signed-off-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2015-12-18 09:41:18 +01:00
Ingo Molnar
2d2e7ac14a perf/urgent fix:
User visible changes:
 
   - Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
     in an array used just for printing available events, robustify the code
     involved (Arnaldo Carvalho de Melo)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWcgcYAAoJENZQFvNTUqpAsCUQALQhBTj1vYyEivBmLJaVaAlg
 2v+QVO1G7LKvzl7ze+s67mPMT0m/wScQrmPaFBGdLQYOZJGrYoIOeSVn+ojt8Ztj
 hUEbshb5Ik+SB78f/+6ZmD7RCWRiwrpAaIz627F4i7y2cOxnyCFu431kBuPO1oJx
 D7b9ZW0e3AY7VV8Vtd9vBtA0GEezo97DxKOqR8pEVU6mRaI0G+R5O4lnHe+fH7RT
 8zhrAa0uRdN00W3uP584z04RLfRnFcpwZWolvVFyXYY5fzMLkus9BSYPcDWh+GMy
 gPtH6k2zN1lgrn87PEuMOOQ/bkWKmxL7LUiSWJE+acl6AzQ+mYPTOQNPMKfYnF0d
 xVgNfEcvlu0ThRo+/DlTr2OZGPGXERQV4RvhrBQqCyntxL+cp+iDaxiAZPzttSWN
 UwvcSioIMNZ5v+5G9pQSphTINnVzpBQQduFDPsZCl4JvRTgEoFCKXaMVcmABRTsL
 CfwcsRY3v1Ki/6ffzA7yjzvb8wDH2+gFBqLTt/U00UYSYwa8vSutyMyfXA0pIndM
 kh+jBGfY5uU3PfWrzDX+BQLMOJiOcnkZjgbWGTNpanRw8gmsnhy9pZoGXs7CM8Sy
 9976/lC+sDbmA37hajUKE7HNYDQy4Td+YQ7pKD8k3bCYzGYPw/ppCt87FLvLntPN
 KSoWfPp7ITWjMXMCMWdv
 =8MPk
 -----END PGP SIGNATURE-----

Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent

Pull perf/urgent tooling fix from Arnaldo Carvalho de Melo:

  User visible changes:

    - Fix 'perf list' segfault due to lack of support for PERF_CONF_SW_BPF_OUTPUT
      in an array used just for printing available events, robustify the code
      involved (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-12-18 09:40:13 +01:00
Ingo Molnar
b21daaede1 perf/core improvements
User visible:
 
 - Add record.build-id config option to 'perf record', to allow configuring
   in the ~/.perfconfig file if and how build-ids should be processed, allowing
   a permanent setting for options such as -B and -N: (Namhyung Kim)
 
   $ perf record -h -B -N
 
    Usage: perf record [<options>] [<command>]
       or: perf record [<options>] -- <command> [<options>]
 
       -B, --no-buildid       do not collect buildids in perf.data
       -N, --no-buildid-cache do not update the buildid cache
 
   $
 
 Infrastructure:
 
 - Move code for options parsing and subcommand handling from tools/perf/
   to tools/lib/subcmd/, so that it can be used by other tools/ living
   utilities (Josh Poimboeuf)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWcvFJAAoJENZQFvNTUqpAT5oP/A4JbkS+f80WdAztcIm2MC15
 25TXdRLvcD3/oVXNLbieQitZ4pA8oEvCj/GYHr/p8DUYTaVj0Dmo5M5qFoJQP1GZ
 b9IW1dsbh5PqnuiKFnk2Fak6aCTv+D4dNTXz4jjKvwtjgSiyIC7IaJkvq0HMfeqZ
 bAoXzxKj79/QXEAoHZu6kkCyc9p7yhVp96zIqShF7ZVeZNu071nMIPA/5SNNxsoZ
 +IrHdGgwT1VfnFGf4Gcnjn3AwraBBt0xT0VTDMlVsGWExE5wjzX22FUz2UovU2Nc
 wmv8EHH0AXIs7oAj7AkUP6cMkHdW22BmbUg1ubDYLbXVmKfHvUCQ7cY4Ep2FXBP5
 agI5H40RXs/NdyqLgI+nX33ilaTIe8DWX1Ce4ODkp25XlPPNyA/HVBUOFcZVQZ+c
 Z8t/KRRjPz87EQH2JzFm2S2cvb7dYfoOPJdCthH1vYyheIFNKRa5pl1xMLam0x2a
 +CfcPqHoCWjCHsURjbuKOcBsOLO3fT5M9/kLIviMYeG54WoKhA+edjxSGWc6JnNA
 ISPDdXNGTvjnf13Ec0s3GITpXbvp8xLt5l6DQpbijmh2xvLxqep/rLC2kjnhhHfP
 mosJnjTYcmtqBgpSxS2Nsib5AmVcLF4uwNYUt8kXzAWXLNJdYu1RlVaPunQ5jM0n
 l3ioc2QNPkB/3BRA3iIc
 =d45C
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo-2.1' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull perf/core improvements from Arnaldo Carvalho de Melo:

User visible changes:

  - Add record.build-id config option to 'perf record', to allow configuring
    in the ~/.perfconfig file if and how build-ids should be processed, allowing
    a permanent setting for options such as -B and -N: (Namhyung Kim)

    $ perf record -h -B -N

     Usage: perf record [<options>] [<command>]
        or: perf record [<options>] -- <command> [<options>]

        -B, --no-buildid       do not collect buildids in perf.data
        -N, --no-buildid-cache do not update the buildid cache

    $

Infrastructure changes:

  - Move code for options parsing and subcommand handling from tools/perf/
    to tools/lib/subcmd/, so that it can be used by other tools/ living
    utilities (Josh Poimboeuf)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-12-18 09:37:51 +01:00
Fang, Yang A
743ad80e5c ASoc: Intel: boards: Add HDMI/DP links for nau88l25_ssm4567 machine
This machine supports HDMI/DP ports so add these ports and its FE and BE
DAIlinks

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:04 +00:00
Sathyanarayana Nujella
2154be362c ASoc: Intel: boards: Add WOV as sink for nau88l25_ssm4567 machine
We have WOV module which should act as DAPM sink, so add that and
its links.

Also rename the refcap to "Wake On Voice" as some user expect to
find this name

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:03 +00:00
Yong Zhi
2616e27efb ASoc: Intel: boards: update constraints for nau88l25_ssm4567 machine
We have specific constraints for FE device (48KHz, stereo, 16
bits) and fixups for BE DMIC links (2 or 4 ch), so add those.

Also add one more FE DAIlink for dmiccap

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:03 +00:00
Yong Zhi
941eee7456 ASoc: Intel: boards: update ignore suspend for nau88l25_ssm4567 machine
We don't support ignore suspend on few devices so remove that.
Also since we support ignore susend on PDM DMIC, add that

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:02 +00:00
Fang, Yang A
4c6ebc3ecd ASoc: Intel: boards: fix dapm map of nau88l25_ssm4567 machine
The DAPM map for DMIC and SSP was not properly done, so fix that up.
Also mark machine as fully routed

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:02 +00:00
Rohit Ainapure
8eaf2b31dd ASoC: Intel: Skylake: Add Nuvoton Maxim machine driver
This adds Skylake I2S machine driver which uses NAU88L25 as anlog codec and
MAX98357A as speakers

Signed-off-by: Rohit Ainapure <rohit.m.ainapure@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:02 +00:00
Rohit Ainapure
69b7f9c458 ASoC: Intel: Add Nuvoton+Maxim machine driver entry
Add the NAU88L25 + MAX98357A machine driver entry into
the machine table

Signed-off-by: Rohit Ainapure <rohit.m.ainapure@intel.com>
Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-12-18 08:29:01 +00:00