summaryrefslogtreecommitdiff
path: root/drivers/slimbus
AgeCommit message (Collapse)Author
2016-08-18slim: ngd: Handle Process Domain restartSagar Dharia
Slimbus master component driver typically resides in a domain on remote processor (ADSP). If that domain restarts, slimbus master driver restarts reinitializing the slimbus HW. Handle such process domain restart, and use subsystem restart if the process domain restart is not available. Change-Id: I253c33d07aad513a6621571e870e1d3f66a1b6a1 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org> Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
2016-08-11slim-msm: Handling resources during port de-allocationDilip Kota
In port de-allocate operation free the resources only if port is connected as memory allocates while connecting the port. Change-Id: I743a27025e83f0f4bb8a47c20b2bb2d4cff80caa Signed-off-by: Dilip Kota <dkota@codeaurora.org>
2016-07-27slim: msm: Handle slimbus HW noise during early boot-upSagar Dharia
Capability exchange may timeout during boot due to noise on slimbus lines. Introduce retry mechanism to recover from this state. If the HW noise happens just after capability exchange is successful, make sure slimbus satellite HW powered on again by checking HW status during message transfer. Change-Id: I6ebf0ec78201551152bf6ac0d4372f36734a4708 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-07-27slim-msm: Synchronize SSR callbacksDilip Kota
Subsystem will restart within short timeframe. Synchronise subsytem up/down callback notifications to avoid functionality failures. Use mutex locks to achieve synchronization. Change-Id: I5881c7d468507bb8402a2e9f8178b9c31e57e8a5 Signed-off-by: Dilip Kota <dkota@codeaurora.org>
2016-07-27slim-msm-ngd:Avoid using stale pipe handleDilip Kota
Make sure to use pipe handle from the TX endpoint rather than using a stored handle. The stored handle may become invalid if SSR happens between storing of that handle and locking the mutex. Change-Id: I53e8f860c2d50061b6c4e6ce2f944c1e2ed8dff2 Signed-off-by: Dilip Kota <dkota@codeaurora.org>
2016-05-11slim: ngd: retention support in power-collapseSagar Dharia
Support retention by checking interrupt status rather than logical address register. During retention, interrupt status is zero'ed but logical address may be retained to avoid report-present generation. Change-Id: I9e7f24c5f4eb722643bf3fac2d5c898ad107dd24 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-05-11slimbus: Add API to get matching ID tablePhani Kumar Uppalapati
Add API in slimbus driver for clients to get the matching ID table which helps in accessing driver data and name fields. CRs-fixed: 975738 Change-Id: I09c9f1de74e348b032d215cbb0fb9ba6c7aecf18 Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-05-06slim: msm: ngd: Add priority to DSP SSR notifierSagar Dharia
Currently SSR framework seems to make callbacks in the order they were registered, or based on pririties. Due to this, APR's callback (done in its probe) may be executed before slimbus driver's callback (only registered after children are probed). This still works, but may take longer since codec may try sending some disconnection commands over slimbus if APR is notified about SSR before codec was notified by slimbus. This failure may result in some delay in SSR handling which is more than the KPI numbers expected for this recovery mechanism. Priority is added to slimbus SSR notifier registration to make sure its callback is called before APR's. CRs-Fixed: 996871 Change-Id: Ib7f002d52310dc13b60a18972a6899ebae21ba24 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim-msm-ngd: Register with specific subsystemDilip Kota
Slimbus master is present in different subsystem on different tragets. Register with specific subsystem as mentioned in the device tree. Change-Id: I1bee7fdd7578deedca8e4e43af9055b41b96d652 Signed-off-by: Dilip Kota <dkota@codeaurora.org>
2016-03-23slimbus: Reset data channels for a controller when framer rebootsSagar Dharia
Framer is responsible for clocking slimbus, and when it reboots, state of all associated data channels is reset to be consistent with HW state. Change-Id: Ie74ace2b20ad6c255440ff6ce593f7d5503bf388 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim: msm: Improve bulk message timeout error handlingSagar Dharia
If a bulk message times out due to interrupt starvation, a late coming interrupt may access structures that are not valid. Improve timeout error handling by resetting variables, and changing relevant logging. Change-Id: Ie0ee2fd9c2ce1628c69e1975fe713a2a26d9e716 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim: msm: Fix the instance number being sent to ADSPSagar Dharia
Every bus instance can have 2 NGD devices. Fix the instance number determination based on NGD device-id. Change-Id: I515f4f09d58a7abc0c0322ca714b88fb847a0909 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim: msm: Set Device state to sleep in case of a suspend-timeoutSagar Dharia
If low-power mode is not entered due to timeout, it is possible that HW has actually been turned off by ADSP but the response was not received by driver on apps on time. Change device state to sleep to make sure HW is woken up for subsequent runtime-resume operation. Change-Id: I4e454f7e90e1244985c86286b95202eecfc50a7e Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim: msm: Return success for ch-remove type of messages during SSRSagar Dharia
During SSR, all channels are removed and ports are disconnected since slimbus HW is not functional. Return success to clients for such calls so that client can mark channel/port state constistent with HW Change-Id: I9b18f8e7ffe233090c9612d0811a7d36645d0329 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23slim_msm: Gracefully handle QMI timeout failuresSagar Dharia
QMI timeout can happen if other processor doesn't respond within the time expected by slimbus driver on apps. It has been noticed that QMI call to power-on slimbus rarely takes more than 500msec. Timeout is increased to allow that possibility. Additionally, QMI channel is drained out of left-over messages and runtime-PM state check is modified to allow graceful handling of timeout if at all any timeout still happens. Change-Id: I392a4fa761735135a261fb543815823cee5eba41 Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-22slimbus: Remove use of PM_RUNTIME feature flagGirish Mahadevan
Remove the use of PM_RUNTIME feature flag which is obsoleted on newer kernel versions. Instead use PM feature flag to condiitionally compile RPM callbacks. Change-Id: I775c89f79b698bf3f20fdb655216027e58e7059d Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
2016-03-22slimbus: Add snapshot of slimbus driverGirish Mahadevan
Add snapshot of slimbus driver from msm-3.18 branch. Baseline: e70ad0cd5efdd9dc91a77dcdac31d6132e1315c1 Change-Id: I82f8f91596d2c3e9ef111e26c80298d990f6c193 Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>