Upgrade to Jellybean version of TinyHAL

This brings in the Jellybean version of TinyHAL. This is a
significant update compared to the Ice Cream Sandwich version.

- The audio_hw.c has been replaced by code based on asus/grouper
    so it is useful in real devices

- The config file parser + routing control has been completely
    rewritten and now builds to a separate library so that it can
    be used by alternative HALs without having to branch the source

- There are now more capabilities in the audio routing configuration:
    - Support for setting binary controls
    - Support for defining compressed streams
    - Support for defining custom streams for hardware-hardware links
    - You can now define a stream-specific set of control values for
        each device, in addition to the basic device enable/disable
        settings that were supported by the ICS version. This means
        that when a stream is connected to or disconnected from a
        device you can invoke control settings that are specific to
        that {stream:device} combination.
    - You can now define custom usecases within each stream, which
        the audio HAL can invoke by name. This allows custom use-cases
        without having to hardcode knowledge of all types of hardware
        into TinyHAL. The audio_hw.c file supplied with TinyHAL passes
        set_parameter() strings to this to allow you to define special
        control settings to apply when a parameter string has a certain
        value.
    - The file audio.example.xml contains documentation of the
        configuration file format and how to use the features.

The configuration file format has changed slightly to accommodate the
new features, and also to make it more regular and expandable. The
effort to convert an old config file to the new format is minimal.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
7 files changed