Commit graph

589004 commits

Author SHA1 Message Date
Linux Build Service Account
14f6942674 Merge "USB: dwc3: msm: Fix error handling with dwc3_msm_ep_queue()" 2017-04-27 16:52:20 -07:00
Chris Lew
b9d9a75d24 soc: qcom: ipc_router_mhi_xprt: Handle xfer event in atomic context
The MHI driver requires the MHI_CB_XFER event handling be atomic.
This change makes the addr map locks into spinlocks so sleep is
avoided while processing the XFER event.

CRs-Fixed: 1089824
Change-Id: I7bd8f606f92095bb47741aa54a846b687fe948b9
Signed-off-by: Chris Lew <clew@codeaurora.org>
2017-04-27 16:48:36 -07:00
Alex Sarraf
94432569a4 input: misc: hbtp-input: Support for FB_BLANK_NORMAL event
Add support for handling FB_BLANK_NORMAL event.

Change-Id: Ifd3c1c1eb2e1101bfcd354252711eb67fc362c57
Signed-off-by: Alex Sarraf <asarraf@codeaurora.org>
2017-04-27 14:11:29 -07:00
Linux Build Service Account
0abd412d83 Merge "ARM: dts: msm: Enable KPDPWR software debounce for PM660" 2017-04-27 07:07:01 -07:00
Linux Build Service Account
25bccae9ef Merge "ARM: dts: msm: add support for truly amoled panel on sdm660 and sdm630" 2017-04-27 07:07:00 -07:00
Linux Build Service Account
b22e2a0488 Merge "msm: mdss: enable backlight gpio after commit is done" 2017-04-27 07:06:59 -07:00
Linux Build Service Account
5a2c0c09ea Merge "msm: sde: fix to handle invalid format in sde rotator" 2017-04-27 07:06:58 -07:00
Linux Build Service Account
d8a07d98dc Merge "msm: mdss: align the size of smmu domain mapping to 128 MB" 2017-04-27 07:06:56 -07:00
Linux Build Service Account
4467ae74f8 Merge "ARM: dts: msm: Add QRD device nodes for HDK660/630 boards" 2017-04-27 07:06:55 -07:00
Linux Build Service Account
f19ae4651f Merge "msm: dsi: Turn off supplies in low power state" 2017-04-27 07:06:54 -07:00
Linux Build Service Account
86dc30eade Merge "Merge branch 'android-4.4@c71ad0f' into branch 'msm-4.4'" 2017-04-27 07:06:52 -07:00
Linux Build Service Account
9d9b16e021 Merge "msm: ipa: fix IPC low priority logging" 2017-04-27 07:06:51 -07:00
Linux Build Service Account
dfa58d63ec Merge "msm: gsi: fix IPC low priority logging" 2017-04-27 07:06:30 -07:00
Linux Build Service Account
7428b8e268 Merge "diag: Fix to check for command length size" 2017-04-27 07:06:28 -07:00
Linux Build Service Account
99a42662cf Merge "mhi: core: add support for 64bit doorbell address" 2017-04-27 07:06:27 -07:00
Linux Build Service Account
51d0cf59d8 Merge "msm: ipa: Fix race condition between shared memory" 2017-04-27 07:06:25 -07:00
Linux Build Service Account
425b75778a Merge "ashmem: add mutex to set size ioctl" 2017-04-27 07:06:23 -07:00
Linux Build Service Account
42306cb9b7 Merge "msm: mdss: Add check to avoid NULL pointer dereference" 2017-04-27 07:06:21 -07:00
Mayank Rana
0fb60edc71 USB: dwc3: msm: Fix error handling with dwc3_msm_ep_queue()
If __dwc3_msm_ep_queue() fails, then req_complete is freed
but it is not being removed from mdwc->request_list. This
may result into list_add corruption issue on next USB cable
connect when USB endless request is queued. Fix this issue
by deleting req_complete from mdwc->req_complete_list.

CRs-Fixed: 1007571
Change-Id: I00300bc529db75593939a13fbea33acefa717da5
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2017-04-27 04:29:14 -07:00
Ashay Jaiswal
b5d63b4e49 defconfig: enable LCDB support in SDM660-perf_defconfig
LCDB driver exposes regulators to control the positive and
negative voltage bias for the LCD display panel. It also
allows ability to configure for the various bias-voltage
parameters.

Change-Id: I339345520a47c117e37e57a7b1f37ff2aead3dd8
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
2017-04-27 16:37:20 +05:30
Linux Build Service Account
7d78f564eb Merge "input: misc: hbtp_input: filter out fb events" 2017-04-26 18:49:03 -07:00
Anirudh Ghayal
f6f4074ad0 ARM: dts: msm: Enable KPDPWR software debounce for PM660
Enable the SW debounce handling for KPDPWR_N rising edge.

CRs-Fixed: 2032520
Change-Id: Ic099d38abdd7693425d0e2510a0ef8fc52a69b95
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2017-04-27 06:58:23 +05:30
Anirudh Ghayal
dfdb97d8b9 input: qpnp-power-on: Add debounce for KPDPWR_N rising edge
On certain PMICs, an unexpected assertion on KPDPWR_DBC may
be seen during falling edge of KPDPWR_N when it is closer
to the rising edge of SLEEP_CLK. This triggers spurious
KPDPWR interrupts. Handle this by adding a debounce in SW
when the first KPDPWR_N falling edge is seen.

The debounce logic is enabled by the DT property
'qcom,kpdpwr-sw-debounce'.

CRs-Fixed: 2032520
Change-Id: I7655c13bda47fa6e2983650d7bec21e52aa91c2f
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2017-04-27 06:55:50 +05:30
David Zeuthen
b40bc405c2 ANDROID: AVB error handler to invalidate vbmeta partition.
If androidboot.vbmeta.device is set and points to a device with vbmeta
magic, this header will be overwritten upon an irrecoverable dm-verity
error. The side-effect of this is that the slot will fail to verify on
next reboot, effectively triggering the boot loader to fallback to
another slot. This work both if the vbmeta struct is at the start of a
partition or if there's an AVB footer at the end.

This code is based on drivers/md/dm-verity-chromeos.c from ChromiumOS.

Example:

 [    0.000000] Kernel command line: rootfstype=ext4 init=/init console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=uefi_x86_64 enforcing=0 androidboot.selinux=permissive androidboot.debuggable=1 buildvariant=eng dm="1 vroot none ro 1,0 2080496 verity 1 PARTUUID=6779df46-78f6-4c69-bf53-59bb1fbf126b PARTUUID=6779df46-78f6-4c69-bf53-59bb1fbf126b 4096 4096 260062 260062 sha1 4f76354c86e430e27426d584a726f2fbffecae32 7e4085342d634065269631ac9a199e1a43f4632c 1 ignore_zero_blocks" root=0xfd00 androidboot.vbmeta.device=PARTUUID=b865935d-38fb-4c4e-b8b4-70dc67321552 androidboot.slot_suffix=_a androidboot.vbmeta.device_state=unlocked androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=3200 androidboot.vbmeta.digest=14fe41c2b3696c31b7ad5eae7877d7d188995e1ab122c604aaaf4785850b91f7 skip_initramfs
 [...]
 [    0.612802] device-mapper: verity-avb: AVB error handler initialized with vbmeta device: PARTUUID=b865935d-38fb-4c4e-b8b4-70dc67321552
 [...]
 [    1.213804] device-mapper: init: attempting early device configuration.
 [    1.214752] device-mapper: init: adding target '0 2080496 verity 1 PARTUUID=6779df46-78f6-4c69-bf53-59bb1fbf126b PARTUUID=6779df46-78f6-4c69-bf53-59bb1fbf126b 4096 4096 260062 260062 sha1 4f76354c86e430e27426d584a726f2fbffecae32 7e4085342d634065269631ac9a199e1a43f4632c 1 ignore_zero_blocks'
 [    1.217643] device-mapper: init: dm-0 is ready
 [    1.226694] device-mapper: verity: 8:6: data block 0 is corrupted
 [    1.227666] device-mapper: verity-avb: AVB error handler called for PARTUUID=b865935d-38fb-4c4e-b8b4-70dc67321552
 [    1.234308] device-mapper: verity-avb: invalidate_vbmeta: found vbmeta partition
 [    1.235848] device-mapper: verity-avb: invalidate_vbmeta: completed.
 [...]

Bug: 31622239
Test: Manually tested (other arch).
Change-Id: Idf6be32d6a3d28e15de9302aa26ad6a516d663aa
Signed-off-by: David Zeuthen <zeuthen@google.com>
Git-commit: 8d6f006d60
Git-repo: https://android.googlesource.com/kernel/common/
[runminw@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
2017-04-26 13:33:51 -07:00
David Zeuthen
330da40c21 ANDROID: Update init/do_mounts_dm.c to the latest ChromiumOS version.
This is needed for AVB integration work.

Bug: 31796270
Test: Manually tested (other arch).
Change-Id: I32fd37c1578c6414e3e6ff277d16ad94df7886b8
Signed-off-by: David Zeuthen <zeuthen@google.com>
Git-commit: 6a6a7657c2
Git-repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
2017-04-26 13:33:24 -07:00
Jordan Crouse
d84fd15df0 msm/drm: Move msm_drm_config configuration into the GPUs
With the upcoming secure code the decision tree for configuration
(deciding where virtual addresses start/stop, etc) is going to get
a bit more complex. Head issues off at the pass by moving the
configuration into the GPU specific code.  This does result in a
bit more code duplication but it is a lot cleaner.

Change-Id: Ic0dedbad57c11a4bba01825214d0a7853ab537ba
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:10 -06:00
Jordan Crouse
8e00aa10d2 msm/drm: Add secure support to GPU IOMMU
Add support for creating a secure domain in the GPU IOMMU. By default
the secure domain is bound to context bank name "gfx3d_secure".

Change-Id: Ic0dedbad19f69ec4175624dc80f2114bfda2e195
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:09 -06:00
Jordan Crouse
0bea8c919a drm/msm: Remove iommu names during attach
None of the existing iommu implementations use the names passed in
at attach time by the API. Save a bit of .data room by removing
the static string definitions and passing NULL to the attach function.

Change-Id: Ic0dedbada9561768b8d9716ea101619e6b549ea4
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:09 -06:00
Jordan Crouse
f0eb0ed585 drm/msm: Add enable/disable hooks for mmu
5XX targets that are using per-process pagetables will need to
keep the IOMMU clocks on the entire time because we don't know
exactly when the GPU might touch it.  That said there are
occassional depencency issues if the clocks are enabled out
of order.  To be certain we should enable the MMU clocks last
and disable them first.  Add enable/disable hooks to the MMU
struct to do this cleanly from the GPU pm_resume / pm_suspend
paths.

Change-Id: Ic0dedbad8e2298e55c90b29eed657baa0933ddcf
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:08 -06:00
Jordan Crouse
4e061d8b60 drm/msm: Refactor GPU IOMMU
Very soon we will be adding support for secure domains and so a bit of
refactoring is needed the GPU IOMMU code:

 * Add support for directly probing the context bank device at create
instead of at attach. This makes it a little bit easier to directly
associate a mmu device with a specific context bank.

 * Specify the domain type at create time. Add a new domain type
MSM_DOMAIN_USER to associate the user domain with the gfx3d_user
context bank.  Also add MSM_DOMAIN_DEFAULT with no context bank
for legacy devices (read MDP4) with only one context bank
to attach to the parent device. Adding a domain type saves us from
having to create N entry points for each domain type.

Note that dynamic domains stay with their own initalization function.
This is because dynamic domains are cloned from the parent domain
so the semantics are too different to try to smash into the generic
functions.

Change-Id: Ic0dedbad41692e776cddc72cda653ae637f9ec77
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:07 -06:00
Jordan Crouse
1576b22ae9 drm/msm: Finish consolidating the address space code
Now that the SMMU/IOMMU differences have been resolved the only delta
between the SMMU and the IOMMU address space implementations is the
actual address space allocation which we can work around by assuming
the caller doesn't want address generation if they specify the same
start and end address (i.e. 0).

With that optimization we can get rid of the address space
sub functions and a bunch of otherwise duplicated code.

Change-Id: Ic0dedbaddef0fcd3a8f39e30f95c71245d84f111
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:06 -06:00
Jordan Crouse
438cdcdae0 drm/msm: Get rid of the MMU ->map_dma_buf and ->unmap_dma_buf funcs
Finish consolidating the MMU map and unmap operations into a single
function. By passing in the meta token to map/unmap the specific
SMMU operations can make a local decision as to which function to
call.

Change-Id: Ic0dedbad52aac6ed1317411b2667755794d1818f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:06 -06:00
Jordan Crouse
82fbc52e90 drm/msm: Consoldate mmu ->map and mmu ->map_sg
For all intents and purposes the mmu ->map function has used a
scatter gather list for some time. Drop the pretense and just
make both the SMMU and IOMMU flavors use the sg flavor of their
respective iommu API functions. As a result we can drop the
map_sg hooks in the SMMU driver and get rid of a considerable
amount of re-invented wheels in the IOMMU driver.

Change-Id: Ic0dedbadc4724c8ae389892fb85610435c5c08cf
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:05 -06:00
Jordan Crouse
7af30a44e9 drm/msm: Set IOMMU flags in the IOMMU specific code
Pass the bo flags all the way down to the iommu map code and
translate into the IOMMU flags right before mapping. This crosses the
streams a bit by moving BO level knowledge all the way down into the
MMU driver but it removes IOMMU specific knowledge from the address
space level which will be important when the address space code for
the GPU and the display are merged into one.

Change-Id: Ic0dedbad256f8986658bbe50fc2e2bd4051b7a7c
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:08:04 -06:00
Dan Carpenter
b54b359084 drm/msm: return -EFAULT if copy_from_user() fails
copy_from_user_inatomic() is actually a local function that returns
-EFAULT or positive values on error.  Otherwise copy_from_user() returns
the number of bytes remaining to be copied.  We want to return -EFAULT
here.

I removed an unlikely() because we just did a copy_from_user()
so I don't think it can possibly make a difference.

Change-Id: Ic0dedbad3437020c12053b6d93276a4dd24a577a
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Git-commit: 21c42da18ef128ca8fb4cc4ead888f5c61e3916a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[jcrouse@codeaurora.org: fix minor merge conflict and checkpatch errors]
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 12:07:57 -06:00
Jordan Crouse
095e8c4885 drm/msm: Safely skip holes in the counter group lists
For backwards compatibility the counter group list has some built
in gaps that return NULL when queried.  Make sure that all the
functions that query the list are able to handle a NULL pointer.

Change-Id: Ic0dedbadd10ccf3a3b9b1f1b035a46a4f7ee8493
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 10:18:02 -06:00
Jordan Crouse
00ca56e448 ARM: dts: msm: Remove I/O coherence for the GPU
I/O coherence has some limitations that make it less preferable than
the usermode cache operations.  Given these limitations the user mode
driver teams have requested that I/O coherence be disabled.

Change-Id: Ic0dedbadbc10b3a6239e20df8b527a5738a1a3a4
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 10:18:01 -06:00
Jordan Crouse
f567fc12bf drm/msm: Add explicit sync operations
Add sync operations to give the user more control
over the behavior of cached buffers.

Change-Id: Ic0dedbad67e19a6b30b2cc5f6b2c7bbe52c2b708
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-04-26 10:17:55 -06:00
Linux Build Service Account
b1980b6bfe Merge "msm: camera: isp: Enable recovery for stats in out of sync case" 2017-04-26 06:33:53 -07:00
Linux Build Service Account
5c863c42bf Merge "btfm: set watermark level to 3 for wcn3990 slimbus FM slave ports" 2017-04-26 06:33:52 -07:00
Linux Build Service Account
d6448aef73 Merge "esoc: remove reduntant return_esoc_udev() fn call" 2017-04-26 06:33:51 -07:00
Linux Build Service Account
e92c6a2322 Merge "defconfig: msm: Enable cache dump and common log in perf build" 2017-04-26 06:33:50 -07:00
Linux Build Service Account
4d68ab6fd6 Merge "power: qpnp-fg-gen3: configure ESR FCC based on Qnovo enable status" 2017-04-26 06:33:49 -07:00
Linux Build Service Account
1399da4328 Merge "msm: camera: Fix kernel overwrite GET_BUF_BY_IDX ioctl" 2017-04-26 06:33:48 -07:00
Linux Build Service Account
f8f13e5308 Merge "Revert "soc:qcom: Synchronize service notifier task's"" 2017-04-26 06:33:47 -07:00
Linux Build Service Account
fa3c35e909 Merge "ASoC: msm: qdsp6v2: Add support for speaker swap" 2017-04-26 06:33:45 -07:00
Linux Build Service Account
f4300126c7 Merge "Revert "spi: spi_qsd: Check device state during set_cs call"" 2017-04-26 06:33:44 -07:00
Lokesh Kumar Aakulu
2fac5aa034 msm: camera: isp: Enable recovery for stats in out of sync case
When the stats go out of sync across the 2 VFEs, don't treat it
as a fatal error but allow for recovery.

Change-Id: I5ef16b3e823cec9698d3ee0627335653f13fd60d
Signed-off-by: Lokesh Kumar Aakulu <lkumar@codeaurora.org>
2017-04-26 03:48:09 -07:00
Ashay Jaiswal
d1f5c07537 power: smb-lib: Fix charger type reporting
Charger type gets updated in 'smblib_update_usb_type' function
and this should only be called after completion of APSD.
Update the calling sites of 'smblib_update_usb_type' to use
'smblib_get_apsd_result' instead of 'smblib_update_usb_type'.
This ensures charger type doesn't get updated inadvertently.

CRs-Fixed: 2038837
Change-Id: Iaa380c8f02bb71ad0f4367c16ec39d86d825dfa2
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
2017-04-26 15:32:33 +05:30
Utkarsh Saxena
36dfd73961 msm: ipa: Fix race condition between shared memory
Protect the common shared wlan_comm_desc_list with
spin lock to avoid the race condition.

Change-Id: I02ef6c6b663340711e0e2f766424d642aaa8d7af
Acked-by: Mohammed Javid <mjavid@qti.qualcomm.com>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
2017-04-26 15:06:09 +05:30