mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
Memory controller drivers - fixes for v5.18
Issues in v5.18:
1. Freescale/NXP: fix populating children of Integrated Flash Controller
DT nodes.
Issues existing before:
1. Renesas: fix platform-device leak in probe's error path.
2. Atmel: fix of_node reference leak in probe's error path.
3. Synopsys: correct the bindings for snps,ddrc-3.80a (interrupts are
required).
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmJOnPsQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD18r3D/sHivcq0Vq2nWC5IUcpAzL/WaF1H/rMHnE+
Y/gQxormQ6u/eBhfiHG4o6sLm4io8YJzCCvsnDnM//GExrUHJHohy5bGOGiSGRi3
lF0UWWQAWVyxIuF058gtzPuNmjZTH7VJnAIA/TNAvnQIt34269VxcdIFTIICLESo
jUiZ3nswDBuS/9CQM/L2F3XBnmK2foSZIJFGNK5uNDWMyOlY2NTuejC0fs8uXFuh
14B3OwKm4LOhshGrwBGfJS0k6VxINDKGeZ6yslYEx8s/CFqTwCTsdgEgxjX5zfuA
CKZjZCC9neZIdOP8tAgx8lfR4shWTf5jXkW1FXOGzvRfnKCVZeebqSUkUMQo3VuK
zMeHb6iYtj9F+F0kqhlb67UtATv/0C7zFEYej8YD764SXnPl20NEVR+SrzaQtyLO
V6G0Xc19pf9rnUIA0XiEF9yNXdOGswANqucHTl6+oOt3vwT0iT+kzzgQBC2Ucl1u
eHLeyTTTdFKTvWuzcKK97h3/N80T/U2FMoJgIzgU9ajCkyQrWEdoCZrUqS93TA1I
wALsZWqgvu6PLeUcSHCIdGPI+VktloIDKi/wlttOttBN38W1WwuyHZTt52zEmA2P
/rPScCVf3IEn0rtC6EP+gZ2SYbC0LCsgs5vmpvfgoxVIGA3+lmSoKmUprFWG6Z86
ZclVVBMV4g==
=1KGr
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJO0doACgkQmmx57+YA
GNlkDg/+KbDojSclosmC90vGT/dfgQ5Vj3e/frFTyQN/Dd28cnJLz4agoleWz/TD
ouazIm8OKSt35qsn1CgnWn/h3gpvn6U2/Ejms//69tJdPfTRa3Hv0fnHo//It9co
LQgTtXSlf69wA89YnDS1VXryjKJJXvyxoNeEv0CUmM81p01kH17LCOgnDKJSDKIK
YKnPGE+SLOOUDyF4/0Fy6pihk8mBczkO5jnZAqnILfYdaYbG2BYS0mPdKWaSR2fa
9oLeM9CcUSYw/k5e1O+WoXiXQnaauINTgtn7sIcaCxo8DF7FwHiHUCi+vm0HwyWm
c0ziqA1c2Tx8DVGLrq7ex3v5O89jPdkBI70SsOHEiqw5v3znTjpWbvcFX64V8rVv
ZJg0i/j2xBX8eazlV1q+ssachMe+1r5CjZPaW0e70xFlr3HEKRG7Wiu0dUHhQ0RC
BIVb5cMJvMGCxbkwWaPPasq0q78KnCDThVHWahJskc1KHhKI49LqF6BQMJQvGG3u
n9+4OI0AI+WLspB8g4eRaS2/VBHndeDt3yhY7nz/tdacUa9xNJfzNpcLqlPrdiwA
niyRhuQInIE1h7iut2iPTwG6LVLE9HjQy2sGYwZg392Mhk6Ugf61uArKu2WCw/Kf
Si5rj3nbbCJvnxakuNtekbQVP4kLgWqmYRLSpcYzbcUQOX92nKw=
=BmJv
-----END PGP SIGNATURE-----
Merge tag 'memory-controller-drv-fixes-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/fixes
Memory controller drivers - fixes for v5.18
Issues in v5.18:
1. Freescale/NXP: fix populating children of Integrated Flash Controller
DT nodes.
Issues existing before:
1. Renesas: fix platform-device leak in probe's error path.
2. Atmel: fix of_node reference leak in probe's error path.
3. Synopsys: correct the bindings for snps,ddrc-3.80a (interrupts are
required).
* tag 'memory-controller-drv-fixes-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
memory: fsl_ifc: populate child nodes of buses and mfd devices
dt-bindings: memory: snps,ddrc-3.80a compatible also need interrupts
memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
memory: renesas-rpc-if: fix platform-device leak in error path
Link: https://lore.kernel.org/r/20220407081448.113208-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
44e4a2c756
|
|
@ -24,9 +24,9 @@ description: |
|
|||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- snps,ddrc-3.80a
|
||||
- xlnx,zynq-ddrc-a05
|
||||
- xlnx,zynqmp-ddrc-2.40a
|
||||
- snps,ddrc-3.80a
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
|
@ -43,7 +43,9 @@ allOf:
|
|||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: xlnx,zynqmp-ddrc-2.40a
|
||||
enum:
|
||||
- snps,ddrc-3.80a
|
||||
- xlnx,zynqmp-ddrc-2.40a
|
||||
then:
|
||||
required:
|
||||
- interrupts
|
||||
|
|
|
|||
|
|
@ -544,20 +544,27 @@ static int atmel_ebi_probe(struct platform_device *pdev)
|
|||
smc_np = of_parse_phandle(dev->of_node, "atmel,smc", 0);
|
||||
|
||||
ebi->smc.regmap = syscon_node_to_regmap(smc_np);
|
||||
if (IS_ERR(ebi->smc.regmap))
|
||||
return PTR_ERR(ebi->smc.regmap);
|
||||
if (IS_ERR(ebi->smc.regmap)) {
|
||||
ret = PTR_ERR(ebi->smc.regmap);
|
||||
goto put_node;
|
||||
}
|
||||
|
||||
ebi->smc.layout = atmel_hsmc_get_reg_layout(smc_np);
|
||||
if (IS_ERR(ebi->smc.layout))
|
||||
return PTR_ERR(ebi->smc.layout);
|
||||
if (IS_ERR(ebi->smc.layout)) {
|
||||
ret = PTR_ERR(ebi->smc.layout);
|
||||
goto put_node;
|
||||
}
|
||||
|
||||
ebi->smc.clk = of_clk_get(smc_np, 0);
|
||||
if (IS_ERR(ebi->smc.clk)) {
|
||||
if (PTR_ERR(ebi->smc.clk) != -ENOENT)
|
||||
return PTR_ERR(ebi->smc.clk);
|
||||
if (PTR_ERR(ebi->smc.clk) != -ENOENT) {
|
||||
ret = PTR_ERR(ebi->smc.clk);
|
||||
goto put_node;
|
||||
}
|
||||
|
||||
ebi->smc.clk = NULL;
|
||||
}
|
||||
of_node_put(smc_np);
|
||||
ret = clk_prepare_enable(ebi->smc.clk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
@ -608,6 +615,10 @@ static int atmel_ebi_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
return of_platform_populate(np, NULL, NULL, dev);
|
||||
|
||||
put_node:
|
||||
of_node_put(smc_np);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static __maybe_unused int atmel_ebi_resume(struct device *dev)
|
||||
|
|
|
|||
|
|
@ -287,8 +287,7 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev)
|
|||
}
|
||||
|
||||
/* legacy dts may still use "simple-bus" compatible */
|
||||
ret = of_platform_populate(dev->dev.of_node, NULL, NULL,
|
||||
&dev->dev);
|
||||
ret = of_platform_default_populate(dev->dev.of_node, NULL, &dev->dev);
|
||||
if (ret)
|
||||
goto err_free_nandirq;
|
||||
|
||||
|
|
|
|||
|
|
@ -651,6 +651,7 @@ static int rpcif_probe(struct platform_device *pdev)
|
|||
struct platform_device *vdev;
|
||||
struct device_node *flash;
|
||||
const char *name;
|
||||
int ret;
|
||||
|
||||
flash = of_get_next_child(pdev->dev.of_node, NULL);
|
||||
if (!flash) {
|
||||
|
|
@ -674,7 +675,14 @@ static int rpcif_probe(struct platform_device *pdev)
|
|||
return -ENOMEM;
|
||||
vdev->dev.parent = &pdev->dev;
|
||||
platform_set_drvdata(pdev, vdev);
|
||||
return platform_device_add(vdev);
|
||||
|
||||
ret = platform_device_add(vdev);
|
||||
if (ret) {
|
||||
platform_device_put(vdev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rpcif_remove(struct platform_device *pdev)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user