summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2018-05-24 08:14:28 +0300
committerJoel Stanley <joel@jms.id.au>2018-05-25 08:42:06 +0300
commit9cb76892c090501a871fe8f477ffc971f03874ff (patch)
tree14248a5b236d54cdf0153f339d26862a4e1e6556
parent3533d5dbbdca8016cbb54f11934c99f5ef21d135 (diff)
downloadlinux-9cb76892c090501a871fe8f477ffc971f03874ff.tar.xz
fsi/occ: Don't set driver data late
Until now, the OCC driver was setting the driver data after registering the character device and the hwmon device. This might have been intentional, as doing so makes the initial probe of the OCC by the hwmon device fail while the data is NULL (provided you are lucky and the hwmon driver doesn't get bound asynchronously). That failure used to be necessary, otherwise the driver would try to access the SBE fifo at a time when it's not ready, causing all sort of problems. The new SBE fifo driver is much more robust and will return an appropriate error code, so that (fragile) tweak is no longer necessary. OpenBMC-Staging-Count: 1 Reviewed-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Joel Stanley <joel@jms.id.au>
-rw-r--r--drivers/fsi/fsi-occ.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/fsi/fsi-occ.c b/drivers/fsi/fsi-occ.c
index 3f96d7ddea91..15f41f45fb31 100644
--- a/drivers/fsi/fsi-occ.c
+++ b/drivers/fsi/fsi-occ.c
@@ -794,6 +794,8 @@ static int occ_probe(struct platform_device *pdev)
occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX, GFP_KERNEL);
}
+ platform_set_drvdata(pdev, occ);
+
snprintf(occ->name, sizeof(occ->name), "occ%d", occ->idx);
occ->mdev.fops = &occ_fops;
occ->mdev.minor = MISC_DYNAMIC_MINOR;
@@ -812,8 +814,6 @@ static int occ_probe(struct platform_device *pdev)
if (!hwmon_dev)
dev_warn(dev, "failed to create hwmon device\n");
- platform_set_drvdata(pdev, occ);
-
return 0;
}