* Allow other children of GPMC to probe even if any child fails.
 This fixes problem on Overo boards where networking device child
 doesn't probe due to broken NAND child.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXraKzAAoJENJaa9O+djCTq8QP/RIj9TnKQr3Plc7yD0dJ03kH
 YU4ChBW8pfcxdhnflx4GBxD19k2kp4UJmhDi/H7u+tlXS+OEf7X6EdoYHAqnfi0+
 4E3Ai2Frzi++nZATCsJ4Nj8XaGVzAj4tmjvgx4ktNpbvU4UnmhUVBMEhtNJ3y5sC
 BQrOHAHlsmq44+Ko9vphmaRpnQzt4EgbTxn6yc07SWqjwCskIcOB98xTlC4uaKOX
 ozksRwoGB6BDmNYlzYZFry1ebvaTXa4/K/ymxwmmB3yhL9eCV4Qhg6JHEYnuw0sv
 HyqId34AjS3YUf3zHMtTgRCVjg/iewZSfgLBFNyxp0LZpGzgYiVuOffbiPwRRa2C
 0ciDFMKjhF264ztrl+k/OhG6FxEO96Wqx5eXtcifmR9AG7SHzW2k5aE5XLZogjc3
 cgmWK0QEJ2R1RCmOJ09/c+ap/ap4iwq9rtdu6jSEO737w0mrgLuchkF6DCUVw6j9
 k4CAW16TmJiPqJy3eDkJbTxyZovXT5zgPabuHVtOXWEkxeTOR8bDpKb0VbluEUtT
 mwrU5onLHCLXTXIBb2wrv9g5NUZKoTuK5ONpRAWxQC5BbnyKnY6VK6RTwQJzM/uC
 vziPvLmA+pfxsslowjAy/RLSld3fAqELi8mNgaAPlZZrB1/mzoXa+ZFX+/JkISAu
 66hOYyqQNonNVskW7eIS
 =nLSS
 -----END PGP SIGNATURE-----

Merge tag 'gpmc-omap-v4.8-rc1' of https://github.com/rogerq/linux into fixes

OMAP-GPMC: fixes for v4.8-rc1

Allow other children of GPMC to probe even if any child fails.  This fixes
problem on Overo boards where networking device child doesn't probe due
to broken NAND child.

* tag 'gpmc-omap-v4.8-rc1' of https://github.com/rogerq/linux:
  memory: omap-gpmc: allow probe of child nodes to fail

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2016-08-25 16:54:16 -07:00
Родитель 2586d61f81 23540d6e2f
Коммит 84ba04f26d
1 изменённых файлов: 7 добавлений и 14 удалений

Просмотреть файл

@ -2185,7 +2185,7 @@ static int gpmc_probe_dt(struct platform_device *pdev)
return 0;
}
static int gpmc_probe_dt_children(struct platform_device *pdev)
static void gpmc_probe_dt_children(struct platform_device *pdev)
{
int ret;
struct device_node *child;
@ -2200,11 +2200,11 @@ static int gpmc_probe_dt_children(struct platform_device *pdev)
else
ret = gpmc_probe_generic_child(pdev, child);
if (ret)
return ret;
if (ret) {
dev_err(&pdev->dev, "failed to probe DT child '%s': %d\n",
child->name, ret);
}
}
return 0;
}
#else
static int gpmc_probe_dt(struct platform_device *pdev)
@ -2212,9 +2212,8 @@ static int gpmc_probe_dt(struct platform_device *pdev)
return 0;
}
static int gpmc_probe_dt_children(struct platform_device *pdev)
static void gpmc_probe_dt_children(struct platform_device *pdev)
{
return 0;
}
#endif /* CONFIG_OF */
@ -2369,16 +2368,10 @@ static int gpmc_probe(struct platform_device *pdev)
goto setup_irq_failed;
}
rc = gpmc_probe_dt_children(pdev);
if (rc < 0) {
dev_err(gpmc->dev, "failed to probe DT children\n");
goto dt_children_failed;
}
gpmc_probe_dt_children(pdev);
return 0;
dt_children_failed:
gpmc_free_irq(gpmc);
setup_irq_failed:
gpmc_gpio_exit(gpmc);
gpio_init_failed: