summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2014-12-11drm: Protect the master management with a drm_device::master_mutex v3Thomas Hellstrom2-26/+39
The master management was previously protected by the drm_device::struct_mutex. In order to avoid locking order violations in a reworked dropped master security check in the vmwgfx driver, break it out into a separate master_mutex. Locking order is master_mutex -> struct_mutex. Also remove drm_master::blocked since it's not used. v2: Add an inline comment about what drm_device::master_mutex is protecting. v3: Remove unneeded struct_mutex locks. Fix error returns in drm_setmaster_ioctl(). Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Daniel Vetter <daniel@ffwll.ch> (cherry picked from commit c996fd0b956450563454e7ccc97a82ca31f9d043) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: drivers/gpu/drm/drm_stub.c
2014-12-11drm: Remove the minor master listThomas Hellstrom1-5/+0
It doesn't appear to be used anywhere. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> (cherry picked from commit a12cd0025cdc0b4d43b79249dbd8c266af284032) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: allocate minors earlyDavid Herrmann1-39/+70
Instead of waiting for device-registration, we now allocate minor-objects during device allocation. The minors are not registered or assigned an ID. This is still postponed to device-registration. While at it, remove the superfluous output-parameter in drm_get_minor(). The reason for this early allocation is to make dev->primary/control/render available atomically. So once the device is alive, all of them are already set and we never have the situation where one of them is set after another (they're either NULL or set, but never changed). This will eventually allow us to reduce minor-ID allocation to one base-ID instead of a single ID for each. Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 05b701f6f60201c9906167351cce50db2e9db7ae) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: drivers/gpu/drm/drm_stub.c
2014-12-11drm: Improve on minor type helpers v3Thomas Hellstrom2-6/+4
Add a drm_is_legacy() helper, constify argument to drm_is_render_client(), and use / change helpers where appropriate. v2: s/drm_is_legacy/drm_is_legacy_client/ and adapt to new code context. v3: s/legacy_client/primary_client/ Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit 436830571eb9045d563979dc6185b1d5145ca4b6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: Have the crtc code only reference master from legacy nodes v2Thomas Hellstrom1-6/+8
control- and render nodes are intended to be master-less. v2: Replace tests for !legacy with tests for !mode_group for readability. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> (cherry picked from commit 09f308f7b675b692d1c0a451ff02f0fff7846c96) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: Make control nodes master-less v3Thomas Hellstrom2-5/+8
Like for render-nodes, there is no point in maintaining the master concept for control nodes, so set the struct drm_file::master pointer to NULL. At the same time, make sure DRM_MASTER | DRM_CONTROL_ALLOW ioctls are always allowed when called through the control node. Previously the caller also needed to be master. v2: Adapt to refactoring of ioctl permission check. v3: Formatting of logical expression. Use drm_is_control_client() instead of drm_is_control(). Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> (cherry picked from commit ac05dbc57ef2b8709bf48693bb25e16a63e8e71f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: Break out ioctl permission check to a separate function v2Thomas Hellstrom1-38/+75
Helps reviewing and understanding these checks. v2: Remove misplaced newlines. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> (cherry picked from commit c2667355619572c9324916b62b4f6608a56de031) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm/irq: track the irq installed in drm_irq_install in dev->irqDaniel Vetter1-7/+11
To get rid of the dev->bus->get_irq callback we need to pass in the desired irq explicitly into drm_irq_install. To avoid having to do the same for drm_irq_unistall just track it internally. That leaves drivers with less room to botch things up. v2: Add the hunk lost in an earlier patch to this one (Thierry). v3: Fix up the totally fumbled logic in drm_irq_install and use the local variable consistently. Spotted by both Thierry and Laurent. Shame on me for failing to properly test the rebase version of this patch ... Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 7c1a38e391745cca72627979e5e02924bed5b43d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: skip redundant minor-lookup in open pathDavid Herrmann1-12/+7
The drm_open_helper() function is only used internally for drm_open() so we can safely pass in the minor-object directly instead of the minor-id. This way, we avoid the additional minor IDR lookup, which we already do twice in drm_stub_open() and drm_open(). Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit f4aede2e3291896e7cb42755ecc5b6815b6cac97) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: use anon-inode instead of relying on cdevsDavid Herrmann14-53/+43
DRM drivers share a common address_space across all character-devices of a single DRM device. This allows simple buffer eviction and mapping-control. However, DRM core currently waits for the first ->open() on any char-dev to mark the underlying inode as backing inode of the device. This delayed initialization causes ugly conditions all over the place: if (dev->dev_mapping) do_sth(); To avoid delayed initialization and to stop reusing the inode of the char-dev, we allocate an anonymous inode for each DRM device and reset filp->f_mapping to it on ->open(). Signed-off-by: David Herrmann <dh.herrmann@gmail.com> (cherry picked from commit 6796cb16c088905bf3af40548fda68c09e6f6ee5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-11drm: add minor-lookup/release helpersDavid Herrmann2-23/+66
Instead of accessing drm_minors_idr directly, this adds a small helper to hide the internals. This will help us later to remove the drm_global_mutex requirement for minor-lookup. Furthermore, this also makes sure that minor->dev is always valid and takes a reference-count to the device as long as the minor is used in an open-file. This way, "struct file*"->private_data->dev is guaranteed to be valid (which it has to, as we cannot reset it). Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1616c525b98deb34b8f4b02eccf0ae3a1310fa27) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05drm/rcar-du: Add OF supportLaurent Pinchart7-106/+344
Implement support for the R-Car DU DT bindings in the rcar-du DRM driver. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 96c026911890ceacee238da00a0b140ad634cc43) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05drm/rcar-du: Use struct videomode in platform dataLaurent Pinchart2-12/+4
In preparation for DT support where panel timings will be described by a DRM-agnostic video mode, replace the struct drm_mode_modeinfo instance in the panel platform data with a struct videomode. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 1d46fea7d091f9dc2d4fd3fcb9f0117ca288f9a5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05drm/rcar-du: Update copyright noticeLaurent Pinchart18-18/+18
The "Renesas Corporation" listed in the copyright notice doesn't exist. Replace it with "Renesas Electronics Corporation" and update the copyright years. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 36d50464e05f498fa4024270e091b306af5de898) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05[media] of: move common endpoint parsing to drivers/ofPhilipp Zabel4-19/+37
This patch adds a new struct of_endpoint which is then embedded in struct v4l2_of_endpoint and contains the endpoint properties that are not V4L2 (or even media) specific: the port number, endpoint id, local device tree node and remote endpoint phandle. of_graph_parse_endpoint parses those properties and is used by v4l2_of_parse_endpoint, which just adds the V4L2 MBUS information to the containing v4l2_of_endpoint structure. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> (cherry picked from commit f2a575f67695dcba9062acd666ae5aab2380b95c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05watchdog: iTCO_wdt: Fix the parent deviceJean Delvare1-1/+1
The watchdog's parent is iTCO_wdt (the platform device) not lpc_ich (the PCI device.) Setting the parent right makes it much easier for the user to figure out which driver/module is handling the watchdog device node. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> (cherry picked from commit c90789baa8cec363093c5ec292c989b6f22d8f32) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05watchdog: fix checkpatch warnings and errorJingoo Han6-14/+13
Fix the following checkpatch warnings and error: WARNING: quoted string split across lines WARNING: braces {} are not necessary for single statement blocks WARNING: __initdata should be placed after ibmasr_id_table[] WARNING: please, no space before tabs ERROR: do not initialise statics to 0 or NULL Signed-off-by: Jingoo Han <jg1.han@samsung.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> (cherry picked from commit 5f5e19093b2fa592720810154f15ffe51aa9277f) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05watchdog: iTCO_wdt: Add support for v3 siliconPeter Tyser1-55/+82
Some new Atom's, eg Avoton and Bay Trail, have slightly different iTCO functionality: - The watchdog timer ticks at 1 second instead of .6 seconds - Some 8 and 16-bit registers were combined into 32-bit registers - Some registers were removed (DAT_IN, DAT_OUT, MESSAGE) - The BOOT_STS field in TCO_STS was removed - The NO_REBOOT bit is in the PMC area instead of GCS Update the driver to support the above changes and bump the version to 1.11. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 24b3a1670b47e75be633ae0b5c07945c446f9d29) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add Device IDs for Intel 9 Series PCHJames Ralston1-0/+11
This patch adds the LPC Device IDs for the Intel 9 Series PCH. Signed-off-by: James Ralston <james.d.ralston@intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit fea31042ff613145c7784e2ce454bf3c151b97ba) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add PCI ID for Intel BraswellAlan Cox1-0/+6
This is the same as used in Baytrail so add the new PCI ID to the driver's list of supported IDs. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit ff0c9da013d2c9f1ec232926a54e536ab48c6678) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Enable GPIO for Panther PointGuenter Roeck1-0/+1
Panther Point PCH GPIO configuration is similar to V5 PCHs. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 62cf2cdb99c7e870ab857bdd617e728790f8c43c) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add support for Intel Bay Trail SoCPeter Tyser1-0/+6
This patch adds the LPC Controller Device IDs for Watchdog and GPIO for the Intel Bay Trail Atom SoC. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 6111ec70357022ccd037399c13f69900431850b4) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add support for NM10 GPIOPeter Tyser1-0/+1
The NM10's GPIO is compatible with ICH v7 GPIO. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Dan Weinlader <danw@vs-networks.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 117bbfe25cfc2e968be1f7976ac460a5cd3d734e) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Change Avoton to iTCO v3Peter Tyser1-1/+1
The register layout of the Avoton is compatible with the iTCO v3 register layout. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit c48cf59878685cc06b71bb2a3ca17b61103c8de7) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add support for iTCO v3Peter Tyser1-14/+67
Some newer Atom CPUs, eg Avoton and Bay Trail, use slightly different register layouts for the iTCO than the current v1 and v2 iTCO. Differences from previous iTCO versions include: - The ACPI space is enabled in the "ACPI base address" register instead of the "ACPI control register" - The "no reboot" functionality is set in the "Power Management Configuration" register instead of the "General Control and Status" (GCS) register or PCI configuration space. - The "ACPI Control Register" is not present on v3. The "Power Management Configuration Base Address" register resides at the same address is Avoton/Bay Trail. To differentiate these newer chipsets create a new v3 iTCO version and update the MFD driver to support them. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit eb71d4dec4a5e010e34b9d7afdb5af41884c388e) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Remove lpc_ich_cfg struct usePeter Tyser1-31/+32
Future chipsets will use different register layouts that don't map cleanly to the lpc_ich_cfg fields. Remove the lpc_ich_cfg struct and add explicit fields to the higher level lpc_ich_priv structure. This change should have no functional impact. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 429b941abd503c8936e116c819362323aafdbd50) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Only configure watchdog or GPIO when presentPeter Tyser1-6/+10
Some chipsets don't currently have GPIO support enabled. For these chipsets don't go through the process of initializing the GPIO region. Make the same change for the watchdog initialization for chipsets which may not enable the WDT in the future. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit f0776b8ce03ceb638c51b62f324844c71c446600) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Fix ACPI enable bitmaskPeter Tyser1-1/+1
The original bitmask of 0x10 was incorrect and would result in a write to a reserved read-only bit instead of enabling the ACPI I/O region. Update it to the proper value of 0x80. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested-by: Rajat Jain <rajatjain@juniper.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit f5dccb15877b82a40950c6f752d5345c86189fc9) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: lpc_ich: Add support for Intel Avoton GPIOsVincent Donnefort1-0/+1
Signed-off-by: Vincent Donnefort <vdonnefort@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit facd9939403cb5769190054a600474399e776e3a) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05mfd: Delete non-required instances of include <linux/init.h>Paul Gortmaker21-21/+0
None of these files are actually using any __init type directives and hence don't need to include <linux/init.h>. Most are just a left over from __devinit and __cpuinit removal, or simply due to code getting copied from one driver to the next. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry picked from commit 3c699105d0376c14940ce7cf561754a94cdff8dd) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05i2c: i801: Add PCI ID for Intel BraswellAlan Cox1-0/+2
The SMBus host controller is the same as used in Baytrail so add the new PCI ID to the driver's list of supported IDs. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 39e8e30ee544a62c148033d64a979028b958ca05) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05i2c: i801: Add device ID for Intel Wildcat Point PCHJean Delvare2-0/+4
Signed-off-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit b299de839157852c563b9f133c8b7e630545a9c3) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05i2c: i801: Fix the alignment of the device tableJean Delvare1-68/+68
A long name broke the alignment, shift the columns a bit to fix it and make the table look nice again. While we're here, switch to the standard comment style to make checkpatch happy, and use tabs instead of spaces for column alignment. Signed-off-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit ce3161106ab57afbfbe1c33d95bf4a569405983a) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05i2c: remove DEFINE_PCI_DEVICE_TABLE macroJingoo Han20-20/+20
Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro is not preferred. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 392debf11656dedd79da44416747d5b2b1747f5e) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: use c99 initializers in structuresJulia Lawall1-2/+2
Use c99 initializers for structures. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @decl@ identifier i1,fld; type T; field list[n] fs; @@ struct i1 { fs T fld; ...}; @bad@ identifier decl.i1,i2; expression e; initializer list[decl.n] is; @@ struct i1 i2 = { is, + .fld = e - e ,...}; // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> [thierry.reding: rebased and applied same fix for Braswell] Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit b2b7adeb21745266326d453b95e5d0b1b9cb1d4e) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: Fix build failure on PowerPCThierry Reding1-0/+1
An x86 build seems to pull in the linux/io.h include indirectly. On PowerPC that doesn't happen and the build breaks due to the readl() and writel() functions not being declared. Fix this by explicitly including linux/io.h. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit e0c86a3b63e948e51a47d17382c7cd8711d19750) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: Properly split driver to partsAndy Shevchenko6-127/+195
The driver consists of core, PCI, and platform parts. It would be better to split them into separate files. The platform driver is now called pwm-lpss-platform. Thus, previously set CONFIG_PWM_LPSS=m is not enough to build it. But we are on the safe side since it seems no one from outside Intel is using it for now. While here, move to use macros module_pci_driver() and module_platform_driver(). Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by: Alan Cox <alan@linux.intel.com> [thierry.reding: change select to depends on PWM_LPSS, cleanup] Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit c558e39e14c2372394f49e07fbe94e9708b615cb) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: Add ACPI and PCI IDs for Intel BraswellAlan Cox1-0/+8
This is pretty much the same as Baytrail PWM. Only difference is that the input clock runs on different frequency. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit 373c57829a3f9da1405b1fbd3d17e50f8e1f476e) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: remove dependency on clk frameworkHeikki Krogerus1-22/+10
Unlike other Intel LPSS devices, the PWM does not have the clock dividers or the gate. All we get from the clock is the rate. Since PCI case uses the driver data to get the rate, we can drop the clk and use the same data also in case of ACPI. The frequency is the same. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Chew, Chiau Ee <chiau.ee.chew@intel.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit 65accd87381ed96bf8893124b149bae08edd2740) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: Fix const qualifier and sparse warningsThierry Reding1-2/+2
Fixes the following warnings reported by the 0-DAY kernel build testing backend: drivers/pwm/pwm-lpss.c: In function 'pwm_lpss_probe_pci': >> drivers/pwm/pwm-lpss.c:192:2: warning: passing argument 3 of 'pwm_lpss_probe' discards 'const' qualifier from pointer target type [enabled by default] lpwm = pwm_lpss_probe(&pdev->dev, &pdev->resource[0], info); ^ drivers/pwm/pwm-lpss.c:130:30: note: expected 'struct pwm_lpss_boardinfo *' but argument is of type 'const struct pwm_lpss_boardinfo *' static struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, ^ >> drivers/pwm/pwm-lpss.c:143:28: sparse: incorrect type in return expression (different address spaces) drivers/pwm/pwm-lpss.c:143:28: expected struct pwm_lpss_chip * drivers/pwm/pwm-lpss.c:143:28: got void [noderef] <asn:2>*regs >> drivers/pwm/pwm-lpss.c:192:63: sparse: incorrect type in argument 3 (different modifiers) drivers/pwm/pwm-lpss.c:192:63: expected struct pwm_lpss_boardinfo *info drivers/pwm/pwm-lpss.c:192:63: got struct pwm_lpss_boardinfo const *[assigned] info drivers/pwm/pwm-lpss.c: In function 'pwm_lpss_probe_pci': drivers/pwm/pwm-lpss.c:192:2: warning: passing argument 3 of 'pwm_lpss_probe' discards 'const' qualifier from pointer target type [enabled by default] lpwm = pwm_lpss_probe(&pdev->dev, &pdev->resource[0], info); ^ drivers/pwm/pwm-lpss.c:130:30: note: expected 'struct pwm_lpss_boardinfo *' but argument is of type 'const struct pwm_lpss_boardinfo *' static struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, ^ Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit 89c0339e0aa097384b3efed894b23820814c21d3) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: lpss: Add support for PCI devicesAlan Cox1-31/+130
Not all systems enumerate the PWM devices via ACPI. They can also be exposed via the PCI interface. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Chew, Chiau Ee <chiau.ee.chew@intel.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit 093e00bb3f82f3c67e2d1682e316fc012bcd0d92) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05pwm: add support for Intel Low Power Subsystem PWMMika Westerberg3-0/+194
Add support for Intel Low Power I/O subsystem PWM controllers found on Intel BayTrail SoC. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Chew, Kean Ho <kean.ho.chew@intel.com> Signed-off-by: Chang, Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com> Signed-off-by: Chew, Chiau Ee <chiau.ee.chew@intel.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com> (cherry picked from commit d16a5aa9e821633a3095d7a88cd1d2cd108bf966) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
2014-12-05of/fdt: update of_get_flat_dt_prop in prep for libfdtRob Herring1-16/+17
Make of_get_flat_dt_prop arguments compatible with libfdt fdt_getprop call in preparation to convert FDT code to use libfdt. Make the return value const and the property length ptr type an int. Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Michal Simek <michal.simek@xilinx.com> Tested-by: Grant Likely <grant.likely@linaro.org> Tested-by: Stephen Chivers <schivers@csc.com> (cherry picked from commit 9d0c4dfedd96ee54fc075b16d02f82499c8cc3a6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: arch/arm/plat-samsung/s5p-dev-mfc.c arch/powerpc/platforms/powernv/opal.c drivers/of/fdt.c drivers/of/of_reserved_mem.c
2014-12-05clk: add clock-indices supportBen Dooks1-1/+19
Add a property called clock-indices to allow clock-output-names to be used where the index used to lookup a clock is not a 1:1 mapping to the array position in the clock-output-names Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Mike Turquette <mturquette@linaro.org> (cherry picked from commit 7a0fc1a3df82d29e00b4c9f88a6b37450d6711f1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND}Sergei Shtylyov1-2/+2
Bits 8-31 of all registers reflect the value of bits 0-7 on reads and should be 0 on writes, according to the manuals. RCAR_IRQ_ACK_{RECV|SEND} macros have all 1's in bits 8-31, thus going against the manuals, so fix them. Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Cc: stable@vger.kernel.org Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 938916fbb8e8cb67eacb784f4eda17e2950c16c5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05usb: renesas_usbhs: fix the usb_pkt_pop()Yoshihiro Shimoda1-3/+27
This patch fixes the usb_pkt_pop(). If a gadget driver calls usb_ep_dequeue(), this driver will call the usb_pkt_pop(). So, the usb_pkt_pop() should cancel the transaction. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com> (cherry picked from commit 2743e7f90dc08282d027dbc2f6486f5cb85aa493) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05usb: renesas_usbhs: fix the condition of is_done in usbhsf_dma_push_doneYoshihiro Shimoda1-2/+15
This patch fixes the condition of is_done in usbhsf_dma_push_done(). This function will be called after a transmission finished by DMAC. So, the function should check if the transmission packet is short packet or not. Also the function should call try_run to send the zero packet by the pio handler if the "*is_done" is not set. Otherwize, the transaction will not finish if a gadget driver sets the "zero" flag in a transmission. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com> (cherry picked from commit c0ed8b23b257a84d103764cdbd490ee5e2749da3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05usb: renesas_usbhs: protect mod->irq_{bemp,brdy}sts by spin lockYoshihiro Shimoda1-0/+5
This patch protects the mod->irq_bempsts and mod->irq_brdysts by spin lock in the usbhs_status_get_each_irq() because other functions will write them during spin lock. Otherwise, the driver will clears the BRDYSTS and/or BEMPSTS wrongly, and then, the transaction will not finish. Also since the driver should use the INTSTS0 and BRDYSTS and BEMPSTS as the same timing, the patch protects them. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com> (cherry picked from commit c4d8199ba1a7aa390b06db23f4532e2c1875aefb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05usb: renesas_usbhs: fix the behavior of some usbhs_pkt_handleYoshihiro Shimoda3-1/+41
Some gadget drivers will call usb_ep_queue() more than once before the first queue doesn't finish. However, this driver didn't handle it correctly. So, this patch fixes the behavior of some usbhs_pkt_handle using the "running" flag. Otherwise, the oops below happens if we use g_ncm driver and when the "iperf -u -c host -b 200M" is running. Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 80000007 [#1] SMP ARM Modules linked in: usb_f_ncm g_ncm libcomposite u_ether CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.17.0-rc1-00008-g8b2be8a-dirty #20 task: c051c7e0 ti: c0512000 task.ti: c0512000 PC is at 0x0 LR is at usbhsf_pkt_handler+0xa8/0x114 pc : [<00000000>] lr : [<c0278fb4>] psr: 60000193 sp : c0513ce8 ip : c0513c58 fp : c0513d24 r10: 00000001 r9 : 00000193 r8 : eebec4a0 r7 : eebec410 r6 : eebe0c6c r5 : 00000000 r4 : ee4a2774 r3 : 00000000 r2 : ee251e00 r1 : c0513cf4 r0 : ee4a2774 Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com> (cherry picked from commit 8355b2b3082d302091506703d2e4e239f7deed7f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2014-12-05net: sh_eth: fix driver dependenciesBartlomiej Zolnierkiewicz1-0/+1
Renesas SuperH Ethernet support should be available only on Renesas ARM SoCs and SuperH architecture. Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Cc: Simon Horman <horms@verge.net.au> Cc: Magnus Damm <magnus.damm@gmail.com> Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit f6ec9c335b502d8011971d07508589d212cb3c93) Signed-off-by: Simon Horman <horms+renesas@verge.net.au>