MMC host:

- renesas_sdhi: Fix error-paths in probe
  - renesas_sdhi: Fix build-error when CONFIG_REGULATOR is unset
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmgROPEXHHVsZi5oYW5z
 c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCm7+Q/+NmaYNnTMjOMzdhyLylR0NwdF
 tb7JPjcfe2sKFU7KKxvOID+ELytBp8Ka0JFYke0sqRyE/p6XbFDOH0191lhOdraI
 7FkjO49Wjgkx5huTCheOv5folp+KIed1B5hIJQMzM5MJ341fiPFGTiC0rlxIhPPy
 9hMLtdBSSv0rWwUXTILMqrUUNcEbUabvxYTQjMoOtfOCEdBmljmfVYwVDEqLFaYk
 I/RPPciFlcDcV8d5fLjDnL5DN3HPENJwvC9B0j1GmvH8UBx+PcLU3Bg9oHLKTFA7
 9yiWBvYUuow5aX7ZhL+GNJOpjzgUar12Bf/5yOUqMS0BlfY3fMPKOksQHqGrAvLU
 D5+a3iHAtV7MBfCqVhtJGNUDGtO1P4B3FpZ3izZLnGMEx7LdDDGSO8sNPJohOLEy
 wD0IntFLoDCdySrSre1DSjXgq6Im+B0l2l8awQI+lushsG/HfBvCEi7QEnrwbfZs
 n6890MJloH6x9sDb2J/mjG9mvjncrrw5VquvcMsTNMa4ccikbNQOmVA506xDCRLp
 0L07gfnMYIEPAxN/fMwCWlsZCu3XDXWGF5QJsy0DHOhIkZWlA23WkahUKX93Gb4P
 IHKEFCXYdC6cueBN5y2TfLE0KFlQCgJWq5gS9B5m8TQACfbfXR80oEhK96wCjnNk
 bkZT/l5AJQPfq5wKDHI=
 =eWgR
 -----END PGP SIGNATURE-----

Merge tag 'mmc-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc

Pull MMC fixes from Ulf Hansson:
 "Renesas SDHI fixes:

   - Fix error-paths in probe

   - Fix build-error when CONFIG_REGULATOR is unset"

* tag 'mmc-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
  mmc: renesas_sdhi: disable clocks if registering regulator failed
  mmc: renesas_sdhi: add regulator dependency
  mmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe
This commit is contained in:
Linus Torvalds 2025-04-29 14:23:36 -07:00
commit 8bac8898fe
2 changed files with 6 additions and 8 deletions

View File

@ -691,8 +691,8 @@ config MMC_TMIO_CORE
config MMC_SDHI
tristate "Renesas SDHI SD/SDIO controller support"
depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
depends on (RESET_CONTROLLER && REGULATOR) || !OF
select MMC_TMIO_CORE
select RESET_CONTROLLER if ARCH_RENESAS
help
This provides support for the SDHI SD/SDIO controller found in
Renesas SuperH, ARM and ARM64 based SoCs

View File

@ -1179,7 +1179,7 @@ int renesas_sdhi_probe(struct platform_device *pdev,
if (IS_ERR(rdev)) {
dev_err(dev, "regulator register failed err=%ld", PTR_ERR(rdev));
ret = PTR_ERR(rdev);
goto efree;
goto edisclk;
}
priv->rdev = rdev;
}
@ -1243,26 +1243,26 @@ int renesas_sdhi_probe(struct platform_device *pdev,
num_irqs = platform_irq_count(pdev);
if (num_irqs < 0) {
ret = num_irqs;
goto eirq;
goto edisclk;
}
/* There must be at least one IRQ source */
if (!num_irqs) {
ret = -ENXIO;
goto eirq;
goto edisclk;
}
for (i = 0; i < num_irqs; i++) {
irq = platform_get_irq(pdev, i);
if (irq < 0) {
ret = irq;
goto eirq;
goto edisclk;
}
ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0,
dev_name(&pdev->dev), host);
if (ret)
goto eirq;
goto edisclk;
}
ret = tmio_mmc_host_probe(host);
@ -1274,8 +1274,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,
return ret;
eirq:
tmio_mmc_host_remove(host);
edisclk:
renesas_sdhi_clk_disable(host);
efree: