[PATCH 2/2] ASoC: soc-cache: cache a pointer to the last accessed rbtree block

    Whenever we are doing a read or a write through the rbtree code, we'll
    cache a pointer to the rbnode.  To avoid looking up the register
    everytime we do a read or a write, we first check if it can be found in
    the cached register block, otherwise we traverse the rbtree and finally
    cache the rbnode for future use.

    Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
workqueue: remove cancel_rearming_delayed_work[queue]()

    cancel_rearming_delayed_work() and cancel_rearming_delayed_workqueue()
    can be removed now.

    Signed-off-by: WANG Cong <amwang@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
workqueue: separate out drain_workqueue() from destroy_workqueue()

    There are users which want to drain workqueues without destroying it.
    Separate out drain functionality from destroy_workqueue() into
    drain_workqueue() and make it accessible to workqueue users.

    To guarantee forward-progress, only chain queueing is allowed while
    drain is in progress.  If a new work item which isn't chained from the
    running or pending work items is queued while draining is in progress,
    WARN_ON_ONCE() is triggered.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
ASoC: Convert 16x16 write to use cpu_to_be16()

    Make it clear what we're doing.

    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
[PATCH 1/9] ASoC: sh: fsi: tidyup parameter of fsi_stream_push

    It is possible to create buff_len and period_len
    from substream->runtime.
    This patch is preparation of tidyup unclear variable naming patch.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

commit 60c655e62f1ee85b9144fa259b3d1064ddbbe847
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Wed May 11 01:02:35 2011 +0200
[PATCH 2/9] ASoC: sh: fsi: add fsi_set_master_clk

    Current FSI driver is using set_rate call back function which is for
    master mode.
    By this patch, it is used from fsi_set_master_clk.
    This patch is preparation of cleanup suspend/resume patch.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 3/9] ASoC: sh: fsi: irq control moves to fsi_port_start/stop

    Using fsi_irq_enable/disable in fsi_port_start/stop is very natural.
    This patch is preparation of cleanup suspend/resume patch.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 4/9] ASoC: sh: fsi: tidyup unclear variable naming

    Some variables on this driver were a unclear naming,
    and were different unit (byte, frame, sample).
    And some functions had wrong name
    (ex. it returned "sample width" but name was "fsi_get_frame_width").
    This patch tidy-up this issue, and the minimum unit become "sample".
    Special thanks to Takashi YOSHII.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 5/9] ASoC: sh: fsi: remove pm_runtime from fsi_dai_set_fmt.

    pm_runtime_get/put_sync were used to access FSI register in fsi_dai_set_fmt
    which is called when ALSA probe.
    But this register value will disappear after pm_runtime_put_sync
    if platform is supporting RuntimePM.
    To solve this issue, this patch adds new variable for format,
    and remove pm_runtime_get/put_sync from fsi_dai_set_fmt.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 6/9] ASoC: sh: fsi: make sure fsi_stream_push/pop access by spin lock

    fsi_stream_push/pop might be called in same time.
    This patch protect it.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 7/9] ASoC: sh: fsi: remove fsi_module_init/kill

    FSIA/B ports is enabled by default when power-on,
    and current FSI is supporting RuntimePM.
    In addition, current fsi_module_init/kill doesn't care
    simultaneous playback/recorde.
    This mean FSI port control is not needed.
    This patch remove fsi_module_init/kill

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 8/9] ASoC: sh: fsi: cleanup suspend/resume

    Current FSI driver was using saved_xxx variable for suspend/resume.
    OTOH, the start and stop of power/clock are controlled by
    fsi_hw_startup/fsi_hw_shutdown in current FSI driver.
    The all necessary registers value are set by fsi_hw_startup.

    So, if fsi_hw_shutdown is called when "suspend" is generated,
    and fsi_hw_startup is called at "resume",
    the saved_xxx are not needed.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[PATCH 9/9] ASoC: sh: fsi: add fsi_hw_startup/shutdown

    This patch is preparation of cleanup suspend/resume patch.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>