summaryrefslogtreecommitdiff
path: root/cs40l26/cs40l26-codec.c
AgeCommit message (Collapse)Author
2022-05-31cs40l26: merge cs40l26 v5.2.1android-t-beta-3.2_r0.4Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-v5.2.1_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c (No changes) drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - Add vpbr_thld sysfs control - Add svc_le_est sysfs control in calibration directory Bug fixes: - Fix issue where invert and SVC were not applied to streaming data on first playback - Fix vibe_state issue when stopping an SVC effect immediately after triggering - Work around PSEQ_WRITE_REG full sign extention bug - Fix bug in SVC and invert kcontrols where driver attempts to access control before ensuring device is awake Major API changes: - None Commits: 217a3c0 ASoC: cs40l26: Use pm_runtime for kcontrols b6e471f ASoC: cs40l26: Report return value upon PM Runtime Resume Failure 112d30b input: cs40l26: Report return value upon PM Runtime Resume Failure 0b5f633 ASoC: cs40l26: PM Resume error handle for CODEC 40792b3 input: cs40l26: Improvements to SVC Le Estimation fc06825 input: cs40l26: Support for maintenance firmware branch 3952b3b input: cs40l26: Address PSEQ WRITE_FULL issue aaaf562 input: cs40l26: Add sysfs control for vpbr_thld caa3f56 input: cs40l26: Move stop delay outside mutex (Skip) 63b3998 Documentation: cs40l26: Fix timeout maximum values 2075e2f ASoC: cs40l26: Move PMU-time register writes to mixer controls (Skip) e376a83 Documentation: cs40l26: Fix "cirrus,redc-default" calculation 0bb9162 ASoC: cs40l26: Use set_pll_loop() during RECLK config 4b341ed input: cs40l26: Avoid DSP lock during driver probe Bug: 231410838 Test: Copy texts and adjust alarm Test: NFC, dumpstate, keyboard vibration Test: idlcli commands Test: Switch firmware continuous Test: Switch firmware and check the first tick effect Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: Ide206f8ea173e79267fa4506dece31f6e26a9356
2022-04-18cs40l26: merge cs40l26 v5.0.0Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-v5.0.0_5.10 Files: drivers/input/misc/cs40l26-i2c.c drivers/input/misc/cs40l26-spi.c drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c - Skip cs40l26_set_tdm_slot() since removed. Features: - Support for 1.2V variant CS40L27 - Support for SVC calibration period in ASP waveforms Bug fixes: - Resolve race condition between IRQ clear write and DSP to host mailbox messages. - Avoid I2C timeouts by preventing hibernation directly after the DSP starts at probe then allowing hibernation once initialization is complete. Major API changes: - The sysfs control "fw_mode" which resided in "default" has been removed. The driver does not support a full-featured ROM mode so this control served no purpose. - The sysfs control "calib_fw_load" has moved from the "calibration" directory to the "default" directory and has been renamed "swap_firmware". The behavior of the control is unchanged. Commits: 733da2 input: cs40l26: Change firmware loading sysfs control 3120e4 input: cs40l26: Remove support for firmware mode 7db090 input: cs40l26: Print error register as hex f0c156 ASoC: cs40l26: Wait for SVC calibration 9bf4b8 input: cs40l26: Add event for end of SVC calibration c32679 input: cs40l26: Clear EINT before servicing mailbox (Skip) 9df7d5 Documentation: cs40l26: Add "cs40l27" compatible name 13710b input: cs40l26: Add support for CS40L27 and rev. B0 756dbc input: cs40l26: Prevent hibernation after DSP start 00e050 ASoC: cs40l26: Remove check of dai->id in set_tdm_slot() 80b821 input: cs40l26: Ensure write to PSEQ is acknowledged Bug: 228290494 Test: Copy texts and adjust alarm Test: NFC, dumpstate, keyboard vibration Test: idlcli commands Test: Switch firmware continuous Test: Switch firmware and check the first tick effect Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I1961844366065acc2951c386f1516877648aaaf9
2022-03-04cs40l26: merge dsp v3.1.7, cs40l26 v4.0.2 and v4.0.3Tai Kuo
Branch: v5.10-cirrus-dsp-fw Tag: cl-dsp-fw-v3.1.7_5.10 Files: drivers/firmware/cirrus/cl_dsp.c include/linux/firmware/cirrus/cl_dsp.h Bug fixes: - Replace strlcpy() instances with strscpy() - Improved error reporting for invalid algo. rev - Minor typo fix Commits: 0a2a7f7 firmware: cirrus: Fix typo 332111a firmware: cirrus: Improve error reporting for invalid algo. rev. ec97039 firmware: cirrus: Use strscpy for string copying --- Branch: v5.10-cs40l26 Tag: cs40l26-v4.0.2_5.10, cs40l26-v4.0.3_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - Allow swapping firmwares of the same type (runtime/calibration) - Add support for Dynamic Boost Control via sysfs controls - Extend range of PM timeouts Bug fixes: - Fixes bug in which PSEQ list terminator was not being reset between firmware swaps. - Appropriately clear GPI mapping after erasing waveform Commits: tag: cs40l26-v4.0.3_5.10 0c520ef input: cs40l26: Reset PSEQ END_OF_SCRIPT on fw swap 956d534 input: cs40l26: Check pseq mem before adding op tag: cs40l26-v4.0.2_5.10 4a9f5e3 input: cs40l26: Update SVC tuning file name size 882895f input: cs40l26: Loosen restriction on firmware swapping 5c7f770 input: cs40l26: Use strscpy for string copying 0700a83 ASoC: cs40l26: Update Handling of SVC for ASP Streaming cfeac58 input: cs40l26: Add user controls for Dynamic Boost 6068def input: cs40l26: Update PM Transition Timeout Limits b65b511 input: cs40l26: Fix value to disable gpi triggers Bug: 222620491 Test: idlcli commands. Test: Firmware switching and then trigger haptics Test: Continuous index 0 haptics Test: Continuous index 9 hatpcis Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: Ic2eaca8fe2cce9ef0c4b03460ddca791ad57d852
2022-02-08cs40l26: merge CirrusLogic cs40l26 v4.0.0Tai Kuo
Branch: v5.10-cs40l26 Tag: CS40L26-v4.0.0_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - Devicetree Property "cirrus,gain-adjust" - For LRA-specific gain changes - Controls for f0 and ReDC Compensation - Sysfs control vmon_max for VMON logging maximum reporting - Allow multiple writes to one register in power on sequencer - Devicetree Property "cirrus,bst-expl-mode-disbale" - If present, will disable boost exploratory mode at the cost of the ability to reliably detect BST_SHORT_ERR instances - Imrpoved error handling for PM Runtime Resume errors Bug fixes: - Update error handling to avoid deadlock - Avoid hibernation when intializing power on sequencer - Updated handling of vibe_state to avoid race condition with firmware - Code Improvements Commits: e4b5d23 ASoC: cs40l26: Ensure recovery from PM Runtime Resume error 2d5cb03 input: cs40l26: Ensure recovery from PM Runtime Resume error (SKIP) 098d137 Documentation: cs40l26: Add DT boolean "cirrus,bst-expl-mode-disable" 30c30e7 input: cs40l26: Add DT boolean "cirrus,bst-expl-mode-disable" (SKIP) 0707fb3 Documentation: cs40l26: Add DT boolean "cirrus,vibe-state" 38592da input: cs40l26: Add DT boolean "cirrus,vibe-state" 7e0c02c input: cs40l26: Read IRQ1_STATUS after PM Runtime resume c903a82 input: cs40l26: Load calibration tuning file 26e93ab input: cs40l26: Print measured LE estimation value b8ef3b0 input: cs40l26: Disable Boost Exploratory Mode 2d8ef2c input: cs40l26: Allow multiple writes to an address in PSEQ 9f166cd input: cs40l26: Update vibe_state in mailbox handler 53f24ab input: cs40l26: Add vmon_max logging sysfs control c7708f5 input: cs40l26: Avoid hibernation when initializing PSEQ 337536d input: cs40l26: Add f0 and redc comp controls (SKIP) 6e1642c Documentation: cs40l26: Add DT property "gain-adjust" eb1fed7 input: cs40l26: Add DT property "gain-adjust" bc34f05 input: cs40l26: Move BST_IPK_FLAG unmask to proper function 0570df1 input: cs40l26: Update error handling procedure Bug: 205688153 Test: idlcli commands. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: Ic4b7cc5664c32132125178f7a41ca7c1a916123e
2022-02-08cs40l26: merge CirrusLogic dsp v3.1.6 and cs40l26 v3.4.0Tai Kuo
Branch: v5.10-cirrus-dsp-fw Tag: cl-dsp-fw-v3.1.6_5.10 Files: drivers/firmware/cirrus/cl_dsp.c include/linux/firmware/cirrus/cl_dsp.h Features: - cl-dsp-fw-v3.1.4_5.10 Add memchunk flush Bug fixes: - cl-dsp-fw-v3.1.6_5.10 Fix syntax error caught by checkpatch.pl - cl_dsp-v3.1.5_5.10 Fix bug that allowed for a potential NULL pointer dereference - cl-dsp-fw-v3.1.4_5.10 Add empty check for get dsp register. Commits: 9ee092c firmware: cirrus: Fix code syntax error 16af046 firmware: cirrus: Avoid potential NULL dereference f916a30 firmware: cirrus: Add cl_dsp_memchunk_flush() 4cf0400 firmware: cirrus: Add empty check in dsp_get_reg 30034b6 firmware: cirrus: arm64 compiler fix Change-Id: I2efbf1611bad281b67fc035b31b30925e869082b --- Branch: v5.10-cs40l26 Tag: cs40l26-v3.4.0_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c (No changes) drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - cs40l26-v3.4.0_5.10 Improved information from DSP to host mailbox transactions Additional debug logging - cs40l26-v3.3.0_5.10 Expose LRADELAYSAMPS to user Support for DVL tuning Contingency for DSP start failure on boot - cs40l26-v3.1.2_5.10 Add Support for Nested Composite Waveform Improve BUZZGEN GPI trigger support Support GPI triggers of OWT waveforms Fix NUM_OF_WAVES race condition Improve deferred firmware loading DT parameter to set idle -> hibernate DSP timeout Bug fixes: - cs40l26-v3.4.0_5.10 Updated handling of vibe_state Explicitly stop haptic playback before starting I2S stream Prevent asynchrnous I2S start message to mailbox from driver Improved code clarity Resolution of clang, cppcheck, sparse, and checkpatch warnings - cs40l26-v3.3.0_5.10 Prevent asynchrnous erase/upload calls Prevent asynchronous interrupts from affecting code under mutex lock Code improvements to write sequencer Static analysis fixes Memory leak correction - cs40l26-v3.1.2_5.10 Check for the DSP to be initialized before uploading a waveform Do not allow stop command only if the ASP is active. Commits: ba22584 input: cs40l26: Resolve Warnings caused by DEVICE_ATTR b1f116d input: cs40l26: Clarify read size in pseq_init() 3447c80 ASoC: cs40l26: Use new vibe_state handling a3e37ec input: cs40l26: Update handling of vibe_state 8ec6127 ASoC: cs40l26: remove old vibe_state handling bc9f10c input: cs40l26: Add debug message in erase_effect dd88832 input: cs40l26: Support new FW event notifiers 4a963ec input: cs40l26: Add support for FW branch fead3ba input: cs40l26: Stop playback before starting I2S 0827b6c ASoC: cs40l26: Always unlock mutex in cs40l26_pcm_ev 4753f8c input: cs40l26: Resolve clang warnings e7f25c9 input: cs40l26: Resolve cppcheck warnings 5fcb292 input: cs40l26: Ensure vibe_state_set() called under mutex lock 75ad45a input: cs40l26: Additional defines and logging 6da8378 ASoC: cs40l26: Use asp_start() to start I2S stream a14e17b input: cs40l26: Replace asp_workqueue with asp_start function 7191239 ASoC: cs40l26: Remove usage of asp_work 5a32ccf input: cs40l26: Don't remove OWT effect from list if delete fails c7272dc ASoC: cs40l26: Expose delay controls dd4491a input: cs40l26: Load DVL tuning file 4b84df2 input: cs40l26: Use devm_ for allocation 7163487 input: cs40l26: Set up parameters before dsp start 31b55dd input: cs40l26: Retry if DSP is not in run state 626f83c input: cs40l26: Set timeout to max on fw re-load f33edc6 ASoC: cs40l26: Fix potential memory leak aebbb26 input: cs40l26: Fix static analysis errors 7a5489e input: cs40l26: Adding debug prints ff55e98 input: cs40l26: Add erase and upload operations to ordered workqueue 9c9da81 input: cs40l26: Mutex protect interrupt handler 332bb17 input: cs40l26: Write sequencer updates c5be6bb input: cs40l26: No stop command during ASP 7e806e4 input: cs40l26: use type-specific min function f93a999 input: cs40l26: Check for uninitialised DSP in cs40l26_header c659dec input: cs40l26: Changing GPI map API f12a21b input: cs40l26: Add delay before stopping playback 3732052 input: cs40l26: Delay registration of IRQ until firmware is loaded 6de4136 input: cs40l26: Add fw load defer 7d5e01b input: cs40l26: Correct memory space calculation for 4-byte words e8123a3 input: cs40l26: Add Support for Nested Composite Waveforms aa472ba input: cs40l26: Read NUM_OF_WAVES before each trigger 98ff3b5 input: cs40l26: Add dt parameter for DSP transition Bug: 205688153 Test: N/A. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I606c7d75891f85995eadf367d4b833b682f8e23d
2021-10-05cs40l26: merge CirrusLogic cs40l26 v3.0.3Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-v3.0.3_5.10 Files: - drivers/input/misc/cs40l26-i2c.c (No changes) - drivers/input/misc/cs40l26-spi.c (No changes) - drivers/input/misc/cs40l26-sysfs.c - drivers/input/misc/cs40l26-tables.c (No changes) - drivers/input/misc/cs40l26.c - include/linux/mfd/cs40l26.h - sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Fetures: - Defer Class H Handling to Firmware (rev >= 7.2.10) - Add bost_disable_delay sysfs control - Support for indefinite SVC and Wavetable tunings based on LE value - Add F0_Offset sysfs control - Use firmware timer instead of HR Timer to schedule haptics Bug fixes: - Avoid infinite vibration race-condition - Graceful exiting of interrupt handler if wake fails - Use programmed duration for OWT effects instead of calculated waveform lentgth Commits: 48d307c79dfb input: cs40l26: Use firmware timer to schedule haptic effects 93880c7a2a41 input: cs40l26: Recover from wakeup error in interrupt handler a330f54756ee input: cs40l26: Change timeout control for OWT a7209b6bce3b input: cs40l26: Add F0 offset sysfs (Skip) 80e7aa51feaa Documentation: cs40l26: Support for multiple SVC LE ranges 83e57c54b934 input: cs40l26: Support for multiple SVC LE ranges 0bc5f644a3fd input: cs40l26: Use STOP_PLAYBACK mailbox command a8c2d057d971 input: cs40l26: Add boost_disable_delay control 0f0eb802dd0f input: cs40l26: Remove Class H handling 18877c7a715c ASoC: cs40l26: Remove Class H handling Bug: 193793095 Test: NFC, bugreport, notification vibration can stop. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: Iec2a75aa2c94e14c6079b05c2b438afd6c7beca1 (cherry picked from commit aaad7003272facb3e7eb2c768520885390ccb963)
2021-09-14cs40l26: merge CirrusLogic dsp v3.1.3 and cs40l26 v2.0.1Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-v2.0.1_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - I2S VMON Mixer Control - DSP bypass streaming - 96 kHz streaming - Support for multiple OWT waveforms - sysfs control for number of waveforms Bug fixes: - Fix conditional Class H handling for SVC streaming - sysfs control owt_free_space shows space in byte commits: 8aa3d7e996ab input: cs40l26: Remove acknowledge debug message d87c12eb9614 ASoC: cs40l26: Do not enable Class H if SVC is enabled e99f87cb6afb input: cs40l26: Handle Class H Corner Cases 4ea6bac22a23 input: cs40l26: Add sysfs control to get number of waveforms 32c7894579fb input: cs40l26: Display OWT free space in bytes 5ff5dc33ad15 input: cs40l26: Handle Multiple OWT Waveforms 30fde7eeb877 ASoC: Adding support for 96kHz fs and DSP bypass eccaf3df6af1 ASoC: cs40l26: Use workqueue to start I2S stream e9d0a46bfbbb input: cs40l26: Use workqueue to start I2S stream 770ab3b80cab ASoC: cs40l26: Display VMON value 487c966bba02 input: cs40l26: Add SPKMON_VMON_DEC_OUT_DATA as readable register Branch: v5.10-cirrus-dsp-fw Tag: cl-dsp-fw-v3.1.3_5.10 Files: drivers/firmware/cirrus/cl_dsp.c include/linux/firmware/cirrus/cl_dsp.h Increase maximum number of waveforms that can be uploaded via .bin file to 254 from 128. commits: d3be11f7f382 firmware: cirrus: Increase maximum number of wavetable entries Bug: 193782625 Bug: 196485489 Test: Check idlcli vibrator commands. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: Ifa4828cb32ee342fee31306d288313e5ea7b857a
2021-09-14cs40l26: Add the RX slots control function backchasewu
Since the latest haptics codec cannot be used in our current setting, I add the previous function to suppot our setting. Bug: 197691879 Test: Use sound picker to trigger audio coupled haptics Signed-off-by: chasewu <chasewu@google.com> Change-Id: I5d5477bd6155edff7b42ecf56c8bde38d4f1bd34
2021-09-08cs40l26: merge CirrusLogic dsp v3.1.2 and cs40l26 v1.1.0Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-v1.1.0_5.10 Files: drivers/input/misc/cs40l26-i2c.c (No changes) drivers/input/misc/cs40l26-spi.c (No changes) drivers/input/misc/cs40l26-sysfs.c drivers/input/misc/cs40l26-tables.c drivers/input/misc/cs40l26.c include/linux/mfd/cs40l26.h sound/soc/codecs/cs40l26.c -> cs40l26-codec.c Features: - Increase A2H Volume Granularity - Add more debug-level statements - sysfs control to get amount of space left in wavetable - DT control to set maximum boost peak current - sysfs control to read die temperature - sysfs control to swap firmware variants at runtime - Load firmware synchronously - Inverted streaming and waveform playback - SVC enable for effects streamed via ASP - Map Haptic Effects to GPI events - Actuator Safe Mode workaround - Remove support for A0 silicon Bug fixes: - Remove unused variables - Cancel worker threads before deleting workqueue commits: c07047bd1087 ASoC: cs40l26: Add control to enable invert streaming data 7d0b08956875 input: cs40l26: Remove A0 silicon support d6c20f8342fd input: cs40l26: Update firmware swap function (Skip) 421500c4eb47 Documentation: cs40l26: Add option to load specified SVC tuning a3fb83ecc3b3 input: cs40l26: Add option to load specified SVC tuning 736aa239110c ASoC: cs40l26: Add control to enable SVC for streaming data 7c060144b291 input: cs40l26: Implement actuator safe mode workaround 9b866d0e0362 input: cs40l26: Map Haptic Effects to GPI Events e28e0a5131cc input: cs40l26: Add ability to invert waveform playback 961e4ba3a4bb input: cs40l26: Load firmware synchronously 23463ef1ab4a input: cs40l26: Add ability to swap firmware variants 05b2d67e3c66 input: cs40l26: Remove ENABLE/DISABLE macros b6bd69389b17 input: cs40l26: Remove unneeded use of variable in cs40l26_pcm_ev 27af6399be8c input: cs40l26: Cancel worker threads before destroying workqueue 1794f854a2d0 input: cs40l26: Add control to read die temperature when DSP is active 50bf4051b3a8 input: cs40l26: Remove silicon rev. checks for algorithm IDs (Skip) 3982e2db9db5 Documentation: cs40l26: Allow user to set peak boost current 756186d689c5 input: cs40l26: Allow user to set peak boost current ed0f6bc72faa input: cs40l26: Control to read remaining space in wavetable 72510182f0f2 input: cs40l26: Use percentage value to set A0 gain 91d781c96e12 input: cs40l26: Make status registers readable via regmap a8beb7e4c41f ASoC: cs40l26: Add dev_dbg statments to ALSA callbacks c5b8320ebbce input: cs40l26: Add debug statements 17b3a65e18d1 input: cs40l26: Control to read Power On Sequence 8c4f68e0194a ASoC: cs40l26: Increase A2H Volume granularity Branch: v5.10-cirrus-dsp-fw Tag: cl-dsp-fw-v3.1.2_5.10 Files: drivers/firmware/cirrus/cl_dsp.c include/linux/firmware/cirrus/cl_dsp.h Allocate array memory for .bin file data dynamically instead of using a hard-coded value to avoid possibility of a kernel crash. Allow firmware to load even if there are incompatibilities between the expected firmware version, the loaded firmware, and the tuning file revisions. commits: 79a4a41e4fc6 firmware: cirrus: Allocate data array dynamically 19140c2d644b firmware: cirrus: Loosen restrictions on firmware loading 8e02f2e42990 firmware: cirrus: Don't explicitly free coefficient parent name Bug: 191658078 Bug: 180110149 Bug: 194540033 Bug: 193793095 Test: Check idlcli vibrator commands. Test: Back EMF for internal calibration. Test: Firmware swap. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I7db82ce23663772a83e69490b88cfb47e4bf93f3
2021-07-08cs40l26: fix BB for CirrusLogic cs40l26-RC2_5.10Tai Kuo
Commits: 2dbcb12 cs40l26: fix BB for CirrusLogic RC2v1 1a241e1 cs40l26: convert dev_alert to dev_err ba22cd0 cs40l26: fix BB of "Add Open Wavetable Support" Bug: 184610991 Test: build pass Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I129e582b049a5a61599f3e8ec45cb43d72a6ffab
2021-07-08cs40l26: snap from CirrusLogic cs40l26-RC2_5.10Tai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-RC2_5.10 Files: drivers/input/misc/cs40l26*.[ch] sound/soc/codecs/cs40l26.c -> cs40l26-codec.c include/linux/mfd/cs40l26.h commits: 3cbb0ce07f52 input: cs40l26: Update Open Wavetable Controls (Skip) 5165eb5311b7 Documentation: cs40l26: Add cirrus,bst-dcm-en parameter a305a491026d input: cs40l26: Add dcm-en control to device tree 97bf00f3033f input: cs40l26: Improved gain control method a0620f60b09e input: cs40l26: Max VBST and Max Back EMF Reproting 21afb84718b8 input: cs40l26: Add support for calibration 557581c4e4ef ASoC: cs40l26: Add support for TDM slot configuration fbff8ee424c3 ASoC: cs40l26: Add A2H Volume Control 31cce50083e5 input: cs40l26: Use END_PLAYBACK for VIBEGEN effects a06bc9bd293d input: cs40l26: Use TIMEOUT_MS when duration undefined 07405c86dacb input: cs40l26: Remove unused variable Bug: 184610991 Test: n/a Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I75e3349dbcf5e9358158ee9754fd7a085afd133c
2021-05-11cs40l26: merge driver modules from CirrusLogic RC2v1Tai Kuo
5897d91abf99 input: cs40l26: Improved gain control method 18ded7ea08ca input: cs40l26: Max Back EMF API 756ce5f138dc input: cs40l26: Add support for calibration 458244dc72ca ASoC: cs40l26: Add support for TDM slot configuration 236237999946 ASoC: cs40l26: Add A2H Volume Control 1573f3fe2d5b input: cs40l26: Use END_PLAYBACK for VIBEGEN effects 346cb8cd67ba input: cs40l26: Use TIMEOUT_MS when duration undefined 40d10f025eba input: cs40l26: Remove unused variable Bug: 184610991 Test: Driver attribute files show up. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I7dc25d526fcc0bcbd10619d46b3b382896dc50ac
2021-04-19cs40l26: bring up haptics modulesTai Kuo
Bug: 184610991 Test: Built pass. Test: Driver probed. Test: Basic function. Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I82d0f37a74a73b2e0c23eee186a55c2823b9de34
2021-04-19cs40l26: snap driver modules from CirrusLogicTai Kuo
Branch: v5.10-cs40l26 Tag: cs40l26-RC1v5_5.10 Files: drivers/input/misc/cs40l26*.[ch] sound/soc/codecs/cs40l26.c -> cs40l26-codec.c include/linux/mfd/cs40l26.h Commits: 48008bf7e951 input: cs40l26: Allow MFD to number children a466efc1776a input: cs40l26: Configure some ASP controls in core driver 3dd2be5060ce ASoC: cs40l26: Do not access firmware controls in codec_probe 0d8255c507fc input: cs40l26: Remove function for coeff. file loading abb4c12fee99 input: cs40l26: Reserve cs40l26_ack_read for polling a907b2432e82 input: cs40l26: Increment A0 minimum firmware revision to 5.0.4 43ae62e013fd input: cs40l26: Add minimum revision value for A1 firmware 59e7425816a7 input: cs40l26: Verify firmware in core driver 9709db269456 input: cs40l26: Support PWLE waveforms in Open Wavetable a9dfa6d32ac8 input: cs40l26: Fix misspelled variable name 951630cb6608 ASoC: cs40l26: Reverse logic for using tdm_width 40ae66e93fd1 input: cs40l26: Add Open Wavetable Support 0a674a1ccfea input: cs40l26: Add support for pseq v2 d749863a9703 input: cs40l26: Add errata write to fix indeterminate PLL lock time 32ecacc32a36 input: cs40l26: Add support for A1 chip revision e4c3a094ecdf input: cs40l26: Convert mailbox queue to use registers in wmfw 1b193fad6fc1 input: cs40l26: Ensure DSP can accept mailbox commands 1675126b9e1a input: cs40l26: Wait to enable pm runtime controls until firmware ready 9dae893f3448 input: cs40l26: Improvements to pm_state_transition 96e1be15046b ASoC: cs40l26: Wake device when probing codec driver. a9444c9b2c77 input: cs40l26: Change some instances of dsp_read to regmap_read c4b71016240d ASoC: cs40l26: Switch A2H tunings at runtime 1629fb45fec6 input: cs40l26: Re-enable I2S stream after haptic effect ffc4e2ccfe95 ASoC: cs40l26: Add ASP vibe state enum 8733e2547135 input: cs40l26: Improve vibe_state tracking a5b0a135f849 ASoC: cs40l26: Enable Class H tracking during ASP playback 56a8557861dd input: cs40l26: Function to set Class H 8817c80d021f ASoC: cs40l26: Add Option to Disable ASP Playback 98bf94b1df98 input: cs40l26: Changes to PM hibernate/shutdown timeout 1a09000c60d8 input: cs40l26: Remove Firmware ID check after state transition 1b5a5b26e9fe input: cs40l26: Use LAST_WAKESRC_CTL to determine GPIO status 7407cb8ffc91 input: cs40l26: Add set_gain callback 67095dcbc5ca input: cs40l26: Share of_device_id table between SPI/I2C drivers 268c9da5bcfd ASoC: cs40l26: Add set_tdm_slot callback 919ab920876b ASoC: cs40l26: Add TDM Support 77baad927c8d ASoC: cs40l26: Remove redundant stream direction check 830c4e0b5618 ASoC: cs40l26: Don't write DAI format directly from cs40l26_set_dai_fmt f938eac74f10 ASoC: cs40l26: Remove incorrect usage of params_physical_width f0b8a8823f06 ASoC: cs40l26: Remove unused ASP Switch 468770e2856f ASoC: cs40l26: Use PLL Open Loop when changing REFCLK 37a598f9bac0 input: cs40l26: Enable IRQ after error a81070994853 input: cs40l26: Enable CS40L26 Codec in core driver fc48e705a381 ASoC: cs40l26: Add CS40L26 Stub Codec Driver e731f6adaac6 input: cs40l26: Share regmap config between I2C and SPI drivers. 1aacdf180f91 input: cs40l26: Don't build core driver module 6d75aa2d5dc0 input: cs40l26: Remove extra space in function prototype 8d287c195371 Documentation: cs40l26: Add CS40L26A/B devicetree options 74867e2b5f25 input: cs40l26: Add CS40L26A/B devicetree options 0e3bcf4b2e52 input: cs40l26: Read entire mailbox queue upon DSP write ca583f106052 input: cs40l26: Add Runtime Power Management Support 25b5096dc06d input: cs40l26: Change include location of CL DSP 3884ddc083c2 input: cs40l26: Configure wakesource IRQs based on device settings 5b7430bf8db5 input: cs40l26: Reject indeces exceeding number of loaded waveforms b664bc4faa40 input: cs40l26: Changes to sysfs controls f7322edc1820 input: cs40l26: Function to read DSP state 2e1dc1d42ab4 input: cs40l26: Update Copyright Year ea17111bb00b input: cs40l26: Add debug message for completed playback 17457b94d942 input: cs40l26: Enable DSP Shutdown and Wakeup Commands 705aa77f234c input: cs40l26: Update Start Up Procedure for A0 Silicon a42bac99c20b input: cs40l26: Remove cs40l26_dsp_shutdown() 89fba3c7e7e1 input: cs40l26: Updates to power on sequence 4123501cf9d0 input: cs40l26: Clear Interrupt after error f2b73020a677 input: cs40l26: Change IRQ notificatios to dev_dbg() 2be81af5037e input: cs40l26: Change msleep() to usleep_range() fd8c8f5ab3b0 input: cs40l26: Disable VA and VP Regulators Separately 2175609afa4e input: cs40l26: Add support for CS40L26A/B c519e1b08467 input: cs40l26: Add Support for SVC tuning 2b87832f2b0f input: cs40l26: Decrease ROM waveform bank granularity 3df8b4237b2e input: cs40l26: Graceful shutdown when handling BST errors 92a3eff7ff40 input: cs40l26: Add Support for Coefficient File Loading f67aaddce758 input: cs40l26: Correct BUZZGEN duration setting f25e0fd73654 input: cs40l26: Improve efficiency of Interrupt Handling c31b95210834 input: cs40l26: Fix error release sequence 2f8d22e816a6 input: cs40l26: Add IRQ unmask function 875e70684e57 Documentation: cs40l26: Add Support for RAM firmware 96b59a7edb94 input: cs40l26: Add Support for RAM firmware d86abc93be70 Documentation: cs40l26: Add dt-bindings file for CS40L26 71f39122dae9 input: cs40l26: Initial Commit for CS40L26 Branch: v5.10-cirrus-dsp-fw Tag: cl-dsp-fw-v3.1.0_5.10 Files: drivers/firmware/cirrus/cl_dsp.c include/linux/firmware/cirrus/cl_dsp.h Commits: 47254bf6e2c2 firmware: cirrus: Ignore Silicon Revision when looking for wavetable f31f14932f72 firmware: cirrus: Warn user about mismatched revisions 97963c7898f1 firmware: cirrus: Let core driver handle revision checking 5ebd6b1cdf42 firmware: cirrus: Add Open Wavetable Support 6149c55ae03e firmware: cirrus: Ignore chip revision when verifying algo id d5273a4a9ffd firmware: cirrus: Remove check before debug statement. 672fc70f5c74 firmware: cirrus: Move CL DSP to drivers/firmware f922454891ef input: cl_dsp: Updates to coefficient descriptor list 072f7252b854 input: cl_dsp: Macros for algorithm and firmware revision cd2c76181a67 input: cl_dsp: Improve Coefficient File Parsing 7f9340b2186d input: cl_dsp: Improve Algorithm Parsing 60323ea6b804 input: cl_dsp: Standardize HALO registers 33ae8822e6ca input: cl_dsp: Parse coeff flags and length 9485dc94122c input: cl_dsp: Process Data in WMFW Header 0af257e7d6c7 input: cl_dsp: Require regmap pointer when creating struct d5db51b265af input: cl_dsp: Increase maximum number of algorithms b01a1e0e0219 input: cl_dsp: Option to skip writing to RAM c7811f4beccb input: cl_dsp: Improve firmware data parsing 276542f62ced input: cl_dsp: Move includes to .h file ebd97015fa68 input: cl_dsp: Improved memory management d6bcce379fb0 input: cl_dsp: Move .h file to mfd 6e8352d35ba2 input: cl_dsp: Ensure packed data is aligned to 4 words ff235ec69691 input: cl_dsp: Catch additional errors in get_reg function eb65b8e79dbb input: cl_dsp: Support packed types in coefficient files 9f7125dca680 input: cl_dsp: Add support for wavetable date info a4515a386b9c input: cl_dsp: Add support for expliclty freeing coefficient memory fbed7662b3be input: cl_dsp: Add Support for Generic Coefficient Files 2a234316bcae input: cl_dsp: Initialize return variable d5678c49af94 input: cl_dsp: Add support for unpacked types in WMFW 7d7857d11bc9 input: cl_dsp: Add text to Kconfig for cl_dsp 2791c97e5554 input: cl_dsp: Add support for wavetable loading a728fda6c333 input: cl_dsp: Fix typo in error message f85e18f4ae46 input: cl_dsp: Add helper function for firmware parsing fd5b30bc28a7 input: cl_dsp: DSP firmware loading for input devices Bug: 184610991 Test: n/a Signed-off-by: Tai Kuo <taikuo@google.com> Change-Id: I2d29c23aafebe57c46fc2edee354dbc69826faf4