Commit 9f1022b8 authored by Thierry Reding's avatar Thierry Reding
Browse files

soc/tegra: fuse: Restore base on sysfs failure



Make sure to also restore the register base address on sysfs
registration failure.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent c9e75376
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -146,20 +146,24 @@ static int tegra_fuse_probe(struct platform_device *pdev)

	if (fuse->soc->probe) {
		err = fuse->soc->probe(fuse);
		if (err < 0) {
			fuse->base = base;
			return err;
		}
		if (err < 0)
			goto restore;
	}

	if (tegra_fuse_create_sysfs(&pdev->dev, fuse->soc->info->size,
				    fuse->soc->info))
		return -ENODEV;
				    fuse->soc->info)) {
		err = -ENODEV;
		goto restore;
	}

	/* release the early I/O memory mapping */
	iounmap(base);

	return 0;

restore:
	fuse->base = base;
	return err;
}

static struct platform_driver tegra_fuse_driver = {