Commit graph

506,942 commits

Author SHA1 Message Date
Charles Keepax
7a7a70b49b regmap: Check stride of register patch as we register it
Currently, we check the registers in the patch are aligned to the
register stride everytime we sync the cache and the first time the patch
is written out is unchecked.

This patch checks the register patch when we first register it so the
first writes are no longer unchecked and then doesn't check on
subsequent syncs as the patch will be unchanged.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-02-22 11:15:13 +09:00
Ben Peddell
2d0a7addbd ARM: Kirkwood: Add support for many Synology NAS devices
Add device tree fragments and files to support many of the kirkwood
based Synology NAS devices. This is a modification of
Andrew Lunn's <andrew@lunn.ch> translation of the board setup file
maintained by Ben Peddell <klightspeed@killerwolves.net>

The Ricoh RS5C372 RTC was used in all 2009 units and some 2010 units.
All other Synology Kirkwood-based DiskStations and RackStations use
the Seiko S35390A RTC.

Most of the 1-bay and 2-bay units use the GPIOs that are multiplexed
with the built-in SATA interface activity/presence pins on mpp 20-23,
while the 4-bay units use ge01 and a PCIe SATA controller, and put the
software controlled HDD leds on mpp 36-43.

Most of the 6281 units with HDD power controls use mpp 29 and 31, while
most of the 6282 units with HDD power controls use mpp 30, 34, 44 and 45
and provide a model ID on mpp 28, 29, 46 and 47.  Pre-2012 units and
most 4-bay units didn't have a separate power control for HDD1.  These
power controls are presumably to limit startup current from the 12V
brick power supply.

Instead of using separate dtsi files in a synology directory, this
patch uses a single dtsi file containing all of the modules for
these boards, with all of the modules not common to all boards
disabled.  The board dts files then enable the appropriate modules for
their boards.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Ben Peddell <klightspeed@killerwolves.net>
Tested-by: Ben Peddell <klightspeed@killerwolves.net> (ds211j)
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 01:48:55 +00:00
Andrew Lunn
36670de13d DT: i2c: Trivial: Add sii,s35390a
Add the Seiko Instruments Inc S35390a to the list of trivial i2c
devices.

Signed-off-by: Ben Peddell <klightspeed@killerwolves.net>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 01:45:01 +00:00
Andrew Lunn
f7f2ea9f49 DT: Vendor prefixes: Add ricoh, qnap, sii and synology
The following patches make use of vendor names:
* ricoh (Ricoh Co. Ltd.);
* qnap (QNAP Systems, Inc.);
* sii (Seiko Instruments, Inc.); and
* synology (Synology, Inc.)

Add them to the vendor prefix list.

Signed-off-by: Ben Peddell <klightspeed@killerwolves.net>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 01:43:51 +00:00
Jan Kara
0dc83bd30b Revert "writeback: do not sync data dirtied after sync start"
This reverts commit c4a391b53a. Dave
Chinner <david@fromorbit.com> has reported the commit may cause some
inodes to be left out from sync(2). This is because we can call
redirty_tail() for some inode (which sets i_dirtied_when to current time)
after sync(2) has started or similarly requeue_inode() can set
i_dirtied_when to current time if writeback had to skip some pages. The
real problem is in the functions clobbering i_dirtied_when but fixing
that isn't trivial so revert is a safer choice for now.

CC: stable@vger.kernel.org # >= 3.13
Signed-off-by: Jan Kara <jack@suse.cz>
2014-02-22 02:02:28 +01:00
Thomas Petazzoni
bc81526f37 Documentation: arm: update Marvell documentation about Armada 375/38x
This commit updates the documentation that describes the various
families of SOCs produced by Marvell, together with the corresponding
available technical documents. It adds Armada 375 and Armada 38x, and
adds a link to the product brief for the already supported Armada 370.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:44:00 +00:00
Thomas Petazzoni
9aa30f1c13 ARM: mvebu: add initial support for the Armada 380/385 SOCs
This commit adds the basic support for the Armada 380 and Armada 385
SOCs. These SoCs share most of their IP with the Armada 370/XP
SoCs. The main difference is the use of a Cortex A9 CPU instead of the
PJ4B CPU. The Armada 380 is a single core Cortex-A9, while the Armada
385 is a dual-core Cortex-A9.

The support is introduced in board-v7.c, together with Armada 370/XP,
but a separate DT structure is added, because Armada 38x will need a
different set of SMP operations when the SMP support is introduced.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:43:59 +00:00
Thomas Petazzoni
ca4a6f8715 ARM: mvebu: add workaround for data abort issue on Armada 375
Early versions of Armada 375 SoC have a bug where the BootROM leaves
an external data abort pending. The kernel is hit by this data abort
as soon as it enters userspace, because it unmasks the data aborts at
this moment. We register a custom abort handler below to ignore the
first data abort to work around this problem.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:43:59 +00:00
Gregory CLEMENT
d3ce7f2594 ARM: mvebu: add initial support for the Armada 375 SOCs
This commit adds the basic support for the Armada 375 SOCs. These SoCs
share most of their IP with the Armada 370/XP SoCs. The main
difference is the use of a Cortex A9 CPU instead of the PJ4B CPU. The
interrupt controller and the L2 cache controller are also different
they are respectively the GIC and the PL310.

The support is introduced in board-v7.c, together with Armada 370/XP,
but a separate DT structure is added, because Armada 375 will need a
different set of SMP operations when the SMP support is introduced.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:41:10 +00:00
Thomas Petazzoni
df863de19f ARM: mvebu: add Armada 375 support to the system-controller driver
The system controller block in the Armada 375 has different register
offsets for the system reset and other related functions. Therefore,
this commit introduces the new "armada-375-system-controller"
compatible string to identify the Armada 375 variant of the system
controller.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:41:09 +00:00
Thomas Petazzoni
798ec443ad ARM: mvebu: make CPU_PJ4B selection a per-SoC choice
Until now, the CPU_PJ4B Kconfig option was selected by
MACH_ARMADA_MVEBU, i.e for all Armada MVEBU SOCs. In preparation to
the introduction of Cortex-A9 based Armada MVEBU SOCs, this selection
is moved down to the Armada 370 and Armada XP specific options.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:41:08 +00:00
Thomas Petazzoni
a017dbb6ee ARM: mvebu: rename DT machine structure for Armada 370/XP
Due to a mistake made when merging Armada 370 and Armada XP DT machine
structures, the name of the structure was incorrectly chosen as being
ARMADA_XP_DT, while the structure also covers Armada 370. Therefore,
we rename the structure to ARMADA_370_XP_DT.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:41:08 +00:00
Thomas Petazzoni
99b3d29462 ARM: mvebu: rename armada-370-xp.c to board-v7.c
In preparation to the introduction of the support of Armada 375 and
Armada 38x, this commit renames arch/arm/mach-mvebu/armada-370-xp.c to
arch/arm/mach-mvebu/board-v7.c. The board-v7.c name as we expect this
file to ultimately contain the DT_MACHINE_START definitions for all
ARMv7 Marvell EBU platforms (370, 375, 38x, XP and Dove as of today).

In relation to this file rename, this commit also:

 * Renames the hidden Kconfig symbol MACH_ARMADA_370_XP to
   MACH_MVEBU_V7. This hidden symbol is selected by the various
   per-SoC visible Kconfig options to trigger the build of board-v7.c.

 * Renames a certain number of functions in board-v7.c so that their
   armada_370_xp prefix is replaced by a mvebu prefix. The .dt_compat
   array keeps its armada_370_xp prefix because the new SOCs will be
   introduced with separate .dt_compat arrays, due to the need for
   different SMP operations.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-22 00:41:06 +00:00
Olof Johansson
b9de5332bf mvebu defconfig changes for v3.15
- dove
     - remove UBI support
     - enable watchdog
 
  - mvebu
     - rename mvebu_defconfig mvebu_v7_defconfig
     - enable audio
     - enable watchdog
     - add Armada 375 and 38x
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTA40rAAoJEP45WPkGe8Znf1MP/Akd4eyPVtNiuq8/ZR7wqAbG
 QrEYz+SbRD4pwpEAiYG5TZW2F+kcWd/WElt2c9eJ6z47no/eg46an81XEwNxxcTT
 KQoR1M/e2elOThN1Spel17vbqjyPMz+/vDZdCooClgpbXfvBbfrfgEPqnIYkMSZQ
 je4dy5BIAcG5nZUGMeBlfq4GgSwPMa+ZQ2EdBuMdaDReXhHB2DR2Ubz7LEAaAsEg
 s1FqmZE919z3bn57DriCgdZo0N/sna1JDNSy8rv6oeyP401EpvWa9xit5ctYNLld
 R/KyoX21Yo2YUbanUTrX1T2OTetKAd41FaI9YuGPjZ6mFX7AYQsjSk26cHLuiZni
 DWFzlrMb1qnXqvSKIAxbUAbnBMlp//UumdYfjAac1yaKhZDWD4yyWwkEGpWTXy+s
 CEY/IznZrpW8csUJnw1zunDmZgHnt0sETdhN49HVB6bhk9MSHnRUEbE5x5bo+E3S
 Cs2L+EggF+/oqBmb1bxz1Ji9p7qV4hT6Xkg0mpMVIBrFv34aFVAYrJ/jWxNhRaUq
 DTdiOVjeWUn2MTAm4MR9k0cMZFpfMcfo7CfTnp412EGkd0JE0AF41ggQ9F/n921c
 RmZ0TBgiggy4xenjSAVUidwWn2xplKJGuvSE3VCJReIGd1tgSet06z95bt8nCCmo
 FUwtxhB6CRtJj6vovZjR
 =r+73
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-defconfig-3.15' of git://git.infradead.org/linux-mvebu into next/boards

Merge "mvebu defconfig changes for v3.15" from Jason Cooper:

 - dove
    - remove UBI support
    - enable watchdog

 - mvebu
    - rename mvebu_defconfig mvebu_v7_defconfig
    - enable audio
    - enable watchdog
    - add Armada 375 and 38x

* tag 'mvebu-defconfig-3.15' of git://git.infradead.org/linux-mvebu:
  ARM: mvebu: update defconfigs for Armada 375 and 38x
  ARM: dove: Enable watchdog support in the defconfig
  ARM: mvebu: Enable watchdog support in defconfig
  ARM: mvebu: enable audio options in mvebu_defconfig
  ARM: mvebu: rename mvebu_defconfig to mvebu_v7_defconfig
  ARM: dove: Remove UBI support from defconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-02-21 16:36:21 -08:00
Jason Cooper
d181e69c91 mvebu soc changes for v3.15
- mvebu
     - Makefile cleanup and remove map_io
     - use of_find_matching_node_and_match
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTA4tkAAoJEP45WPkGe8ZngvcQAJERb3og6jElo3DPHNd6gcTa
 liMCSf0PxRrYdrpKcPRcuZhTZ20HrNqbJYcA3At6vj7F4tt1pjAK/uCVdhuOkK8N
 F4a9adhxqk0jHszB7fXZqwDpuqGyXwAOspkC+qw8PLDiIO9Yq844TgWSJKirwU2Z
 MPPU0HSrEmfloTI1bcgfB0V08vCFM5OtjGJsI5xRYTPuGnJUmOF/4zostQ1m9H9u
 Wnc41KrPv2gxW2fPNestCGarYrtsYzMZKBpTEmxlt0pcU7tQs4uv2J0zC29eTgCz
 7iej46ZFZI2rIr3t1a4g0C7sWNMoZQ0syltL9ZKpgZy+5nijeJfrQxqX04b+uc9O
 vu3nJmpwQnKjxGR83Cv7g2uP4PwmTcitqq1G6vQGvGHMHFSzlG3h+HzQUkJO9UuQ
 wcXG/9o4458WaKQGOR3E3zved6VkNgnofhlhog80xLo1PRUNuEVp9I8u3PrrN+tZ
 4hQC9JbTCbGWrzZmLB/C5foGkSyfZ1SkueCNy2v/U/uvyj0ztcvy7imSVbZs3zsB
 mliOz4ZfiBjkZCE2/HnzU3MI1WVaImyFF0LM6L2M1/PquGckhI4OWJz+1QrYwW72
 qQIFGt3hcQyZz8i3qa6PI6i4YZveq88LUo4aB7i7pKRKSAe+Zu5xON4ubProF7yM
 R3hn3nMIATlrRcc3+2zw
 =xrGQ
 -----END PGP SIGNATURE-----

Merge tag 'tags/mvebu-soc-3.15' into mvebu/soc-3xx

mvebu soc changes for v3.15

 - mvebu
    - Makefile cleanup and remove map_io
    - use of_find_matching_node_and_match
2014-02-22 00:34:01 +00:00
Olof Johansson
dd67f8a05d mvebu soc changes for v3.15
- mvebu
     - Makefile cleanup and remove map_io
     - use of_find_matching_node_and_match
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTA4tkAAoJEP45WPkGe8ZngvcQAJERb3og6jElo3DPHNd6gcTa
 liMCSf0PxRrYdrpKcPRcuZhTZ20HrNqbJYcA3At6vj7F4tt1pjAK/uCVdhuOkK8N
 F4a9adhxqk0jHszB7fXZqwDpuqGyXwAOspkC+qw8PLDiIO9Yq844TgWSJKirwU2Z
 MPPU0HSrEmfloTI1bcgfB0V08vCFM5OtjGJsI5xRYTPuGnJUmOF/4zostQ1m9H9u
 Wnc41KrPv2gxW2fPNestCGarYrtsYzMZKBpTEmxlt0pcU7tQs4uv2J0zC29eTgCz
 7iej46ZFZI2rIr3t1a4g0C7sWNMoZQ0syltL9ZKpgZy+5nijeJfrQxqX04b+uc9O
 vu3nJmpwQnKjxGR83Cv7g2uP4PwmTcitqq1G6vQGvGHMHFSzlG3h+HzQUkJO9UuQ
 wcXG/9o4458WaKQGOR3E3zved6VkNgnofhlhog80xLo1PRUNuEVp9I8u3PrrN+tZ
 4hQC9JbTCbGWrzZmLB/C5foGkSyfZ1SkueCNy2v/U/uvyj0ztcvy7imSVbZs3zsB
 mliOz4ZfiBjkZCE2/HnzU3MI1WVaImyFF0LM6L2M1/PquGckhI4OWJz+1QrYwW72
 qQIFGt3hcQyZz8i3qa6PI6i4YZveq88LUo4aB7i7pKRKSAe+Zu5xON4ubProF7yM
 R3hn3nMIATlrRcc3+2zw
 =xrGQ
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-soc-3.15' of git://git.infradead.org/linux-mvebu into next/cleanup

Merge "mvebu soc changes for v3.15" from Jason Cooper:

 - mvebu
    - Makefile cleanup and remove map_io
    - use of_find_matching_node_and_match

* tag 'mvebu-soc-3.15' of git://git.infradead.org/linux-mvebu:
  ARM: mvebu: remove unneeded ->map_io field for Armada 370/XP
  ARM: mvebu: make use of of_find_matching_node_and_match
  ARM: mvebu: Makefile clean-up

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-02-21 16:33:50 -08:00
Nicholas Bellinger
eec70897d8 bio-integrity: Drop bio_integrity_verify BUG_ON in post bip->bip_iter world
Given that bip->bip_iter.bi_size is decremented after bio_advance() ->
bio_integrity_advance() is called, the BUG_ON() in bio_integrity_verify()
ends up tripping in v3.14-rc1 code with the advent of immutable biovecs
in:

commit d57a5f7c66
Author: Kent Overstreet <kmo@daterainc.com>
Date:   Sat Nov 23 17:20:16 2013 -0800

    bio-integrity: Convert to bvec_iter

Given that there is no easy way to ascertain the original bi_size
value, go ahead and drop this BUG_ON().

Reported-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Reported-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Kent Overstreet <kmo@daterainc.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:56:36 -08:00
Rafael J. Wysocki
700b8422fb ACPI: Drop acpi_evaluate_hotplug_ost() and ACPI_HOTPLUG_OST
Replace acpi_evaluate_hotplug_ost() with acpi_evaluate_ost()
everywhere and drop the ACPI_HOTPLUG_OST symbol so that hotplug
_OST is supported unconditionally.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
2014-02-22 00:50:49 +01:00
Rafael J. Wysocki
8cc2568124 ACPI / dock: Update copyright notice
Update the copyright notice of the ACPI dock driver to reflect the
fact that substantial changes have been made to it recently.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-22 00:48:57 +01:00
Rafael J. Wysocki
f311e1c4a6 ACPI / dock: Drop remove_dock_dependent_devices()
Since remove_dock_dependent_devices() is only called from acpi_dock_add()
and it only is called if the add_dock_dependent_device() adding the
dock station to its own list of dependent devices has failed, it is not
really necessary, because the dock station's list of dependent devices
is guaranteed to be empty at that point.  Drop it, then.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-22 00:48:56 +01:00
Rafael J. Wysocki
2f16817d87 ACPI / dock: Drop struct acpi_dock_ops and all code related to it
Since struct acpi_dock_ops and the code handling it don't have any
users any more after the previous changes, drop that structure and
the code related to it altogether.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-22 00:48:56 +01:00
Rafael J. Wysocki
5d5132059a ACPI / ATA: Add hotplug contexts to ACPI companions of SATA devices
Modify the SATA subsystem to add hotplug contexts to ACPI companions
of SATA devices and ports instead of registering special ACPI dock
operations using register_hotplug_dock_device().

That change will allow the entire code handling those special ACPI
dock operations to be dropped in the next commit.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Aaron Lu <aaron.lu@intel.com>
Acked-by: Tejun Heo <tj@kernel.org>
2014-02-22 00:48:31 +01:00
Alexander Gordeev
a9df862564 skd: Use pci_enable_msix_range() instead of pci_enable_msix()
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Alexander Gordeev
1bc5ce5df9 skd: Use unified access to skdev->msix_entries throughout the code
Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Alexander Gordeev
46817769ed skd: Fix incomplete cleanup of MSI-X interrupt
When enabling MSI-X interrupts fails due to lack of memory
the call to pci_disable_msix() is missed and the device is
left with MSI-X interrupts enabled while the driver assumes
otherwise. This update fixes the described misbehaviour and
cleans up the code of skd_release_msix() function.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Alexander Gordeev
c5e3035c88 skd: Fix out of array boundary access
When enabling MSI-X, interrupts are requested for SKD_MAX_MSIX_COUNT
entries in skdev->msix_entries array, while the number of actually
allocated entries is skdev->msix_count. This might lead to an out of
boundary access in case number of allocated entries is less than
SKD_MAX_MSIX_COUNT. This update fixes the described misbehaviour.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Alexander Gordeev
f219ad82f8 mtip32xx: Use pci_enable_msix_range() instead of pci_enable_msix()
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Asai Thambi S P <asamymuthupa@micron.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Alexander Gordeev
cf91f39b17 mtip32xx: Remove superfluous call to pci_disable_msi()
There is no need to call pci_disable_msi() in case
the previous call to pci_enable_msi() failed

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Asai Thambi S P <asamymuthupa@micron.com>
Cc: linux-pci@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:45:26 -08:00
Andreas Gruenbacher
f597f6b8df drbd: Fix future possible NULL pointer dereference
Right now every resource has exactly one connection. But we are preparing
for dynamic connections. I.e. in the future thre can be resources without
connections.

However smatch points this out as 'variable dereferenced before check',
which is correct.

This issue was introduced in
drbd: get_one_status(): Iterate over resource->devices instead of connection->peer_devices

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:42:34 -08:00
Thomas Petazzoni
e102dc7a54 rtc: mv: reset date if after year 2038
Dates after January, 19th 2038 are badly handled by userspace due to
the time being stored on 32 bits. This causes issues on some Marvell
platform on which the RTC is initialized by default to a date that's
beyond 2038, causing a really weird behavior of the RTC.

In order to avoid that, reset the date to a sane value if the RTC is
beyond 2038.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-21 23:29:05 +00:00
Gu Zheng
bf36f9cfa6 fs/bio-integrity: remove duplicate code
Most code of function bio_integrity_verify and bio_integrity_generate
is the same, so introduce a help function bio_integrity_generate_verify()
to remove the duplicate code.

Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2014-02-21 15:28:30 -08:00
Santosh Shilimkar
865da01cd9 ARM: OMAP: Kill warning in CPUIDLE code with !CONFIG_SMP
for non SMP build, NR_CPUS is 1 and hence the code complains with below
warnings.

arch/arm/mach-omap2/cpuidle44xx.c:207:8: warning: array subscript is above array bounds [-Warray-bounds]
arch/arm/mach-omap2/cpuidle44xx.c:212:11: warning: array subscript is above array bounds [-Warray-bounds]

Kill it by making array size fixed.

Acked-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-02-21 15:16:56 -08:00
Sebastian Reichel
deff82e688 ARM: OMAP2+: Add support for thumb mode on DT booted N900
Without enabling the workaround for ARM errata 430973 thumb
compiled userland crashes randomly on the Nokia N900.

Signed-off-by: Sebastian Reichel <sre@debian.org>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2014-02-21 15:07:36 -08:00
Tony Lindgren
915a15593b Several OMAP clock/PM/device data fixes for v3.14-rc. There's an OMAP5
reboot fix in there, plus a clock fix for rate computations involving
 x2 multipliers.
 
 Basic build, boot, and PM test logs are available here:
 
 http://www.pwsan.com/omap/testlogs/prcm-fixes-a-v3.14-rc/20140219131753/
 
 Note that most full-chip PM is broken since the v3.14 merge; it's
 not caused by this series.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIbBAABAgAGBQJTBR+ZAAoJEMePsQ0LvSpL/c4P+Ok4iDnLDM6ej0XKXGH2vaQN
 LK8jC9kyLQK6mllFdwpGXkhOuEMZ9mX/bBwevcUVYCrHGyXFLlljbDoUMF1Dhmkd
 MR8aDZfD86Y2fdijlkY2H2QttSJFDJ6h2iPCS9f7L5l00UwHNckJNV/+oCMc4+cH
 bTwLPxOV7DVHFyh33gXw9NTGqvo1rhJCRXFAZ9VP+OG6iKAEnIoa6qMmUBTahQR3
 oQe2Lm4m3HQsOlvy1UESUcSN5UO33cAjDSlf52n3EnEDW0m0eTXvOo57C0OiEOCB
 JP55zfA8u9kvfwkyygrOk7b1G0i5K+1+KfMnjc8BqqoKijBM3cHoFXeCd7SwkWpI
 8siSs9vZ+G0ThTpw4V6zkh8Gf9RUa9Qzy6oNHBx6MySxd2+SvceQMxjtZoZOHOsu
 YbpV+iuH6Vd3L2ZVpju88qlQfU+VRkrTLrq1X1rTtZRfz3YugLYPQkDKKQJWgfML
 DJkTotk0rA8jybt3T2neAy+NEXcYxUWH1TOErsR99+XAG/o+mrtrqh5wjv4Nq/je
 QRpwGah0zGXIenq54Fc6UvOkI4hEtm+gNzeQU7d8+VQ3D2+ns0TmlpIbL5ZiQ7n5
 CS7H9LLiiBNxF7tqSgGazJzzZ6YqjgPmdc+UwCWSjEG+WiCcHeO+c3uK7mgFDjzP
 RBOJFqxqGCrijBAtVZU=
 =aMQk
 -----END PGP SIGNATURE-----

Merge tag 'for-v3.14-rc/omap-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v3.14/fixes

Several OMAP clock/PM/device data fixes for v3.14-rc.  There's an OMAP5
reboot fix in there, plus a clock fix for rate computations involving
x2 multipliers.

Basic build, boot, and PM test logs are available here:

http://www.pwsan.com/omap/testlogs/prcm-fixes-a-v3.14-rc/20140219131753/

Note that most full-chip PM is broken since the v3.14 merge; it's
not caused by this series.
2014-02-21 15:02:25 -08:00
Thomas Gleixner
ec79b577f0 irqchip mvebu fixes for v3.14
- orion:
     - fixes for clearing bridge cause register, and clearing stale interrupts
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTB8pSAAoJEP45WPkGe8ZnDsMP/0SuXXVsAV9tQJL5Nwtx0WwJ
 bLxYaT09y4//fcsJ7RnZygixxqdTGh721yO8Al7PGf1u5XeOkZWhvIjUatB1D8kP
 7awHqzqM1g+rPVNzM/0sS8KNPz8FahAAvCP6Oynm6YPFE7uxpOPzqwij4r7u/dYE
 OBpZwjRJKomdiI5ixwuuR7uGrLWhPZBtqlptvUyWdElPgaLztStmhOqs0l2AVOqI
 UzuZMwJE/DP5MJ3yCThH0b7+1s3H8OZvkSRAgIHXeU0TNXhsomyh6oOmXsn23LXX
 jkoHfh+FO+XBZZsIEFR2cgJBoIp/NdvcqT9/UiaIdBagKfCtpPCTUqybS/F9qgVt
 2mwUtBXFTzkrAoSUHRLcvlrbhMwmIodHu3TUcHbXyPtTBG7YqoXsCWdr/pTUxmep
 sexZ6kNNdAh1tMfsvnvXdhPZKanuPk9K2vXrasu0oAbUl2Ce0XEhjYDAJ4EhSmox
 9r6LVp9DZytacDaNWzD4NV2hOHixzSSpMk5dg85wGx7c+Ump85ZDxDCHC4w2nLyJ
 2ZH+2vH/5gifTHTHYrkOB0gf9+NVzfs8WXJuMufKg5B3QSudQXkKE+B0I7yhxXdG
 LKSkK2LFMGXfiPGqeW2gWBHfSlodICXY46jHgUeXPEsx6ue3i/xPIWEa4twOrOo5
 uBZc3pDwB7nbQCCgeg8M
 =r7Cd
 -----END PGP SIGNATURE-----

Merge tag 'irqchip-mvebu-fixes-3.14' of git://git.infradead.org/linux-mvebu into irq/urgent

irqchip mvebu fixes for v3.14

 - orion:
    - fixes for clearing bridge cause register, and clearing stale interrupts

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 23:57:33 +01:00
Olof Johansson
9df6990671 mvebu DT changes for v3.15
- kirkwood
     - new board QNAP 419
     - new board Excito Bubba B3
 
  - mvebu
     - use gpio and input defines for Armada 370/XP boards
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTA4nEAAoJEP45WPkGe8ZnJvsQAJ9RQ6xuoP3ucqEZd8+OPG7X
 PAX4DfLMHh7YaSj1kyEfUb8HF63BbuAjIU99xNWQdenJqVF+xg8uOal3raagySXh
 R+qRL0jfeFnneJFlc6/EXE+806DkYrqdSdxKm2SVjcS7ZfkiOwEIXgJwYrQQ5EiN
 BGZ82dkQoq3BHGaMt6UeFRz6PECoRHEMkagwCjaZ6gt1piZ+yLa/j24rCRXUmLci
 JXDZVfsd+8B4TLBSGbMSwyDRbnJopsr+VUM7oT6E/iQ3Qcq8sCzeJuTkSapVzRN1
 s1YFhtulMWD7OlLajd9+F/EzKurdjtZL1G8BIKEtFbzcus37sm0Yg3Pb89FxnJ6t
 lTSYZO/MxQIcbM/poZPINksBAKdHb6aqj2/vjL9D3QYLRNsEwt3YVLGs5yC41O8b
 yythodZj65sMSHXY4yYVKQzBSZlttzoxH+3baOV6nHuQpGRG32geVRsj3KXAnI88
 TvP3OFC3tjj823M+sZfDfmDkTISGRGy5RQTsr/QOwNbNDUCig9bHduD5aJA6J8tH
 zxBevF5asCU78n4xd+miBSpdCq8XPAg+tQAdwIga03jnq6cUfJHC6VamV3cVSMP9
 o0GeqTdCsJwiuDGNEy4iCSBOkmfzhoUVaPEkjrQEwqICKVABnpjAH5HQbss+Rq+C
 AGuJIfWXtIBuEqRW50qc
 =e8X7
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt-3.15' of git://git.infradead.org/linux-mvebu into next/dt

Merge "mvebu DT changes for v3.15" from Jason Cooper:

 - kirkwood
    - new board QNAP 419
    - new board Excito Bubba B3
 - mvebu
    - use gpio and input defines for Armada 370/XP boards

* tag 'mvebu-dt-3.15' of git://git.infradead.org/linux-mvebu:
  ARM: mvebu: use input DT defines in Armada 370/XP boards
  ARM: mvebu: use GPIO DT defines in Armada 370/XP boards
  ARM: Kirkwood: Add DT description of QNAP 419
  ARM: Kirkwood: Add support for Excito Bubba B3

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-02-21 14:49:12 -08:00
Olof Johansson
b5feaefb45 Integrator/Versatile base patch stack for the v3.15 series:
- Move integrator clock definitions to the device tree, alter
   clock and timer drivers accordingly.
 
 - Alter the VIC irqchip driver to support cascaded VICs off
   a parent IRQ controller.
 
 - Update the IM-PD1 plugin code to use managed resources.
 
 - Register the VIC on the IM-PD1.
 
 - Select the PL061 GPIO block for the IM-PD1 on the
   Integrator/AP.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJS/J2oAAoJEEEQszewGV1zkTYP/RCvXqFHsMONrQLtIVCcf0Yp
 Hzr4+hsfXZBTAGR5kvsxCeu/BNbyEEdm85Nqe6S1ehcGyZ5RWieqN1NgA7sCHZCu
 rJzBC6cJXRa+8r5i+IdjmpVhftV9d1DP6aTM2Z0GpNyhuefQTUskNA2w4ltVEfLz
 mJ7xwoRURXGVY/vmlyBTnDaPv8J7jFGdxUyYoQtH/MRWsuiBCuiSUXYn0FmHEjeC
 KG8ETTjQbZxjl2ewDrbv8S+U2Xu0DLn1iKTZbwpSyfYlIQM+FoBvJ8RHIAVTz3AK
 bWYSq+C0yghupejiZ9JUoqWL7c2Lq8ijaX5yzwhV6EKuVvD4tem23jO/SIObmIgp
 3ruobAwE5VWq2PPDD/FWL6WYbWulE9MhLAzIZuWowIMQpGezey9CPt4E9HLAhQTM
 akaX3nbFVkpp10ptcYm4p3DIEZklusf/1wC78b5p+kOOlqNI2uip7vI+caWJmyVJ
 wdyCaB2QXu45B7Eil7iZwkZqzoVO3+jVcINrhh3sG/BeyKXQYmTEZ73CSboik9uT
 kI9RWPSHrLVogSnBAHVnXsEvFnH1shzYTsv4xozRll4Zy7kVTl3Kdm4Od/GY+hSl
 SSLKXaVUePjbPokpiuUZbrQHZU53qCFgsATJWFngekIwI7FL/oRohKiSSgFD7CkF
 OfUKlAimgolxDi0inHJ2
 =a4vs
 -----END PGP SIGNATURE-----

Merge tag 'integrator-for-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/drivers

Merge "Integrator/Versatile base patch stack for the v3.15 series"
from Linus Walleij:

"this is a set of patches I have sent for review and failed to get ACKs
from the proper subsystem maintainers after repeated pings. However I
now need to have this rotated in linux-next as a base for multiplatform,
so please pull it in, it is all ARM drivers anyway. Russell pointed out
some things and these have been fixed and iterated in this series."

- Move integrator clock definitions to the device tree, alter
  clock and timer drivers accordingly.

- Alter the VIC irqchip driver to support cascaded VICs off
  a parent IRQ controller.

- Update the IM-PD1 plugin code to use managed resources.

- Register the VIC on the IM-PD1.

- Select the PL061 GPIO block for the IM-PD1 on the
  Integrator/AP.

* tag 'integrator-for-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: integrator: select GPIO block
  ARM: integrator: register the IM-PD1 VIC
  ARM: integrator: use managed resources for the IM-PD1
  irqchip: support cascaded VICs
  irqchip: vic: update the base IRQ member correctly
  clk: versatile: respect parent rate in ICST clock
  clk: versatile: pass a parent to the ICST clock
  ARM: integrator: switch to fetch clocks from device tree
  ARM: SP804: make Integrator/CP timer pick clock from DT
  ARM: integrator: define clocks in the device trees

Signed-off-by: Olof Johansson <olof@lixom.net>
2014-02-21 14:45:36 -08:00
Linus Torvalds
10527106ab Device tree compatible match order bug fix
This branch contains a bug fix for the way devicetree code identifies
 the type of device. Device drivers can contain a list of of_device_ids,
 but it more than one entry will match, then the device driver may choose
 the wrong one. Commit 105353145e, "match each node compatible against
 all given matches first", was queued for v3.14 but ended up causing
 other bugs. Commit 06b29e76a7 attempted to fix it but it had other bugs.
 Merely reverting the fix and waiting until v3.15 isn't a good option
 because there is code in v3.14 that depends on the revised behaviour to
 boot.
 
 This branch should finally fixes the problem correctly. This time
 instead of just hoping that the patch is correct, this branch also adds
 new testcases that validate the behaviour.
 
 The changes in this branch are larger than I would like for a -rc pull,
 but moving the test case data out of out of arch/arm so that it could be
 validated on other architectures was important.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJTB2qsAAoJEMWQL496c2LNmvYQAJPwmc3f76L/HxxuJZ3TVpFF
 2JhtCUyzTrsuebDSanAZLhzwCrIL4N8I/1rZObvkQuxUEUPNg4Khx9chMYwsG7L7
 vbdr+3bkYnwaaGHzoH0NnNM5x1NLm29WOeHaWvT9Nm8iA1399AaOeAXniLQrTgBv
 LxipQc3SZpRSKdCDCi2y32TESMJcN7FT1aD4EKHAZocmXMpMaxEYQ2eFO70Txf5O
 1SbNkZ7LsAnm1TmoH7nf0um9IFX7bvt2KkonpKBL2mOoDfq40pBosV3Zt2JwaeDy
 3nkBeAFs3YvIDjZy3h+WdWLXlF9E29P7CXreE/uSJTnoYft6aCDfgz15USc2j2OA
 BTnK0kqJ3NWu6YAKrQHHoQmisnuDwg84oEK0JLJCfMcA3IOCBXV+iYHbo41j/dO5
 yprnS1zms6UZuOXV2RjseQ34THkR3oDPbSxKmFTK/KGaa568ES0l1ZPAsvuVZqNr
 5elDskt+lfF96WLGbyC0DP5Zib/0eFTbf18p///4lefkr6ysT+CdIJTsRj0/Uz0V
 40nwCJH2t+wVCtcI/+mo3yvc4C77OoRhAOAxz8D9YkOlt8ilfgIDeAc1krAAa09T
 0KfpfkLDvXEccZF+Jo2Z9TU7QFdeLVK/QAsvCZN4EcMU31ePEldMiniZ69/aySPl
 D/ahG24w1pakKXujtJK2
 =wJz0
 -----END PGP SIGNATURE-----

Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux

Pull devicetree fixes from Grant Likely:
 "Device tree compatible match order bug fix

  This branch contains a bug fix for the way devicetree code identifies
  the type of device.  Device drivers can contain a list of
  of_device_ids, but it more than one entry will match, then the device
  driver may choose the wrong one.  Commit 105353145e, "match each node
  compatible against all given matches first", was queued for v3.14 but
  ended up causing other bugs.  Commit 06b29e76a7 attempted to fix it
  but it had other bugs.  Merely reverting the fix and waiting until
  v3.15 isn't a good option because there is code in v3.14 that depends
  on the revised behaviour to boot.

  This branch should finally fixes the problem correctly.  This time
  instead of just hoping that the patch is correct, this branch also
  adds new testcases that validate the behaviour.

  The changes in this branch are larger than I would like for a -rc
  pull, but moving the test case data out of out of arch/arm so that it
  could be validated on other architectures was important"

* tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
  of: Add self test for of_match_node()
  of: Move testcase FDT data into drivers/of
  of: reimplement the matching method for __of_match_node()
  Revert "of: search the best compatible match first in __of_match_node()"
2014-02-21 14:35:05 -08:00
Linus Torvalds
0a4e836a60 Merge git://www.linux-watchdog.org/linux-watchdog
Pull watchdog fix from Wim Van Sebroeck:
 "It corrects the error code when no device was found for w83697hf_wdt"

* git://www.linux-watchdog.org/linux-watchdog:
  watchdog: w83697hf_wdt: return ENODEV if no device was found
2014-02-21 14:34:26 -08:00
Andrew Lunn
d86e9af633 irqchip: orion: Fix getting generic chip pointer.
Enabling SPARSE_IRQ shows up a bug in the irq-orion bridge interrupt
handler. The bridge interrupt is implemented using a single generic
chip. Thus the parameter passed to irq_get_domain_generic_chip()
should always be zero.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Fixes: 9dbd90f17e ("irqchip: Add support for Marvell Orion SoCs")
Cc: <stable@vger.kernel.org> # v3.11+
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-02-21 21:46:56 +00:00
Stephane Eranian
337397f3af perf/x86/uncore: Fix IVT/SNB-EP uncore CBOX NID filter table
This patch updates the CBOX PMU filters mapping tables for SNB-EP
and IVT (model 45 and 62 respectively).

The NID umask always comes in addition to another umask.
When set, the NID filter is applied.

The current mapping tables were missing some code/umask
combinations to account for the NID umask. This patch
fixes that.

Cc: mingo@elte.hu
Cc: ak@linux.intel.com
Reviewed-by: Yan, Zheng <zheng.z.yan@intel.com>
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20140219131018.GA24475@quad
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 22:09:01 +01:00
Peter Zijlstra
c9b08884c9 perf/x86: Correctly use FEATURE_PDCM
The current code simply assumes Intel Arch PerfMon v2+ to have
the IA32_PERF_CAPABILITIES MSR; the SDM specifies that we should check
CPUID[1].ECX[15] (aka, FEATURE_PDCM) instead.

This was found by KVM which implements v2+ but didn't provide the
capabilities MSR. Change the code to DTRT; KVM will also implement the
MSR and return 0.

Cc: pbonzini@redhat.com
Reported-by: "Michael S. Tsirkin" <mst@redhat.com>
Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20140203132903.GI8874@twins.programming.kicks-ass.net
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 22:09:01 +01:00
Markus Metzger
a3ef2229c9 perf, nmi: Fix unknown NMI warning
When using BTS on Core i7-4*, I get the below kernel warning.

$ perf record -c 1 -e branches:u ls
Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
 kernel:[  438.317893] Uhhuh. NMI received for unknown reason 31 on CPU 2.

Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
 kernel:[  438.317920] Do you have a strange power saving mode enabled?

Message from syslogd@labpc1501 at Nov 11 15:49:25 ...
 kernel:[  438.317945] Dazed and confused, but trying to continue

Make intel_pmu_handle_irq() take the full exit path when returning early.

Cc: eranian@google.com
Cc: peterz@infradead.org
Cc: mingo@kernel.org
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392425048-5309-1-git-send-email-andi@firstfloor.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 22:09:01 +01:00
Stephane Eranian
e9d9768824 perf/x86/uncore: use MiB unit for events for SNB/IVB/HSW IMC
This patch makes perf use Mebibytes to display the counts
of uncore_imc/data_reads/ and uncore_imc/data_writes.

1MiB = 1024*1024 bytes.

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-9-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:08 +01:00
Stephane Eranian
ced2efb099 perf/x86/uncore: add hrtimer to SNB uncore IMC PMU
This patch is needed because that PMU uses 32-bit free
running counters with no interrupt capabilities.

On SNB/IVB/HSW, we used 20GB/s theoretical peak to calculate
the hrtimer timeout necessary to avoid missing an overflow.
That delay is set to 5s to be on the cautious side.

The SNB IMC uses free running counters, which are handled
via pseudo fixed counters. The SNB IMC PMU implementation
supports an arbitrary number of events, because the counters
are read-only. Therefore it is not possible to track active
counters. Instead we put active events on a linked list which
is then used by the hrtimer handler to update the SW counts.

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-8-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:08 +01:00
Stephane Eranian
b9e1ab6d4c perf/x86/uncore: add SNB/IVB/HSW client uncore memory controller support
This patch adds a new uncore PMU for Intel SNB/IVB/HSW client
CPUs. It adds the Integrated Memory Controller (IMC) PMU. This
new PMU provides a set of events to measure memory bandwidth utilization.

The IMC on those processor is PCI-space based. This patch
exposes a new uncore PMU on those processor: uncore_imc

Two new events are defined:
  - name: data_reads
  - code: 0x1
  - unit: 64 bytes
  - number of full cacheline read requests to the IMC

  - name: data_writes
  - code: 0x2
  - unit: 64 bytes
  - number of full cacheline write requests to the IMC

Documentation available at:
http://software.intel.com/en-us/articles/monitoring-integrated-memory-controller-requests-in-the-2nd-3rd-and-4th-generation-intel

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-7-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:08 +01:00
Stephane Eranian
001e413f7e perf/x86/uncore: move uncore_event_to_box() and uncore_pmu_to_box()
Move a couple of functions around to avoid forward declarations
when we add code later on.

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-6-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:07 +01:00
Stephane Eranian
79859cce5a perf/x86/uncore: make hrtimer timeout configurable per box
This patch makes the hrtimer timeout configurable per PMU
box. Not all counters have necessarily the same width and
rate, thus the default timeout of 60s may need to be adjusted.

This patch adds box->hrtimer_duration. It is set to default
when the box is allocated. It can be overriden when the box
is initialized.

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-5-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:07 +01:00
Stephane Eranian
ae58faf900 perf/x86/uncore: add PCI ids for SNB/IVB/HSW IMC
This patch adds the PCI ids for the Intel SandyBridge,
IvyBridge, Haswell Client memory controller (IMC).

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-4-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:07 +01:00
Stephane Eranian
d64b25b6a0 perf/x86/uncore: add ability to customize pmu callbacks
This patch enables custom struct pmu callbacks per uncore
PMU types. This feature may be used to simplify counter
setup for certain uncore PMUs which have free running
counters for instance. It becomes possible to bypass
the event scheduling phase of the configuration.

Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: ak@linux.intel.com
Cc: zheng.z.yan@intel.com
Cc: peterz@infradead.org
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1392132015-14521-3-git-send-email-eranian@google.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-02-21 21:49:07 +01:00