The TRBs for GSI endpoints are allocated by the GSI ep ops.
The TRB pool allocated in the alloc_trb_pool is never used
and never freed leading to a dangling mapping in the IOMMU.
Fix this by freeing up the allocated TRB pool as part of
endpoint initialization.
Change-Id: Ia0f7b8725f5206c3c52db8017770b855361b0751
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
As part of composition switch, the device initiates
disconnect from the host by clearing the run/stop
bit of DCTL and initiates a connect by setting the run/stop bit.
But during this entire scenario the core is not reset
and there is a possibility of core caching the SETUP packets
from the previous session and giving this to the driver once the
run/stop bit is set leading to unintnented SETUP packets further
leading to stall on endpoint 0. This caused the endpoint 0 to
go into a bad state leading to enumeration failures.
Also, the databook clearly mentions that the soft reset has
to be issued before setting the run/stop bit to initialize a
conenct after a disconnect.
So, issue soft reset as part of composition switch to fix this
issue.
Change-Id: Id93bef710e7cdb67a6820cb4c9defecc5ad2a34e
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
This change enables synaptic dsx config for Lahaina target.
Change-Id: Id48fa69c3cca261b0a46a1146c44b1198bf55442
Signed-off-by: Fei Mao <feim1@codeaurora.org>
arm32 original logic:
1. allocated memory for page_ext(using memblock).
2. invoke the init callback of page_ext_ops like
page_owner(using buddy).
3. initialize buddy.
after this change:
1. allocated memory for page_ext(using memblock).
2. initialize buddy.
3. invoke the init callback of page_ext_ops like
page_owner(using buddy).
with the change, failure/dummy_handle can get its correct value.
Change-Id: I6598481299da115ff4be50bf0e5a61a012d5ac83
Signed-off-by: Zhenhua Huang <zhenhuah@codeaurora.org>
Update HW idle check for A619 holi to ensure GPU
idle status is captured correctly.
Change-Id: I2c332e43b3e3f653421e0bc4ab823ac557cfa141
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
Added support for passing init info from userspace
Change-Id: Ica31b6ed19e6536dadd36b35b31e5202da75490f
Signed-off-by: richagar <richagar@codeaurora.org>
When adb root is performed, userspace will close and open ffs_epsfile.
Closing this file will call ffs_functionfs_callback() which does call
remove_config(). This will call ffs_function_eps_disable to disable
endpoints and then calls ffs_func_unbind(). Unbind() will also call
endpoint disable which might lead to disabling endpoint which is already
disabled. Hence set ffs->func to NULL after disabling endpoints in
set_alt().
CRs-Fixed: 557532
Change-Id: I3052bdee74a1793d4e003de4b991d353e5d699b0
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Normally in epfile_io() and epfile_ioctl(), if the endpoint is
not enabled the system call will block waiting until the endpoint
is enabled. During a USB disconnect, the function's endpoints get
disabled, so that if an IO call occurs right after that, it would
perform the same blocking wait. From the kernel perspective this
is indistinguishable from an IO call happening after the function
is first initialized but not yet enabled. Hence a userspace
process would be blocked and unaware of the cable disconnection.
For userspace daemons such as ADB, this can be a problem since its
read/write threads cannot be reaped until the I/O call returns,
which won't happen until the cable is reconnected. In that case,
the previous pending read/write would proceed to get successfully
queued. In the case of a read, the previous read consumes data
meant for the new session, and in the case of a write, stale data
could be sent to the host.
To fix this, add a counter to keep track of the epfile's open status.
Upon the endpoint getting disabled mark the endpoint as invalid so as
to fail subsequent IOs until the epfile is fully closed. Returning
-ENODEV upon failure should allow the userspace process to close the
file, so that it can reopen and begin a new session.
Change-Id: I655ffdaa03485753431ff05dc521bf8d1b463ff1
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Add lanes number and infterface number config for lt9611uxc,
and add the code to control lt9611 power enable/disable using gpio.
Change-Id: I18e12791ac671ba1d14f0815a94068fd5ae1abf2
Signed-off-by: Wenjun Zhang <wjzhan@codeaurora.org>
Enable SPS driver for Lahaina GKI version.
SPS (Smart Peripheral System) enables the support of
all BAMs in the system which provide DMA
functionality to various peripherals.
Change-Id: I5eb575d594bbd2c4858f224fcd40f1c2a04643f7
Signed-off-by: Ajay Prathi <aprathi@codeaurora.org>