Commit graph

2888 commits

Author SHA1 Message Date
Skylar Chang
8909867b39 msm: ipa3: add lock for num_q6_rule
There is a race condition be observed
on global variable num_q6_rule used in
ipa wan-driver. The fix is to add lock
to prevent different threads are accessing
it at the same time.

Change-Id: Ia9190c60361cb5605b61963309beca3acdeac89d
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-09-13 15:22:58 -07:00
Skylar Chang
54225e4364 msm: ipa: Add new API to check for ipa uC readiness
Adding new API for IPA clients to check for IPA
uC ready before bringing up IPA uC offload data path.

CRs-Fixed: 2030217
Change-Id: I0328658cba829cacc89b7c0b8edf7e52aa16e45c
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-09-13 11:29:18 -07:00
Linux Build Service Account
3bbf983f45 Merge "msm: mdss: hdmi: fix no audio over HDMI on device bootup" 2017-09-13 10:58:15 -07:00
Linux Build Service Account
e276155e6b Merge "msm: ipa: ipa_usb: teth_prot and ttype validation" 2017-09-12 14:41:48 -07:00
Narender Ankam
942e1ce7e9 msm: mdss: hdmi: fix no audio over HDMI on device bootup
In case of HDMI interface as primary, if device boots up with
HDMI connected, external interface driver is unable to notify
audio events as audio codec is getting registered later.
Add change to send audio event once audio codec gets registered.

Change-Id: I8d630adf892714ff2eb4d6039dc058b54c425b83
Signed-off-by: Narender Ankam <nankam@codeaurora.org>
2017-09-12 13:05:24 +05:30
Linux Build Service Account
fd4b95e374 Merge "usb_bam: Delete IPA resources in usb_bam_remove()" 2017-09-11 19:13:14 -07:00
Vijayavardhan Vennapusa
4fe177ec88 usb_bam: Delete IPA resources in usb_bam_remove()
Whenever dwc3_msm_probe() fails, it calls of_depopulate() to remove child
devices as part of cleanup. Due to this, usb_bam_remove() gets called to
do cleanup. But this API is not deleting IPA resources created during
probe and leads to creation of IPA resources fail, when probe is called
again. This eventually results in crash, when IPA driver calls notify
callback after PROD resource granted. Hence fix it by deleting IPA
resources in usb_bam_remove().

Also change enum type of ipa_rm_resource_prod/ipa_rm_resource_cons arrays
to enum ipa_rm_resource_name to fix sparse errors.

Change-Id: I3d9d0e1b26f1de0ba2b56b42c7e10a097d4fa8be
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2017-09-11 15:50:21 +05:30
Mohammed Javid
bb96b54c01 msm: ipa: Cache CNE event
Provide support to cache CNE event for debugging purpose.

Change-Id: I00d101d3b9a627d7aba3e4524ff301797ea6085e
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-09-07 10:34:59 +05:30
Skylar Chang
964eeebd3c msm: ipa: ipa_usb: teth_prot and ttype validation
Add input validation logic for accessing teth_prot and ttype
members.

Change-Id: I05780fb3b09616b7a9cf0c36f71e9f1e5e49f136
CRs-Fixed: 2091803
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-09-06 12:46:37 -07:00
Linux Build Service Account
d727a95d2e Merge "msm: ipa3: fix compatibility with ipa user space" 2017-09-04 15:01:54 -07:00
Amir Levy
86eb047ba5 msm: ipa3: fix compatibility with ipa user space
Implement several IOCTLs to allow IPA user space work.

Change-Id: I726f665ada12c5524dabeab1b89cdc8db4dc6f1e
Acked-by: Dmitry Kogan <dmitryk@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2017-09-04 01:06:11 -07:00
Linux Build Service Account
78cc6c172a Merge "Merge branch 'dev/msm-4.4-8996au' into msm-4.4" 2017-09-03 23:04:20 -07:00
Zhiqiang Tu
c140ef0eee Merge branch 'dev/msm-4.4-8996au' into msm-4.4
Change-Id: I9736089c23ce5dca4e4341406671269f19b7515f
Signed-off-by: Zhiqiang Tu <ztu@codeaurora.org>
2017-09-01 10:30:44 +08:00
Linux Build Service Account
a13a87ba3a Merge "msm: ipa: Fix to use after free issue" 2017-08-30 19:30:02 -07:00
Ghanim Fodi
1afd570abc msm: ipa3: Vote to IPA clocks when destroying MHI channels
Due to the missing vote, un-clocked access to GSI registers
occurred when destroying MHI channels. Fix it by voting
to the clocks.

CRs-Fixed: 2097296
Change-Id: Ib4fe41ff87ecb9746617b1ed3e32cae740de0c7e
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
2017-08-30 01:27:48 -07:00
Mohammed Javid
1d85aeac42 msm: ipa: Fix to use after free issue
Added code changes to avoid use after free
if header already table already freed
during ipa ioctl test.

Change-Id: I5e89c28448bd3b94714451432774457a170005bd
Acked-by: Ashok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-08-30 12:10:39 +05:30
Skylar Chang
4387acb96b msm: ipa: protect q6_proxy_clk_vote
Add a mutex to protect q6_proxy_clk_vote.
The proxy vote/unvote may be called from different contexts
which can result in a a race condition.

Change-Id: I402090be5ff35897ed61499a13bf52eb60a1f5cf
CRs-Fixed: 2094724
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-08-25 11:05:10 -07:00
Zhiqiang Tu
9df1d44946 Merge branch 'msm-4.4' into dev/msm-4.4-8996au
Conflicts:
	drivers/iommu/arm-smmu.c
	drivers/media/platform/msm/ais/fd/msm_fd_dev.c
	drivers/media/platform/msm/camera_v2/fd/msm_fd_dev.c
	drivers/soc/qcom/glink.c
	include/uapi/linux/msm_ipa.h

Change-Id: Id007a850fa2df09f08c413ffcd447a6532fad83c
Signed-off-by: Zhiqiang Tu <ztu@codeaurora.org>
2017-08-24 16:39:56 +08:00
Linux Build Service Account
b0d7b054af Merge "msm: ipa3: Load IPA FW using PIL for MDM devices" 2017-08-23 20:24:55 -07:00
Ghanim Fodi
6a2c8df14c msm: ipa3: Load IPA FW using PIL for MDM devices
Change IPA firmware loading on MDM devices to use
Linux PIL instead of manual loading.
Loading with PIL is more secure. Firmware needs
to be signed and then authenticated by Trust Zone.

Change-Id: If8bda76795dcd000327c6f6345a9b38474b609fd
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
2017-08-23 03:14:16 -07:00
Rama Krishna Phani A
a24f14b69d msm: sps: Destroy debug log during BAM deregistration
Clients can register and deregister to BAM based on usecase.
IPC Log pages are created during clients registration to BAM.
Update support to destroy log pages during BAM deregistration.

Change-Id: I1da266c61ebd57d6cfead6fc5b64a05be5620cf4
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2017-08-22 21:30:47 -07:00
Linux Build Service Account
50203f7fec Merge "msm: ipa3: Fix to avoid accessing of uninitialized structure" 2017-08-21 00:20:10 -07:00
Linux Build Service Account
445f7922e4 Merge "msm: ipa3: fix usb statuses exception path" 2017-08-21 00:19:40 -07:00
Linux Build Service Account
6187c846cd Merge changes I0236f849,I87b2ac56,Ia7a344e6,I1cace039 into msm-4.4
* changes:
  ARM: dts: msm: Add tp rev property for PM660
  iio: rradc: Update RRADC USBIN scaling
  qpnp: revid: Add support to read TP Rev
  ARM: dts: msm: increase PCIe PHY wakeup delay from L1ss for msm8998
2017-08-20 01:17:43 -07:00
Linux Build Service Account
91e4f87419 Merge "msm: gsi: check channel state on timeout" into msm-4.4 2017-08-20 01:17:09 -07:00
Mohammed Javid
ec183bfa20 msm: ipa3: Fix to avoid accessing of uninitialized structure
Added code changes to check ipa3_ctx initilized or not
during bootup in sdm670.

Change-Id: I03e5b8de30c77da140e9575c2315b0878cf5363c
Acked-by: Ashok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-08-18 06:48:30 -07:00
Rama Krishna Phani A
36c8f370e0 qpnp: revid: Add support to read TP Rev
Some PMICs software drivers (PM660) require the TP revision
information to implement specific logic. Add an optional
property qcom,tp-rev-valid to check if support for TP REV is
available in the REVID peripheral for the PMIC.

Change-Id: Ia7a344e60bedcc6fb28d9ed9f18dc29a3d7f4fd7
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2017-08-17 14:41:57 +05:30
Ziqi Chen
98a667af9e msm: usb_bam: Fix failure of remove by of_platform_depopulate
If device is created by of_platform_populate and removed by
of_platform_depopulate from parent device driver, platform_data
will be released twice and lead to kernel panic.

of_platform_depopulate will free platform_data of each device driver.
Usually we use devm_kzalloc to malloc for platform_data so it can be
released during driver unregister. So if device is removed by
of_platform_depopulate and platform_data is malloced by devm_kzalloc,
platform_data will be freed twice. To fix it, move this data into
struct usb_bam_ctx_type and then store usb_bam_ctx_type into device
driver data. In this way, it can be get in remove function.

The member regs of usb_bam_ctx_type is not necessary. It is only
used for ioremap which already has been done by virt_addr of
struct sps_bam_props.

Without sps_deregister_bam_device, bam child device will not be
created again during defer probe. So deregister in remove function.

Change-Id: Ibae80745be5810d400a1c05566a99efcc2190020
Signed-off-by: Ziqi Chen <ziqic@codeaurora.org>
2017-08-15 22:03:41 -07:00
Skylar Chang
a34763e5b3 msm: gsi: check channel state on timeout
In some cases of stopping a channel,
the CH CTRL interrupt arrives late even though the channel is
already stopped. This change will check the channel state after
timeout occurs.

CRs-Fixed: 2090459
Change-Id: I4b99e8fb6710dca16047025a614fb734995934a1
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-08-10 11:05:12 -07:00
Ghanim Fodi
4858b46db0 msm: ipa3: Fix IPA aggregation force close call
Core IPA driver passes wrong end-point index to HAL
when generating aggregation force close parameters
values. Fixed the call to pass the correct index.

CRs-Fixed: 2082839
Change-Id: Icc0fd2ce8a23bf0e3334f54b27b850ebf92b58a1
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
2017-08-07 23:00:37 -07:00
Linux Build Service Account
515486b0bf Merge "msm: usb_bam: replace %p with %pK" 2017-08-07 04:11:15 -07:00
Linux Build Service Account
0588796708 Merge "msm: mhi: initialize variables to default values" 2017-08-04 09:12:19 -07:00
Liangliang Lu
8482c665ba msm: usb_bam: replace %p with %pK
Format specifier %p can leak kernel addresses while not valuing the
kptr_restrict system settings. When kptr_restrict is set to (1), kernel
pointers printed using the %pK format specifier will be replaced with
0's.

Debugging Note : &pK prints only Zeros as address. If you need actual
address information, write 0 to kptr_restrict.
echo 0 > /proc/sys/kernel/kptr_restrict

Change-Id: If3e3a7d5c737b8b7e2c2f78e2814747db4a770cd
Signed-off-by: Liangliang Lu <luliang@codeaurora.org>
2017-08-04 17:51:38 +08:00
Linux Build Service Account
c430aad6dc Merge "msm: ipa3: Fix Q6 resourse manager de-init" 2017-08-03 20:51:10 -07:00
Linux Build Service Account
8bb4bde4b2 Merge "msm: ipa: Fix invalid source pipe index" 2017-08-03 20:51:09 -07:00
Linux Build Service Account
aca4631c48 Merge "msm: ipa: Fix wrong usage and cleanup code" 2017-08-03 20:51:03 -07:00
Linux Build Service Account
66bb3e3558 Merge "msm: ipa: Add support for per client statistics and UL firewall" 2017-08-03 20:51:01 -07:00
Rama Krishna Phani A
873a9bd772 msm: mhi: initialize variables to default values
Few functions have variables which might get used with out
proper initialization. Initialize variables to default values.

CRs-Fixed: 2087109
Change-Id: I7645940e8d466e0ef67a5b8b7702b18b160cc10f
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
2017-08-03 18:49:41 +05:30
Mohammed Javid
0cb4f8abcd msm: ipa: Fix invalid source pipe index
Source pipe index may returned invalid or
given invalid from IOCTl.

Check it for valid before sending it to Q6.

Change-Id: I9dbbc930014549ed2d0620af6872816a18b438b5
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-08-02 01:34:46 -07:00
Mohammed Javid
b977cc3ede msm: ipa: Fix wrong usage and cleanup code
Couple of code cleanup
 - Initialize the return variable before using it.
 - Remove unnecessary NULL check.

Change-Id: I8e63cb95ae99d1656143ae4b1d130f92890bb3c5
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-08-02 01:18:45 -07:00
Mohammed Javid
90f7a0939c msm: ipa3: Fix Q6 resourse manager de-init
Make a change not to handle Q6 resource manager
deinit in SSR situation.

Change-Id: I5c3f68deb4514747146c5118fb58dad121ca7335
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-08-02 01:09:50 -07:00
Linux Build Service Account
f687374863 Merge "mhi: uci: Fix a bug related to split transfer packets" 2017-07-28 00:21:21 -07:00
Linux Build Service Account
954d1c4aae Merge "msm: ipa3: add offline charging support" 2017-07-28 00:21:08 -07:00
Arumuga Durai A
70817a0463 usb: bam: Remove inactivity_timer sysfs attribute
Sysfs attribute "inactivity_timer" not being used anymore so remove that
entry from sysfs.

CRs-Fixed: 2048725
Change-Id: I30d2d4a3cb9899b7975a6395eab90337fc006488
Signed-off-by: Arumuga Durai A <cadurai@codeaurora.org>
2017-07-27 22:57:43 -07:00
Sujeev Dias
17aec3c9ff mhi: uci: Fix a bug related to split transfer packets
When transfer buffer is larger than available space, uci driver will
split the transfer into multiple transactions. Driver incorrectly
calculated the transfer length and caused infinite transfer.
Simplify uci write method to avoid such bugs.

CRs-Fixed: 2083693
Change-Id: Ic7169cefda6a4637511ecfa3ce5ddde6f3d55f8c
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2017-07-27 12:54:08 -07:00
Utkarsh Saxena
9cd62d70d3 msm: ipa: Add support for per client statistics and UL firewall
Per client lan statistics  feature requires fetching data
from IPA Q6 and share it with user space application.
For UL firewall, v6 rules are sent to IPA Q6 in case of
whitelisting to allow only specific connections and drop
the rest of the connections.

Change-Id: I67e33c338f1d119e2e1a08ef462767e2e0cd6f1c
Acked-by: Abhishek Choubey <abchoube@qti.qualcomm.com>
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
2017-07-27 16:58:22 +05:30
Linux Build Service Account
827f654338 Merge "msm: ipa3: disable clock gating for MISC" 2017-07-26 19:22:44 -07:00
Skylar Chang
00f9f948b0 msm: ipa3: add offline charging support
In offline charging mode, modem is not loaded so the proxy
IPA clock vote added by IPA driver on behalf of modem is
never released and this prolongs the charge time. Move the
proxy vote to IPA3_POST_INIT before rmnet_ipa driver init
completes.

Change-Id: I271c8e6916d0c3068f720ae81b67f0fc5c198b6f
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-07-26 16:27:19 -07:00
Skylar Chang
1c17e7b10a msm: ipa3: fix usb statuses exception path
Set APPS_LAN_CONS pipe as the statuses exception pipe for
usb-prod pipes.

Change-Id: Ia0938da6ec2b2cbdbab4dddf177d2af76fad3aaa
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-07-20 12:09:43 -07:00
Linux Build Service Account
347dbf7277 Merge "msm: ipa3: Add spinlock to avoid deleting already deleted list" 2017-07-19 17:20:49 -07:00