The branch main has been updated by markj:

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

commit 2c029cff5ba3716757646a2d2c89db49987c1e98
Author:     Abdelkader Boudih <[email protected]>
AuthorDate: 2026-01-12 00:55:45 +0000
Commit:     Mark Johnston <[email protected]>
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. */

Reply via email to