Add changes to support SSR in pinctrl lpi driver
based on snd event framework.
Change-Id: If4fb3085ab69ae04628ef10a8b528d0cdc20f40d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add changes to recover audio during SSR and PDR
in swr master controller driver.
Change-Id: Ibe3ae097b5f9d59b135d861c5f50f6bbc1c05af6
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add changes to call pm runtime calls only once for soundwire
master active, to be able to decrement and put to suspend
during SSR.
Change-Id: I068040e2a224d1ee97f472f69f25af77ae632be2
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
For MCLK frequency switching to 11.2896 for native
playback support, frameshape also needs to be changed
accordingly. Add changes to support frameshape switch
based on mclk frequency for given master.
Change-Id: I0c4dd69b743f83b45eeed73f27ad10e878b9244b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add support to listen for DC detection event.
Shutdown WSA on receiving DC detection event.
Porting the changes from old master driver to new driver.
Change-Id: I4d323bb8074d447b2969dd01c7129e57160b6c04
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Fix noise issue with mono speaker by properly disabling
the previous port config.
Change-Id: I55fde87fcea5c8a7f05ff82a0d8967bc7688882b
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
When temperature on a single wsa881x device is being read,
then soundwire master wakes up both wsa881x devices but
regcache_sync is happening only for one wsa881x device on
which the temperature is being read. This results in
audio playback mute after temperature read. Fix the
regcache sync during temperature read and playback usecase.
Change-Id: Icee46d5105bb449f14855d33bdcb00cf5c77cb91
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add locking for soundwire fifo operation as same
function call can be used at a time by a different thread
like mbhc, and fix register definitions in header.
Add soundwire slave interrupt clear registers as part of
slave interrupt event in master interrupt handler.
Change-Id: I94d9b7ac09192dbf8aa3248d35956b380430ee0b
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Add support for SND event framework for helping with
notifications among different audio modules/drivers.
The SND event framework functions with a master/client
mechanism, where each client and the master register
with the framework, and then notifies its own status
(UP/DOWN). Each master will share a list of clients it
is interested in, and once all the clients are registered
and notified UP, the framework's state will be UP. On the
other hand, as and when any one of the client, or the master
reports its state as DOWN while the framework is UP, the
framework state would be changed to DOWN, and all clients
and the master would be let know about the change.
Change-Id: Ief6f26c5d5626c29246472ad71c247d71ee9e92f
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
When stereo playback start and temperature read
initiated at same time, one of speaker PA bits are
not set in particular race scenario. Handle the
broadcast check in soundwire framework to ensure
broadcast is disabled only when respective gr_sid
slave calls swr_remove_from_group.
Change-Id: I6f82a8c3c0f39dc20c1def09c1728ce4c26c2f5d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
When temperature on a single wsa881x device is being read,
then soundwire master wakes up both wsa881x devices but
regcache_sync is happening only for one wsa881x device on
which the temperature is being read. This results in
audio playback mute after temperature read. Fix the
regcache sync during temperature read and playback usecase.
Change-Id: I856b96517c629ac685bbc25caabee841037106c8
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add wcd937x swr slave and codec driver.
This adds only basic support for codec registration.
Change-Id: I87519a234f14d34a019c8f66652b7224759e639c
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Interrupts will be handled by slave driver. This
needs slave pointer to store virtual interrupt and
pass it as a parameter to handle_nested_irq.
Change-Id: I356102a04b4fda7e5863f809cd848d7a82b82f36
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Update config file and make rules for msmsteppe
compilation.
Change-Id: I374a0725a7dd36edc9e04652fb07dc719310565c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In order to support variable lpi offsets from different chipsets
read the lpi offset values of gpio groups from device tree. Any
target which uses LPI has to define this gpio offset table
in device tree.
Change-Id: I3bd54017e4571deb9a189cfd6903698887a6413a
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
Add new kconfig to control compilation of new soundwire driver
Change-Id: I6eb8b30de9f6dc2ffa152b6dfffbc2b02d0a990c
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Add support for audio drivers compilation on kernel-4.14.
Change-Id: Id7689cef4ae7cdb6711fed386d2a6b0d427b3fc3
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
New soundwire master driver to support multi master
for Talos/vipertooth.
Change-Id: I2616b940339e8f3d8d120e6705247d7bd1656bac
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
soundwire bus driver changes to support new soundwire
master driver for Talos/vipertooth.
Change-Id: I70e52a72edd80abc72ccb99b29b1a642debec257
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Add support to listen for DC detection event.
Shutdown WSA on receiving DC detection event.
CRs-Fixed: 2244131
Change-Id: Ifecab8bb9862976a647a161bad4c202b6e6459c7
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
Use CONFIG_ARCH_SM6150 for Talos to enable
proper compilation.
Change-Id: I14e06122116c431bf4b99da3a061d165f68e0d4f
Signed-off-by: Tanya Dixit <tdixit@codeaurora.org>
Add MSMSTEPPE in the makefile rules to enable
compilation for SDM640.
Change-Id: I36437404d98229c8b292fd63304498122d8c8687
Signed-off-by: Tanya Dixit <tdixit@codeaurora.org>
Update all audio drivers to use updated chipset name in
files, functions, architecture specific configurations
and the device tree compatible strings.
Change-Id: I507948866213ddb8806edea71a57c1f29ce7e71b
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Update all audio drivers to use updated chipset name
in architecture specific configurations and the device
tree compatible strings.
Change-Id: Ib1abe643c6914c1b0b57ef110c7b60e23e356d97
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Use pm_runtime_put_sync_suspend to tear down soundwire master.
It makes sure the process is synced with the autosuspend call
flow.
Change-Id: Ib4feccd905bcbf046e58bd5eaffde40ee391feda
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Update module symbol folder from PRODUCT_OUT to OUT.
Change-Id: I4542c3d2b5e9e39b69f15954ef425c1915a58456
Signed-off-by: Meng Wang <mwang@codeaurora.org>
For remove module(rmmod), update drivers
to cleanup resources and allow insert module
again without any issue.
Change-Id: Iddc6e5e11d986359afd3100bf3c5eab70cb1c1eb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
In SDM450, WSA reset pin is shared for both WSA left
and right speakers. When reset pin toggled, both devices
enumerate and can be filled in any order in SWRM_DEV list.
But get_logical_address loops only once for first slave
addition and fails if the device entry is present at second
in SWRM_DEV list. Update logic of get_logical_address to
loop through max devices possible.
CRs-Fixed: 2196399
Change-Id: Ie31cea5a9b22e09a3c5c01e177cd1b78e8d2f28d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>