Commit graph

246 commits

Author SHA1 Message Date
Amaury Pouly
7f552f80b8 imx233: allow audio routing driver to have pre/post init functions
Change-Id: Ic1fe8c5bc6c8bf5d449ae44c12cb6cb8df409260
2013-06-18 21:27:29 +02:00
Amaury Pouly
d8368d58b0 imx233: add recording side and 3d to codec driver
Change-Id: I3587434749c401a28c6e77bd30395e7df15f2e8a
2013-06-18 16:09:07 +02:00
Andrew Ryabinin
00b8563654 df1704: Add filter roll-off selection.
Change-Id: I732ebd3446858b497105cf03fc81e934a749a57b
2013-05-24 11:32:20 +04:00
Michael Sevakis
9b65f8e658 Fix 6e211ab errors and warnings.
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
2013-05-23 14:58:57 -04:00
Michael Sevakis
6e211ab3ac Remove dsp_callback because DSP is now library code, not app code.
Yep, nope, not necessary anymore. Just call functions directly.

Change-Id: I21dc35f8d674c2a9c8379b7cebd5613c1f05b5eb
2013-05-23 14:25:37 -04:00
Michael Sevakis
b210a3a8cb Fix FS#12860 - iPod 5g line out silent
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
2013-05-09 15:37:56 -04:00
Andrew Ryabinin
fa4e1baa83 Introduce HiFi E.T MA9 port.
Change-Id: I79aadc958fd5222f26f91ed127f8c6fb2c465dc2
2013-05-06 14:09:24 +04:00
Michael Sevakis
fd00d3cf48 Fix FS#12859 - Bass/Treble not doing anything in new builds
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
2013-05-04 22:46:18 -04:00
Michael Sevakis
08199cd6cb Provide high resolution volume and prescaler to hosted targets.
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>
2013-04-27 06:59:27 +02:00
Michael Sevakis
4f2c0c1ed2 Oops. Revert a pointless change.
Change-Id: I082411145a411ca7d41b359dea419ef8190d70ce
2013-04-22 20:55:47 -04:00
Michael Sevakis
e61e9c61d0 Do some cleanup, adjustment and a couple fixes to recent sound changes.
* 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
2013-04-22 20:38:17 -04:00
Michael Sevakis
333f4f52be Fix final error from 0c7b787 in Player sim.
Change-Id: Ifeebed8f594fc56acbbd2439fb8186566cc04de8
2013-04-15 15:19:39 -04:00
Michael Sevakis
5261b19bdf Still at it for 0c7b787. Might be done now.
Change-Id: Idf45731dc6554954747f6036dc6dfcd4b63981a1
2013-04-15 14:58:00 -04:00
Michael Sevakis
9e71fd16a5 Keep fixing 0c7b787 stuff
Change-Id: I0678d3307fbcad32156f9f4e0f8b90eed5a20d92
2013-04-15 14:00:48 -04:00
Michael Sevakis
bbd991ad63 Fix some more errors and warnings from 0c7b787.
Change-Id: Ib67d0ab344e36964cadbcc982dc2afe35733770b
2013-04-15 13:24:29 -04:00
Michael Sevakis
0971f57634 Hopefully knock out most of the red and yellow from 0c7b787.
Change-Id: Ib8dd0d011b11ee3eded3025308f19ddb5d151b59
2013-04-15 12:39:04 -04:00
Michael Sevakis
0c7b787398 Straighten out the mad twisted state of sound.c and related areas.
This is going right in since it's long overdue. If anything is goofed,
drop me a line or just tweak it yourself if you know what's wrong. :-)

Make HW/SW codec interface more uniform when emulating HW functionality
on SWCODEC for functions such as "audiohw_set_pitch". The firmware-to-
DSP plumbing is in firmware/drivers/audiohw-swcodec.c. "sound_XXX"
APIs are all in sound.c with none in DSP code any longer.

Reduce number of settings definitions needed by each codec by providing
defaults for common ones like balance, channels and SW tone controls.

Remove need for separate SIM code and tables and add virtual codec header
for hosted targets.

Change-Id: I3f23702bca054fc9bda40f49824ce681bb7f777b
2013-04-15 12:02:05 -04:00
Marcin Bukat
fd6ab02912 rk27xx: do not attenuate signal twice in analog bypass mode
Change-Id: I108091adaa05e53ccb8bbe3d60ca35e2191a39fd
2013-04-12 21:43:17 +02:00
Andrew Ryabinin
6be8097651 hm60x/hm801: Fix balance by enabling sw volume control.
Change-Id: I8760b58d5b801409f35370d812d72f8d578d2889
2013-04-12 10:11:54 +04:00
Michael Sevakis
2dd1f37a10 Fix f5a5b94 errors. Employ SW volume for select targets on SIM.
Onda VX747 sim was missing a limits #define; #include limits.h in
pcm_sw_volume.h.

Simply use the software volume control for the SIM volume control
rather than the SDL volume control when the target would have it
natively.

Change-Id: I8e924a2ff1b410f602452d2ea9b691efb82c931e
2013-04-11 19:00:23 -04:00
Amaury Pouly
a924df8d6d rk27xx: implement radio support
Change-Id: I59d3905e9b2a3df8aa235e424c7a6e0eff6d73e9
Reviewed-on: http://gerrit.rockbox.org/427
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-04-11 11:18:23 +02:00
Marcin Bukat
ad46064b83 rk27xx codec: simplify startup
Change-Id: I8b610363e67ec640664aa0d03488e430ec461244
2012-07-11 00:28:44 +02:00
Marcin Bukat
676f72a0f4 rk27xx codec: Fix volume setting
Change-Id: If57e0225fed4a9f87dff9661b21b2e06fa3d341e
2012-07-10 20:09:21 +02:00
Lorenzo Miori
3cad5573b6 ypr0: This patch adds radio support to Samsung YP-R0
Basically it uses the default SI4700 radio chip driver, the only thing that's different is the I2C access,
written specifically to interact with my kernel module.
Next things to add are:
- RDS support!

Change-Id: I0ed125641e00f93124d7a34f90dd508e7f1db5a4
Signed-off-by: Lorenzo Miori <memorys60@gmail.com>
2012-05-28 19:39:14 +02:00
Amaury Pouly
1a083cdacc imx233/fuze+: fix a typo, handle volume differently because of the line1/dac mode difference.
The headphone volume register value reads differently in Line1 and DAC mode.
Since the volume is not set again when switching between playback and radio,
we need to remember the hp volume and reapply setting when changing the mode.

Change-Id: I8fbd344f78653c19d81a39dd3f680ec6885cb1ec
2012-02-03 20:04:39 +01:00
Marcin Bukat
0499aff9d0 WM8750: Extend recording gain range.
Use two stage amplification (PGA gain and digital stage gain)
combined to extend recgain range to -17.25 +60.0dB.

Change-Id: I4df8af801730b7efb2d35096de077ba31d331222
2012-01-25 09:31:34 +01:00
Rafaël Carré
8552824284 ascodec-target.h: remove
move prototypes to ascodec.h
move code to ascodec*.c

YPR0: use adc-as3514.c instead of duplicating it

TODO: merge as3514.h and ascodec.h ?

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31626 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 01:43:16 +00:00
Thomas Martitz
0f71475606 android: move pcm_shutdown() to audiohw_close() now that it's properly called from powermgmt.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31551 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 00:10:47 +00:00
Thomas Martitz
c1bd9b0361 Rework powermgmt to enable code re-use on appliation and sims.
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.

* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,

* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 23:44:38 +00:00
Thomas Martitz
1dcc834e59 ypr0: Remove last #ifdef in as3514.
It's now using completely the same driver as Sansa daps.
This also increases the volume range.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31428 a1c6a512-1295-4272-9138-f99709370657
2011-12-25 18:23:10 +00:00
Thomas Martitz
a1d3ed2534 ypr0: Cleanup and simplify ascodec functions. Fix audiohw_{pre,post}init() not being called.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31423 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 17:59:43 +00:00
Thomas Martitz
249bba03f1 Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system,
but is the only application. It therefore can implement lots of stuff that
native targets also implement, while leveraging the underlying linux kernel.

The port is quite advanced. User interface, audio playback, plugins work
mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page).

Included in utils/ypr0tools are scripts and programs required to generate
a patched firmware. The patched firmware has the rootfs modified to load
Rockbox. It includes a early/safe USB mode.

This port needs a new toolchain, one that includes glibc headers and libraries.
rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may
also work.

Most of the initial effort is done by Lorenzo Miori and others (on ABI),
including reverse engineering and patching of the original firmware,
initial drivers, and more. Big thanks to you.

Flyspray: FS#12348
Author: Lorenzo Miori, myself

Merry christmas to ypr0 owners! :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 11:56:46 +00:00
Boris Gjenero
6c97145e7d Add missing includes found using -Wmissing-declarations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31396 a1c6a512-1295-4272-9138-f99709370657
2011-12-21 18:02:50 +00:00
Michael Sevakis
d09818d745 Fix sim errors in r31180.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31181 a1c6a512-1295-4272-9138-f99709370657
2011-12-08 20:05:48 +00:00
Tomasz Moń
bac6a70184 Sansa Connect: Revise codec initialization/shutdown.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31149 a1c6a512-1295-4272-9138-f99709370657
2011-12-05 09:53:23 +00:00
Tomasz Moń
66c53d528f Sansa Connect: Fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31120 a1c6a512-1295-4272-9138-f99709370657
2011-12-03 15:21:12 +00:00
Tomasz Moń
e8a8a1be43 Sandisk Sansa Connect port (FS #12363)
Included are drivers for buttons, backlight, lcd, audio and storage.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31000 a1c6a512-1295-4272-9138-f99709370657
2011-11-16 14:08:01 +00:00
Torne Wuff
569285794b Bulk convert all DOS line endings to UNIX.
For the git migration we want a nice clean repository with UNIX line
endings. git does not use svn:eol-style, we just need the file contents to be
sane.

Sorry everybody. I know this messes up blame.

Scumbag *NIX developer says migrating to git will make line ending issues go
away; commits giant change to svn which changes line endings anyway. :)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30924 a1c6a512-1295-4272-9138-f99709370657
2011-11-06 22:44:25 +00:00
Marcin Bukat
f4b74b269a MPIO HD300: vastly improve sound quality. This unfortunately means reverting r28797 which introduced poping noise
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30904 a1c6a512-1295-4272-9138-f99709370657
2011-11-05 14:01:22 +00:00
Andrew Ryabinin
2164aab902 Added HiFiMAN HM-801 target. FS#12355. This also renames tda1543.{ch} used by HM-60x to dummy_codec.{ch} as it works for PCM1704 used by HM-801.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30891 a1c6a512-1295-4272-9138-f99709370657
2011-11-03 11:53:02 +00:00
Amaury Pouly
623cbd6e02 imx233/fuze+: implement pcm out and audio codec, update SOURCES
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30800 a1c6a512-1295-4272-9138-f99709370657
2011-10-18 22:08:41 +00:00
Amaury Pouly
ed2386c67f imx233/fuze+: move audio driver to the canonical location
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30790 a1c6a512-1295-4272-9138-f99709370657
2011-10-18 21:55:20 +00:00
Michael Sevakis
feddfdb2d9 Gigabeat S/i.MX31/wm8978: Clean up clocking information in the general wmcodec/pcm drivers and move it to the target's wmcodec/i2s files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30771 a1c6a512-1295-4272-9138-f99709370657
2011-10-17 15:37:14 +00:00
Marcin Bukat
32f763c39a Add HiFiMAN HM-60x target(s). FS#12319 by Andrew Ryabinin with some (small) modification by me. This also splits rk27xx lcd driver into lcdif-rk27xx and lcd controller specific part. Some modifications to the pcm driver have been made to allow using codecs in slave mode (as TDA1543 used in hifiman is slave only i2s codec).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30765 a1c6a512-1295-4272-9138-f99709370657
2011-10-17 10:32:19 +00:00
Marcin Bukat
fa856468ab Implement driver for internal codec in rk27xx (shCODlp-100.01-HD IP core from Dolphin)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30439 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:37:57 +00:00
Michael Giacomelli
c27ea297a3 Commit FS#12111 by Stephan Grossklass. Disables output mixer auto gain control on AMSv2. Should fix occasional distortion reported when running the player at very high output levels (e.g. at or above 0dB).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30208 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 21:56:24 +00:00
Andree Buschmann
8d7eb5d59e Submit final part of FS#12154. Optimization for WM8758 used in iPod Video: Significantly reduce popping noise during startup. Additionally improve crosstalk, THD and noise level. Thanks to Seheon Ryu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30025 a1c6a512-1295-4272-9138-f99709370657
2011-06-20 18:52:31 +00:00
Andree Buschmann
f0c032a523 Submit first part of FS#12154. Whitespace removal and correction of several defines in WM8758 driver according to data sheet, no functional change. Thanks to Seheon Ryu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30024 a1c6a512-1295-4272-9138-f99709370657
2011-06-20 18:37:51 +00:00
Robert Kukla
d9bc251de1 use correct define for gigabeat fx to enable lineout (was broken in r29588)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29646 a1c6a512-1295-4272-9138-f99709370657
2011-03-26 13:12:24 +00:00
Marcin Bukat
dce799641d WM8750/51: properly apply recording gain
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29594 a1c6a512-1295-4272-9138-f99709370657
2011-03-15 22:35:12 +00:00