Commit graph

594433 commits

Author SHA1 Message Date
Subbaraman Narayanamurthy
703b54ebc4 leds: qpnp-wled: Disable module permanently when OVP fault persists
Currently, auto calibration will be invoked if an OVP fault is
triggered because of an incorrect sink configuration. However,
there are certain hardware platforms where the display panel is
not used. It is hard to differentiate such platforms as they
will be using the same device tree configuration or parameters
related to display panel passed through the bootloader.

Disable the module permanently and also keep the OVP fault
interrupt disabled when a valid sink configuration is not found
by auto calibration.

Change-Id: I302322020e8d6d4f92901dac468602c357967e18
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-10-24 16:40:22 -07:00
Subbaraman Narayanamurthy
f24199bb12 leds: qpnp-wled: Configure WLED1_CTRL_SWITCHING_FREQUENCY selectively
As per the hardware documentation, WLED1_CTRL_SWITCHING_FREQUENCY
register is in logic_rb instead of in periph_rb. With overwrite
bit (bit 7) set, this can change the switching frequency from
1.6 MHz to 800 KHz for AMOLED whenever the module is disabled and
enabled. Fix this by not setting the overwrite bit for AMOLED
panel so that the frequency can be selected internally by the
hardware based on EN_AMOLED configuration.

Change-Id: I1594af40b53f762fa97884c019ad70f24ea78257
CRs-Fixed: 2106094
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-10-24 16:38:52 -07:00
Subbaraman Narayanamurthy
7d1d130a1b leds: qpnp-wled: Improve auto calibration algorithm
If CABC is enabled and auto calibration is attempted, then OVP
fault can be seen even with a valid sink configuration and a
brightness level greater than or equal to 0.4 % dimming. This is
because of the modulation done through CABC pin which if low
enough can cause the brightness level to still go further down.

Fix this by disabling CABC on all sinks before running auto
calibration and re-enable it if the feature is enabled. Also,
modify the auto calibration brightness level to 200 so that the
load increase on WLED_VOUT can bring the voltage below OVP
threshold quick enough on a valid sink configuration.

Finally, disable WLED module before switching the sink
configuration and enable it after configuring sinks.

CRs-Fixed: 2125217
Change-Id: I570dc9eba540cd96328afd7c68f4643a112c4962
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-10-24 16:36:59 -07:00
Subbaraman Narayanamurthy
df035333ce leds: qpnp-wled: Fix parameters passed to of_get_address_byname()
Pass NULL pointer to of_get_address_byname() for size and flags
parameters instead of an integer value 0.

Change-Id: I53984141bb8f1164c27b6a9a5d90853b4d077ee1
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-10-24 16:35:46 -07:00
Anirudh Ghayal
11e17644b7 leds: qpnp-wled: Run auto-calibration during init
If the OVP fault is present during boot-up run
a WLED string auto-calibration.

Change-Id: I4b0e85cd64a1e8bca9bc7de17521d1f83798ed12
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2017-10-24 16:34:20 -07:00
Linux Build Service Account
9551e129dd Merge "cnss2: Decouple WLAN host driver and PCI/MHI for suspend/resume" 2017-10-23 17:16:45 -07:00
Linux Build Service Account
82e598b10a Merge "mmc: core: Prevent accessing user space buffer directly" 2017-10-23 05:47:58 -07:00
Linux Build Service Account
68579162c7 Merge "msm: camera: isp: Initialize the isp clock index before enable" 2017-10-23 05:47:57 -07:00
Linux Build Service Account
0267b3cfac Merge "msm: isp: Clear irq status if irq is set again with same value" 2017-10-23 05:47:56 -07:00
Linux Build Service Account
5de1a28a4b Merge "msm: isp: increase UB size for isp40" 2017-10-23 05:47:55 -07:00
Linux Build Service Account
7ddf625a2f Merge "msm: isp: Fix Ub allocation for image WM" 2017-10-23 05:47:54 -07:00
Linux Build Service Account
3f344fd011 Merge "ARM: dts: msm: Disable ASPM for MDM EP on msm8996 CV2X boards" 2017-10-22 20:29:34 -07:00
Linux Build Service Account
252c16792e Merge "msm: ipa: Set ep delay on rmnet/mbim tether pipe" 2017-10-21 14:11:48 -07:00
Gerrit - the friendly Code Review server
3f7ce4d543 Merge changes into msm-4.4 2017-10-21 13:10:14 -07:00
Linux Build Service Account
812303444b Merge "ASoC: msm: qdsp6v2: Add MM28 and MM29 for record usecase" 2017-10-21 02:30:41 -07:00
Linux Build Service Account
1154a35f64 Merge "ASoC: msm: qdsp6v2: modify API to configure output PCM block" 2017-10-21 02:30:40 -07:00
Linux Build Service Account
2f33324f5d Merge "ASoC: msm: qdsp6v2: Fix information leak in kernel" 2017-10-21 02:30:39 -07:00
Linux Build Service Account
2bd9b02756 Merge "ASoC: msm: Support Secondary TDM RX interface" 2017-10-21 02:30:37 -07:00
Linux Build Service Account
c8463db8f4 Merge "ARM: dts: msm: Support Secondary TDM RX Interface for msm8996" 2017-10-21 02:30:37 -07:00
Linux Build Service Account
1fa2e9357b Merge "soc: qcom: add SMMU support for virtualized audio ION driver" 2017-10-21 02:30:26 -07:00
Linux Build Service Account
044b983514 Merge "ASoC: msm: add soc audio snd virtualization support" 2017-10-21 02:30:25 -07:00
Linux Build Service Account
164f8dcb96 Merge "ARM: dts: msm: add audio ion vm dev on msm8996 vplatform" 2017-10-21 02:30:24 -07:00
Linux Build Service Account
949c55567d Merge "Revert "leds: remove unused driver leds-qpnp-flash.c"" 2017-10-20 16:49:29 -07:00
Linux Build Service Account
e7e32d875f Merge "Revert "power: supply: qcom: remove unused drivers"" 2017-10-20 16:49:28 -07:00
Linux Build Service Account
8fb8de73fa Merge "ARM: dts: msm: Enable MPP06 for graphics support in MSM8996 CV2X" 2017-10-20 16:49:27 -07:00
Linux Build Service Account
9cf08e811e Merge "power: qpnp_smb2: configure to extend DRP.DFP time in try.SNK" 2017-10-20 16:49:18 -07:00
Linux Build Service Account
bd398385b3 Merge "power: smblib: extend wait time after force sink in try.SNK" 2017-10-20 16:49:17 -07:00
Linux Build Service Account
15bfd17433 Merge "power: smblib: SW implementation of typeC try.SNK" 2017-10-20 16:49:16 -07:00
Gustavo Solaira
c0aa964715 ARM: dts: msm: Disable ASPM for MDM EP on msm8996 CV2X boards
Disable L1/L1ss modes for the RC2 link with MDM9x55 EP on
msm8996 CV2X boards to avoid bursty MSI interrupts and
unstable communication channel.

Change-Id: I12549ec37ceda09ebc9104b0182e53efdcfc8d2f
Signed-off-by: Gustavo Solaira <gustavos@codeaurora.org>
2017-10-20 11:38:31 -07:00
Yue Ma
e938800669 cnss2: Decouple WLAN host driver and PCI/MHI for suspend/resume
Decouple WLAN host driver suspend/resume and PCI link and MHI
suspend/resume so that PCI link and MHI can be suspended/resumeed
separately without WLAN host driver.

Change-Id: I82cb7b8b54c61657c5d0bbaead0ffc1c55ecee8d
Signed-off-by: Yue Ma <yuem@codeaurora.org>
2017-10-20 10:33:54 -07:00
Hugh Guan
0ad4818702 ASoC: msm: Support Secondary TDM RX interface
Support Secondary TDM RX interface dai link and export kcontrols to
update Secondary TDM RX interface Channels and Bit Format configuration.

CRs-fixed: 2112052
Change-Id: Idb1d06cd6c0af385a46c775205bb3f6e45d411d7
Signed-off-by: Hugh Guan <hhguan@codeaurora.org>
2017-10-19 22:11:04 -07:00
Hugh Guan
d2ca82a2bc ARM: dts: msm: Support Secondary TDM RX Interface for msm8996
Support Secondary TDM RX Interface for automotive.

CRs-fixed: 2112052
Change-Id: Iae7bde93e8af851e470fb4f81b37d513ce3dfd02
Signed-off-by: Hugh Guan <hhguan@codeaurora.org>
2017-10-19 22:10:31 -07:00
Linux Build Service Account
b99844d8a3 Merge "ALSA: usb-audio: Add length check after string desc copy" 2017-10-18 21:38:46 -07:00
Harry Yang
50f363d768 power: qpnp_smb2: configure to extend DRP.DFP time in try.SNK
When both sides are doing DRP and the other side applies Rd near the end
of PMIC DFP cycle, sometimes, PMIC does not lock on into AttachedWait.SRC
and transitions back into Unattached.SNK.

If a resistance ranging (5.1k,300k) pulldown is applied and then 5.1kohms
pulldown is applied, then it takes 10-20ms to detect 5.1kohms.
Before this, if DRP.DFP time expires, then PMI transitions to UFP mode to
avoid extending DRP cycle time.

Fix it by extending DFP time. Note the total DRP time should still be
within max limit (100ms).

Change-Id: I1dd180229bc771542b4f6ca7850aa457478ae5cd
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-10-18 18:20:53 -07:00
Harry Yang
f45c23db73 power: smblib: extend wait time after force sink in try.SNK
In Try.SNK software implementation, after forcing sink, there
is a delay of tDRPTRY + Tccdebounce time, giviing opportunity
to the other side to be a SRC.

The current delay is 100ms < tDRPTRY (90ms) + Tccdebounce (20ms),
too short, which sometimes results in checking Tccdebounce_done
status too early.

Change the delay to 120ms.

Change-Id: If9fe9aa7c405a5ae6416e9373449c4a76295e4d8
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-10-18 18:19:35 -07:00
Harry Yang
7e41812c03 power: smblib: SW implementation of typeC try.SNK
Try.SNK allows a DRP that has a policy based preference to be a Sink
when connecting to another DRP to effect a transition from a destined
Source role to the Sink role.

This is a Software implementation for PMI8998.

Exiting from AttachWait.SRC State, a DRP that strongly prefers the
Sink role may optionally transition to Try.SNK instead of Attached.SRC.

When in the Try.SNK state, the port is querying to determine if the
port partner supports the Source role.

The port shall then transition to Attached.SNK when the SNK.Rp state
is detected for at least tTryCCDebounce and VBUS is detected

Alternatively, the port shall transition to TryWait.SRC if SNK.Rp state
is not detected tTryCCDebounce.

The port shall transition to Attached.SRC when SRC.Rd state is detected
on exactly one of the CC pins.

The port shall transition to Unattached.SNK after tDRPTry if neither of
the CC1 or CC2 pins is in the SRC.Rd state.

CRs-Fixed: 1114313
Change-Id: I777332e87df65082333f4e24a61c5ea834784d09
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-10-18 18:17:53 -07:00
Honghao Liu
a71c664a97 soc: qcom: add SMMU support for virtualized audio ION driver
Update the virtualized audio ION driver to add SMMU support.
The virtualized audio ION driver will provide the ION memory
allocated from the guest VM to the physical VM to perform SMMU
mapping.

The virtualized audio ION driver will receive SMMU mapped
device address from physical VM and provide the device address
to its clients. Upon its client frees the memory, the virtualized
audio ION driver will request the physical VM to perform SMMU
un-mapping.

CRs-fixed: 2099245
Change-Id: Idca4ecda65910308d7f7af288381866ab4ce4a7a
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
2017-10-18 12:10:55 -07:00
Derek Chen
7dfae0526f ARM: dts: msm: add audio ion vm dev on msm8996 vplatform
Add msm audio ion vm device node to be compatible with
virtualized audio ion platform driver on MSM8996 vplatform.

CRs-fixed: 2047379
Signed-off-by: Derek Chen <chenche@codeaurora.org>
Change-Id: Ibd6b5cfa7e8539a56b6d1650ea0d2ae15ce82073
2017-10-18 12:10:47 -07:00
Derek Chen
80417e5578 ASoC: msm: add soc audio snd virtualization support
Add soc audio sound card SND_SOC_MSM8996_VM for
virtualization support.
The virtualized audio snd soc is based on legacy
soc msm8996, removing dependency on ARCH_MSM8996
and various soc codec/slimbus and hwdep driver as
well as DTS/SRS PP features.

CRs-fixed: 2047379
Change-Id: I930bf78c2ebf2c605331b50a598b5a43ceed0e0f
Signed-off-by: Derek Chen <chenche@codeaurora.org>
2017-10-18 11:43:46 -07:00
Derek Chen
1bc3c0f656 soc: qcom: add audio apr and ion virtualization support
Add support for virtualized APR and ION frontend driver
for audio.
Virtualized APR frontend driver resides in guest VM and
supports all legacy APR APIs. It will rely on MSM_HAB
to communicate with APR backend driver, which resides in
physical VM, where legacy SMD is utilized for communication
between APPS and ADSP.
Virtualized ION driver currently is designed to extract
physical memory through hypervisor abstracted ion layer,
which can be shared between APPS and ADSP directly.

CRs-fixed: 2047379
Change-Id: I7dad5aebfd1db00cd32807dc1219818a7a4e62c5
Signed-off-by: Derek Chen <chenche@codeaurora.org>
2017-10-18 11:28:36 -07:00
Linux Build Service Account
22b27b16d8 Merge "block: Initialize bd_bdi on inode initialization" 2017-10-18 11:08:22 -07:00
Linux Build Service Account
c24ca7f957 Merge "drm/msm/sde: synchronize mdp clk with frame update" 2017-10-18 11:08:20 -07:00
Linux Build Service Account
66a8b75dd2 Merge "drm/msm/sde: align bandwidth/clock updates with frame done" 2017-10-18 11:08:20 -07:00
Linux Build Service Account
0b90776440 Merge "diag: Add mutex protection while reading dci debug statistics" 2017-10-18 11:08:19 -07:00
Linux Build Service Account
20caa06084 Merge "cnss2: Support multiple recoveries when using CORE only firmware" 2017-10-18 02:00:40 -07:00
Linux Build Service Account
8fa49f2cb1 Merge "cnss2: Request runtime PM resume when shutdown happens" 2017-10-18 02:00:39 -07:00
Linux Build Service Account
1682bdfd75 Merge "msm: ipa: Fix use after free issue" 2017-10-18 02:00:38 -07:00
Ajay Agarwal
d7a59889eb ALSA: usb-audio: Add length check after string desc copy
It might be possible that negative error code is returned
in 'len', when we try to copy USB string desc into the ID
name buf of snd_kcontrol instance. But even in that case,
we are terminating buf with 0 at the 'len' index, which
leads to memory corruption. And for good case where 'len'
is non-negative, usb_string func is terminating the buf
with 0.

Fix this by removing the termination of buf with '0'
in the caller function.

Change-Id: Ie32d395b0fc91d6c3e1cfdbafb76304e21e40577
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
2017-10-18 13:50:46 +05:30
Jan Kara
16d289189c block: Initialize bd_bdi on inode initialization
So far we initialized bd_bdi only in bdget(). That is fine for normal
bdev inodes however for the special case of the root inode of
blockdev_superblock that function is never called and thus bd_bdi is
left uninitialized. As a result bdev_evict_inode() may oops doing
bdi_put(root->bd_bdi) on that inode as can be seen when doing:

mount -t bdev none /mnt

Fix the problem by initializing bd_bdi when first allocating the inode
and then reinitializing bd_bdi in bdev_evict_inode().

Thanks to syzkaller team for finding the problem.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Fixes: b1d2dc5659b4 ("block: Make blk_get_backing_dev_info() safe without open bdev")
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
Change-Id: I9c34ca321ab311936946187ed21e25d67caf5ba5
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
Git-commit: 7ee143f46cb1f58ee07194076b9a3e6ea3f27ad3
[riteshh@codeaurora.org: resolved merge conflicts]
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
2017-10-18 12:05:44 +05:30
Jan Kara
9c197e78d2 block: Make blk_get_backing_dev_info() safe without open bdev
Currenly blk_get_backing_dev_info() is not safe to be called when the
block device is not open as bdev->bd_disk is NULL in that case. However
inode_to_bdi() uses this function and may be call called from flusher
worker or other writeback related functions without bdev being open
which leads to crashes such as:

[113031.075540] Unable to handle kernel paging request for data at address 0x00000000
[113031.075614] Faulting instruction address: 0xc0000000003692e0
0:mon> t
[c0000000fb65f900] c00000000036cb6c writeback_sb_inodes+0x30c/0x590
[c0000000fb65fa10] c00000000036ced4 __writeback_inodes_wb+0xe4/0x150
[c0000000fb65fa70] c00000000036d33c wb_writeback+0x30c/0x450
[c0000000fb65fb40] c00000000036e198 wb_workfn+0x268/0x580
[c0000000fb65fc50] c0000000000f3470 process_one_work+0x1e0/0x590
[c0000000fb65fce0] c0000000000f38c8 worker_thread+0xa8/0x660
[c0000000fb65fd80] c0000000000fc4b0 kthread+0x110/0x130
[c0000000fb65fe30] c0000000000098f0 ret_from_kernel_thread+0x5c/0x6c

Signed-off-by: Jens Axboe <axboe@fb.com>
Change-Id: I26955b919bd05fe34dc60aab1797ea2739ad5fd7
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
Git-commit: b1d2dc5659b41741f5a29b2ade76ffb4e5bb13d8
[riteshh@codeaurora.org: resolved merge conflicts]
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
2017-10-18 12:05:44 +05:30