Commit 4e15e819 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull soundwire updates from Vinod Koul:

 - support for Qualcomm v2.2.0 controllers

 - bus method updates for .probe(), .remove() and .shutdown()
   and remove function return value updates

 - Avell B.ON dmi-quirks mapping

 - mark cs42l45 codec as wake capable

* tag 'soundwire-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
  soundwire: intel_ace2x: add SND_HDA_CORE dependency
  dt-bindings: soundwire: qcom: Add SoundWire v2.2.0 compatible
  soundwire: Use bus methods for .probe(), .remove() and .shutdown()
  soundwire: Make remove function return no value
  soundwire: dmi-quirks: add mapping for Avell B.ON (OEM rebranded of NUC15)
  soundwire: qcom: Use guard to avoid mixing cleanup and goto
  soundwire: intel_auxdevice: add cs42l45 codec to wake_capable_list
parents d295082e dc3a6a94
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ properties:
      - items:
          - enum:
              - qcom,soundwire-v2.1.0
              - qcom,soundwire-v2.2.0
          - const: qcom,soundwire-v2.0.0

  reg:
+1 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ config SOUNDWIRE_INTEL
	select AUXILIARY_BUS
	depends on ACPI && SND_SOC
	depends on SND_SOC_SOF_HDA_MLINK || !SND_SOC_SOF_HDA_MLINK
	depends on SND_HDA_CORE || !SND_HDA_ALIGNED_MMIO
	help
	  SoundWire Intel Master driver.
	  If you have an Intel platform which has a SoundWire Master then
+14 −17
Original line number Diff line number Diff line
@@ -72,13 +72,7 @@ int sdw_slave_uevent(const struct device *dev, struct kobj_uevent_env *env)
	return 0;
}

const struct bus_type sdw_bus_type = {
	.name = "soundwire",
	.match = sdw_bus_match,
};
EXPORT_SYMBOL_GPL(sdw_bus_type);

static int sdw_drv_probe(struct device *dev)
static int sdw_bus_probe(struct device *dev)
{
	struct sdw_slave *slave = dev_to_sdw_dev(dev);
	struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
@@ -164,11 +158,10 @@ static int sdw_drv_probe(struct device *dev)
	return 0;
}

static int sdw_drv_remove(struct device *dev)
static void sdw_bus_remove(struct device *dev)
{
	struct sdw_slave *slave = dev_to_sdw_dev(dev);
	struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
	int ret = 0;

	mutex_lock(&slave->sdw_dev_lock);

@@ -177,22 +170,29 @@ static int sdw_drv_remove(struct device *dev)
	mutex_unlock(&slave->sdw_dev_lock);

	if (drv->remove)
		ret = drv->remove(slave);
		drv->remove(slave);

	ida_free(&slave->bus->slave_ida, slave->index);

	return ret;
}

static void sdw_drv_shutdown(struct device *dev)
static void sdw_bus_shutdown(struct device *dev)
{
	struct sdw_slave *slave = dev_to_sdw_dev(dev);
	struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);

	if (drv->shutdown)
	if (dev->driver && drv->shutdown)
		drv->shutdown(slave);
}

const struct bus_type sdw_bus_type = {
	.name = "soundwire",
	.match = sdw_bus_match,
	.probe = sdw_bus_probe,
	.remove = sdw_bus_remove,
	.shutdown = sdw_bus_shutdown,
};
EXPORT_SYMBOL_GPL(sdw_bus_type);

/**
 * __sdw_register_driver() - register a SoundWire Slave driver
 * @drv: driver to register
@@ -211,9 +211,6 @@ int __sdw_register_driver(struct sdw_driver *drv, struct module *owner)
	}

	drv->driver.owner = owner;
	drv->driver.probe = sdw_drv_probe;
	drv->driver.remove = sdw_drv_remove;
	drv->driver.shutdown = sdw_drv_shutdown;
	drv->driver.dev_groups = sdw_attr_groups;

	return driver_register(&drv->driver);
+11 −0
Original line number Diff line number Diff line
@@ -122,6 +122,17 @@ static const struct dmi_system_id adr_remap_quirk_table[] = {
		},
		.driver_data = (void *)intel_tgl_bios,
	},
	{
		/*
		 * quirk used for Avell B.ON (OEM rebrand of NUC15 'Bishop County'
		 * LAPBC510 and LAPBC710)
		 */
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Avell High Performance"),
			DMI_MATCH(DMI_PRODUCT_NAME, "B.ON"),
		},
		.driver_data = (void *)intel_tgl_bios,
	},
	{
		/* quirk used for NUC15 'Rooks County' LAPRC510 and LAPRC710 skews */
		.matches = {
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ struct wake_capable_part {

static struct wake_capable_part wake_capable_list[] = {
	{0x01fa, 0x4243},
	{0x01fa, 0x4245},
	{0x025d, 0x5682},
	{0x025d, 0x700},
	{0x025d, 0x711},
Loading