12 Jan, 2017

1 commit

  • commit c8eabf821cac120afb78ca251b07cbf520406a7e upstream.

    "*val" is a u64. It definitely looks like we intend to use the high 32
    bits as well.

    Fixes: 700a9a63f9c1 ("ASoC: Intel: Skylake: Add module instance id generation APIs")
    Signed-off-by: Dan Carpenter
    Acked-by: Vinod Koul
    Tested-by: Kranthi G
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     

05 Nov, 2016

1 commit


29 Oct, 2016

1 commit

  • HDMI codec is required to be powered up before controller initialization
    for successful enumeration of codec. If the probe fails it needs to be
    powered off to balance the power state of HDMI codec.

    This fix balances the reference count in the error path before turning
    off the codec.

    Reported-by: Takashi Sakamoto
    Signed-off-by: Sodhi, VunnyX
    Signed-off-by: Subhransu S. Prusty
    Signed-off-by: Mark Brown

    Sodhi, VunnyX
     

25 Oct, 2016

1 commit

  • skl_probe() releases a runtime pm ref unconditionally wheras
    skl_remove() acquires one only if the device is wakeup capable.
    Thus if the device is not wakeup capable, unloading and reloading
    the module will result in the refcount being decreased below 0.
    Fix it.

    Fixes: d8c2dab8381d ("ASoC: Intel: Add Skylake HDA audio driver")
    Signed-off-by: Lukas Wunner
    Signed-off-by: Mark Brown

    Lukas Wunner
     

12 Oct, 2016

1 commit

  • A good practice is to prefix the names of functions by the name
    of the subsystem.

    The kthread worker API is a mix of classic kthreads and workqueues. Each
    worker has a dedicated kthread. It runs a generic function that process
    queued works. It is implemented as part of the kthread subsystem.

    This patch renames the existing kthread worker API to use
    the corresponding name from the workqueues API prefixed by
    kthread_:

    __init_kthread_worker() -> __kthread_init_worker()
    init_kthread_worker() -> kthread_init_worker()
    init_kthread_work() -> kthread_init_work()
    insert_kthread_work() -> kthread_insert_work()
    queue_kthread_work() -> kthread_queue_work()
    flush_kthread_work() -> kthread_flush_work()
    flush_kthread_worker() -> kthread_flush_worker()

    Note that the names of DEFINE_KTHREAD_WORK*() macros stay
    as they are. It is common that the "DEFINE_" prefix has
    precedence over the subsystem names.

    Note that INIT() macros and init() functions use different
    naming scheme. There is no good solution. There are several
    reasons for this solution:

    + "init" in the function names stands for the verb "initialize"
    aka "initialize worker". While "INIT" in the macro names
    stands for the noun "INITIALIZER" aka "worker initializer".

    + INIT() macros are used only in DEFINE() macros

    + init() functions are used close to the other kthread()
    functions. It looks much better if all the functions
    use the same scheme.

    + There will be also kthread_destroy_worker() that will
    be used close to kthread_cancel_work(). It is related
    to the init() function. Again it looks better if all
    functions use the same naming scheme.

    + there are several precedents for such init() function
    names, e.g. amd_iommu_init_device(), free_area_init_node(),
    jump_label_init_type(), regmap_init_mmio_clk(),

    + It is not an argument but it was inconsistent even before.

    [arnd@arndb.de: fix linux-next merge conflict]
    Link: http://lkml.kernel.org/r/20160908135724.1311726-1-arnd@arndb.de
    Link: http://lkml.kernel.org/r/1470754545-17632-3-git-send-email-pmladek@suse.com
    Suggested-by: Andrew Morton
    Signed-off-by: Petr Mladek
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: "Paul E. McKenney"
    Cc: Josh Triplett
    Cc: Thomas Gleixner
    Cc: Jiri Kosina
    Cc: Borislav Petkov
    Cc: Michal Hocko
    Cc: Vlastimil Babka
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Petr Mladek
     

30 Sep, 2016

3 commits


25 Sep, 2016

5 commits

  • Trival fix, some dev_* messages are missing a \n, so add it.

    Signed-off-by: Colin Ian King
    Signed-off-by: Mark Brown

    Colin Ian King
     
  • Since modules ids are generated dynamically, we do not know the id
    associate with modules in another pipelines. This limits our ability to
    tell DSP about neighbouring modules.

    So add a table for quick referencing of allocated module ids.

    Signed-off-by: Dharageswari R
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Dharageswari R
     
  • Post bind parameters of KPB module contains the instance id's of
    neighbouring modules in the sink path

    Now that module instance ids are generated dynamically we need to update
    these parameters as well, so use the table created and update the ids

    Signed-off-by: Dharageswari R
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Dharageswari R
     
  • Use private id's of module instances that are generated during
    init_module for the IPC messages to DSP. These id's are freed
    up during delete pipeline.

    Signed-off-by: Dharageswari R
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Dharageswari R
     
  • Driver needs to send unique module instance id to firmware while
    creating the module and uses this id to communicate with DSP for setting
    parameters while audio use case is ongoing.

    But, we have upper bound of instance ID. The current IDs are coming from
    topology but it doesn't know the upper bound and can't assign unique
    id's subject to upper bounds as we can create a big graph but not all
    parts running at same time.

    This patch adds a 128bit unique id management routines which are built
    on top of ffz() for faster implementation. Unfortunately ffz() works on
    32bits values, so additional code is added on top of ffz() to create a
    128bit unique id.

    Signed-off-by: Dharageswari R
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Dharageswari R
     

15 Sep, 2016

1 commit


13 Sep, 2016

1 commit

  • Check for snd_pcm_ops structures that are only stored in the ops field of a
    snd_soc_platform_driver structure or passed as the third argument to
    snd_pcm_set_ops. The corresponding field or parameter is declared const,
    so snd_pcm_ops structures that have this property can be declared as const
    also.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct snd_pcm_ops i@p = { ... };

    @ok1@
    identifier r.i;
    struct snd_soc_platform_driver e;
    position p;
    @@
    e.ops = &i@p;

    @ok2@
    identifier r.i;
    expression e1, e2;
    position p;
    @@
    snd_pcm_set_ops(e1, e2, &i@p)

    @bad@
    position p != {r.p,ok1.p,ok2.p};
    identifier r.i;
    struct snd_pcm_ops e;
    @@
    e@i@p

    @depends on !bad disable optional_qualifier@
    identifier r.i;
    @@
    static
    +const
    struct snd_pcm_ops i = { ... };
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Mark Brown

    Julia Lawall
     

02 Sep, 2016

4 commits


23 Aug, 2016

3 commits


12 Aug, 2016

1 commit


11 Aug, 2016

3 commits


09 Aug, 2016

2 commits


08 Aug, 2016

12 commits