Commit graph

586905 commits

Author SHA1 Message Date
Subash Abhinov Kasiviswanathan
03a5bcaa7e net: ipv6: Add early demux handler for UDP unicast
While running a single stream UDPv6 test, we observed that amount
of CPU spent in NET_RX softirq was much greater than UDPv4 for an
equivalent receive rate. The test here was run on an ARM64 based
Android system. On further analysis with perf, we found that UDPv6
was spending significant time in the statistics netfilter targets
which did socket lookup per packet. These statistics rules perform
a lookup when there is no socket associated with the skb. Since
there are multiple instances of these rules based on UID, there
will be equal number of lookups per skb.

By introducing early demux for UDPv6, we avoid the redundant lookups.
This also helped to improve the performance (800Mbps -> 870Mbps) on a
CPU limited system in a single stream UDPv6 receive test with 1450
byte sized datagrams using iperf.

v1->v2: Use IPv6 cookie to validate dst instead of 0 as suggested
by Eric

CRs-Fixed: 1114946
Change-Id: I2a59058656863c2e20629fe30fbbe3847319f439
Git-commit: 5425077d73e0c8e7e9267ca8397cc0e2293c1fb9
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-03-29 16:01:49 -07:00
Harry Yang
c6484e6fec qcom: qnovo: Disable ok_to_qnovo right after charging stops
Disable ok_to_qnovo immediately after charging is disabled while pulse
train is in progress. The flag property ok_to_qnovo indicates qnovno
charging readiness, A delay in doing so could make a normal charging
stop mistakenly treated as an error.

Change-Id: If0c43a4e05b2e0f8cc0ce9a9edca15f466c7fbff
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-29 15:10:10 -07:00
Harry Yang
b65cce9734 qcom: smb138x-charger: support two usb input properties
POWER_SUPPLY_PROP_INPUT_CURRENT_LIMITED - indicate if the switcher
	is acting in input limited state.
POWER_SUPPLY_PROP_CURRENT_MAX - set/get usb input current limit in
	parallel charger.

Change-Id: I3827735a3900680e3e79104e388c2712f12cbbfb
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-29 14:52:01 -07:00
Harry Yang
606d9c3405 qcom: smblib: supsend USB input during boost
In parallel configuration, suspend one charger usb input before the
other enters boost mode. Even more so in USBIN-USBIN mode.

Change-Id: I63728421b7697e70bbd83c4c82203b7ebafdaa9f
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-29 14:52:01 -07:00
Harry Yang
4469fe08a7 ARM: dts: msm: Specify smb138x vbus regulator for USBIN-USBIN
Expose vbus regulator from smb138x in USBIN-USBIN parallel mode.

Change-Id: I3581cbc7ffade0d25363038c25e40e35bd4fce28
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-29 14:52:00 -07:00
Abhijeet Dharmapurikar
d7e7e92fe4 pmic-voter: bump up from 8 clients to 16
The current code only supports 8 clients max. There are
situations where we will need more than that.

Bump it up to 16.

Change-Id: I7a32f67b3a4579ec79eb4f0e2a971a1a3a29a7c1
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2017-03-29 14:51:59 -07:00
Linux Build Service Account
4166896b94 Merge "msm: isp: Fix stream off failure in LPM" 2017-03-29 14:30:49 -07:00
Linux Build Service Account
56aaf096d9 Merge "qcom: smb2: Disable parallel charging on qnovo charging below 2A" 2017-03-29 14:30:46 -07:00
Linux Build Service Account
3b758d49a4 Merge "qpnp-fg-gen3: use IMA single mode for pm660 fuel gauge" 2017-03-29 14:30:44 -07:00
Linux Build Service Account
a92ee0d3f5 Merge "usb: phy: qmp: Select usb3 phy mode during PHY reset" 2017-03-29 14:30:43 -07:00
Linux Build Service Account
41471d4579 Merge "msm: ispif: fix a bug in checking the validity of vfe intf" 2017-03-29 14:30:42 -07:00
Aravind Venkateswaran
92f856da18 msm: mdss: dp: set failsafe link params when DPCD read fails
For DPCD read failures, set link parameters corresponding to
the fail safe link resolution to conform to the display port
specification.

CRs-Fixed: 2010344
Change-Id: I06f56f508fe7adcb9e76f1a8597fc59cdadd741b
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2017-03-29 14:00:08 -07:00
Aravind Venkateswaran
14fe7ac1c2 msm: hdmi: edid: fix parsing of 4K resolution from DTD
Detailed Timing Descriptors (DTDs) listed in the EDID data contain
the information about the horizontal addressable video pixels for
each resolution. The maximum value that can be specified for this
field is 4095. In certain instances, a sink may list a resolution
with 4096 horizontal addressable video pixels in the DTD by listing
a value of 4095. If this value is parsed as is, it can lead to
incorrect behavior. Fix this by explicitly updating the value to
4096.

CRs-Fixed: 2020154
Change-Id: I035bbef7d245c7cdd75a5bba8719fcca4592d8b7
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2017-03-29 13:59:38 -07:00
Zhen Kong
cb2d1d68c3 qseecom: fix macro QSEECOM_ALIGN definition issue
In macro QSEECOM_ALIGN, change (x + QSEECOM_ALIGN_SIZE) to
(x + QSEECOM_ALIGN_MASK); otherwise, when x is already aligned,
QSEECOM_ALIGN(x) will get (x + QSEECOM_ALIGN_SIZE), but it should
be x. Also, remove the dulplicate QSEECOM_ALIGN definition
in hdcp.c and mpq_sdmx.c, since they already include
"qseecom_kernel.h"

Change-Id: I9dbcadb618372fce71c2ff7ab62ca691afe7c7fa
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
2017-03-29 13:51:51 -07:00
Tony Truong
e756208112 msm: pcie: log PCIe LTSSM state during link training
During link training, capture RC LTSSM state every 5ms
until link comes up or fails. Output will be stored
in PCIe IPC logs.

Change-Id: I41a0bbc75144ea77dfa61374dbcc5591ca63b28f
Signed-off-by: Tony Truong <truong@codeaurora.org>
2017-03-29 11:35:01 -07:00
Jordan Crouse
a65466fee1 drm/msm: Add performance counter tracking
Adreno GPUs have a certain number of fixed performance counters
most of which can be programmed to a large number of different
items (countables). A centralized database in the kernel is
needed to make the most efficient use of counters across processes.

Add performance counter tracking and APIs to allow applications to
reserve performance counters by requesting a group ID and a countable
(countables differ from block to block). The kernel will check to
see if an active counter is already selected for that countable or
if a new one should be assigned. Different processes can share the
same counter if they both need the same countable.

Counters are reserved with DRM_IOCTL_MSM_COUNTER_GET which returns
a counter ID for the reserved counter and the hi/lo offset of
the counter register. The reserving application can either read the
counter from within a PM4 stream or it can use the group ID and
counter ID and read the value of the counter with
DRM_MSM_COUNTER_READ. After the counter is no longer needed
DRM_IOCTL_MSM_COUNTER_PUT returns it and it can be released for
other countables if no other processes are sharing it.

Reservations are tracked for each process and cleaned up if the
process dies without putting back the counters.

Change-Id: Ic0dedbadc45e85ab0063331b39ca6f3289523038
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-03-29 08:14:33 -06:00
Jordan Crouse
a9203c936d drm/msm: Remove ringbuffer restriction from idle
Remove the check in a5xx_idle() to see if idle is being called
on the current ring. a5xx_idle() is to used make sure the
commands in the specified ring have completed and it is entirely
reasonably to expect that a ring switch might need to be
executed first.

Change-Id: Ic0dedbadf45c7f624093efae72f3a9d75dc6857d
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-03-29 08:14:32 -06:00
Jordan Crouse
8384a387b5 drm/msm: Update registers for performance counters
Update a5xx rnddb database to add some VBIF registers for clearing
and enabling performance counters.

Change-Id: Ic0dedbada994e916527e8c44e2cf0a20115985a9
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-03-29 08:14:32 -06:00
Linux Build Service Account
664cdd33f9 Merge "ath10k: Use atomic read for fw_crashed state" 2017-03-29 06:49:33 -07:00
Linux Build Service Account
937b17aac8 Merge "ASoC: msm: add support for ADSP Stream Cmd and Callback" 2017-03-29 06:49:32 -07:00
Linux Build Service Account
67d69b8ce5 Merge "soc: qcom: pil: Explicitly clear the subsystem loading address" 2017-03-29 06:49:31 -07:00
Linux Build Service Account
04561686f4 Merge "soc: qcom: Separate out qmi handle destruction and PD notification" 2017-03-29 06:49:30 -07:00
Lior David
00fc56f5f0 wil6210: do not start regular scan on stopped p2p device
The driver should not allow starting any type of scan on a stopped
P2P device. Current implementation only checked social scan.

Change-Id: I67d92b0bdb4549681e3d08a256b1798fdaeb0939
Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Git-commit: 4a0e45a78328957b012f554fb2ffcd5c69fe418a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
Signed-off-by: Maya Erez <merez@codeaurora.org>
2017-03-28 23:48:51 -07:00
Harry Yang
cfe86e482b qcom: smb2: Disable parallel charging on qnovo charging below 2A
Add qnovo as pl charging voter and disable parallel charging  when
qnovo is enabled with fcc below 2A.

Change-Id: Ic03a18318a89344f2bd5c8a72445abe22cd3d142
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-28 22:57:00 -07:00
Harry Yang
9ac55848ca qcom: qnovo: Add property to report charge errors
Report status that indicates individual charger errors,
including JEITA, battery, charing disabled, etc.

Change-Id: I5a02d9f86237ae1a05b71e78f17db8c39f35594f
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-28 22:57:00 -07:00
Harry Yang
8ae4a028b6 qcom: qnovo: Add support to enable qnovo charging
Add property qnovo_enable to enable qnovo charging. Also add
property pt_enable to enable pulse train.

Extend QNOVO algorithm's control of voltage and current after
pulse train stops and as long as qnovo_enable = 1.

The interrupt ptrain_done is configured wakeup capable.

CRs-Fixed: 2013069
Change-Id: Icb61e0e0169283f5f52a4994431489dde0af1c73
Signed-off-by: Harry Yang <harryy@codeaurora.org>
2017-03-28 22:56:59 -07:00
Prashanth Bhatta
bbdda72e6d icnss: Separate debug and verbose log
Right now all the logs are dumped to IPC log buffer but there
are some logs which are logged most often and they overwrite log
buffer where in important logs required for debugging may be
lost. Create debug and verbose log level such that logs which are
logged most often and not as important as debug logs are moved to
verbose log level.

Change-Id: Iccab3e5485700efe71ffc85dc7c5f39b0872dfb4
CRs-fixed: 2025867
Signed-off-by: Prashanth Bhatta <bhattap@codeaurora.org>
2017-03-28 14:31:54 -07:00
Dhoat Harpal
95f2d746fd soc: qcom: glink_ssr: Add kref for cb_data
The variable cb_data is accessed from parallel threads where one thread
can free it anytime, this creates use after free scenerio.

To avoid use after free cases cb_data is freed only when kref count
goes to zero.

CRs-Fixed: 2023620
Change-Id: I74225fc61f8ede03a40ff35d2b963d90c0d4689f
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
2017-03-28 23:28:00 +05:30
Gopikrishna Mogasati
898a25d9ad diag: Fix race condition while accessing mdlog session info
This fix allows to avoid possible race condition while
accessing mdlog session info. Without this check there
is a possibility of poison overwritten occurrence.
Also this fix allows mdlog client to check the validity
of process descriptor. Without this fix there is
possibility of crash.

CRs-Fixed: 2022664
Change-Id: Ia10e83c7376de5cab92dd2ec4ec4aa8074223ff3
Signed-off-by: Gopikrishna Mogasati <gmogas@codeaurora.org>
2017-03-28 23:17:16 +05:30
Subbaraman Narayanamurthy
6a6090a522 qpnp-fg-gen3: use IMA single mode for pm660 fuel gauge
Because of HW issues, burst mode access cannot be done with
pm660 parts. Use IMA in single mode for it.

Change-Id: I4e86601d713140e559ba8a6f92715f2075c7b8ee
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-03-28 09:56:53 -07:00
Subbaraman Narayanamurthy
34a8e148af qcom: fg-memif: add support for using IMA single mode
Currently, based on the number of bytes read/written, IMA is
configured for single or burst mode. Add an option to override
to single mode whenever required.

While at it, change pr_err() statements to print some more debug
information which might be useful.

Change-Id: If19e135ed4014732a0efe56250f56f0760a1fb93
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-03-28 09:56:45 -07:00
Laxminath Kasam
54ed63847a pinctrl: lpi: Avoid initial SSR notifications at bootup
In pinctrl LPI driver, avoid initial bootup SSR
notifications after registration of SSR notifier.

CRs-Fixed: 2017639
Change-Id: Ib634ae0efe903b6628dcb6a385f823b11a355973
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2017-03-28 09:41:09 -07:00
Alok Kediya
bd486ee8b7 msm: camera: isp: Use single tasklet for dual vfe
Use a single tasklet for dual vfe. With different tasklets
if one of them is not scheduled early enough with respect to
the other tasklet then irq composition fails. By using a single
tasklet irq from both vfe will be handled in the order in which
the hardware generated them.

CRs-Fixed: 2009877
Change-Id: I033cb45afd3162773a181fa4a2dfc912b1bdb109
Signed-off-by: Alok Kediya <kediya@codeaurora.org>
2017-03-28 15:03:01 +05:30
Ritesh Harjani
57dd904196 mmc: sdhci-msm: Change pm_qos cpu groups latency to PM_QOS_DEFAULT_VALUE
In current pm_qos implementation - when the new pm_qos vote request
comes, the previous cpu group where pm_qos vote was put
is determined and removed if the current cpu group is different
than previous.

If the pm_qos vote of performance mode latency is put during
initialization, there can be a case where this vote will never be
released - since during init phase we can't cache the prev pm_qos cpu
group (pm_qos_prev_cpu = -1). Thus during the actual I/O sdhci_request
the pm_qos_prev_cpu will be -1 and unless the request comes once onto
each of those cpu group, the pm_qos voting can never be released.

Hence change this pm_qos vote for all cpu groups to PM_QOS_DEFAULT_VALUE
during init phase.

Change-Id: I71249b58f41850a8a84e6165d6df936eba13b218
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
2017-03-28 13:38:37 +05:30
Srinivas Dasari
1d3ad3e187 msm-4.4: driver to create cld80211 nl family at bootup time
Create cnss_genl driver to create a netlink family cld80211
and make it available to cld driver and applications when
they query for it.
This driver creates multicast groups to facilitate communication
from cld driver to userspace and allows cld driver to register
for different commands from user space.

Change-Id: I0795dd08b6429fad60187fee724b3fd3ccfa5603
Signed-off-by: Srinivas Dasari <dasaris@codeaurora.org>
CRs-Fixed: 1100401
2017-03-28 11:14:46 +05:30
Govind Singh
47a157657e ath10k: Use atomic read for fw_crashed state
fw_crashed is atomic state variable, use atomic
read operation for reading the value

Change-Id: Ieaad558cad684a0eb7daaad9d220b44c032d69ca
Signed-off-by: Govind Singh <govinds@codeaurora.org>
2017-03-28 11:14:40 +05:30
Revathi Uddaraju
494fafb255 ASoC: msm-lsm-client: cleanup ioctl functions
Fix the issue where copy_from_user interface is not used properly.
Cleanup the ioctl function so that there is no illegal memory access.

Change-Id: Iffe2bbc0d33f365a852bb0974ee5c45ab724214b
Signed-off-by: Revathi Uddaraju <revathiu@codeaurora.org>
2017-03-27 21:17:09 -07:00
Linux Build Service Account
fec225ae45 Merge "qpnp-fg-gen3: prime CC_SOC_SW when capacity learning begins" 2017-03-27 20:43:42 -07:00
Linux Build Service Account
df700e072e Merge "esoc: add support for additonal physical link info" 2017-03-27 20:43:41 -07:00
Linux Build Service Account
df9d7dccc8 Merge "defconfig: msm: enable EDAC_CORTEX_ARM64_DBE_IRQ_ONLY for SDM660" 2017-03-27 20:43:41 -07:00
Linux Build Service Account
4e44621207 Merge "BACKPORT: f2fs: add a max block check for get_data_block_bmap" 2017-03-27 20:43:38 -07:00
Linux Build Service Account
24cabe3eb3 Merge "qcom: smblib: Only enable hdc and icl irqs on QC/PD chargers" 2017-03-27 20:43:37 -07:00
Subbaraman Narayanamurthy
cc909e5a78 qpnp-revid: add pm660 1.0 and 1.1 definitions
Add revision definitions for pm660 v1.0 and v1.1.

Change-Id: I7aefdbe07d6c01562f9ffb17616419880cea1831
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-03-27 18:44:17 -07:00
Subbaraman Narayanamurthy
a3a05e28fa qpnp-revid: move pmi8998 and pm660 FAB_ID definitions to qpnp-revid.h
FAB_ID can be used across multiple drivers that gets revid
information from qpnp-revid driver. Move the FAB_ID definitions
in RR_ADC driver for pmi8998 and pm660 so that they can be
reused by other clients.

Change-Id: Ia61af56244161c948b0f458a77e699c1cac871b1
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-03-27 18:44:17 -07:00
Ankit Sharma
c820f7b26b msm: qpnp-haptic: Enable HW auto-resonance for PM660
Enable Hardware based auto resonance calibration for LRA
mode for PM660.

Change-Id: Ic7902ba4b8665eda2623286dd0b1c3fdeb3895e5
Signed-off-by: Ankit Sharma <ansharma@codeaurora.org>
2017-03-27 16:51:21 +05:30
Gaurav Kohli
c59edf21d4 soc: qcom: pil: Explicitly clear the subsystem loading address
Explicitly clear the subsystem loading address in case of any
memory failure. It will help to avoid any platform dependency.

Change-Id: I3be8f6318d68f02c02e637fc34f4a868e9fafa45
Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org>
2017-03-27 01:00:44 -07:00
Xu Yang
91939509bc msm: mdss: Add support to read BL level for userspace
Add parameter to indicate backlight level set from
userspace. And get the value by sysfs read function.

Change-Id: Iaecb0076e1f664fe87f3351edeecce40935cbae4
Signed-off-by: Xu Yang <yangxu@codeaurora.org>
2017-03-27 15:27:11 +08:00
Linux Build Service Account
f4a611a3af Merge "ARM: dts: msm: Update LPM parameter values for sdm630" 2017-03-27 00:00:24 -07:00
Linux Build Service Account
dfbbbe04e1 Merge "usb: gadget: f_ncm: allocate/free net device upon driver bind/unbind" 2017-03-27 00:00:23 -07:00
Linux Build Service Account
184c749ea2 Merge "ath10k: msm: enable ATH10k DEBUG config for APQ8098" 2017-03-27 00:00:23 -07:00