[Galaxy Note GT-N7000 Android Development] AA1973:
Ignored. But, here is an update by Entropy512...

https://plus.google.com/app/plus/mp/252/#~loop:aid=z12yel5gksehd5iud23zynoyrqjysd2gb04&view=activity

***

Copypasta oft the "Yamahell" part

Audio - Yamaha MC1N2 on Exynos 4210 devices

This is a somewhat complex situation.* Both Qualcomm and TI have reference audio implementations of sufficient quality that the majority of their customers use them.* It's unheard of to see a Qualcomm SoC-based device not use Qualcomm audio, and it's fairly rare for a TI device to have non-TI audio (There are a few with Wolfson audio like the Samsung Tab 2 series.).

Now, Samsung LSI doesn't have their own in-house audio solution, but you'd expect them to have a reference implementation for audio that is viable enough to use in a shipped device.* You would be wrong - The two audio modules available for use at http://howchip.com/shop/content.php?co_id=OrigenBoard are the Asahi Kasei AK4678 and the Realtek 5631.* Neither of these devices are used in ANY Samsung handset or tablet.

As a result, all shipped Exynos4210 devices I am aware of use Yamaha MC1N2 audio.* This chipset is a nightmare to work with, to the point that I've taken up calling it "Yamahell".* The kernel driver was written by someone from a primitive tribe with no concept of 0 (Seriously, who came up with the idea of each path entry having 0x2 = off and 0x1 = on with 0x0 = invalid?* It makes it a royal pain to read the routing information.)* The Yamaha binaries have always been of substandard quality, and have always behaved poorly when attempting to use them with AOSP.* They especially tend to have major problems when used with backwards-compatibility implementations frequently used in CyanogenMod.* For example, the Gingerbread HAL was 100% useless for ICS.* The ICS HAL had a bunch of annoying audio volume bugs when used with ICS, and when used with Jellybean and backwards-compatibility directives, the result has been a total mess.

Responsible entities for this mess:* Samsung LSI (20%) due to not providing a viable reference solution good enough to appear in any consumer device.* Samsung Mobile (40%) for providing zero documentation or source related to how they worked around the bugs in the HAL, and Yamaha (40%) for having a horrifically broken massively complex implementation with almost unreadable kernel source and no less than 11 libraries and a pile of text files to implement the HAL.* (Compared to 2 libraries and an XML file for the opensource replacement implementation from Paul Kocialkowski of the Replicant project.)

Good news is, thanks to PaulK, it's just a matter of time before this hell ends.* There's a lot of work left to do, but the light is at the end of the tunnel, and it's a lot easier to work on something when you have a clearly defined TODO list and you have an end in sight.

Advice to users:* NEVER purchase a device with Yamaha audio.* Their drivers are a mess, as the initial audio reviews of the Galaxy S2 prove, their codecs don't perform well acoustically, and they're incredibly unfriendly towards open source projects.

***

I'm probably forgetting a ton of other issues, but I've been working on this for too long and I'm fried.* +Daniel Hillenbrand , +Guillaume Lesniak , and +Espen Fjellvær Olsen , any other observations?

android_frameworks_native

Contribute to android_frameworks_native development by creating an account on GitHub.

***

Source: g+ comment by Entropy512.

https://plus.google.com/app/plus/mp/252/#~loop:aid=z12yel5gksehd5iud23zynoyrqjysd2gb04&view=activity