Unverified Commit 947f4252 authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno
Browse files

soc: mediatek: mtk-svs: Commonize MT8192 probe function for MT8186

Include the additions of svs_mt8186_platform_probe() in the common
svs_mt8192_platform_probe() function, remove the former, and use the
latter as .probe() callback for MT8186.

Link: https://lore.kernel.org/r/20231121125044.78642-13-angelogioacchino.delregno@collabora.com


Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
parent 63077f99
Loading
Loading
Loading
Loading
+7 −37
Original line number Diff line number Diff line
@@ -2119,40 +2119,6 @@ static struct device *svs_add_device_link(struct svs_platform *svsp,
static int svs_mt8192_platform_probe(struct svs_platform *svsp)
{
	struct device *dev;
	struct svs_bank *svsb;
	u32 idx;

	svsp->rst = devm_reset_control_get_optional(svsp->dev, "svs_rst");
	if (IS_ERR(svsp->rst))
		return dev_err_probe(svsp->dev, PTR_ERR(svsp->rst),
				     "cannot get svs reset control\n");

	dev = svs_add_device_link(svsp, "thermal-sensor");
	if (IS_ERR(dev))
		return dev_err_probe(svsp->dev, PTR_ERR(dev),
				     "failed to get lvts device\n");

	for (idx = 0; idx < svsp->bank_max; idx++) {
		svsb = &svsp->banks[idx];

		if (svsb->type == SVSB_TYPE_HIGH)
			svsb->opp_dev = svs_add_device_link(svsp, "gpu");
		else if (svsb->type == SVSB_TYPE_LOW)
			svsb->opp_dev = svs_get_subsys_device(svsp, "gpu");

		if (IS_ERR(svsb->opp_dev))
			return dev_err_probe(svsp->dev, PTR_ERR(svsb->opp_dev),
					     "failed to get OPP device for bank %d\n",
					     idx);
	}

	return 0;
}

static int svs_mt8186_platform_probe(struct svs_platform *svsp)
{
	struct device *dev;
	struct svs_bank *svsb;
	u32 idx;

	svsp->rst = devm_reset_control_get_optional(svsp->dev, "svs_rst");
@@ -2166,7 +2132,7 @@ static int svs_mt8186_platform_probe(struct svs_platform *svsp)
				     "failed to get lvts device\n");

	for (idx = 0; idx < svsp->bank_max; idx++) {
		svsb = &svsp->banks[idx];
		struct svs_bank *svsb = &svsp->banks[idx];

		switch (svsb->sw_id) {
		case SVSB_SWID_CPU_LITTLE:
@@ -2177,8 +2143,12 @@ static int svs_mt8186_platform_probe(struct svs_platform *svsp)
			svsb->opp_dev = svs_add_device_link(svsp, "cci");
			break;
		case SVSB_SWID_GPU:
			if (svsb->type == SVSB_TYPE_LOW)
				svsb->opp_dev = svs_get_subsys_device(svsp, "gpu");
			else
				svsb->opp_dev = svs_add_device_link(svsp, "gpu");
			break;
			break;
		default:
			dev_err(svsb->dev, "unknown sw_id: %u\n", svsb->sw_id);
			return -EINVAL;
@@ -2739,7 +2709,7 @@ static const struct svs_platform_data svs_mt8186_platform_data = {
	.name = "mt8186-svs",
	.banks = svs_mt8186_banks,
	.efuse_parsing = svs_common_parse_efuse,
	.probe = svs_mt8186_platform_probe,
	.probe = svs_mt8192_platform_probe,
	.regs = svs_regs_v2,
	.bank_max = ARRAY_SIZE(svs_mt8186_banks),
	.ts_coeff = SVSB_TS_COEFF_MT8186,