]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/log
mirror_ubuntu-artful-kernel.git
6 years agodrm/mipi_dsi: Get DSI host by DT device node
Archit Taneja [Fri, 4 Sep 2015 10:30:55 +0000 (16:00 +0530)]
drm/mipi_dsi: Get DSI host by DT device node

mipi_dsi_devices are inherently aware of their host because they
share a parent-child hierarchy in the device tree.

Non-dsi drivers that create a dummy dsi device don't have this data.
In order to get this information, they require to a phandle to the dsi
host in the device tree.

Maintain a list of all the hosts DSI that are currently registered.

This list will be used to find the mipi_dsi_host corresponding to the
device_node passed in of_find_mipi_dsi_host_by_node.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agodrm/mipi_dsi: Create dummy DSI devices
Archit Taneja [Mon, 7 Sep 2015 05:08:51 +0000 (10:38 +0530)]
drm/mipi_dsi: Create dummy DSI devices

We can have devices where the data bus is MIPI DSI, but the control bus
is something else (i2c, spi etc). A typical example is i2c controlled
encoder bridge chips.

Such devices too require passing DSI specific parameters (number of data
lanes, DSI mode flags, color format etc) to their DSI host. For a device
that isn't 'mipi_dsi_device', there is no way of passing such parameters.

Provide the option of creating a dummy DSI device. The main purpose of
this would be to attach to a DSI host by calling mipi_dsi_attach, and
pass DSI params.

Create mipi_dsi_new_dummy for creating a dummy dsi device. The driver
calling this needs to be aware of the mipi_dsi_host it wants to attach
to, and also the DSI virtual channel the DSI device intends to use.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agodrm/mipi_dsi: check for used channels
Archit Taneja [Wed, 19 Aug 2015 12:01:23 +0000 (17:31 +0530)]
drm/mipi_dsi: check for used channels

We don't check whether a previous mipi_dsi_device under the same host
shares the same virtual channel.

Before registering, check if any of the registered devices doesn't
already have the same virtual channel.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agodrm/mipi_dsi: refactor device creation
Archit Taneja [Wed, 19 Aug 2015 10:44:09 +0000 (16:14 +0530)]
drm/mipi_dsi: refactor device creation

Create a helper function mipi_dsi_device_new which takes in struct
mipi_dsi_device_info and the mipi_dsi_host. This will be called by
of_mipi_dsi_device_add.

Instead of calling device_initialize and device_add separately, merge
it into a single device_register call. This will remove the need of
having two separate funcs mipi_dsi_device_alloc and mipi_dsi_device_add.

The reason for creating mipi_dsi_device_new is that it can also be used
as a standalone way for creating a dsi device that isn't available via
DT.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agoarm64: fixup for mm renames
Srinivas Kandagatla [Tue, 5 Jan 2016 12:09:01 +0000 (12:09 +0000)]
arm64: fixup for mm renames

__GFP_WAIT was renamed for __GFP_RECLAIM and the gfpflags_allow_blocking()
helper was added.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dma-mapping: map sg lists into the SMMU as virtually contiguous
Mitchel Humpherys [Tue, 28 Oct 2014 20:45:02 +0000 (13:45 -0700)]
arm64: dma-mapping: map sg lists into the SMMU as virtually contiguous

In arm_iommu_map_sg, currently we map each individual link in the given
scatterlist into the SMMU individually such that they may or may not be
virtually contiguous.  However, in most (all?) of our use cases we
actually want the entire sg list mapped into the SMMU as a single
contiguous range.  Use iommu_map_range to accomplish this.

Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
[Forward Ported this from msm3.14]
Signed-off-by: Sricharan R <sricharan@codeaurora.org>
[added iommu_map_range in generic dma code]
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoarm64: dma-mapping: fix DMA_ATTR_STRONGLY_ORDERED in __get_dma_pgprot
Stanimir Varbanov [Wed, 29 Apr 2015 11:38:01 +0000 (14:38 +0300)]
arm64: dma-mapping: fix DMA_ATTR_STRONGLY_ORDERED in __get_dma_pgprot

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoarm64: mm: Fix a bug in iommu dma-mapping
Sricharan R [Tue, 21 Apr 2015 14:30:37 +0000 (20:00 +0530)]
arm64: mm: Fix a bug in iommu dma-mapping

iommu_alloc_attrs and arm_iommu_mmap_attrs calls
dma_pgprot with device type set to always 'coherent'
which is wrong. Should be based on the device type.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoarm64: dma-mapping: add support for IOMMU mapper
Mitchel Humpherys [Tue, 12 Aug 2014 22:47:23 +0000 (15:47 -0700)]
arm64: dma-mapping: add support for IOMMU mapper

On systems with IOMMUs, it's useful to handle IOMMU mappings in the
dma-mapping layer. This is currently supported on arm but not arm64. Add
support in arm64 by gratuitously lifting most of the IOMMU-related stuff
from dma-mapping.c in arm.

The original arm work was done by Marek Szyprowski in [4ce63fcd919c32:
"ARM: dma-mapping: add support for IOMMU mapper"].

Change-Id: I1c3c8fe15049fe456751074398fd179ebd2ec64e
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
[forward ported from 3.14 tree]
Signed-off-by: R Sricharan <sricharan@codeaurora.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoarm64: Add support for DMA_ATTR_STRONGLY_ORDERED
Laura Abbott [Thu, 17 Jul 2014 23:00:33 +0000 (16:00 -0700)]
arm64: Add support for DMA_ATTR_STRONGLY_ORDERED

Strongly ordered memory prevents speculative accesses among
other features. Add support for this attribute in arm64.

Change-Id: If26459f63edfea3108ad7426e29f98c23b1a07ef
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Conflicts:
arch/arm64/mm/dma-mapping.c
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoarm: Add option to skip buffer zeroing
Laura Abbott [Wed, 6 Aug 2014 02:39:38 +0000 (19:39 -0700)]
arm: Add option to skip buffer zeroing

The DMA framework currently zeros all buffers because it (righfully so)
assumes that drivers will soon need to pass the memory to a device.
Some devices/use case may not require zeroed memory and there can
be an increase in performance if we skip the zeroing. Add a DMA_ATTR
to allow skipping of DMA zeroing.

Note: only the header file was modified to add the enum to allow the code to
compile, however the arm32 implementation was not pulled, and the arm64
implementation is missing as well

Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agocommon: DMA-mapping: Add strongly ordered memory attribute
Laura Abbott [Mon, 29 Oct 2012 20:08:03 +0000 (13:08 -0700)]
common: DMA-mapping: Add strongly ordered memory attribute

Strongly ordered memory is occasionally needed for some DMA
allocations for specialized use cases. Add the corresponding
DMA attribute.

Change-Id: Idd9e756c242ef57d6fa6700e51cc38d0863b760d
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
[ luis: adjuste context after commit a9a62c938441 ("dma-mapping: introduce
  the DMA_ATTR_NO_WARN attribute") has been applied to master ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
6 years agoarm64: defconfig: add qcom specifics
Srinivas Kandagatla [Thu, 26 Mar 2015 11:12:38 +0000 (11:12 +0000)]
arm64: defconfig: add qcom specifics

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: qcom: add cpu operations
Abhimanyu Kapur [Fri, 7 Feb 2014 06:03:02 +0000 (22:03 -0800)]
arm64: qcom: add cpu operations

Add qcom cpu operations for arm-v8 cpus. Implement secondary cpu boot ops
As a part of this change update device tree documentation for:

1. Arm cortex-a ACC device which provides percpu reg
2. Armv8 cortex-a compatible string in arm/cpus.txt

Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Signed-off-by: Kumar Gala <galak@codeaurora.org>
6 years agoarm64: smp: move the pen to a header file
Abhimanyu Kapur [Tue, 18 Feb 2014 17:36:37 +0000 (09:36 -0800)]
arm64: smp: move the pen to a header file

Move the secondary_pen_release variable and the secondary_holding_pen
entry function to asm/smp_plat.h so that the other cpu ops implementations
can share them.

Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Signed-off-by: Kumar Gala <galak@codeaurora.org>
6 years agoarm64: introduce CPU_OF_TABLES for cpu ops selection
Abhimanyu Kapur [Thu, 23 Jan 2014 20:24:33 +0000 (12:24 -0800)]
arm64: introduce CPU_OF_TABLES for cpu ops selection

Add support to arm64 to provide a dt-based method to allow soc-vendors to
supply cpu_ops. Also move psci and smp_spin_table ops to use CPU_OF_TABLES.

Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Signed-off-by: Kumar Gala <galak@codeaurora.org>
6 years agoarm64: defconfig: qcom: Enable restart driver
Ivan T. Ivanov [Fri, 3 Apr 2015 09:56:14 +0000 (12:56 +0300)]
arm64: defconfig: qcom: Enable restart driver

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoARM: cpuidle: Add cpuidle support for QCOM cpus
Lina Iyer [Wed, 25 Mar 2015 20:25:29 +0000 (14:25 -0600)]
ARM: cpuidle: Add cpuidle support for QCOM cpus

Define ARM_QCOM_CPUIDLE config item to enable cpuidle support.

Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
6 years agodmaengine: adm: Start next DMA even if there is no ongoing transaction
Ivan T. Ivanov [Thu, 3 Sep 2015 15:03:35 +0000 (18:03 +0300)]
dmaengine: adm: Start next DMA even if there is no ongoing transaction

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agodmaengine: adm: Don't reset controller during probe
Ivan T. Ivanov [Thu, 3 Sep 2015 15:02:29 +0000 (18:02 +0300)]
dmaengine: adm: Don't reset controller during probe

TODO: check this.

6 years agodmaengine: adm: Use 'soft' flush when stopping DMA
Ivan T. Ivanov [Thu, 3 Sep 2015 14:59:26 +0000 (17:59 +0300)]
dmaengine: adm: Use 'soft' flush when stopping DMA

'Soft' flush will commit current buffer to memory
beffore stopping the engine. Used with peripheral
devices which did not know a priory DMA transfer
lenght, like size of input data in UART driver.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agodmaengine: adm: Fix ADM hardware descriptor creation when flow control is enabled
Archit Taneja [Thu, 21 May 2015 08:42:59 +0000 (14:12 +0530)]
dmaengine: adm: Fix ADM hardware descriptor creation when flow control is enabled

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agodmaengine: Add ADM driver
Andy Gross [Tue, 17 Mar 2015 05:46:12 +0000 (00:46 -0500)]
dmaengine: Add ADM driver

Add the DMA engine driver for the QCOM Application Data Mover (ADM) DMA
controller found in the MSM8x60 and IPQ/APQ8064 platforms.

The ADM supports both memory to memory transactions and memory
to/from peripheral device transactions.  The controller also provides flow
control capabilities for transactions to/from peripheral devices.

The initial release of this driver supports slave transfers to/from peripherals
and also incorporates CRCI (client rate control interface) flow control.

Signed-off-by: Andy Gross <agross@codeaurora.org>
Conflicts:
drivers/dma/Kconfig
drivers/dma/Makefile

6 years agodt/bindings: qcom_adm: Fix channel specifiers
Andy Gross [Tue, 17 Mar 2015 05:46:11 +0000 (00:46 -0500)]
dt/bindings: qcom_adm: Fix channel specifiers

This patch removes the crci information from the dma channel property.  At least
one client device requires using more than one CRCI value for a channel.  This
does not match the current binding and the crci information needs to be removed.

Instead, the client device will provide this information via other means.

Signed-off-by: Andy Gross <agross@codeaurora.org>
6 years agopci: use new of_dma_configure* apis
Srinivas Kandagatla [Tue, 5 Jan 2016 12:26:08 +0000 (12:26 +0000)]
pci: use new of_dma_configure* apis

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoiommu/msm: Fix "scheduling while atomic" bug
Georgi Djakov [Fri, 11 Sep 2015 15:33:57 +0000 (18:33 +0300)]
iommu/msm: Fix "scheduling while atomic" bug

In the msm iommu driver currently we incorrectly use clk_prepare_enable()
and clk_disable_unprepare() functions that are sleeping and should not be
called in atomic context. Fix this by preparing clocks in advance and use
only clk_enable() in atomic context.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agodrm/msm: temp: Add a check to be compatible against both iommuv0/v1
Sricharan R [Thu, 23 Jul 2015 15:35:57 +0000 (21:05 +0530)]
drm/msm: temp: Add a check to be compatible against both iommuv0/v1

msm_iommu_get_ctx is a dummy api in iommu-v0. So check for
the return value to use the correct dev to pass for iommu_attach/deattach.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoiommu: of: Handle IOMMU lookup failure with deferred probing or error
Laurent Pinchart [Thu, 14 May 2015 23:00:09 +0000 (02:00 +0300)]
iommu: of: Handle IOMMU lookup failure with deferred probing or error

Failures to look up an IOMMU when parsing the DT iommus property need to
be handled separately from the .of_xlate() failures to support deferred
probing.

The lack of a registered IOMMU can be caused by the lack of a driver for
the IOMMU, the IOMMU device probe not having been performed yet, having
been deferred, or having failed.

The first case occurs when the device tree describes the bus master and
IOMMU topology correctly but no device driver exists for the IOMMU yet
or the device driver has not been compiled in. Return NULL, the caller
will configure the device without an IOMMU.

The second and third cases are handled by deferring the probe of the bus
master device which will eventually get reprobed after the IOMMU.

The last case is currently handled by deferring the probe of the bus
master device as well. A mechanism to either configure the bus master
device without an IOMMU or to fail the bus master device probe depending
on whether the IOMMU is optional or mandatory would be a good
enhancement.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agoiommu: of: Document the of_iommu_configure() function
Laurent Pinchart [Thu, 14 May 2015 23:00:08 +0000 (02:00 +0300)]
iommu: of: Document the of_iommu_configure() function

The function isn't trivial, document its behaviour.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agodrivers: platform: Configure dma operations at probe time
Laurent Pinchart [Thu, 14 May 2015 23:00:07 +0000 (02:00 +0300)]
drivers: platform: Configure dma operations at probe time

Configuring DMA ops at probe time will allow deferring device probe when
the IOMMU isn't available yet.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agoof: dma: Split of_configure_dma() into mask and ops configuration
Laurent Pinchart [Thu, 14 May 2015 23:00:06 +0000 (02:00 +0300)]
of: dma: Split of_configure_dma() into mask and ops configuration

The of_configure_dma() function configures both the DMA masks and ops.
Moving DMA ops configuration to probe time would thus also delay
configuration of the DMA masks, which might not be safe. To avoid issues
split the configuration in two to allow keeping masks configuration at
device add time and move ops configuration to device probe time.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agoof: dma: Make of_dma_deconfigure() public
Laurent Pinchart [Thu, 14 May 2015 23:00:05 +0000 (02:00 +0300)]
of: dma: Make of_dma_deconfigure() public

As part of moving DMA initializing to probe time the
of_dma_deconfigure() function will need to be called from different
source files. Make it public and move it to drivers/of/device.c where
the of_dma_configure() function is.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agoof: dma: Move range size workaround to of_dma_get_range()
Laurent Pinchart [Thu, 14 May 2015 23:00:04 +0000 (02:00 +0300)]
of: dma: Move range size workaround to of_dma_get_range()

Invalid dma-ranges values should be worked around when retrieving the
DMA range in of_dma_get_range(), not by all callers of the function.
This isn't much of a problem now that we have a single caller, but that
situation will change when moving DMA configuration to device probe
time.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agoarm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()
Laurent Pinchart [Thu, 14 May 2015 23:00:02 +0000 (02:00 +0300)]
arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()

The arch_setup_dma_ops() function is in charge of setting dma_ops with a
call to set_dma_ops(). set_dma_ops() is also called from

- highbank and mvebu bus notifiers
- dmabounce (to be replaced with swiotlb)
- arm_iommu_attach_device

(arm_iommu_attach_device is itself called from IOMMU and bus master
device drivers)

To allow the arch_setup_dma_ops() call to be moved from device add time
to device probe time we must ensure that dma_ops already setup by any of
the above callers will not be overriden.

Aftering replacing dmabounce with swiotlb, converting IOMMU drivers to
of_xlate and taking care of highbank and mvebu, the workaround should be
removed.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
6 years agotemp: Add dummy msm_iommu_get_ctx and fix broken build
Sricharan R [Sat, 8 Aug 2015 05:27:23 +0000 (10:57 +0530)]
temp: Add dummy msm_iommu_get_ctx and fix broken build

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoiommu/msm: Set cacheability attributes without tex remap
Sricharan R [Tue, 11 Aug 2015 18:55:08 +0000 (00:25 +0530)]
iommu/msm: Set cacheability attributes without tex remap

We set only either non-cached or cached. So set them directly
without using TEX remap.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoiommu/msm: Add support for generic master bindings
Sricharan R [Sat, 8 Aug 2015 05:58:29 +0000 (11:28 +0530)]
iommu/msm: Add support for generic master bindings

This adds the xlate callback which gets invoked during
device registration from DT. The master devices gets added
through this.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoiommu/msm: Move the contents from msm_iommu_dev.c to msm_iommu.c
Sricharan R [Fri, 7 Aug 2015 14:25:08 +0000 (19:55 +0530)]
iommu/msm: Move the contents from msm_iommu_dev.c to msm_iommu.c

There are only two functions left in msm_iommu_dev.c. Move it to
msm_iommu.c and delete the file.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoiommu/msm: Add DT adaptation
Sricharan R [Fri, 7 Aug 2015 12:26:48 +0000 (17:56 +0530)]
iommu/msm: Add DT adaptation

The driver currently works based on platform data. Remove this
and add support for DT. A single master can have multiple ports
connected to more than one iommu.

         master
                 |
                |
                |
   ------------------------
           |     |
IOMMU0 IOMMU1
           |   |
      ctx0   ctx1      ctx0   ctx1

This association of master and iommus/contexts were previously
represented by platform data parent/child device details. The client
drivers were responsible for programming all of the iommus/contexts
for the device. Now while adapting to generic DT bindings we maintain the
list of iommus, contexts that each master domain is connected to and
program all of them on attach/detach.

Signed-off-by: Sricharan R <sricharan@codeaurora.org>
6 years agoDOWNSTREAM: drm/msm: use downstream iommu
Rob Clark [Mon, 4 Aug 2014 20:18:14 +0000 (16:18 -0400)]
DOWNSTREAM: drm/msm: use downstream iommu

6 years agoqcom: iommu: Make use of domain_alloc and domain_free
Nicolas Dechesne [Fri, 10 Jul 2015 10:29:35 +0000 (12:29 +0200)]
qcom: iommu: Make use of domain_alloc and domain_free

Implement domain_alloc and domain_free iommu-ops as a
replacement for domain_init/domain_destroy.

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
6 years agoarm64: provide dma cache routines with same API as 32 bit
Larry Bassel [Fri, 17 Jan 2014 18:33:08 +0000 (10:33 -0800)]
arm64: provide dma cache routines with same API as 32 bit

The APIs __dma_inv_range() and __dma_clean_range() were
not exported by the third party patch. Since the functions
starting with underscores are not to be directly used by drivers,
related functions without the underscores are provided
which have the same name and functionality as the 32 bit APIs.

Change-Id: Ie0e681614307d9d9a19e58cacfb9b5dff4528977
Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
arm64: add defines for dmac_*_range for compatibility with arm32

An earlier patch created defines for dma_*_range APIs to be
compatible with arm 32 bit, however it appears
these API names have not (at least yet) appeared there, so
revise the names to dmac_*_range, which is defined
for arm 32 bit so that there is one name defined
for both architectures.

Change-Id: I6456c02bad73fb54a874dc9925d3d43d9b8be2f2
Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoiommu: msm: Invalidate properly from iommu_unmap
Chintan Pandya [Tue, 17 Mar 2015 10:39:19 +0000 (16:09 +0530)]
iommu: msm: Invalidate properly from iommu_unmap

TLB invalidation by VA will work for the given VA and
not the range of VA. So, for a region that spreads
across multiple PTEs, that need to call TLBIVA multiple
times. This is un-optimized.

Anyways, the present implementation also support single
TLBIVA only for the first VA and rest may be kept in
TLB as is. This is a problem. Fix this by upgrading
TLBIVA with TLBIASID which will do invalidation for
all the VAs for matching ASID.

We may still skip fixing this in iommu_map as iommu_map
is still indeed mapping one VA at a time.

Change-Id: I6c833e62fd47d9c11457ef90cdd322b6f751c698
Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>
6 years agoiommu: qcom: v1: fix wrong sg interator
Stanimir Varbanov [Mon, 18 May 2015 11:20:15 +0000 (14:20 +0300)]
iommu: qcom: v1: fix wrong sg interator

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoiommu: qcom: v1: rework secure part and build
Stanimir Varbanov [Tue, 28 Apr 2015 11:06:13 +0000 (14:06 +0300)]
iommu: qcom: v1: rework secure part and build

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoiommu: qcom: forward port iommu v1
Stanimir Varbanov [Fri, 20 Mar 2015 14:49:54 +0000 (16:49 +0200)]
iommu: qcom: forward port iommu v1

This is a forward port of the iommu v1 found on Qualcomm SoC
variants like MSM8974, MSM8226, APQ8084, ARCH_MSM8916

Last commit on msm-3.10 is
0afc06718e35b8f12cd7c30a798e51e9cb7d35cf Merge branch
'msm-3.10' of git://codeaurora.org/kernel/msm-3.10 into msm-3.10

Changes made:
 - drop usage of gen_pool_alloc_aligned
 - rename clk and pclk to iface and core
 - delete unused clks and regulators
 - handle EPROBE_DEFER when requesting interrupts

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agosoc: qcom: import socinfo.h
Nicolas Dechesne [Thu, 12 Mar 2015 20:44:22 +0000 (21:44 +0100)]
soc: qcom: import socinfo.h

This is a snapshot as of msm-3.10 commit

acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
                ONESHOT_SYNC for msm8994")

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agoWIP: update iommu header
Rob Clark [Thu, 10 Jul 2014 02:06:31 +0000 (22:06 -0400)]
WIP: update iommu header

This patch is a selective changes picked up from original
"WIP: qcom-iommu-v0 (v3)" patch.

6 years agoarm64: dts: add spmi prefix to regulators
Srinivas Kandagatla [Fri, 8 Jan 2016 18:27:49 +0000 (18:27 +0000)]
arm64: dts: add spmi prefix to regulators

This patch adds prefix to spmi regulators so that it does not conflict
with the smd based regulators.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: move smem node after the soc node
Srinivas Kandagatla [Fri, 8 Jan 2016 17:17:21 +0000 (17:17 +0000)]
arm64: dts: move smem node after the soc node

This patch moves the smem node to after soc node so that the probe order
is met. Without this the system badly carshes.

Investigation is still in progress.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: apq8016-sbc: add regulators support
Srinivas Kandagatla [Fri, 8 Jan 2016 11:56:58 +0000 (11:56 +0000)]
arm64: dts: apq8016-sbc: add regulators support

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: Limit MPP4 high state to 1.8V
Ivan T. Ivanov [Fri, 18 Sep 2015 09:36:40 +0000 (12:36 +0300)]
arm64: dts: qcom: apq8016-sbc: Limit MPP4 high state to 1.8V

96Boards specs require all GPIO signals to be at 1.8V.
Limit MPP4, which is PIN28 on J8, to 1.8V(L5).

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi

6 years agoarm64: dts: qcom: apq8016-sbc: Add Volume Down definitions
Ivan T. Ivanov [Fri, 18 Sep 2015 08:53:42 +0000 (11:53 +0300)]
arm64: dts: qcom: apq8016-sbc: Add Volume Down definitions

Volume Down button events are handled trough RESIN_N
input of the PMIC device. Add required definitions.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: Add Volume Up key device node
Ivan T. Ivanov [Thu, 17 Sep 2015 12:05:42 +0000 (15:05 +0300)]
arm64: dts: qcom: apq8016-sbc: Add Volume Up key device node

VOL/ZOOM+ button on DB410c is connected to
SoC GPIO 104. Add support for it.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi

6 years agoarm64: dts: Align msm8916 cpu thermal trip point ranges
Georgi Djakov [Tue, 24 Nov 2015 13:24:38 +0000 (15:24 +0200)]
arm64: dts: Align msm8916 cpu thermal trip point ranges

Use the same temperature ranges for both CPU thermal sensors
(tsen3 and tsen4). Start cpufreq cooling at 75 degrees and
initiate linux shutdown at 100 degrees.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: msm8916-mdss.dtsi: Add bus scaling properties for mdp
Archit Taneja [Thu, 10 Dec 2015 10:58:02 +0000 (16:28 +0530)]
arm64: msm8916-mdss.dtsi: Add bus scaling properties for mdp

Add bus scaling properties in the mdp DT node so that the mdp client is
registered by the msm bus scaling driver. Pick up the bus scaling vector
properties from the downstream kernel.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agoarm64: apq8016-sbc.dtsi: Add regulators needed by adv7533
Archit Taneja [Thu, 10 Dec 2015 06:09:55 +0000 (11:39 +0530)]
arm64: apq8016-sbc.dtsi: Add regulators needed by adv7533

The adv7533 requires two supplies AVDD and V3P3 fed to it. These
are provided by L6 and L17 voltage regulators. Assing these to
the adv7533 node in DT.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agodts: arm64: qcom: apq8016-sbc: enable vidc and vidc-rproc
Stanimir Varbanov [Mon, 9 Nov 2015 09:12:27 +0000 (11:12 +0200)]
dts: arm64: qcom: apq8016-sbc: enable vidc and vidc-rproc

mark vidc and rproc-vidc dt nodes with status OK

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
6 years agodts: arm64: msm8916: add vidc dt nodes
Stanimir Varbanov [Mon, 7 Dec 2015 10:44:58 +0000 (12:44 +0200)]
dts: arm64: msm8916: add vidc dt nodes

and correct iommu ctx names

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agoarm64: dts: Add rpm_log support
Andy Gross [Tue, 3 Nov 2015 21:04:32 +0000 (15:04 -0600)]
arm64: dts: Add rpm_log support

Signed-off-by: Andy Gross <agross@codeaurora.org>
6 years agoarm64: dts: usb: Add bus scaling suppport
Rajendra Nayak [Tue, 13 Oct 2015 12:08:52 +0000 (17:38 +0530)]
arm64: dts: usb: Add bus scaling suppport

Add msm bus scaling support and hack to request
max bandwith at probe

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
6 years agoarm64: dt: Add msm bus nodes
Andy Gross [Tue, 13 Oct 2015 04:00:42 +0000 (23:00 -0500)]
arm64: dt: Add msm bus nodes

Signed-off-by: Andy Gross <agross@codeaurora.org>
6 years agoWIP:dts: arm64: add q6v5 pil support
Srinivas Kandagatla [Tue, 24 Nov 2015 16:56:56 +0000 (16:56 +0000)]
WIP:dts: arm64: add q6v5 pil support

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agowcn36xx: Update DT to support wcn36xx wifi driver
Yin, Fengwei [Fri, 23 Oct 2015 08:06:34 +0000 (16:06 +0800)]
wcn36xx: Update DT to support wcn36xx wifi driver

Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
6 years agoarm64: dts: remove the #if 0 around bluetooth
Srinivas Kandagatla [Tue, 17 Nov 2015 16:38:25 +0000 (16:38 +0000)]
arm64: dts: remove the #if 0 around bluetooth

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: Fix the hypervisor and tz memory region size
Georgi Djakov [Thu, 24 Sep 2015 18:29:08 +0000 (21:29 +0300)]
arm64: dts: Fix the hypervisor and tz memory region size

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agodts: qcom: Add CoreSight components for MSM8916
Ivan T. Ivanov [Fri, 11 Sep 2015 11:48:23 +0000 (14:48 +0300)]
dts: qcom: Add CoreSight components for MSM8916

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agoarm64: dts: qcom: Add msm8916 CoreSight components
Ivan T. Ivanov [Wed, 29 Apr 2015 07:53:41 +0000 (10:53 +0300)]
arm64: dts: qcom: Add msm8916 CoreSight components

Add initial set of CoreSight components found on Qualcomm's 8x16 chipset.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: qcom: 8x16: Add fixed rate on-board XO oscillator
Georgi Djakov [Thu, 8 Oct 2015 08:51:09 +0000 (11:51 +0300)]
arm64: dts: qcom: 8x16: Add fixed rate on-board XO oscillator

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: add support to analog audio playback
Srinivas Kandagatla [Wed, 14 Oct 2015 10:40:02 +0000 (11:40 +0100)]
arm64: dts: add support to analog audio playback

This patch adds support to analog audio playback.
Only tested with headphones.
TODO: more testing on earphones and speakers.

to play analog audio on headpones:
amixer cset numid=18,iface=MIXER,name='RX1 MIX1 INP1' 'RX1'
amixer cset numid=21,iface=MIXER,name='RX2 MIX1 INP1' 'RX2'
amixer cset numid=5,iface=MIXER,name='RX1 Digital Volume' 60
amixer cset numid=6,iface=MIXER,name='RX2 Digital Volume' 60
amixer cset numid=25,iface=MIXER,name='RDAC2 MUX' 'RX2'
aplay -D hw:0,0 /usr/share/sounds/alsa/*

To play audio on HDMI:
aplay -D hw:0,1 /usr/share/sounds/alsa/*

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: msm8916: add wcd codec support
Srinivas Kandagatla [Wed, 14 Oct 2015 10:32:30 +0000 (11:32 +0100)]
arm64: dts: msm8916: add wcd codec support

This patch adds wcd codec support in the soc layer.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agoarm64: dts: Fix memory region descriptions
Georgi Djakov [Thu, 24 Sep 2015 17:49:03 +0000 (20:49 +0300)]
arm64: dts: Fix memory region descriptions

Update the reserved memory region descriptions.
0x86400000 - hypervisor memory
0x86800000 - adsp memory

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoARM64: dts: Fix the missing usb otg regulators.
Srinivas Kandagatla [Thu, 24 Sep 2015 17:16:16 +0000 (18:16 +0100)]
ARM64: dts: Fix the missing usb otg regulators.

This patch fixes up the usb otg node with correct regulators.
Without this patch the otg on the DB410c is not functional.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
6 years agodts: arm64: apq8016-sbc: enable LS 1.8v regulator by default
Srinivas Kandagatla [Fri, 22 May 2015 07:24:56 +0000 (08:24 +0100)]
dts: arm64: apq8016-sbc: enable LS 1.8v regulator by default

This patch is a temporary fix to enable 1.8v on Low speed expansion on
DB410c board.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
6 years agoarm64: dt: Add WCNSS related nodes
Andy Gross [Tue, 14 Jul 2015 03:47:03 +0000 (22:47 -0500)]
arm64: dt: Add WCNSS related nodes

This patch addes DT nodes for reservered memory, smp2p, wcnss/pronto

Signed-off-by: Andy Gross <agross@codeaurora.org>
6 years agoDT: arm64: add iommu dtsi files
Stanimir Varbanov [Tue, 28 Apr 2015 11:07:43 +0000 (14:07 +0300)]
DT: arm64: add iommu dtsi files

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agoWIP: dt: add support for gpu on msm8916/apq8016
Rob Clark [Wed, 6 May 2015 17:16:10 +0000 (13:16 -0400)]
WIP: dt: add support for gpu on msm8916/apq8016

6 years agoarm64: dts: msm8916: Add cpu cooling maps
Rajendra Nayak [Tue, 2 Jun 2015 05:30:15 +0000 (11:00 +0530)]
arm64: dts: msm8916: Add cpu cooling maps

Add cpu cooling maps for cpu passive trip points. The cpu cooling
device states are mapped to cpufreq based scaling frequencies.

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
6 years agoarm64: dts: Add spmi-regulator nodes for pm8916
Georgi Djakov [Thu, 16 Jul 2015 08:52:38 +0000 (11:52 +0300)]
arm64: dts: Add spmi-regulator nodes for pm8916

Add the necessary nodes for the pm8916 PMIC regulators.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: msm8916: Add thermal zones, tsens and eeprom nodes
Rajendra Nayak [Wed, 8 Jul 2015 09:47:18 +0000 (15:17 +0530)]
arm64: dts: msm8916: Add thermal zones, tsens and eeprom nodes

Add thermal zones, tsens and eeprom nodes

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
6 years agoarm: dts: apq8084: Add thermal zones, tsens and eeprom nodes
Rajendra Nayak [Wed, 8 Jul 2015 09:47:17 +0000 (15:17 +0530)]
arm: dts: apq8084: Add thermal zones, tsens and eeprom nodes

Add thermal zones, tsens and eeprom nodes

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
6 years agoarm: dts: msm8974: Add thermal zones, tsens and eeprom nodes
Rajendra Nayak [Wed, 8 Jul 2015 09:47:15 +0000 (15:17 +0530)]
arm: dts: msm8974: Add thermal zones, tsens and eeprom nodes

Add thermal zones, tsens and eeprom nodes

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
6 years agoarm64: dts: Add cpu-supply properties for cpufreq
Georgi Djakov [Mon, 1 Jun 2015 09:51:33 +0000 (12:51 +0300)]
arm64: dts: Add cpu-supply properties for cpufreq

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: Add CPR DT node for msm8916
Stephen Boyd [Thu, 2 Apr 2015 06:07:52 +0000 (23:07 -0700)]
arm64: dts: Add CPR DT node for msm8916

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: Add clock-latency for msm8916
Georgi Djakov [Tue, 9 Jun 2015 09:13:39 +0000 (12:13 +0300)]
arm64: dts: Add clock-latency for msm8916

Add clock-latency property for msm8916, so that we can use
ondemand governor.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: Add cpufreq-dt support for msm8916
Georgi Djakov [Wed, 20 May 2015 14:32:45 +0000 (17:32 +0300)]
arm64: dts: Add cpufreq-dt support for msm8916

Add a reference to the cpu frequency scaling clock.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: qcom: msm8916: Add A53 DT node
Georgi Djakov [Wed, 22 Apr 2015 13:56:21 +0000 (16:56 +0300)]
arm64: dts: qcom: msm8916: Add A53 DT node

Add node for the A53 clocks, so that the driver can probe
and register the CPU clocks.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: qcom: msm8916: Add RPMCC DT node
Georgi Djakov [Wed, 22 Apr 2015 12:22:12 +0000 (15:22 +0300)]
arm64: dts: qcom: msm8916: Add RPMCC DT node

Add the RPM Clock Controller DT node and include the necessary header
file for clocks.

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: qcom: Enable USB manual pullup on msm8916
Ivan T. Ivanov [Tue, 7 Jul 2015 13:38:06 +0000 (16:38 +0300)]
arm64: dts: qcom: Enable USB manual pullup on msm8916

On msm8916 based chipset vbus is not routed to USB controller/phy
and controller driver therefore enables pull-up explicitly
before starting controller using usbcmd run/stop bit.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: Fix MPP's function used for LED control
Ivan T. Ivanov [Tue, 7 Jul 2015 11:14:39 +0000 (14:14 +0300)]
arm64: dts: qcom: Fix MPP's function used for LED control

The qcom-spmi-mpp driver is now using string "digital" to denote
old "normal" functionality. Update DTS file.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: Enable SD card slot
Ivan T. Ivanov [Mon, 8 Jun 2015 09:57:01 +0000 (12:57 +0300)]
arm64: dts: qcom: apq8016-sbc: Enable SD card slot

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: Fix sdhci pinctrl default state name
Ivan T. Ivanov [Fri, 5 Jun 2015 12:38:47 +0000 (15:38 +0300)]
arm64: dts: qcom: apq8016-sbc: Fix sdhci pinctrl default state name

Pinctrl framework is using "default" string to find and activate
device pin configuration before driver probe method. s/active/default.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: add D+/D- route switch GPIO
Ivan T. Ivanov [Fri, 29 May 2015 12:47:21 +0000 (15:47 +0300)]
arm64: dts: qcom: apq8016-sbc: add D+/D- route switch GPIO

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: Fix apq8016-sbc board USB related pin definitions
Ivan T. Ivanov [Thu, 21 May 2015 06:44:48 +0000 (09:44 +0300)]
arm64: dts: qcom: Fix apq8016-sbc board USB related pin definitions

USB2513B HUB reset line is connected to PMIC GPIO 3 not to GPIO 1.
TC7USB40MU Dual SPDT Switch select input line is connected to PMIC
GPIO 4 not to GPIO 2. Fix this. Remove unused LED nodes.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: qcom: apq8016-sbc: Don't hog client driver pins
Ivan T. Ivanov [Fri, 8 May 2015 09:26:19 +0000 (12:26 +0300)]
arm64: dts: qcom: apq8016-sbc: Don't hog client driver pins

Hogging pins from pinctrl driver prevents client drivers
to probe.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
6 years agoarm64: dts: Add apq8016-sbc hdmi audio support
Srinivas Kandagatla [Wed, 6 May 2015 08:57:34 +0000 (09:57 +0100)]
arm64: dts: Add apq8016-sbc hdmi audio support

This patch adds hdmi audio support to apq8016-sbc board.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agoarm64: sb8016: Add ADV7533 bridge in sbc8016 dtsi
Archit Taneja [Thu, 16 Apr 2015 10:23:07 +0000 (15:53 +0530)]
arm64: sb8016: Add ADV7533 bridge in sbc8016 dtsi

- Add adv7533 bridge child to mdss_dsi
- Add pinmux configs required gpios connected to ADV7533

Signed-off-by: Archit Taneja <architt@codeaurora.org>
6 years agoarm64: msm8916 dtsi: Add mdss support
Archit Taneja [Thu, 16 Apr 2015 10:20:34 +0000 (15:50 +0530)]
arm64: msm8916 dtsi: Add mdss support

Add a DT node for mdss mdp and mdss_dsi and dsi phy. A new dtsi file is created
for this.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

6 years agoARM: dts: Enable SD card (disable vmcc)
Georgi Djakov [Thu, 26 Mar 2015 15:41:01 +0000 (17:41 +0200)]
ARM: dts: Enable SD card (disable vmcc)

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
6 years agoarm64: dts: Add nodes we need for SMP boot
Kumar Gala [Fri, 27 Feb 2015 22:11:57 +0000 (16:11 -0600)]
arm64: dts: Add nodes we need for SMP boot

Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi