Commit 89a286fb authored by Eddie James's avatar Eddie James Committed by Joel Stanley
Browse files

hwmon: (occ) Check for device property for setting OCC active during probe



A previous commit changed the existing behavior of the driver to skip
attempting to communicate with the OCC during probe. Return to the
previous default behavior of automatically communicating with the OCC
and make it optional with a new device-tree property.

Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20220809200701.218059-4-eajames@linux.ibm.com


Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
parent 0fead4fc
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#include <linux/math64.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/property.h>
#include <linux/sysfs.h>
#include <asm/unaligned.h>

@@ -1216,8 +1217,16 @@ int occ_setup(struct occ *occ)
	occ->groups[0] = &occ->group;

	rc = occ_setup_sysfs(occ);
	if (rc)
	if (rc) {
		dev_err(occ->bus_dev, "failed to setup sysfs: %d\n", rc);
		return rc;
	}

	if (!device_property_read_bool(occ->bus_dev, "ibm,no-poll-on-init")) {
		rc = occ_active(occ, true);
		if (rc)
			occ_shutdown_sysfs(occ);
	}

	return rc;
}
+9 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <linux/fsi-occ.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/mutex.h>
#include <linux/platform_device.h>
#include <linux/string.h>
@@ -181,9 +182,17 @@ static int p9_sbe_occ_remove(struct platform_device *pdev)
	return 0;
}

static const struct of_device_id p9_sbe_occ_of_match[] = {
	{ .compatible = "ibm,p9-occ-hwmon" },
	{ .compatible = "ibm,p10-occ-hwmon" },
	{}
};
MODULE_DEVICE_TABLE(of, p9_sbe_occ_of_match);

static struct platform_driver p9_sbe_occ_driver = {
	.driver = {
		.name = "occ-hwmon",
		.of_match_table = p9_sbe_occ_of_match,
	},
	.probe	= p9_sbe_occ_probe,
	.remove = p9_sbe_occ_remove,