12 Oct, 2016

2 commits

  • Kernel source files need not include explicitly
    because the top Makefile forces to include it with:

    -include $(srctree)/include/linux/kconfig.h

    This commit removes explicit includes except the following:

    * arch/s390/include/asm/facilities_src.h
    * tools/testing/radix-tree/linux/kernel.h

    These two are used for host programs.

    Link: http://lkml.kernel.org/r/1473656164-11929-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • 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
     

25 Sep, 2016

1 commit

  • This is used by the Chromebook Pixel 2015.

    Signed-off-by: Ben Zhang
    Signed-off-by: Dylan Reid
    [john@metanate.com:
    - forward-port driver from Chromium OS 3.14 tree to master
    - remove wake on voice function that isn't supported by upstream rt5677
    driver
    - remote owner assignment in platform_driver (Evan McClain)
    - convert to devm_snd_soc_register_card (Evan McClain)
    - add a full copyright header based on module license and Chromium OS
    Git history
    ]
    Signed-off-by: John Keeping
    Tested-by: Genki Marshall
    Tested-by: Tom Rini
    Signed-off-by: Mark Brown

    John Keeping
     

12 Jul, 2016

1 commit

  • The recent commit [a92ea59b74e2: ASoC: Intel: sst: only select
    sst-firmware when DW DMAC is built-in] introduced more strict kconfig
    dependency (depends on DW_DMAC_CORE=y) for avoiding the build failures
    due to dependency messes in intel-sst. This makes, however, it
    impossible to use this driver with the modularized systems,
    i.e. typically on Linux distros.

    The problem addressed in the commit above is that sst_dsp_new() and
    sst_dsp_free() includes the firmware init / finish that call dw_*()
    functions. Thus building it as built-in with DW_DMAC_CORE module
    results in the missing symbols.

    However, these sst_dsp functions are basically called only from the
    drivers that depend on DW_DMAC_CORE already. That is, once when these
    functions are split out, the rest can be independent from dw stuff.

    This patch attempts to solve the issue by the following:
    - Split sst-dsp stuff into two modules: snd-soc-sst-dsp and
    snd-soc-sst-firmware.
    - Move sst_dsp_new() and sst_dsp_free() to the latter module so that
    the former module can be independent from DW_DMAC_CORE.
    - Add a new kconfig SND_SOC_INTEL_SST_FIRMWARE to select the latter
    module by machine drivers.

    One only remaining pitfall is that each machine driver has to select
    SND_SOC_INTEL_SST_FIRMWARE carefully depending on DW_DMAC_CORE.
    This can't be done cleanly due to the restriction of the current
    kbuild.

    Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=988117
    Fixes: a92ea59b74e2 ('ASoC: Intel: sst: only select sst-firmware when DW DMAC is built-in')
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown

    Takashi Iwai
     

08 Jul, 2016

1 commit

  • Surface 3 is CHT based device which shows up with RT5645 codec. But the
    BIOS reports ACPI ID as 5640!

    To solve this, add a DMI overide for cht-5640 machine.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=98001
    Signed-off-by: Sachin Mokashi
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     

27 Jun, 2016

1 commit


30 May, 2016

1 commit

  • This function stub should have been 'static' in the original patch
    so that multiple uses of the header file (in different drivers)
    will not cause multiple function definitions.

    sound/soc/intel/boards/built-in.o: In function `sst_acpi_find_name_from_hid':
    (.text+0x560): multiple definition of `sst_acpi_find_name_from_hid'
    sound/soc/intel/atom/built-in.o:(.text+0x10610): first defined here
    ../scripts/Makefile.build:369: recipe for target 'sound/soc/intel/built-in.o' failed

    Fixes: f17131a93f43: add function stub when ACPI is not enabled

    Signed-off-by: Randy Dunlap
    Signed-off-by: Mark Brown

    Randy Dunlap
     

20 May, 2016

1 commit

  • Pull sound updates from Takashi Iwai:
    "This time was again a relatively calm development cycle; most of
    updates are about drivers, and no radical changes are seen in any core
    code. Here are some highlights:

    ALSA core:
    - Continued hardening of ALSA hrtimer
    - A few leak fixes in timer interface
    - Fix poll error handling in PCM and compress
    - Add error propagation in compress API
    - Removal of dead rtctimer driver

    HD-audio:
    - Native ELD notify support for i915 HDMI
    - Realtek ALC234 & co support
    - Code refactoring to standardize chmap support
    - Continued development for SKL HDMI core support

    Firewire:
    - Apply delayed card registration to all drivers
    - Improved / stabilized the handling of PCM stream start / stop
    - Add tracepoints to dump a part of isochronous packet data
    - Fixed incoming/outgoing packet parameter usages
    - Add support for M-Audio profire series

    USB-audio:
    - Fixes for UAC2 clock source
    - SS+ support
    - Workaround for oft-seen repeated sample rate read errors

    ASoC:
    - Further slow progress on the topology code
    - Substantial updates and improvements for the da7219, es8328,
    fsl-ssi, Intel and rcar drivers.
    - Compress error handling in WM ADSP driver"

    * tag 'sound-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (177 commits)
    ALSA: firewire-lib: change a member of event structure to suppress sparse wanings to bool type
    sound: oss: Use setup_timer and mod_timer.
    ASoC: hdac_hdmi: Remove the unused 'timeout' variable
    ASoC: fsl_ssi: Fix channel slipping on capture (or playback) restart in full duplex.
    ASoC: fsl_ssi: Fix channel slipping in Playback at startup
    ASoC: fsl_ssi: Fix samples being dropped at Playback startup
    ASoC: fsl_ssi: Save a dev reference for dev_err() purpose.
    ASoC: fsl_ssi: The IPG/5 limitation concerns the bitclk, not the sysclk.
    ASoC: fsl_ssi: Real hardware channels max number is 32
    ASoC: pcm5102a: Add support for PCM5102A codec
    ASoC: hdac_hdmi: add link management
    ASoC: Intel: Skylake: add link management
    ALSA: hdac: add link pm and ref counting
    ALSA: au88x0: Fix zero clear of stream->resources
    ASoC: rt298: Add DMI match for Broxton-P reference platform
    ASoC: rt298: fix null deref on acpi driver data
    ASoC: dapm: deprecate MICBIAS widget type
    ALSA: firewire-lib: drop skip argument from helper functions to queue a packet
    ALSA: firewire-lib: add context information to tracepoints
    ALSA: firewire-lib: permit to flush queued packets only in process context for better PCM period granularity
    ...

    Linus Torvalds
     

02 May, 2016

1 commit


31 Mar, 2016

1 commit

  • Add function stub for "sst_acpi_find_name_from_hid()"
    when CONFIG_ACPI is not enabled so that the driver will build
    successfully. This fixes the following build errors:

    (loadable module)
    ERROR: "sst_acpi_find_name_from_hid" [sound/soc/intel/boards/snd-soc-sst-bytcr-rt5640.ko] undefined!
    (or built-in)
    bytcr_rt5640.c:(.text+0x26fc52): undefined reference to `sst_acpi_find_name_from_hid'

    Reported-by: Borislav Petkov
    Signed-off-by: Randy Dunlap
    Signed-off-by: Mark Brown

    Randy Dunlap
     

13 Mar, 2016

1 commit


12 Mar, 2016

1 commit


05 Mar, 2016

2 commits

  • BIOS vendors sometimes declare multiple devices in the DSDT
    table that all refer to the same HID. This is not very smart
    but not illegal as long as only one device reports present with
    the _STA method. The ACPI subsystem tracks each device with an
    extension, e.g. 10EC5640:00 and 10EC5640:01

    In the ASoC machine driver, the DAI codec name needs to refer to the
    ACPI device that reported present, e.g. "i2c-10EC5640:01". The
    extension will vary depending on how the BIOS is written and which
    ACPI device is activated.

    This patch adds a translation function that provides the codec
    name from the ACPI HID to avoid any hard-coded values in the
    machine driver.

    Suggested-by: Mika Westerberg
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • BIOS vendors typically list multiple audio codecs in the DSDT
    table and enable the relevant one by changing the return value
    of the _STA method.

    With the current code, all devices are reported by
    acpi_dev_present(), regardless of the _STA return values. This
    causes errors on probe with the wrong machine driver being loaded.

    This patch essentially reverts 'commit 6f08cbdaac5a
    ("ASoC: Intel: Use acpi_dev_present()")' and adds code to
    force the evaluation of the _STA method.

    A better solution might be to make sure the ACPI subsystem only
    reports devices with a _STA value of 0xf but apparently it's
    problematic so dealing with this in the audio subsystem directly.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

08 Feb, 2016

4 commits

  • The match module lacked module license and description, so add it

    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     
  • DPCM driver is recommended for BYT, CHT based platforms, so if
    CONFIG_SND_SST_IPC_ACPI is selected then don't compile the BYT
    Device IDs in common ACPI driver to avoid probe conflicts.

    Signed-off-by: Pierre-Louis Bossart
    Acked-by: Jie Yang
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • The ACPI match module is common to all three drivers, HSW, SKL
    and Atom-DPCM driver. But Atom-DPCM driver does not use common
    sst code so we cannot include the common SST module in Atom-DPCM
    driver.

    So the solution is to have a independent sst-match-acpi module
    which helps in matching for all the three drivers. Now all driver
    can be inbuilt in a single image

    This patch really fixes the regression introduced by the
    commit 95f098014815 ("ASoC: Intel: Move apci find machine routines")

    Acked-by: Jie Yang
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     
  • This reverts commit dc901a354171 ("ASoC: Intel: fix ACPI probe
    regression with Atom DPCM driver") as the fix prevented the probe
    on HSW/BDW if Atom-DPCM was selected

    Acked-by: Jie Yang
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     

25 Jan, 2016

1 commit

  • Use shiny new acpi_dev_present() and remove all the boilerplate
    to search for a particular ACPI device. No functional change.
    Cf. 2d12b6b381ba ("ACPI / utils: Add acpi_dev_present()").

    Signed-off-by: Lukas Wunner
    Signed-off-by: Mark Brown

    Lukas Wunner
     

05 Jan, 2016

1 commit


16 Dec, 2015

1 commit


25 Nov, 2015

1 commit

  • The previous commit ef3e199a49c8 ("ASoC: Intel: sst: only use
    sst-firmware when DW DMAC is available") does not fix the 0day
    building errors thoroughly:

    sound/built-in.o: In function 'dw_dma_remove'
    sound/built-in.o: In function 'dw_dma_probe'

    Here we fallback to select sst-firmware only when DW DMAC
    is built-in selected. We may need to refactor sst common
    driver and split DW related codes to platform driver, but
    ATM, this fallback may be the smallest fix.

    Please be noticed that after applying this patch, we may
    need select DW DMAC manually in DMA driver menu, before
    we can prompt and select HSW/BDW and old BYT machines.

    Signed-off-by: Jie Yang
    Cc: Vinod Koul
    Signed-off-by: Mark Brown

    Jie Yang
     

17 Nov, 2015

1 commit


16 Nov, 2015

3 commits


22 Oct, 2015

1 commit

  • Currentlly, we use Synopsys DesignWare DMA Controller for
    baytrail/haswell/broadwell ADSP firmware loading, but for
    skylake, we don't use it, compiling sst-firmware.c may
    introduce error when CONFIG_DW_DMAC_CORE is not enabled:

    sound/built-in.o: In function `sst_dma_new':
    (.text+0xd7b38): undefined reference to `dw_dma_probe'
    sound/built-in.o: In function `sst_dma_free':
    (.text+0xd7c0a): undefined reference to `dw_dma_remove'

    Here we only compile sst-firmware when CONFIG_DW_DMAC_CORE
    is selected, to fix the linking error issue.

    Reported-by: Randy Dunlap
    Signed-off-by: Jie Yang
    Signed-off-by: Mark Brown

    Jie Yang
     

09 Oct, 2015

1 commit

  • On runtime pm resume, we need to download the firmware, also on
    suspend we need to ensure all the interrupts from controller and
    DSP are disabled.

    Also since we download the firmware on resume, we don't need to do
    so on init, so remove that bit

    Signed-off-by: Jeeja KP
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Jeeja KP
     

07 Oct, 2015

1 commit


17 Jul, 2015

1 commit


10 Jul, 2015

4 commits


09 Jul, 2015

1 commit


15 Jun, 2015

1 commit


03 Jun, 2015

1 commit


23 May, 2015

3 commits