Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit b97205ef authored by Stephan Gerhold's avatar Stephan Gerhold Committed by Mark Brown
Browse files

ASoC: Intel: sst: Simplify is_byt_cr()



is_byt_cr() and its usage can be simplified by returning the bool
directly, instead of through a pointer. This works because the
return value is just treated as bytcr = false and is not used
otherwise.

This patch also removes the extra check of
IS_ENABLED(CONFIG_IOSF_MBI) in favor of checking
iosf_mbi_available() directly. The header already takes care
of returning false if the config option is not enabled.

No functional change.

Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
Acked-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5198baf8
Loading
Loading
Loading
Loading
+14 −19
Original line number Original line Diff line number Diff line
@@ -255,18 +255,15 @@ static int is_byt(void)
	return status;
	return status;
}
}


static int is_byt_cr(struct device *dev, bool *bytcr)
static bool is_byt_cr(struct device *dev)
{
{
	int status = 0;
	int status = 0;


	if (IS_ENABLED(CONFIG_IOSF_MBI)) {
	if (!is_byt())
		u32 bios_status;
		return false;

		if (!is_byt() || !iosf_mbi_available()) {
			/* bail silently */
			return status;
		}


	if (iosf_mbi_available()) {
		u32 bios_status;
		status = iosf_mbi_read(BT_MBI_UNIT_PMC, /* 0x04 PUNIT */
		status = iosf_mbi_read(BT_MBI_UNIT_PMC, /* 0x04 PUNIT */
				       MBI_REG_READ, /* 0x10 */
				       MBI_REG_READ, /* 0x10 */
				       0x006, /* BIOS_CONFIG */
				       0x006, /* BIOS_CONFIG */
@@ -278,15 +275,17 @@ static int is_byt_cr(struct device *dev, bool *bytcr)
			/* bits 26:27 mirror PMIC options */
			/* bits 26:27 mirror PMIC options */
			bios_status = (bios_status >> 26) & 3;
			bios_status = (bios_status >> 26) & 3;


			if ((bios_status == 1) || (bios_status == 3))
			if (bios_status == 1 || bios_status == 3) {
				*bytcr = true;
				dev_info(dev, "Detected Baytrail-CR platform\n");
			else
				return true;
			}

			dev_info(dev, "BYT-CR not detected\n");
			dev_info(dev, "BYT-CR not detected\n");
		}
		}
	} else {
	} else {
		dev_info(dev, "IOSF_MBI not enabled, no BYT-CR detection\n");
		dev_info(dev, "IOSF_MBI not available, no BYT-CR detection\n");
	}
	}
	return status;
	return false;
}
}




@@ -301,7 +300,6 @@ static int sst_acpi_probe(struct platform_device *pdev)
	struct platform_device *plat_dev;
	struct platform_device *plat_dev;
	struct sst_platform_info *pdata;
	struct sst_platform_info *pdata;
	unsigned int dev_id;
	unsigned int dev_id;
	bool bytcr = false;


	id = acpi_match_device(dev->driver->acpi_match_table, dev);
	id = acpi_match_device(dev->driver->acpi_match_table, dev);
	if (!id)
	if (!id)
@@ -333,10 +331,7 @@ static int sst_acpi_probe(struct platform_device *pdev)
	if (ret < 0)
	if (ret < 0)
		return ret;
		return ret;


	ret = is_byt_cr(dev, &bytcr);
	if (is_byt_cr(dev)) {
	if (!(ret < 0 || !bytcr)) {
		dev_info(dev, "Detected Baytrail-CR platform\n");

		/* override resource info */
		/* override resource info */
		byt_rvp_platform_data.res_info = &bytcr_res_info;
		byt_rvp_platform_data.res_info = &bytcr_res_info;
	}
	}