summaryrefslogtreecommitdiff
path: root/firmware/drivers/audio (follow)
Commit message (Collapse)AuthorAge
* wm8975: document audiohw settingsAmaury Pouly2016-12-12
| | | | Change-Id: I0456f85e4ebc821c23e25026fbee3d8cf7526ee7
* wm8758: document and fix audiohw settingsAmaury Pouly2016-12-12
| | | | | | It looks like a copy and paste error to me, those were completely wrong. Change-Id: Id6ae025f4216ffccb1a8b8b790916d8b6c4694bd
* wm8751: document and fix audiohw settingsAmaury Pouly2016-12-12
| | | | | | | Document 3D depth range. Fix mismatch in recording volume: the displayed volume is completely off the chart Change-Id: I4c363f369e5d72f332391a6f96457b4e450404f9
* wm8731: document audiohw settingsAmaury Pouly2016-12-12
| | | | Change-Id: I78ec26a00a3e14a95c591ac81d96e1b480b9138e
* imx233: slightly rework 3D audio settingAmaury Pouly2016-12-12
| | | | | | | | | The old code made the setting appear as 0dB, 1.5dB, 3dB and 4.5dB when in fact it is 0dB, 3dB, 4.5dB and 6dB. This commit clarifies the code and also fix this at the same time. This imx233 3D enhancement is complete crap anyway but now you can satisfy yourself with 6 dB of pure crap, clearly an enhancement. Change-Id: Ia3e088987c1ff0cdde228905ff70f46476a499a2
* imx233: fix recording gainAmaury Pouly2016-09-21
| | | | | | | | For some reason, there was a mismatch between the setting (decibel) and the audiohw code (centicel). This resulted in a gain divided by 10. This may explain why some people experienced low volume with the mic on the fuze+. Change-Id: I138ac18dd93c36f43a7dfce735efc826405c598c
* as3543: fix audio gap when switching from dac to line-in/recordingAmaury Pouly2016-08-29
| | | | | | | | | | | | | | | | Also clarity parts of the code. The old code suffered from two defects: - it was very unclear because it made changes to whole registers (using as3514_write) instead of fields (using as3514_set/clear/write_masked). Also the routing code was spread accross several functions which made it hard to follow. - it did not properly reroute audio on monitor changes. In particular, the following could happen: when switching from DAC to radio, the code would fail to clear SUM_off, resulting in a weird situation where the main mixer was off (SUM_off) but the headphone where using the main mixer as input. Incredibly this worked anyway (at least on AMSv2 and YP-R0) but resulted in strange volume gaps between DAC and radio mode. Change-Id: I7826835fdb59c21f6483b223883ca9289e85caca
* as3514: fix bug in volume management on AS3543 targets which are not AS3525v2Amaury Pouly2016-02-12
| | | | | | | | | Some old code made the assumption that CONFIG_CPU == AS3525v2 if and only if HAVE_AS3543, which is not true on targets like the Samsung YP-R0. This fixes several issues on such targets like a huge volume gap between -39dB and -40dB and a volume artificially capped at -72dB instead of -82dB. Change-Id: Ib1c883ac593c0c3ce5e2bf4eb408924ce5f5ad93
* AS3543: Fix increasing noise and power consumption if booted through roloMihail Zenkov2016-02-01
| | | | Change-Id: I99fe6d09b15689e5dd0179714bbe363aed922d10
* iPod Classic: capture support for CS42L55 codecCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a couple of power saving options that can be selected using defines, they configure the CODEC in a different way than OF does: MONO_MIC: jack microphone is connected to left channel, disabling right channel saves ~1 mW, there is no reason to not to do it. BYPASS_PGA: this option only applies to the line-in, OF does not bypass the PGA and configures it to 0 dB gain. At the beginning, this patch was written based on CODEC datasheet, bypassing PGA because it saves power and incrementes dinamic range ~1dB, i have used this setup for a while without problems. Finally this option was disabled at the last minute, i decided to do it after reviewing the OF and realizing that CS42L55 datasheet recommends to bypass the PGA only if the HW includes a couple of capacitors (see Typical Connection Diagram, Note 4), at this moment i don't know if Classic includes these capacitors (probably not). Anyway, i am not able to tell the difference listening to voice recodings. TODO: - Use variable PGA gain for jack microphone (it is fixed to +12 dB. as OF does). - I am not a fan of having lots of unused #define options, these could be useful for a generic driver but actually this driver is Classic oriented, i am not sure if it could be considered disirable to eliminate them in the final version. Change-Id: I3dadf2341f44d5e13f3847e6c9de4a76cd6f0918
* Samsung YHxxx: reduce pop noise on power downSebastian Leonhardt2015-09-24
| | | | Change-Id: Ifc82ac1051ed05527393838d8aa93bde65287b5d
* AS3543: Fix recording volume setting and voiceMihail Zenkov2015-06-02
| | | | | | Fix regressions introduced by 42219b6e7 Change-Id: I1f3edb5f269f60e9431b45a43c4370836ecac733
* iBasso DX50/DX90: Major code cleanup and reorganization.Udo Schläpfer2015-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reorganization - Separated iBasso devices from PLATFORM_ANDROID. These are now standlone hosted targets. Most device specific code is in the firmware/target/hosted/ibasso directory. - No dependency on Android SDK, only the Android NDK is needed. 32 bit Android NDK and Android API Level 16. - Separate implementation for each device where feasible. Code cleanup - Rewrite of existing code, from simple reformat to complete reimplementation. - New backlight interface, seperating backlight from touchscreen. - Rewrite of device button handler, removing unneeded code and fixing memory leaks. - New Debug messages interface logging to Android adb logcat (DEBUGF, panicf, logf). - Rewrite of lcd device handler, removing unneeded code and fixing memory leaks. - Rewrite of audiohw device handler/pcm interface, removing unneeded code and fixing memory leaks, enabling 44.1/48kHz pthreaded playback. - Rewrite of power and powermng, proper shutdown, using batterylog results (see http://gerrit.rockbox.org/r/#/c/1047/). - Rewrite of configure (Android NDK) and device specific config. - Rewrite of the Android NDK specific Makefile. Misc - All plugins/games/demos activated. - Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa. Includes - http://gerrit.rockbox.org/r/#/c/993/ - http://gerrit.rockbox.org/r/#/c/1010/ - http://gerrit.rockbox.org/r/#/c/1035/ Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight interface and new option for hold switch, touchscreen, physical button interaction. Rockbox needs the iBasso DX50/DX90 loader for startup, see http://gerrit.rockbox.org/r/#/c/1099/ The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If /mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit gracefully and the loader will restart Rockbox on USB disconnect. Tested on iBasso DX50. Compiled (not tested) for iBasso DX90. Compiled (not tested) for PLATFORM_ANDROID. Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
* Bypass the AS3543 audio mixer at higher volumes.Mihail Zenkov2015-01-19
| | | | | | This change reduces noise and distortion very slightly at higher volumes. Change-Id: I1a2eb160c2956de90764c0bb11677fdac8d96dec
* Introducing Targets iBasso DX50 & iBasso DX90Simon Rothen2014-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port. The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port. Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did was to separate the code for DX50 (&DX90) from the android target. On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it. What else I changed from Ilias sources besides the separation from the target "android": * removed a dirty hack to keep backlight off * changed value battery meter to voltage battery meter * made all plugins compile (named target as "standalone") and added keymaps * i added the graphics for the manual but did not do anything else for the manual yet * minor optimizations known bugs: * timers are slowed donw when playback is active (tinyalsa related?) * some minor bugs Things to do: * The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights. Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go. * All the wiki and manual to build: needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed ./tools/configure select iBasso DX50 or iBasso DX90 make -j apk the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed) the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed) The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary. Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his bitbucket page, using the CWM-OF and his installation script package. Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0 Reviewed-on: http://gerrit.rockbox.org/941 Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw> Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
* optimize WSPLL work for iriver h100 and h300 seriesDmitry Gamza2014-09-05
| | | | | | | | | | For Iriver h100 & h300 series we don't need always use WSPLL, because in most cases WSPLL clock and SYSCLK has the same value, and we have additional WSPLL errors to the output clock. Now that is fixed. Change-Id: I04aebee659c57c45dc8603e409b9db42bdde534a Reviewed-on: http://gerrit.rockbox.org/434 Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
* Ak4537: Optimization of the code.Szymon Dziok2014-07-26
| | | | Change-Id: I98e25d7177b24b277a79d8bf8d494dac26553c2c
* Radio and radio recording for Samsung YH-920.Szymon Dziok2014-06-18
| | | | | | | There is no simple method to detect radio through the 3-wire interface, so it's not implemented for the YH-925 for now. YH-920 always has a radio. Change-Id: Iea484d752915fcd40dbbbd7dbbf13e81aaf548db
* Samsung YH820/YH92X: Improve recording.Szymon Dziok2014-06-18
| | | | | | | | Because of architecture of the codec it's always necessary to route the input signal from ADC to DAC, in order to have a control over the monitoring volume and in order to hear anything while recording. Change-Id: I1089894c949ab7371857d74aedb6bdf5a7d39c41
* recording on Samsung YH-820/YH-92xSebastian Leonhardt2014-06-01
| | | | | | | Change-Id: I6eac4cf6c16a322910ad17bfbf3105e330cd0e36 Reviewed-on: http://gerrit.rockbox.org/815 Reviewed-by: Szymon Dziok <b0hoon@o2.pl> Tested: Szymon Dziok <b0hoon@o2.pl>
* some optimization for iriver h100 and h300 seriesDmitry Gamza2014-03-18
| | | | | | | | | | | | Turn on 4x oversampling inside UDA1380 codec. This allow will move the quantization noise to the higher frequencies, that slightly improve the final sound quality. Change-Id: Idf79cd877c526d8937a47c34e9c180d837a15db1 Reviewed-on: http://gerrit.rockbox.org/435 Reviewed-by: Michael Giacomelli <giac2000@hotmail.com> Reviewed-by: Björn Stenberg <bjorn@haxx.se>
* Fix ipod6g build.Thomas Martitz2014-03-09
| | | | Change-Id: I218e1721b8ddbb067581f4bc686a20f4c88694ae
* Fix more reds.Thomas Martitz2014-03-03
| | | | Change-Id: I4b58dda0953b7f9799238c32b78037b0a5403c04
* Fix various reds. Some includes needed fixup.Thomas Martitz2014-03-03
| | | | Change-Id: I4327740bae17054131feb917abdd58846c451988
* kernel: Break out kernel primitives into separate files and move to separate ↵Thomas Martitz2014-03-03
| | | | | | | | | dir. No code changed, just shuffling stuff around. This should make it easier to build only select parts kernel and use different implementations. Change-Id: Ie1f00f93008833ce38419d760afd70062c5e22b5
* imx233: add support for speaker on stmp3780Amaury Pouly2014-02-16
| | | | Change-Id: I990ca2bd43e12047e257f85ff06f046dfa3f94b3
* Samsung YP-R1 target portLorenzo Miori2014-02-05
| | | | | | | | | This is the basic port to the new target Samsung YP-R1, which runs on a similar platform as YP-R0. Port is usable, although there are still some optimizations that have to be done. Change-Id: If83a8e386369e413581753780c159026d9e41f04
* Add missing kernel.h includes (hopefully all of them).Thomas Martitz2014-01-05
| | | | Change-Id: I9c1825296a788587b8d494d8514b3314847b0ff0
* Do not include kernel.h in system.h.Thomas Martitz2014-01-05
| | | | | | | system.h doesn't need it on its own and this change makes it less dependant on Rockbox internals. Change-Id: I4e1e4108a52a7b599627a829204eb82b392fc6d6
* Fix audio on m:robe 100.Szymon Dziok2013-12-17
| | | | | | Tested on different revisions and it works reliably. Change-Id: Ic710236247a17f516c8561429f2da5c9684341b9
* ma8/ma9: Cleanup - fix tabs, remove unused defines.Andrew Ryabinin2013-11-05
|
* Introduce HiFi E.T. MA8/MA8C ports.Andrew Ryabinin2013-11-05
| | | | | | | | | HiFi E.T. MA8 is almost the same as MA9 except another DAC(pcm1792 in ma8, df1704 in ma9). MA8 has ILI9342 lcd, MA8C has ILI9342C lcd. Change-Id: If2ac04f5a3382590b2a392c46286559f54b2ed6a
* ma9: Slightly change df1704 driver API.Andrew Ryabinin2013-11-05
| | | | This change should be done for easier integration of ma8 port.
* imx233: revert volumes to 1dB resolutionAmaury Pouly2013-07-23
| | | | | | | | Using a better resolution causes havoc in the user interface because it doesn't properly handle steps and people start to believe I am responsible for all this mess. Change-Id: I02b68dce5802692efde3da226eeeb49e4995f97a
* imx233: fix recording volume (tenth-dB -> half-dB)Amaury Pouly2013-07-13
| | | | Change-Id: I6960d3f4bd506713ffb139750fbe581ef66af947
* imx233: correctly select recording sourceAmaury Pouly2013-07-13
| | | | Change-Id: I651856292922097efe21e01543ae2568dfa13980
* imx233: allow audio routing driver to have pre/post init functionsAmaury Pouly2013-06-18
| | | | Change-Id: Ic1fe8c5bc6c8bf5d449ae44c12cb6cb8df409260
* imx233: add recording side and 3d to codec driverAmaury Pouly2013-06-18
| | | | Change-Id: I3587434749c401a28c6e77bd30395e7df15f2e8a
* df1704: Add filter roll-off selection.Andrew Ryabinin2013-05-24
| | | | Change-Id: I732ebd3446858b497105cf03fc81e934a749a57b
* Fix 6e211ab errors and warnings.Michael Sevakis2013-05-23
| | | | | | | If target has HW tone controls but no HW prescaler (non-implemented or non-existent), audiohw_set_prescaler() should, for now, do nothing. Change-Id: If1b1a36970dca82fda1c350fbaa4d6ce068a6d32
* Remove dsp_callback because DSP is now library code, not app code.Michael Sevakis2013-05-23
| | | | | | Yep, nope, not necessary anymore. Just call functions directly. Change-Id: I21dc35f8d674c2a9c8379b7cebd5613c1f05b5eb
* Fix FS#12860 - iPod 5g line out silentMichael Sevakis2013-05-09
| | | | | | | | | | | Conversion from centibels to register values was left out of audiohw_set_lineout_volume(). Credit goes to Dave Marsh for providing the fix. Just another little oversight from sound/audiohw rework. Change-Id: I7f8b1c5fb575ac95b5d595c2f4824fbb5ebbd3c8
* Introduce HiFi E.T MA9 port.Andrew Ryabinin2013-05-06
| | | | Change-Id: I79aadc958fd5222f26f91ed127f8c6fb2c465dc2
* Fix FS#12859 - Bass/Treble not doing anything in new buildsMichael Sevakis2013-05-04
| | | | | | | | | Just one more SNAFU after redoing sound.c. Software bass/treble controls in the DSP expect .1 dB gain increments but the gains were being set as 1 dB increments because that's what the AUDIOHW_SETTING specifies. Just x10 the gains given to audiohw_set_bass/treble. Change-Id: Id5296f93908ec0036a5605d3a60a2cb5eec91bb5
* Provide high resolution volume and prescaler to hosted targets.Michael Sevakis2013-04-27
| | | | | | | | | | | | | | | | | | | | | HAVE_SW_VOLUME_CONTROL is required and at this time only affects the SDL targets using pcm-sdl.c. Enables balance control in SDL targets, unless mono volume is in use. Compiles software volume control as unbuffered when PCM_SW_VOLUME_UNBUFFERED is defined. This avoids the overhead and extra latency introduced by the double buffer when it is not needed. Use this config when the target's PCM driver is buffered and sufficient latency exists to perform safely the volume scaling. Simulated targets that are double-buffered when made as native targets remain so in the sim in order to run the same code. Change-Id: Ifa77d2d3ae7376c65afecdfc785a084478cb5ffb Reviewed-on: http://gerrit.rockbox.org/457 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
* Oops. Revert a pointless change.Michael Sevakis2013-04-22
| | | | Change-Id: I082411145a411ca7d41b359dea419ef8190d70ce
* Do some cleanup, adjustment and a couple fixes to recent sound changes.Michael Sevakis2013-04-22
| | | | | | | | | | | | | | | | | | | | | * SOUND_x enum can be generated by audiohw_settings.h along with settings entries and sound_val2phys. * VOLUME_MIN and VOLUME_MAX are no longer necessary within sound.c. If you need them, they are for target-defined purposes. * Fix up SDL volume implementation in sdl.c. Move sim volume calculation code to pcm-sdl.c. * Min trigger tresholds were based upon VOLUME_MIN for some reason. These setting have nothing to do with playback volume. Since it is no longer present, set these at -89dB which is the minimum peak meter sensitivity setting. * Fix an oversight in wm8758.c. I forgot to add the dB->register conversion to audiohw_set_volume. Change-Id: Ie1df33f1793eee75e6793f16bc7bddd16edb7f75
* Fix final error from 0c7b787 in Player sim.Michael Sevakis2013-04-15
| | | | Change-Id: Ifeebed8f594fc56acbbd2439fb8186566cc04de8
* Still at it for 0c7b787. Might be done now.Michael Sevakis2013-04-15
| | | | Change-Id: Idf45731dc6554954747f6036dc6dfcd4b63981a1
* Keep fixing 0c7b787 stuffMichael Sevakis2013-04-15
| | | | Change-Id: I0678d3307fbcad32156f9f4e0f8b90eed5a20d92