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>
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>
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>
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>
Provide support to cache CNE event for debugging purpose.
Change-Id: I00d101d3b9a627d7aba3e4524ff301797ea6085e
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Make a change not to handle Q6 resource manager
deinit in SSR situation.
Change-Id: I5c3f68deb4514747146c5118fb58dad121ca7335
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
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>
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>
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>
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>
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>