Commit bc168790 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull soundwire fixes from Vinod Koul:

 - Core fix for enumeration completion

 - Qualcomm driver fix to update status

 - AMD driver fix for probe error check

* tag 'soundwire-6.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
  soundwire: amd: Fix a check for errors in probe()
  soundwire: qcom: update status correctly with mask
  soundwire: fix enumeration completion
parents 53c8621b 7891d0a5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -910,9 +910,9 @@ static int amd_sdw_manager_probe(struct platform_device *pdev)
		return -ENOMEM;

	amd_manager->acp_mmio = devm_ioremap(dev, res->start, resource_size(res));
	if (IS_ERR(amd_manager->mmio)) {
	if (!amd_manager->acp_mmio) {
		dev_err(dev, "mmio not found\n");
		return PTR_ERR(amd_manager->mmio);
		return -ENOMEM;
	}
	amd_manager->instance = pdata->instance;
	amd_manager->mmio = amd_manager->acp_mmio +
+4 −4
Original line number Diff line number Diff line
@@ -922,8 +922,8 @@ static void sdw_modify_slave_status(struct sdw_slave *slave,
			"initializing enumeration and init completion for Slave %d\n",
			slave->dev_num);

		init_completion(&slave->enumeration_complete);
		init_completion(&slave->initialization_complete);
		reinit_completion(&slave->enumeration_complete);
		reinit_completion(&slave->initialization_complete);

	} else if ((status == SDW_SLAVE_ATTACHED) &&
		   (slave->status == SDW_SLAVE_UNATTACHED)) {
@@ -931,7 +931,7 @@ static void sdw_modify_slave_status(struct sdw_slave *slave,
			"signaling enumeration completion for Slave %d\n",
			slave->dev_num);

		complete(&slave->enumeration_complete);
		complete_all(&slave->enumeration_complete);
	}
	slave->status = status;
	mutex_unlock(&bus->bus_lock);
@@ -1951,7 +1951,7 @@ int sdw_handle_slave_status(struct sdw_bus *bus,
				"signaling initialization completion for Slave %d\n",
				slave->dev_num);

			complete(&slave->initialization_complete);
			complete_all(&slave->initialization_complete);

			/*
			 * If the manager became pm_runtime active, the peripherals will be
+1 −1
Original line number Diff line number Diff line
@@ -540,7 +540,7 @@ static int qcom_swrm_get_alert_slave_dev_num(struct qcom_swrm_ctrl *ctrl)
		status = (val >> (dev_num * SWRM_MCP_SLV_STATUS_SZ));

		if ((status & SWRM_MCP_SLV_STATUS_MASK) == SDW_SLAVE_ALERT) {
			ctrl->status[dev_num] = status;
			ctrl->status[dev_num] = status & SWRM_MCP_SLV_STATUS_MASK;
			return dev_num;
		}
	}