platform/kernel/linux-rpi3.git
6 years agoASoC: Intel: bytcr_rt5651: Pass jack-src info via device-properties
Hans de Goede [Sun, 4 Mar 2018 14:35:59 +0000 (15:35 +0100)]
ASoC: Intel: bytcr_rt5651: Pass jack-src info via device-properties

This commit add support for a new BYT_RT5651_JDSRC quirk, sets this
quirk for the KIANO SlimNote 14.2 laptop and uses the new "realtek,
jack-detect-source" property to pass this info to the codec driver.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge branch 'topic/rt5651' of https://git.kernel.org/pub/scm/linux/kernel/git/brooni...
Mark Brown [Wed, 7 Mar 2018 14:16:00 +0000 (14:16 +0000)]
Merge branch 'topic/rt5651' of https://git./linux/kernel/git/broonie/sound into asoc-intel

6 years agoASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error
Hans de Goede [Sun, 4 Mar 2018 14:35:58 +0000 (15:35 +0100)]
ASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error

If we cannot find the codec ACPI-dev, then the snd-soc-core will not be
able to find the codec either and snd_soc_register_card() will just keep
exiting with -EPROBE_DEFER, filling the log with errors each time the
probe gets retried.

Instead simply log an error from the machine driver and exit with -ENODEV.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Rewrite jack-type detection
Hans de Goede [Sun, 4 Mar 2018 14:35:57 +0000 (15:35 +0100)]
ASoC: rt5651: Rewrite jack-type detection

We get the insertion event before the jack is fully inserted at which point
the second ring on a TRRS connector may short the 2nd ring and sleeve
contacts. Testing has shown that this short-circuit may happen as late
as 500ms after the insertion event, but it never lasts longer then 300ms.

This commit changes the detection algorithm to require 5 identical OVCD
values in a row at 100 ms intervals to fix the jack-type sometimes getting
mis-detected.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Add rt5651_jack_inserted() helper
Hans de Goede [Sun, 4 Mar 2018 14:35:56 +0000 (15:35 +0100)]
ASoC: rt5651: Add rt5651_jack_inserted() helper

Add rt5651_jack_inserted() helper to get the jack-detect switch status,
This is a preparation patch for rewriting the jack type-detection to
make it more reliable.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Enable Platform Clock during jack-type detect
Hans de Goede [Sun, 4 Mar 2018 14:35:55 +0000 (15:35 +0100)]
ASoC: rt5651: Enable Platform Clock during jack-type detect

When using RCCLK instead of MCLK / PLL1 the OVCD status often gets stuck
at its last value, which breaks jack-type detection.

This commit fixes this by force-enabling the platform clock when doing
jack-type detection.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Enable sticky mode for OVCD
Hans de Goede [Sun, 4 Mar 2018 14:35:54 +0000 (15:35 +0100)]
ASoC: rt5651: Enable sticky mode for OVCD

When the mic-gnd contacts are short-circuited by a headphones plug, the
hardware periodically retries if it can apply the bias-current leading to
the OVCD status flip-flopping 1-0-1 with it being 0 about 10% of the time.
This commit enables the sticky bit for the OVCD status to deal with this.

This commit also introduces 2 helper functions to deal with the OVCD
status bit, this may seem a bit overkill now, but these will also be
used in future patches.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Allow specifying the OVCD scale-factor through a device-property
Hans de Goede [Sun, 4 Mar 2018 14:35:53 +0000 (15:35 +0100)]
ASoC: rt5651: Allow specifying the OVCD scale-factor through a device-property

OVer-Current-Detection (OVCD) for the micbias current is used to detect if
an inserted jack is a headset or headphones (mic shorted to ground).

The threshold for at which current the OVCD triggers on the rt5651 is not
only controlled by setting the absolute current limit, but also by setting
a scale factor which applies to the limit. Testing has shown that we need
to set both (depending on the board).

This commit adds support for the sofar unused OVCD scale-factor register
and adds support for specifying non-default values for it through the
"realtek,over-current-scale-factor" device-property.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Allow specifying over-current threshold through a device-property
Hans de Goede [Sun, 4 Mar 2018 14:35:52 +0000 (15:35 +0100)]
ASoC: rt5651: Allow specifying over-current threshold through a device-property

OVer-Current-Detection (OVCD) for the micbias current is used to detect
if an inserted jack is a headset or headphones (mic shorted to ground).

Some boards may need different values for the OVCD current threshold
because of a resistor on the board in serial with or parallel to the
jack mic contact.

This commit adds support for configuring the OCVD current threshold
through the "realtek,over-current-threshold-microamp" device-property.

Note this commit changes the default value from 600uA to 2000uA,
because testing has shown 600uA to be a poor default.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Configure jack-detect source through a device-property
Hans de Goede [Sun, 4 Mar 2018 14:35:51 +0000 (15:35 +0100)]
ASoC: rt5651: Configure jack-detect source through a device-property

Configure the jack-detect source through a device-property which can be
set by code outside of the codec driver. Rather then putting platform
specific DMI quirks inside the generic codec driver.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Add devicetree-bindings for jack-detect
Hans de Goede [Sun, 4 Mar 2018 14:35:50 +0000 (15:35 +0100)]
ASoC: rt5651: Add devicetree-bindings for jack-detect

Add new properties to the rt5651 dt-bindings for configuring the
jack-detect source and over-current detect settings.

Cc: devicetree@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Make rt5651_apply_properties() private
Hans de Goede [Sun, 4 Mar 2018 14:35:49 +0000 (15:35 +0100)]
ASoC: rt5651: Make rt5651_apply_properties() private

The idea behind exporting rt5651_apply_properties(), was for it to be used
on platforms where the platform code may need to add device-properties,
rather then relying only on properties set by the firmware. The platform
code could then call rt5651_apply_properties() after adding properties to
make sure that the codec driver was aware of the new properties.

But this is not necessary, as long as we do all property parsing from
the codec component-driver's probe function (or later) then the machine
driver can attach properties before calling snd_soc_register_card and
calling rt5651_apply_properties() for ordering reasons is not necessary.

This commit makes rt5651_apply_properties() private and adds 2 comments
documenting that all property parsing must be done from the codec
component-driver's probe function.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: Fix typo
Abhijeet Kumar [Sat, 3 Mar 2018 19:46:39 +0000 (01:16 +0530)]
ASoC: Intel: Skylake: Fix typo

Spelling mistake in state. So fixing it.

Signed-off-by: Abhijeet Kumar <abhijeet.kumar@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: fix argument error in nau8824 machine
John Hsu [Fri, 2 Mar 2018 02:45:14 +0000 (10:45 +0800)]
ASoC: Intel: fix argument error in nau8824 machine

Fix the error: passing argument 1 of 'nau8824_enable_jack_detect'
from incompatible pointer type
  nau8824_enable_jack_detect(codec, jack);
                             ^~~~~
Which expects 'struct snd_soc_component *' but argument is of type
'struct snd_soc_codec *'

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge branch 'topic/component-platform' of https://git.kernel.org/pub/scm/linux/kerne...
Mark Brown [Thu, 1 Mar 2018 19:55:59 +0000 (19:55 +0000)]
Merge branch 'topic/component-platform' of https://git./linux/kernel/git/broonie/sound into asoc-intel

6 years agoASoC: Intel: Skylake: Find module id from UUID for bind params
Sriram Periyasamy [Sat, 27 Jan 2018 04:20:24 +0000 (09:50 +0530)]
ASoC: Intel: Skylake: Find module id from UUID for bind params

Module id is a property of firmware manifest and can vary across
platforms. So use the uuid to find module id dynamically for bind
params like kpb post bind params.

Signed-off-by: Sriram Periyasamy <sriramx.periyasamy@intel.com>
Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: board: Add BE DAI link for WoV and update DAPM machine map.
Pawse, GuruprasadX [Sat, 27 Jan 2018 04:20:23 +0000 (09:50 +0530)]
ASoC: Intel: board: Add BE DAI link for WoV and update DAPM machine map.

Create BE DAI link for WoV and accordingly update the DAPM machine map

Signed-off-by: Pawse, GuruprasadX <guruprasadx.pawse@intel.com>
Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: Add BE DAI for WoV usecase
Pawse, GuruprasadX [Sat, 27 Jan 2018 04:20:22 +0000 (09:50 +0530)]
ASoC: Intel: Skylake: Add BE DAI for WoV usecase

Currently DMIC capture and WoV usecase uses same BE DAI but operate at
different sampling rates, this results in config mismatch for WoV when
DMIC is already running in parallel.

DMIC has two slots which can operate with some constraints, so add BE
DAI for DMICvoice pin which can used for WoV usecases to capture 4ch,
16KHz, 16bit data.

Signed-off-by: Pawse, GuruprasadX <guruprasadx.pawse@intel.com>
Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: Refine skl widget type check
Guneshwor Singh [Sat, 27 Jan 2018 04:20:21 +0000 (09:50 +0530)]
ASoC: Intel: Skylake: Refine skl widget type check

The current check is not effective when all the widgets of a card are
involved since other widgets also can be of same type. So, make widget
type check more stringent by checking dev pointer additionally.

Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Always keep OVCD enabled
Hans de Goede [Sun, 25 Feb 2018 10:46:57 +0000 (11:46 +0100)]
ASoC: rt5651: Always keep OVCD enabled

OVCD is not only useful for jack-type detection, but is also useful
to protect against over-current faults in general, so always keep
OVCD enabled, instead of only enabling it for jack-type detection.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Only configure OVCD once at set_jack time
Hans de Goede [Sun, 25 Feb 2018 10:46:56 +0000 (11:46 +0100)]
ASoC: rt5651: Only configure OVCD once at set_jack time

Only configure OVCD once at set_jack time, rather then configuring
it on every jack-insertion event and switch to using bit field defines
instead of hardcoding a magic value.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Enable LDO and micbias1 supplies for jack-type detection
Hans de Goede [Sun, 25 Feb 2018 10:46:55 +0000 (11:46 +0100)]
ASoC: rt5651: Enable LDO and micbias1 supplies for jack-type detection

To determine if a plugged in jack is a headset (speakers + mic) or
headphones (mic contact shorted to ground) we use the micbias1 OVer Current
Detect (OVCD) functionality.

For this to work we need to have a micbias current to actually cause an
overcurrent condition when headphones are plugged in, so jack-type
detection requires both the LDO and micbias1 supplies to be on.

Before this commit there were 2 issues with the handling of this:
1) The LDO supply was force-enabled twice and never disabled again even
though it only needs to be forced on when doing jack-type detection
2) micbias1 was not force-enabled, and thus may be off when doing jack-type
detection

This commit fixes both by force-enabling the LDO and micbias1 supplies
before checking for an overcurrent condition and disabling them afterwards.

Note that both supplies will still get turned on normally (and OVCD will
protect against overcurrent) when the micbias1 is enabled normally because
the user has activated a sound stream recording from the mic.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Remove "JD Power" dapm supply
Hans de Goede [Sun, 25 Feb 2018 10:46:54 +0000 (11:46 +0100)]
ASoC: rt5651: Remove "JD Power" dapm supply

Remove the "JD power" dapm supply which gets force-enabled once when
using jack-detect and never gets disabled again.

Since the PWR_JD_M bit simply needs to be always on when using jack-detect
there is no need to have it tracked by dapm, instead we can simply set it
to 1 once when initializing the jack-detection.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Only configure LDO voltage once at boot
Hans de Goede [Sun, 25 Feb 2018 10:46:53 +0000 (11:46 +0100)]
ASoC: rt5651: Only configure LDO voltage once at boot

Now that rt5651_set_bias_level(BIAS_OFF) no longer modifies the LDO
voltage selection bits, there is no need to set them each time we move
to standby. Instead configure them once at component-probe() time.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Remove programming of PWR regs before force_bias_level() call
Hans de Goede [Sun, 25 Feb 2018 10:46:52 +0000 (11:46 +0100)]
ASoC: rt5651: Remove programming of PWR regs before force_bias_level() call

Remove the setup of the PWR_ANLG1 reg which was done directly before
calling snd_soc_component_force_bias_level(SND_SOC_BIAS_OFF), as the
latter will override any settings done to PWR_ANLG1 immediately anyways.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Do not modify jd and PLL power bits from set_bias_level()
Hans de Goede [Sun, 25 Feb 2018 10:46:51 +0000 (11:46 +0100)]
ASoC: rt5651: Do not modify jd and PLL power bits from set_bias_level()

rt5651_set_bias_level(BIAS_OFF) used to unconditionally clear the entire
register, including the jack-detect and PLL power bits. When jack-detection
support was introduced a special case for jack-detect was added which
hard-codes a register value to keep both on.

This commit removes the jack-detect special case, instead simply leaving
these bits as is on BIAS_OFF.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Do not modify the LDO voltage control bits from set_bias_level()
Hans de Goede [Sun, 25 Feb 2018 10:46:50 +0000 (11:46 +0100)]
ASoC: rt5651: Do not modify the LDO voltage control bits from set_bias_level()

The PWR_ANLG1 reg not only contains various power on/off bits, it also
contains 2 bits which select if the LDO generates 1.0, 1.1 or 1.2V. Note
there is a separate on/off bit for the LDO.

rt5651_set_bias_level(BIAS_OFF) used to unconditionally clear the entire
register, when jack-detection support was introduced a special case for
jack-detect was added which hard-codes a register value to keep the LDO
voltage at 1.2 volt.

This commit removes the jack-detect special case, instead simply always
leaving the LDO voltage control bits as is on BIAS_OFF.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Fix bias_level confusion
Hans de Goede [Sun, 25 Feb 2018 10:46:49 +0000 (11:46 +0100)]
ASoC: rt5651: Fix bias_level confusion

The rt5651_set_bias_level() function was turning everything off at
SND_SOC_BIAS_STANDBY, rather then at SND_SOC_BIAS_OFF, requiring the bias-
level to be raised to SND_SOC_BIAS_PREPARE before turning anything on.

This is not how the bias-levels are supposed to work, this commit fixes
this by turning everything off at the SND_SOC_BIAS_OFF level and enabling
the pwr-bits needed for minimum functionality at SND_SOC_BIAS_STANDBY.

This fixes the minimum set of pwr-bits not getting enabled when
force-enabling some dapm-supplies (e.g. for jack type detection),
which raises the bias-level to standby.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Remove is_sys_clk_from_pll()
Hans de Goede [Sun, 25 Feb 2018 10:46:48 +0000 (11:46 +0100)]
ASoC: rt5651: Remove is_sys_clk_from_pll()

is_sys_clk_from_pll() is used as a snd_soc_dapm_route.connected callback,
checking RT5651_GBL_CLK to determine if the sys-clk is PLL1 and thus the
PWR_PLL bit in reg PWR_ANLG2 must be set.

RT5651_GBL_CLK is changed by rt5651_set_dai_sysclk(), which gets called by
the pre_pmu / post_pmd functions of the "Platform Clock" dapm-supply.

This creates an ordering issue, during a dapm transition first all
connected() callbacks are called to build a list of supplies to enable
and then the complete list is walked to enable the supplies. Since the
connected() check happens before enabling any supplies,
is_sys_clk_from_pll() ends up deciding if the PWR_PLL bit should be set
based on the state the "Platform Clock" supply had *before* the transition.
This sometimes results in PWR_PLL being off, even though *after* the
transition PLL1 is configured as sys-clk.

This commit removes is_sys_clk_from_pll() instead simply setting / clearing
PWR_PLL in rt5651_set_dai_sysclk() based on the selected sys-clk, which
fixes this and as a bonus results in a nice cleanup.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Add rt5651_apply_properties() helper function
Hans de Goede [Sun, 25 Feb 2018 10:46:46 +0000 (11:46 +0100)]
ASoC: rt5651: Add rt5651_apply_properties() helper function

Move the applying of the differential input and dmic properties to a new
rt5651_apply_properties() helper function. This new function can be called
by platform code which attaches properties after probe() has run to apply
these new properties.

Note this also moves the time when we apply these properties for DT
platforms from i2c-probe to snd-component-probe time, this should not
result in any functional difference.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Use standard component set_jack callback
Hans de Goede [Sun, 25 Feb 2018 10:46:45 +0000 (11:46 +0100)]
ASoC: rt5651: Use standard component set_jack callback

Use the standard component set_jack callback instead of defining a codec
private API for this.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Move 2 functions higher up in rt5651.c
Hans de Goede [Sun, 25 Feb 2018 10:46:44 +0000 (11:46 +0100)]
ASoC: rt5651: Move 2 functions higher up in rt5651.c

Move 2 functions higher up in rt5651.c, this is a preparation patch
to avoid needing forward declarations when moving over from a codec
private function to the standard snd_soc_component_set_jack().

This commit purely moves these 2 functions up, not a single line is
changed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Move all jack-detect initialization to rt5651_set_jack_detect
Hans de Goede [Sun, 25 Feb 2018 10:46:43 +0000 (11:46 +0100)]
ASoC: rt5651: Move all jack-detect initialization to rt5651_set_jack_detect

Move all jack-detect initialization to rt5651_set_jack_detect. The main
reason to do this is so that platform code can setup jack-detect properties
after the device has been probed, which unfortunately is necessary on some
platforms.

This has 2 additional advantages:
1) Grouping all jack-detect init together makes it easier to follow what
is happening and results in a small reduction in the number of loc.
2) Before we would register the irq handler before rt5651->hp_jack was
assigned, leading to a potential NULL deref if the jack_detect work runs
before the machine driver has called set_jack.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: Remove unused rt5651_platform_data
Hans de Goede [Sun, 25 Feb 2018 10:46:42 +0000 (11:46 +0100)]
ASoC: rt5651: Remove unused rt5651_platform_data

There are no in tree users of platform-data for the rt5651 codec driver,
so lets remove support for it.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: add nau8824 sound card
John Hsu [Tue, 6 Feb 2018 07:02:43 +0000 (15:02 +0800)]
ASoC: Intel: add nau8824 sound card

Create sound card with NAU88L24 codec in Intel Cherryview-based platforms,
Cherrytrail and Braswell.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: kbl: Enable mclk and ssp sclk early for rt5663
Naveen Manohar [Mon, 19 Feb 2018 02:45:02 +0000 (08:15 +0530)]
ASoC: Intel: kbl: Enable mclk and ssp sclk early for rt5663

rt5663 requires mclk/sclk early to synchronize its internal clocks.
Enable these clocks early.

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Signed-off-by: Kevin Cheng <kevin.cheng@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Free streams on suspend, re-alloc on resume
Hans de Goede [Sun, 18 Feb 2018 22:01:43 +0000 (23:01 +0100)]
ASoC: Intel: sst: Free streams on suspend, re-alloc on resume

The Bay Trail SST-DSP firmware version looses track of all streams over a
suspend/resume, failing any attempts to resume and/or free streams, with
a SST_ERR_INVALID_STREAM_ID error.

This commit adds support for free-ing the streams on suspend and
re-allocating them on resume, fixing suspend/resume issues on devices
using this firmware version.

This new behavior gets triggered by a new flag in sst_platform_info which
only gets set on Bay Trail platforms.

This has been tested on the following devices:
-Asus T100TA,    Bay Trail    + ALC5642 codec
-Ployer MOMO7W,  Bay Trail CR + ALC5652 codec

Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Add sst_realloc_stream() function
Hans de Goede [Sun, 18 Feb 2018 22:01:42 +0000 (23:01 +0100)]
ASoC: Intel: sst: Add sst_realloc_stream() function

Move the struct snd_sst_alloc_mrfld alloc parameters from the stack
into struct stream_info and add a new sst_realloc_stream() function which
can re-alloc a stream with the same parameters as before.

This is a preparation patch for fixing suspend/resume issues with some
SST / DSP firmware versions.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Remove unused STREAM_DECODE and STREAM_RESET states
Hans de Goede [Sun, 18 Feb 2018 22:01:41 +0000 (23:01 +0100)]
ASoC: Intel: sst: Remove unused STREAM_DECODE and STREAM_RESET states

STREAM_DECODE is completely unused, status == STREAM_RESET was checked
for, but never set, remove both.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Remove unnecessary sst_init_stream() function
Hans de Goede [Sun, 18 Feb 2018 22:01:40 +0000 (23:01 +0100)]
ASoC: Intel: sst: Remove unnecessary sst_init_stream() function

sst_init_stream() has only one caller and all its function arguments are
unused. Inline it on the one call site and remove it.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Remove 2 unused members from stream_info struct
Hans de Goede [Sun, 18 Feb 2018 22:01:39 +0000 (23:01 +0100)]
ASoC: Intel: sst: Remove 2 unused members from stream_info struct

Remove the unused ops and str_id members from the stream_info struct.

While at it also remove some kernel-doc comments for members which have
already been removed in the past.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: sst: Fix error-code check in sst_pause_stream()
Hans de Goede [Sun, 18 Feb 2018 22:01:38 +0000 (23:01 +0100)]
ASoC: Intel: sst: Fix error-code check in sst_pause_stream()

The value returned by sst_prepare_and_post_msg() is a negated SST_ERR_*
value, so we must check for -SST_ERR_INVALID_STREAM_ID. Note that
sst_pause_resume() already has the correct check.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: kbl_da7219_max98357: replace codec to component
Kuninori Morimoto [Mon, 19 Feb 2018 04:15:38 +0000 (04:15 +0000)]
ASoC: intel: kbl_da7219_max98357: replace codec to component

Now we can replace Codec to Component. Let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Add Kabylake Dialog+Maxim machine driver entry
Naveen Manohar [Mon, 5 Feb 2018 04:29:57 +0000 (09:59 +0530)]
ASoC: Intel: Add Kabylake Dialog+Maxim machine driver entry

Adds Kabylake kbl_da7219_max98357a_i2s machine driver entry into
machine table

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Add Kabylake-y Dialog Maxim machine driver
Naveen Manohar [Mon, 5 Feb 2018 04:29:56 +0000 (09:59 +0530)]
ASoC: Intel: Add Kabylake-y Dialog Maxim machine driver

This patch adds Kabylake-y I2S machine driver which uses
DA7219 as headset on ssp1 and MAX98357A codec as speaker
on ssp0.

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Fix build
Mark Brown [Thu, 15 Feb 2018 17:14:16 +0000 (17:14 +0000)]
ASoC: Intel: Fix build

One of the recently introduced commits hadn't been build tested, fix
that.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: hdac_hdmi : Ensuring proper setting of output widget power state
Abhijeet Kumar [Thu, 15 Feb 2018 08:35:38 +0000 (14:05 +0530)]
ASoC: hdac_hdmi : Ensuring proper setting of output widget power state

In usecases like hot plug-unplug DP panel or modeset during a playback,
sometimes we observe no audio after codec resets. During no audio
condition, we have noticed that the power state of the pin or the
connector is D3. Optimizing the way we set the power mitigates the
issue. With this changes the verb is sent to set the power state and
waits until actual state reaches target state. Thus ensuring power
state is set.

Signed-off-by: Abhijeet Kumar <abhijeet.kumar@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge branch 'topic/hda-sync-power' of https://git.kernel.org/pub/scm/linux/kernel...
Mark Brown [Wed, 14 Feb 2018 16:18:47 +0000 (16:18 +0000)]
Merge branch 'topic/hda-sync-power' of https://git./linux/kernel/git/tiwai/sound into asoc-intel

6 years agoALSA: hda: Make use of core codec functions to sync power state
Abhijeet Kumar [Tue, 23 Jan 2018 17:30:52 +0000 (23:00 +0530)]
ALSA: hda: Make use of core codec functions to sync power state

Since sync_power_state is moved to core it's better to use the helper
function to ensure the actual power state reaches target instead of
using the local helper functions already exsisting in hda code.

Signed-off-by: Abhijeet Kumar <abhijeet.kumar@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
6 years agoALSA: hda: Copying sync power state helper to core
Abhijeet Kumar [Tue, 23 Jan 2018 17:30:51 +0000 (23:00 +0530)]
ALSA: hda: Copying sync power state helper to core

The current sync_power_state is local to hda code, moving it
core so that other users apart from hda legacy can use it.
The helper function ensures the actual state reaches the target state.

Signed-off-by: Abhijeet Kumar <abhijeet.kumar@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
6 years agoASoC: soc-utils: replace codec to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:58:01 +0000 (02:58 +0000)]
ASoC: soc-utils: replace codec to component

Now we can replace Codec to Component. Let's do it.

Note:
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 0 -> .idle_bias_on = 1
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: stm: stm32_adfsdm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:51:58 +0000 (02:51 +0000)]
ASoC: stm: stm32_adfsdm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: mt2701/mt8173: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:51:42 +0000 (02:51 +0000)]
ASoC: mt2701/mt8173: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Garlic Tseng <garlic.tseng@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: txx9aclc: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:51:26 +0000 (02:51 +0000)]
ASoC: txx9aclc: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: nuc900-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:51:09 +0000 (02:51 +0000)]
ASoC: nuc900-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: au1x: dma: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:50:54 +0000 (02:50 +0000)]
ASoC: au1x: dma: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: au1x: dbdma2: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:50:37 +0000 (02:50 +0000)]
ASoC: au1x: dbdma2: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: omap-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:50:19 +0000 (02:50 +0000)]
ASoC: omap-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: blackfin: bf5xx-i2s-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:50:02 +0000 (02:50 +0000)]
ASoC: blackfin: bf5xx-i2s-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: blackfin: bf5xx-ac97-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:49:43 +0000 (02:49 +0000)]
ASoC: blackfin: bf5xx-ac97-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: xtfpga-i2s: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:49:25 +0000 (02:49 +0000)]
ASoC: xtfpga-i2s: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: samsung: idma: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:49:08 +0000 (02:49 +0000)]
ASoC: samsung: idma: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: lpass-platform: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:48:52 +0000 (02:48 +0000)]
ASoC: qcom: lpass-platform: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: pxa2xx: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:48:35 +0000 (02:48 +0000)]
ASoC: pxa: pxa2xx: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: mmp: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:48:18 +0000 (02:48 +0000)]
ASoC: pxa: mmp: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: kirkwood: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:48:03 +0000 (02:48 +0000)]
ASoC: kirkwood: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dwc-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:47:38 +0000 (02:47 +0000)]
ASoC: dwc-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl: mpc5200: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:47:19 +0000 (02:47 +0000)]
ASoC: fsl: mpc5200: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl: imx: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:47:02 +0000 (02:47 +0000)]
ASoC: fsl: imx: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl: asrc: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:46:46 +0000 (02:46 +0000)]
ASoC: fsl: asrc: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl: dma: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:46:22 +0000 (02:46 +0000)]
ASoC: fsl: dma: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: davinci-i2s: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:46:04 +0000 (02:46 +0000)]
ASoC: davinci-i2s: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm5102: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:45:48 +0000 (02:45 +0000)]
ASoC: wm5102: replace platform to component

Now platform can be replaced to component, let's do it.
This patch merges wm5102_compr_platform into soc_codec_dev_wm5102

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm5110: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:45:30 +0000 (02:45 +0000)]
ASoC: wm5110: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5514-spi: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:45:13 +0000 (02:45 +0000)]
ASoC: rt5514-spi: replace platform to component

Now platform can be replaced to component, let's do it.
This patch merges rt5514_spi_dai_component into rt5514_spi_component

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: cs47l24: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:44:44 +0000 (02:44 +0000)]
ASoC: cs47l24: replace platform to component

Now platform can be replaced to component, let's do it.
This patch merges cs47l24_compr_platform into soc_codec_dev_cs47l24

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: amd: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:44:23 +0000 (02:44 +0000)]
ASoC: amd: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Mukunda,Vijendar <vijendar.mukunda@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: atmel: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:44:05 +0000 (02:44 +0000)]
ASoC: atmel: replace platform to component

Now platform can be replaced to component, let's do it.
To avoid complex operation, this patch adds device pointer
to atmel_classd.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sh: siu: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:43:45 +0000 (02:43 +0000)]
ASoC: sh: siu: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sh: fsi: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:43:26 +0000 (02:43 +0000)]
ASoC: sh: fsi: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sh: dma-sh7760: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:43:10 +0000 (02:43 +0000)]
ASoC: sh: dma-sh7760: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sh: rsnd: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:42:53 +0000 (02:42 +0000)]
ASoC: sh: rsnd: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: bcm: cygnus: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:42:37 +0000 (02:42 +0000)]
ASoC: bcm: cygnus: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: haswell: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:42:21 +0000 (02:42 +0000)]
ASoC: intel: haswell: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: baytrail: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:42:02 +0000 (02:42 +0000)]
ASoC: intel: baytrail: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: skylake: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:41:43 +0000 (02:41 +0000)]
ASoC: intel: skylake: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: "Kp, Jeeja" <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: atom: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:41:28 +0000 (02:41 +0000)]
ASoC: intel: atom: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: "Kp, Jeeja" <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: soc-generic-dmaengine-pcm: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:41:09 +0000 (02:41 +0000)]
ASoC: soc-generic-dmaengine-pcm: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: soc-utils: replace platform to component
Kuninori Morimoto [Mon, 29 Jan 2018 02:40:52 +0000 (02:40 +0000)]
ASoC: soc-utils: replace platform to component

Now platform can be replaced to component, let's do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: remove rtd->platform checck
Kuninori Morimoto [Mon, 29 Jan 2018 02:40:28 +0000 (02:40 +0000)]
ASoC: remove rtd->platform checck

Now, we are ready to replace rtd->platform to rtdcom list.
From this patch, rtd->platform check is no longer needed.
It will be replaced into rtdcom.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: replace codec to component
Kuninori Morimoto [Mon, 29 Jan 2018 04:36:54 +0000 (04:36 +0000)]
ASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: replace codec to component

Now we can replace Codec to Component. Let's do it.

Because intal/rockchip boards are using multi-codecs in 1 driver,
we need to update these all related drivers in same time.
Otherwise compile error/warning happen

Note:

hdac_hdmi
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

nau8825
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 0 -> .idle_bias_on = 1
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

rt286
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

rt298
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

rt5663
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

da7219
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 0 -> .idle_bias_on = 1
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5651: replace codec to component
Kuninori Morimoto [Mon, 29 Jan 2018 03:44:39 +0000 (03:44 +0000)]
ASoC: rt5651: replace codec to component

Now we can replace Codec to Component. Let's do it.

Note:
xxx_codec_xxx() -> xxx_component_xxx()
.idle_bias_off = 1 -> .idle_bias_on = 0
.ignore_pmdown_time = 0 -> .use_pmdown_time = 1
- -> .endianness = 1
- -> .non_legacy_dai_naming = 1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: make function skl_clk_round_rate static
Colin Ian King [Thu, 8 Feb 2018 14:35:30 +0000 (14:35 +0000)]
ASoC: Intel: Skylake: make function skl_clk_round_rate static

The function skl_clk_round_rate is local to the source and does not
need to be in global scope, so make it static.

Cleans up sparse warning:
sound/soc/intel/skylake/skl-ssp-clk.c:250:6: warning: symbol
'skl_clk_round_rate' was not declared. Should it be static?

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Acked-By: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoLinux 4.16-rc1
Linus Torvalds [Sun, 11 Feb 2018 23:04:29 +0000 (15:04 -0800)]
Linux 4.16-rc1

6 years agounify {de,}mangle_poll(), get rid of kernel-side POLL...
Al Viro [Thu, 1 Feb 2018 20:13:18 +0000 (15:13 -0500)]
unify {de,}mangle_poll(), get rid of kernel-side POLL...

except, again, POLLFREE and POLL_BUSY_LOOP.

With this, we finally get to the promised end result:

 - POLL{IN,OUT,...} are plain integers and *not* in __poll_t, so any
   stray instances of ->poll() still using those will be caught by
   sparse.

 - eventpoll.c and select.c warning-free wrt __poll_t

 - no more kernel-side definitions of POLL... - userland ones are
   visible through the entire kernel (and used pretty much only for
   mangle/demangle)

 - same behavior as after the first series (i.e. sparc et.al. epoll(2)
   working correctly).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
6 years agovfs: do bulk POLL* -> EPOLL* replacement
Linus Torvalds [Sun, 11 Feb 2018 22:34:03 +0000 (14:34 -0800)]
vfs: do bulk POLL* -> EPOLL* replacement

This is the mindless scripted replacement of kernel use of POLL*
variables as described by Al, done by this script:

    for V in IN OUT PRI ERR RDNORM RDBAND WRNORM WRBAND HUP RDHUP NVAL MSG; do
        L=`git grep -l -w POLL$V | grep -v '^t' | grep -v /um/ | grep -v '^sa' | grep -v '/poll.h$'|grep -v '^D'`
        for f in $L; do sed -i "-es/^\([^\"]*\)\(\<POLL$V\>\)/\\1E\\2/" $f; done
    done

with de-mangling cleanups yet to come.

NOTE! On almost all architectures, the EPOLL* constants have the same
values as the POLL* constants do.  But they keyword here is "almost".
For various bad reasons they aren't the same, and epoll() doesn't
actually work quite correctly in some cases due to this on Sparc et al.

The next patch from Al will sort out the final differences, and we
should be all done.

Scripted-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
6 years agoMerge branch 'work.poll2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Linus Torvalds [Sun, 11 Feb 2018 21:57:19 +0000 (13:57 -0800)]
Merge branch 'work.poll2' of git://git./linux/kernel/git/viro/vfs

Pull more poll annotation updates from Al Viro:
 "This is preparation to solving the problems you've mentioned in the
  original poll series.

  After this series, the kernel is ready for running

      for V in IN OUT PRI ERR RDNORM RDBAND WRNORM WRBAND HUP RDHUP NVAL MSG; do
            L=`git grep -l -w POLL$V | grep -v '^t' | grep -v /um/ | grep -v '^sa' | grep -v '/poll.h$'|grep -v '^D'`
            for f in $L; do sed -i "-es/^\([^\"]*\)\(\<POLL$V\>\)/\\1E\\2/" $f; done
      done

  as a for bulk search-and-replace.

  After that, the kernel is ready to apply the patch to unify
  {de,}mangle_poll(), and then get rid of kernel-side POLL... uses
  entirely, and we should be all done with that stuff.

  Basically, that's what you suggested wrt KPOLL..., except that we can
  use EPOLL... instead - they already are arch-independent (and equal to
  what is currently kernel-side POLL...).

  After the preparations (in this series) switch to returning EPOLL...
  from ->poll() instances is completely mechanical and kernel-side
  POLL... can go away. The last step (killing kernel-side POLL... and
  unifying {de,}mangle_poll() has to be done after the
  search-and-replace job, since we need userland-side POLL... for
  unified {de,}mangle_poll(), thus the cherry-pick at the last step.

  After that we will have:

   - POLL{IN,OUT,...} *not* in __poll_t, so any stray instances of
     ->poll() still using those will be caught by sparse.

   - eventpoll.c and select.c warning-free wrt __poll_t

   - no more kernel-side definitions of POLL... - userland ones are
     visible through the entire kernel (and used pretty much only for
     mangle/demangle)

   - same behavior as after the first series (i.e. sparc et.al. epoll(2)
     working correctly)"

* 'work.poll2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  annotate ep_scan_ready_list()
  ep_send_events_proc(): return result via esed->res
  preparation to switching ->poll() to returning EPOLL...
  add EPOLLNVAL, annotate EPOLL... and event_poll->event
  use linux/poll.h instead of asm/poll.h
  xen: fix poll misannotation
  smc: missing poll annotations

6 years agoMerge tag 'xtensa-20180211' of git://github.com/jcmvbkbc/linux-xtensa
Linus Torvalds [Sun, 11 Feb 2018 21:54:52 +0000 (13:54 -0800)]
Merge tag 'xtensa-20180211' of git://github.com/jcmvbkbc/linux-xtensa

Pull xtense fix from Max Filippov:
 "Build fix for xtensa architecture with KASAN enabled"

* tag 'xtensa-20180211' of git://github.com/jcmvbkbc/linux-xtensa:
  xtensa: fix build with KASAN

6 years agoMerge tag 'nios2-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan...
Linus Torvalds [Sun, 11 Feb 2018 21:52:32 +0000 (13:52 -0800)]
Merge tag 'nios2-v4.16-rc1' of git://git./linux/kernel/git/lftan/nios2

Pull nios2 update from Ley Foon Tan:

 - clean up old Kconfig options from defconfig

 - remove leading 0x and 0s from bindings notation in dts files

* tag 'nios2-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
  nios2: defconfig: Cleanup from old Kconfig options
  nios2: dts: Remove leading 0x and 0s from bindings notation

6 years agoxtensa: fix build with KASAN
Max Filippov [Sun, 11 Feb 2018 09:07:54 +0000 (01:07 -0800)]
xtensa: fix build with KASAN

The commit 917538e212a2 ("kasan: clean up KASAN_SHADOW_SCALE_SHIFT
usage") removed KASAN_SHADOW_SCALE_SHIFT definition from
include/linux/kasan.h and added it to architecture-specific headers,
except for xtensa. This broke the xtensa build with KASAN enabled.
Define KASAN_SHADOW_SCALE_SHIFT in arch/xtensa/include/asm/kasan.h

Reported by: kbuild test robot <fengguang.wu@intel.com>
Fixes: 917538e212a2 ("kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage")
Acked-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>