git: 2c029cff5ba3 - main - ads111x: Convert driver to CTLFLAG_MPSAFE

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Mon, 12 Jan 2026 00:58:38 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=2c029cff5ba3716757646a2d2c89db49987c1e98

commit 2c029cff5ba3716757646a2d2c89db49987c1e98
Author:     Abdelkader Boudih <oss@seuros.com>
AuthorDate: 2026-01-12 00:55:45 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-01-12 00:58:23 +0000

    ads111x: Convert driver to CTLFLAG_MPSAFE
    
    Replace CTLFLAG_NEEDGIANT with CTLFLAG_MPSAFE for all ADC sensor
    sysctls.  All of the sysctl handlers are serialized by a driver mutex.
    
    Sysctls converted:
    - dev.ads111x.X.channelN.gain_index (PGA setting)
    - dev.ads111x.X.channelN.rate_index (sample rate)
    - dev.ads111x.X.channelN.voltage (sampled voltage)
    - dev.ads111x.X.config (configuration register)
    - dev.ads111x.X.lo_thresh (comparator low threshold)
    - dev.ads111x.X.hi_thresh (comparator high threshold)
    
    Reviewed by:    markj
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D54620
---
 sys/dev/iicbus/adc/ads111x.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sys/dev/iicbus/adc/ads111x.c b/sys/dev/iicbus/adc/ads111x.c
index 21924627cc68..8baf9ff789ec 100644
--- a/sys/dev/iicbus/adc/ads111x.c
+++ b/sys/dev/iicbus/adc/ads111x.c
@@ -407,15 +407,15 @@ ads111x_setup_channel(struct ads111x_softc *sc, int chan, int gainidx, int ratei
 	chantree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devtree), OID_AUTO,
 	    chanstr, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "channel data");
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO,
-	    "gain_index", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT,
+	    "gain_index", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
 	    sc, chan, ads111x_sysctl_gainidx, "I",
 	    "programmable gain amp setting, 0-7");
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO,
-	    "rate_index", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT,
+	    "rate_index", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
 	    sc, chan, ads111x_sysctl_rateidx, "I", "sample rate setting, 0-7");
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO,
 	    "voltage",
-	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_NEEDGIANT, sc,
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_MPSAFE, sc,
 	    chan, ads111x_sysctl_voltage, "I", "sampled voltage in microvolts");
 
 	c->configured = true;
@@ -565,13 +565,13 @@ ads111x_attach(device_t dev)
 	ctx = device_get_sysctl_ctx(dev);
 	tree = device_get_sysctl_tree(dev);
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "config", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0,
+	    "config", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, sc, 0,
 	    ads111x_sysctl_config, "I", "configuration register word");
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "lo_thresh", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0,
+	    "lo_thresh", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, sc, 0,
 	    ads111x_sysctl_lothresh, "I", "comparator low threshold");
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "hi_thresh", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0,
+	    "hi_thresh", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, sc, 0,
 	    ads111x_sysctl_hithresh, "I", "comparator high threshold");
 
 	/* Set up channels based on metadata or default config. */