From nobody Sun Feb 22 17:53:50 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fJs6l4Y8Tz6TW1H for ; Sun, 22 Feb 2026 17:53:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fJs6l0qJsz3vhB for ; Sun, 22 Feb 2026 17:53:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771782831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J6pTjrvyXsaHVFKCojJQinCOshtOY1dU0RclKvHwbto=; b=HBJCPBZHCrUCACov3FzBIDUihjr6ihbKvIV3XjZiPd+m1+c6WpwPjAoTmw54AGCdAZxtL0 bsUg3CoTKzsRp35DZN1qVeXW3UeD3B0WphNTOApEChEMfJN+/LJMJHZu9u4pFVbJJITxwh Mh26pKTJotVzxTWXGInL1Is8mCAe/qDErQgWnk9Try9vZQf3xxIwODfUl76swcGY4VhSfP b+FN9ZSUZ63h8T98JRsq8gKZqdrpK4HRKmtm+8A8M+sPuqTb3RYhT9AI/VyvHubTtLvynb st69yo69Nca0shbcXPWK/u89KdOJXjzH7O/sKgrASP9hF+lhRGvDbObv8GaCYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771782831; a=rsa-sha256; cv=none; b=j9oSWXRrgoBqEWU33/g8rXNipWkShzGB+K5Fr7+pe+eVCUUlbuckJUM2JozS/5f5c1sG53 XK/xPEN3Zf7y2dHiUQz89ReuZs5kKWfeDbyIOdAPLaFfdhXisR4xhlc7mQJwPreWwUf6Gl 6EyU7qaEHKlUpfMt5/zeFaOyVmCJel6CtEo3bnH5Wz6G8lcXpyC54w4deCREgA+dywRI/1 2Dg1gWFgDa5jE7bsgc4eNX424/pvZUsXw2x8/VzO0qdPDqR/nxaKfNCS6si0sGLvpOc7E7 d/mLbV0kbe5WL6/CDQy4qzlyqT7O0g2oEH7rSJeq8w2Bo+Yes/4FQnyLNrV5Dg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771782831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J6pTjrvyXsaHVFKCojJQinCOshtOY1dU0RclKvHwbto=; b=yVXtQnvKlG9OgDnfkuPgJGXQ9J3Tql7uSUsHYqsqjd46257qgaEA4xI/C9xRybISCDNa0O u6ZlZsYC0Oea+h+OdKqP15116lHFbk4LcMs6TUYG+q73f7q0bWol9km2bB640D51y5Wszv 9L1WguHlFi6hQswcxaxMaGsmnJQKux2xtMpagLIoJEI5qhHKeoRq5V7Ivz6Msu21Q91RaB E2q1yWVJGj6OHxNa5uE9ISHXZ/DNoDH5rjK9dWj51neVMamdKkA9ed1oWVkgviJKvjcLu1 yRg9X08fs+I+s++DsqTxn2G4g7ly152rYRB44Wy8zx4B2TK3F6GbniSWjkDODg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fJs6k732qzvL9 for ; Sun, 22 Feb 2026 17:53:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c3cd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 22 Feb 2026 17:53:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: 2ade7208068d - main - TCA64xx: Convert mutex to SX lock. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2ade7208068d1d215f8b9754b448566354d6944c Auto-Submitted: auto-generated Date: Sun, 22 Feb 2026 17:53:50 +0000 Message-Id: <699b42ae.3c3cd.2ed6d568@gitrepo.freebsd.org> The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=2ade7208068d1d215f8b9754b448566354d6944c commit 2ade7208068d1d215f8b9754b448566354d6944c Author: Michal Meloun AuthorDate: 2025-11-06 19:11:17 +0000 Commit: Michal Meloun CommitDate: 2026-02-22 17:53:27 +0000 TCA64xx: Convert mutex to SX lock. I2C devices are permitted to sleep during transfers. MFC after: 3 weeks --- sys/dev/iicbus/gpio/tca64xx.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/sys/dev/iicbus/gpio/tca64xx.c b/sys/dev/iicbus/gpio/tca64xx.c index ab8fedd3f8fd..4920d77dd81c 100644 --- a/sys/dev/iicbus/gpio/tca64xx.c +++ b/sys/dev/iicbus/gpio/tca64xx.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -93,7 +94,7 @@ struct tca64xx_softc { device_t dev; device_t busdev; enum chip_type chip; - struct mtx mtx; + struct sx mtx; uint32_t addr; uint8_t num_pins; uint8_t in_port_reg; @@ -260,7 +261,7 @@ tca64xx_attach(device_t dev) sc->dev = dev; sc->addr = iicbus_get_addr(dev); - mtx_init(&sc->mtx, "tca64xx gpio", "gpio", MTX_DEF); + sx_init(&sc->mtx, "tca64xx gpio"); OF_device_register_xref(OF_xref_from_node(ofw_bus_get_node(dev)), dev); sc->busdev = gpiobus_add_bus(dev); if (sc->busdev == NULL) { @@ -293,7 +294,7 @@ tca64xx_detach(device_t dev) sc = device_get_softc(dev); gpiobus_detach_bus(dev); - mtx_destroy(&sc->mtx); + sx_destroy(&sc->mtx); return (0); } @@ -383,7 +384,7 @@ tca64xx_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) if (pin >= pins) return (EINVAL); - mtx_lock(&sc->mtx); + sx_xlock(&sc->mtx); addr = TCA64XX_REG_ADDR(pin, sc->conf_reg); error = tca64xx_read(dev, addr, &val); @@ -414,7 +415,7 @@ tca64xx_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) error = tca64xx_write(dev, addr, inv_val); fail: - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); return (error); } @@ -478,11 +479,11 @@ tca64xx_pin_set(device_t dev, uint32_t pin, unsigned int val) dbg_dev_printf(dev, "Setting pin: %u to %u\n", pin, val); - mtx_lock(&sc->mtx); + sx_xlock(&sc->mtx); error = tca64xx_read(dev, addr, &value); if (error != 0) { - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); dbg_dev_printf(dev, "Failed to read from register.\n"); return (error); } @@ -494,12 +495,12 @@ tca64xx_pin_set(device_t dev, uint32_t pin, unsigned int val) error = tca64xx_write(dev, addr, value); if (error != 0) { - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); dbg_dev_printf(dev, "Could not write to register.\n"); return (error); } - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); return (0); } @@ -522,11 +523,11 @@ tca64xx_pin_toggle(device_t dev, uint32_t pin) dbg_dev_printf(dev, "Toggling pin: %d\n", pin); - mtx_lock(&sc->mtx); + sx_xlock(&sc->mtx); error = tca64xx_read(dev, addr, &value); if (error != 0) { - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); dbg_dev_printf(dev, "Cannot read from register.\n"); return (error); } @@ -535,12 +536,12 @@ tca64xx_pin_toggle(device_t dev, uint32_t pin) error = tca64xx_write(dev, addr, value); if (error != 0) { - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); dbg_dev_printf(dev, "Cannot write to register.\n"); return (error); } - mtx_unlock(&sc->mtx); + sx_unlock(&sc->mtx); return (0); }