From patchwork Mon Apr 7 07:18:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879177 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0143F22A4FE for ; Mon, 7 Apr 2025 07:18:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010297; cv=none; b=Omu2oP1KenBN78zOoMCDgXZau2WHrrjl1wn/rTmHfAE5aPaCOX7gfDkkpnInK5yxhyjsOi1zEUsLva2Kli1qnhIiQ+DbN+ffe28EoK8vDoj63OFMkkPOfPDMHFELzG7uhrKnPjV2wiNOqPZrx8Qpyxal1kIBkoOrhONPg6W5MFs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010297; c=relaxed/simple; bh=qh02EOpLmoVQFOGtxc//WQmmDLs4Qdqs4X8qzXYsbtA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QWpKrnrcxmdUaC9PjoAUgaTSh0Z5h2Zdzz7GS3W67Gn4wlnEnwbD0ai4XHlZxtdiXj7Oo04EUse0B+UbzF0FCBUjUN90vK3XseBla8zqyXOQdrZRz47tMWR+bufDgRL+4Z8OKsu/Gdnh1zu0NQCyqxLkNOzP/jx/GLXUg4n8K24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=DIq5wTZO; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="DIq5wTZO" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-3912fdddf8fso3135980f8f.1 for ; Mon, 07 Apr 2025 00:18:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010294; x=1744615094; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=oFYbotP5fmTf+KhkIn7tkSgVn5aK/YHRq/3B7g/SlrA=; b=DIq5wTZOM91ezm9VxOmDL/5nW0ZxoLsQEvMVZSavLoBQ2GEVUkyw9rY1qaVik8NcF7 pRu0kSyQt4Ts59tjy8U4L2YzU0PX7MiPDMlmw2qA+XZarO+AThnOfEL4KZ9QqtwsBCjy VxbnoGSNzNtpDeelMypqZKcYbgRKQ1k6K9pfAolmLmJMLmAt/d4ZNKh99iHDu0TvlrOt 0rDBPtqqOh2sefyN/ylagCNHFgtfU99Ryf2hoi9EMuKdEt/QkLnbqX6U7//r7yP3KrhS /wsEw8huEKljfVzdu9soV/MqXBiwHHIlsYrDdvk1yf71K/E3x0cy/EAwL3JdxsfMg7Mq TQKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010294; x=1744615094; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oFYbotP5fmTf+KhkIn7tkSgVn5aK/YHRq/3B7g/SlrA=; b=n1LnSGwzdMpQPqTfLtgcyGqChzidxhoZEO3IR6FPI8Fr/a+9+GK80b7VHF9HO1RGE1 8BqZp/YABHgJGsXHBj0ihVSrQALP1E/iWVIKKKBrF6Zu4JZmT3bEMihnnJYc4/8nsLxE +Th7IdEa9iSsOg2w7hyvyKW88bKdfcPLSxQK7AODMKLyl3EM5lSyed5x5LEjgY8w6UKB AO7iNzlWwUOheFmy8HXmSfv+2yChs3EQTKXT5kW2ciaC6W243BbJgF+g3zu4zxNnnaDo XB33jzb1fI3tXtLasQO3SfydzA8di/oXsc/mJD1MMKsNP+rePg3ZUVcSGeaBwCIBnVPb vnQg== X-Forwarded-Encrypted: i=1; AJvYcCVao+5g3ZfOPCCmN5f5NcqWlZsbtzvaLFXy370Mgw/j2mkWNV01p1tYzAPVXARHfTXsnPqWjU16sCh5@vger.kernel.org X-Gm-Message-State: AOJu0YyBnJf+2qLrd5T83rOhdew5F8IslXHofUNtqVW912CqqbO0E9KI tNcKTALt6eCcl+RBaLXULrWvh1G2r37oaJqyFEiNIiZhOrUOIGkqGItEFvtHadA= X-Gm-Gg: ASbGncsN7Q6zAGiRkFnpJeYs5sNYMxVXpMKjAncljV5v45KQOGmub5FuKaQXZwZ39vC glmup8ovAIW0+r5gHEjLTiE8KZGwjKMHWStjyV5vBkladz1GcmNX1h6bsMNhB+iTQtGO3qJ7Hyf bOCsbtd/ZxTWIs9L/s0n38W0coYVPg/Q0j1eeWuW/K15Bc5Rq/h42um/WIL4k7WE5mJSSr4zPuj 5VBsDpw68OrccJVeCaFM42S+MvGcoB+O3E7DFphC7nlVg2rvwCYVfI0RlYV9j13w9ZQx1V3BGCM 8R++vQUJKy7NE8jGIEWV/48WVZZbCS4RuBByPQ== X-Google-Smtp-Source: AGHT+IHdzlVUeS5mJkviPZtuB2uw9FN1NeOxmWH4SG/0ghkS1vaZxYCoVQJ7a8Egu0T4TP8eDMqtxQ== X-Received: by 2002:a5d:59af:0:b0:391:9b2:f496 with SMTP id ffacd0b85a97d-39c2e621a3emr13954581f8f.16.1744010294242; Mon, 07 Apr 2025 00:18:14 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:13 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:09 +0200 Subject: [PATCH 1/7] iio: dac: ad5592r: destroy mutexes in detach paths Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-1-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1118; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=XzPoG1yue7TTDzwJnpp3K9VyK//i5C6T3BQHGpW1rkQ=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wywmyOOD88VwORmWru81fcLV3QYv1XG/rvC emcVWAZtXCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MgAKCRARpy6gFHHX cqfFEACz71tG/3HuelbJ6Rrr2frDLyUukL8onqRwqZiYWvP2v00lklCU8eOTbzlcce97uUaYV4i 7mTqzUgEy+rhhPrNgyzc510WcMQQIXDLOSDRj57nwABQeeVOb8JEBS2j/nYoNSbv5XIUMANI0Fn i7FWPzY1+g7HQipYpIRm6/gv+o49kw2yp5uAO3DrHnJBbLVAdOo92D8fsLAwnmTG+xC3oUa543X WGxiY1DUUqC3YdmvJDrqpey0q8sKK36bOFqtpC9MwhkIaQqvEvPai+nTN3K+Em0yy0CNnUN8V2x HjFQPvb1GRLlCZ5lD2xObaYh+ilUynNTA2Oe5bqR1/Ylb/0/jo0GYERiyuB/yVk3FC359a1axap P+bLuCrSMIz+E3/p5vLT020cxg0vR+FcGBExYWBICD6Qzx83IpsYSP93Zh55sds/nKbcbSjSjFQ CqYVE+zd/DlH4f1ZLumoG31oIOa2dreLrWTXvHfG4kVLRbScIOrFdiUjTFMkoxJQCx270gJeWrP uyIfIoImPWueOPQKDC3bfBTaWWtUgDH3fhIY6LMf4XNwYGcXQmHlUEiUa/C6HOkXLUJggNsQUiw K8gwxrpumAVtISXOxq9aN+D/cMWuqi6tFOarPths4eY6Y7covbIKNvTNK/LAz78aR5IRiRgdDIK bqI8blnjoJd/QqQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski The locks used here are initialized but never released which causes resource leaks with mutex debugging enabled. Add missing calls to mutex_destroy() or use devres if applicable. Signed-off-by: Bartosz Golaszewski --- drivers/iio/dac/ad5592r-base.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index 50d19304bacb..fe4c35689d4d 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -155,6 +155,8 @@ static void ad5592r_gpio_cleanup(struct ad5592r_state *st) { if (st->gpio_map) gpiochip_remove(&st->gpiochip); + + mutex_destroy(&st->gpio_lock); } static int ad5592r_reset(struct ad5592r_state *st) @@ -622,7 +624,9 @@ int ad5592r_probe(struct device *dev, const char *name, iio_dev->info = &ad5592r_info; iio_dev->modes = INDIO_DIRECT_MODE; - mutex_init(&st->lock); + ret = devm_mutex_init(dev, &st->lock); + if (ret) + goto error_disable_reg; ad5592r_init_scales(st, ad5592r_get_vref(st)); From patchwork Mon Apr 7 07:18:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 878812 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1AFA22D783 for ; Mon, 7 Apr 2025 07:18:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010298; cv=none; b=EWDXd2wvieDDxCH7SSi7+tnwJDqCSE4Zh4oKe9HJ7PXnBdW7tx0ELmmQ9ffxgzvDt9Kmvw7w5nNaJ8uRFTbT6ts6OFbBKy+GUS2V4Sd3f3OQpZbDByQKexhOSdAySe5FpnoOQdpgunSHS11JGWd4r6RwRzzXSkgim36JJCgMHX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010298; c=relaxed/simple; bh=zj5ug8ovlw9ZHzpl55Bg/sdI8fliJrYCQ7ucoIA4J1g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Mj2FZ19guMgvEIvl6JZVkUcb/+2/mWsuyGUrEM/6UmKRPMCHzztwrj25kZBkbKlJG04GY52Q5ctoq0wQx5FqXJjVREpYLIcm5jMDM890Qegv7JY8gZAlElpqq1uFCqXkEmqu12H3lipnzCTBuicgBoz2ICo9DmPeu3nh4oDeSQ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=YkbkOu9+; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="YkbkOu9+" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43cfb6e9031so37165765e9.0 for ; Mon, 07 Apr 2025 00:18:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010295; x=1744615095; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xERYxzCdXFfBQqpEHcpUJZIcd8NycAIVtZHrNbldPXo=; b=YkbkOu9+gUfz5sHPnxvAqEDd2ngzGo0eV4eP2LA0aBXhzE5oL2ByezBTbJnksq2WeE g1bfMjo962y0OuOSYZjUkcV6r3gLIiYCtp12qgo1oStqTQ4l/BAboJH06FFWpYv6r4Gz 5wJJBJHITpCOQvkzvKsQSYZ4mYTP3T9hZ7YYb85YfYIO5pdKLuA+B/blL9F3lDm2J8G2 vOqk7HgUhZ6h+v0TzHrKRQcUsO8T1l/KvGWr08nfLgsXCusxgwmTO7Canc7iqjg86vMi AfQ8QImmaUcZTyVFnYat5vHal/Vx5DmDNjYijDm3aD8Rl4qo2VIHiw6vbXVVHMjj8KzP 51oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010295; x=1744615095; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xERYxzCdXFfBQqpEHcpUJZIcd8NycAIVtZHrNbldPXo=; b=kL3eQNu1/pLNv3824xfJBweeqE4EgkREJ/MJKAEbIdLY3GVjgvztPBbzDqQUPtmNG7 Lh8xUnL55PrUbbL0xvf6CDQpIp0MuNNDAeHVhWR70OW+CMxtVV/QvK6yOIONQZ6Zq2Jp mKCTuPFWceiSljWs3+YYM9ZA78LsosblFrFJ6Tj9BIbcDWBy8hxBY2hlcBj4VTuvuWbu oP5wf3lASKmTpSfC1O+w1grhOSQ6VAXRXh2DQWbey3Izi0pdlfit8CkpomQOV0ejDaiw pkXy/NbWMn3CVM35KgnanVYNG6AdC6DaYfXfBXBOK4sCQLqgaSwjJ7X91jyf7uJrJiAl NUjQ== X-Forwarded-Encrypted: i=1; AJvYcCVE4/A0HM1kXe9AqcB9SCZ/PXpR7z94uBS9QXl+P3c9nCHlYXva/GVJl79pdrbULsu5gd7BRMIBKL1N@vger.kernel.org X-Gm-Message-State: AOJu0YyYj6LnTMbrEAquVK4CkG+4haUsZyPOY9AEt7l9UOAXS0xjHQW8 M4uqwYxXSEDcwi6hmqwztp4VbwW9y0CSg3uy3KViuzdjLFtNv+LA+Bgi5b9KDX4= X-Gm-Gg: ASbGncsWpRRAD+A5AgZX+UxMGtG1bD/zwP23lbyfwRybe5fui9ob3dx++O3ItKL+DLi 973DcygqzH8jEBR9TmbrVEcEP1m5OcrabYFbp3/9VVbgth0XsUqqSUkQFvlfKMjk7E62tFmSiyZ LewrvFPMmTwH21cqFsonH2F5SKNm3Q6erHYZp/cQxUnX7HBn4O67XsHimN2/CFlAN++9bownnMY hwzZBBudQEkcPLw6GEyMw/2YO1p6KSqgpkb4V/7rcRnQ/aRoUIjnd+mjEQO1nco89IdLE1bNsA8 NtouHYUL4rksysSN6PSyFTPy8E+XtIKOiC0eTQ== X-Google-Smtp-Source: AGHT+IFtRwblBwIEchtvA8k1duTNZwKxIZCvCCS+rybE1gUfbu8eZ5wc9Hm4N7OETrLYq1shI7lMyg== X-Received: by 2002:a05:600c:848d:b0:43c:f969:13c0 with SMTP id 5b1f17b1804b1-43ecfa1874emr97612425e9.29.1744010295108; Mon, 07 Apr 2025 00:18:15 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:14 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:10 +0200 Subject: [PATCH 2/7] iio: dac: ad5592r: use lock guards Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-2-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=8324; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2uyDg2/H9YP2L1NNh1G5LpCHDDV8ztorbvs/2/ecsX4=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wy4EKKAN4IT+1wGpxG8/g59bpkVKrkrSsHo anjZ3dgIoWJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MgAKCRARpy6gFHHX cuASEACJFjDu9M7qv5gdKRWtmCsVlBsr60Jlm4BBEqONkXR+siD7+/XLoWtl+eUmVN/0u5mOJ0L tMapa/tA2lJVSR5Z0e5onE37TIgk9IB7rMDr7uv2LS9x9HQnbqN8okLJKDe8MSivhJZjo8G76+v C7wsxYInkHGAwxLu9OWXqTqbRQtpdpTxOExpy4i8QA73SfdXaRnQgMimfqHY/Jx6DhTnhfuQPAP YmJyc2uaQ4ijREHovqMKjbDJhqD4RY8OepQoKYxYhvqTSDj4YtVr/HHUXjQZlC9gdcVVPHnKiRZ 52i07IKFULK6d70Sj/kQ2zsNS5OT8QGfDIjlopJ9D8oaywhllmndXQiO7TgJqNmuPbR7wXbxhMg Td1XCvwqp4FD2EixWUMpjR1fPa5CBE/aCKxj/j/9s/KOOerZtL+ugv5rUnAnldwShHhByP/PgeD VztS6VfQDe6+DVlsaQz4n3oP02o/dRyXVyTOtRtnpbMYG9L0sn4/zznjp0NZM8/xdPVwF0hTP+Y DcS3YTzB3Ksd9zrjSySZy/MJbJTzvYgbviQFWMKz14I1wvM7ccoEfhQlXaoX1AOY/hbUm0UJrpt jtDvJvAPY+vfEpPcW8m+vOFN7QmodINivWh6vRER80kWoP3ngF3LDeuigtOvDIe8ZNi/qSPqykm lzm3OLjDsqXOVpw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use lock guards from linux/cleanup.h to simplify the code and remove some labels. Note that we need to initialize some variables even though it's not technically required as scoped_guards() are implemented as for loops. Signed-off-by: Bartosz Golaszewski --- drivers/iio/dac/ad5592r-base.c | 119 ++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 72 deletions(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index fe4c35689d4d..bbe3b52c6a12 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -24,16 +25,14 @@ static int ad5592r_gpio_get(struct gpio_chip *chip, unsigned offset) { struct ad5592r_state *st = gpiochip_get_data(chip); int ret = 0; - u8 val; + u8 val = 0; - mutex_lock(&st->gpio_lock); - - if (st->gpio_out & BIT(offset)) - val = st->gpio_val; - else - ret = st->ops->gpio_read(st, &val); - - mutex_unlock(&st->gpio_lock); + scoped_guard(mutex, &st->gpio_lock) { + if (st->gpio_out & BIT(offset)) + val = st->gpio_val; + else + ret = st->ops->gpio_read(st, &val); + } if (ret < 0) return ret; @@ -45,7 +44,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct ad5592r_state *st = gpiochip_get_data(chip); - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); if (value) st->gpio_val |= BIT(offset); @@ -53,8 +52,6 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) st->gpio_val &= ~BIT(offset); st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); - - mutex_unlock(&st->gpio_lock); } static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -62,21 +59,16 @@ static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) struct ad5592r_state *st = gpiochip_get_data(chip); int ret; - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); st->gpio_out &= ~BIT(offset); st->gpio_in |= BIT(offset); ret = st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; - ret = st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); - -err_unlock: - mutex_unlock(&st->gpio_lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); } static int ad5592r_gpio_direction_output(struct gpio_chip *chip, @@ -85,7 +77,7 @@ static int ad5592r_gpio_direction_output(struct gpio_chip *chip, struct ad5592r_state *st = gpiochip_get_data(chip); int ret; - mutex_lock(&st->gpio_lock); + guard(mutex)(&st->gpio_lock); if (value) st->gpio_val |= BIT(offset); @@ -97,18 +89,13 @@ static int ad5592r_gpio_direction_output(struct gpio_chip *chip, ret = st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret < 0) - goto err_unlock; + return ret; ret = st->ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret < 0) - goto err_unlock; + return ret; - ret = st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); - -err_unlock: - mutex_unlock(&st->gpio_lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); } static int ad5592r_gpio_request(struct gpio_chip *chip, unsigned offset) @@ -171,10 +158,9 @@ static int ad5592r_reset(struct ad5592r_state *st) udelay(1); gpiod_set_value(gpio, 1); } else { - mutex_lock(&st->lock); - /* Writing this magic value resets the device */ - st->ops->reg_write(st, AD5592R_REG_RESET, 0xdac); - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + /* Writing this magic value resets the device */ + st->ops->reg_write(st, AD5592R_REG_RESET, 0xdac); } udelay(250); @@ -249,45 +235,43 @@ static int ad5592r_set_channel_modes(struct ad5592r_state *st) } } - mutex_lock(&st->lock); + guard(mutex)(&st->lock); /* Pull down unused pins to GND */ ret = ops->reg_write(st, AD5592R_REG_PULLDOWN, pulldown); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_TRISTATE, tristate); if (ret) - goto err_unlock; + return ret; /* Configure pins that we use */ ret = ops->reg_write(st, AD5592R_REG_DAC_EN, dac); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_ADC_EN, adc); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_OUT_EN, st->gpio_out); if (ret) - goto err_unlock; + return ret; ret = ops->reg_write(st, AD5592R_REG_GPIO_IN_EN, st->gpio_in); if (ret) - goto err_unlock; + return ret; /* Verify that we can read back at least one register */ ret = ops->reg_read(st, AD5592R_REG_ADC_EN, &read_back); if (!ret && (read_back & 0xff) != adc) ret = -EIO; -err_unlock: - mutex_unlock(&st->lock); return ret; } @@ -316,11 +300,10 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, if (!chan->output) return -EINVAL; - mutex_lock(&st->lock); + guard(mutex)(&st->lock); ret = st->ops->write_dac(st, chan->channel, val); if (!ret) st->cached_dac[chan->channel] = val; - mutex_unlock(&st->lock); return ret; case IIO_CHAN_INFO_SCALE: if (chan->type == IIO_VOLTAGE) { @@ -335,7 +318,7 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, else return -EINVAL; - mutex_lock(&st->lock); + guard(mutex)(&st->lock); ret = st->ops->reg_read(st, AD5592R_REG_CTRL, &st->cached_gp_ctrl); @@ -360,11 +343,8 @@ static int ad5592r_write_raw(struct iio_dev *iio_dev, ~AD5592R_REG_CTRL_ADC_RANGE; } - ret = st->ops->reg_write(st, AD5592R_REG_CTRL, - st->cached_gp_ctrl); - mutex_unlock(&st->lock); - - return ret; + return st->ops->reg_write(st, AD5592R_REG_CTRL, + st->cached_gp_ctrl); } break; default: @@ -379,15 +359,15 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, int *val, int *val2, long m) { struct ad5592r_state *st = iio_priv(iio_dev); - u16 read_val; - int ret, mult; + u16 read_val = 0; + int ret = 0, mult = 0; switch (m) { case IIO_CHAN_INFO_RAW: if (!chan->output) { - mutex_lock(&st->lock); - ret = st->ops->read_adc(st, chan->channel, &read_val); - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + ret = st->ops->read_adc(st, chan->channel, + &read_val); if (ret) return ret; @@ -400,9 +380,8 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, read_val &= GENMASK(11, 0); } else { - mutex_lock(&st->lock); - read_val = st->cached_dac[chan->channel]; - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) + read_val = st->cached_dac[chan->channel]; } dev_dbg(st->dev, "Channel %u read: 0x%04hX\n", @@ -420,16 +399,14 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, return IIO_VAL_INT_PLUS_NANO; } - mutex_lock(&st->lock); - - if (chan->output) - mult = !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_DAC_RANGE); - else - mult = !!(st->cached_gp_ctrl & - AD5592R_REG_CTRL_ADC_RANGE); - - mutex_unlock(&st->lock); + scoped_guard(mutex, &st->lock) { + if (chan->output) + mult = !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_DAC_RANGE); + else + mult = !!(st->cached_gp_ctrl & + AD5592R_REG_CTRL_ADC_RANGE); + } *val *= ++mult; @@ -439,15 +416,13 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev, case IIO_CHAN_INFO_OFFSET: ret = ad5592r_get_vref(st); - mutex_lock(&st->lock); + guard(mutex)(&st->lock); if (st->cached_gp_ctrl & AD5592R_REG_CTRL_ADC_RANGE) *val = (-34365 * 25) / ret; else *val = (-75365 * 25) / ret; - mutex_unlock(&st->lock); - return IIO_VAL_INT; default: return -EINVAL; From patchwork Mon Apr 7 07:18:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879176 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEE9122D790 for ; Mon, 7 Apr 2025 07:18:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010299; cv=none; b=VM7NTOF7XrQzlGaC3OJvdORRjFWEwtU1pXLv8j0AamUMe3ieeZ6FptiDwCENj8Dkpl10N3Nhz4vOB4Od1zOCWMjxe0+C4EN+GNcO2OuieOAKku9OPdqoNDbP2m44tmYK6WJX5Spw+PqAsLm7toyktezB3bcLSKVG16Y12YnQ/N4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010299; c=relaxed/simple; bh=yKb2tGGtXxCNUOTqiL21FaJ7Q/pQ18+z3JJG5rRWGF4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WSed10my1MfcNYLJhIMawLNufoOv1sswDIPJIbuS+C7m5azyi1vweOCosnm/y/1efWgvcfVi9MbRlXP+P0jLFeJlBfHHETz5/dB0iZ51ketOcLL9Uuh45kgSMuW+peFPKrk11ZpIGkRjDvEwsY9GuTaAb7gkfUFiJcQilXZa91M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=s1j3iBDL; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="s1j3iBDL" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-43cfb6e9031so37165835e9.0 for ; Mon, 07 Apr 2025 00:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010296; x=1744615096; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0zr9dH4mVj2rqDEhAd/rOCSxsNFKMREWDyIjOpr8UMM=; b=s1j3iBDLJ5a+l0jI1YchpfZOUKYmv1qZHDecXgv2yFM/9wwtBegWvzckNhoPcMiHPP H54FWCc4eeXivo+p1Sl9wdbJyoSc4ego5LtAHa0CgsKbXXpYdBGBYjwolo6Sw/9bR5SG uaL66SCa/+EYvDQvVApuw4FgyRPO7K4C5y9pAKPHfgQ/xHsZ3y6gBNaBodnI661iepST dSfm9w45ZrsM0oMLcEvGIH5KGyPKtHnJPJkhdd+YiPofksF3XY2pUVOHMYzvZkVrA+ZA JMW/mZkTDPYb5BL7MXgnPa7wtk/Am6PV5wz+TP0TnTzTkZ8mM3IxumG3VbH09xBNKUaN pQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010296; x=1744615096; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0zr9dH4mVj2rqDEhAd/rOCSxsNFKMREWDyIjOpr8UMM=; b=jLdFalvGx2OX06iHikhWBx3pd/dF5lNxkdfigKD4dfYp3D9u+k6VHITRwEwosMoy0/ w1QfDgpGlOmRQSRO2o1JQlUZFvBhpLP7i2nFGrEX+wMKqAmnrQR+hg3RD9euSyzSL3/C /5Ai0+szwg+H6QJlVHg12zcF64HXiXuAnhj7r4y0f2DgOIdCeWi11LiDSr9HPn39cS1Z KbEx2rUmuQigh5A5wkc2eeOFhXvdFHgWsUSp2ZWBOGDI3zsCUVVYzB5qnUazZrd2mgb9 owG2uIYhHjIuIpPuKxXkr0h23HNAR7YBgSGUFlgTXLNKSahgpTKayesxFs9GpiMvSeKQ 4+cA== X-Forwarded-Encrypted: i=1; AJvYcCUpS4vyztEry9DiEbFihbYQr2NCnch6h+BqVI7BlQmr5TJeBYXxYYK9Bo0wysyXABkRJim1tfYeukmb@vger.kernel.org X-Gm-Message-State: AOJu0YzSahLMwro069K526jVp90LjlM/3/80E5zQORr2KuO+rGUK/5SN zoMNXlYqxZMvxJkxsOwgDXposlqTt4GQiwEGIzEROWYztB9NRD57LKiB43N1Yi4= X-Gm-Gg: ASbGnctlgYc+fr5tVkH4cX75XjyLTGKWWzA6WgBKsCEL4eX3la8DwuTqnecUdHim0FA oHf/aFFUX0UzRP48ULY8kaFB/aJbyb7g98WJmbGbcZ4JoTIsmyUjF1odNi+01rh5swY2jk7d/02 mwnXqkLeRrig1FMbDSTicCNGaE5WPvRMOJ8dwjhc6+zP6/3YClDyQwvKRa64q9ZF2NIZ/WavHoP vWWIYs6tkNVvVuGmsHKwgXKmpwyJaifNe7oMm0I8xmHnz3W5i6xuZw0AoZzJo334jkNqZqPdhZn geNH+Qm23yQA2N8g772lgcUP7icvOUjUW9rzZg== X-Google-Smtp-Source: AGHT+IH/9uwnlRnmaoIBikMBaRB3L0kc3rHBg2XlSEvKBxasD0/FPM+b/UEUjfpSWzqebi/oRdsMRQ== X-Received: by 2002:a05:600c:1d91:b0:439:9424:1b70 with SMTP id 5b1f17b1804b1-43ecfa18d8fmr136443605e9.30.1744010296161; Mon, 07 Apr 2025 00:18:16 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:15 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:11 +0200 Subject: [PATCH 3/7] iio: dac: ad5592r: use new GPIO line value setter callbacks Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-3-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1728; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=fvRt+EK60paf1O61oPqPBqlLRQ5+ti2f8yEUANnZO/o=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wze9ad+rXzcETMNxt0XZzZFqaeVLzfPfel6 h4IbhEu6pyJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MwAKCRARpy6gFHHX csMuD/9+px1e8RHxtlxU8UJjN1DhM5X64s7PbCqXanGef6mcVLK/TXyjyM8wUQ9EaLRC9JO+o5U biY0C7MiIf+JGLHulKVJfwLs5UTVeciarYmOJTUIEueUJVkOpmbABbaEBifCNqJtBm5rPnf/+9h E+0UfBZCnyusN+wxVG/Bim0jIurBS88YT4rTd7m0hCjvWJcU45PPGM+xEYT46pxGrrSmgGoF/09 4j1vhpjvw3D6NECJyv3D+LTqKXDlcCn3PvFjGThs7r8J/LkYdoSzN21b73UjQvYATT/HlYTOq9f Y1u/hmcx+KBqjBCoeHckFu7FO5vTVlSOcOgAIgXUsR6nJre6rr6/YAyDIAwzYsPfqwcb+XPZpG3 efJjdVb5JTzFCV66OVMUDYdu6j7DVikSdl57dHId7zBso7wS2fp2PKD5w/h5eoM7RwogoRMzJLp tq2H9+YnttGOYtYf0O/Dm0d3XDlHarB97/kD4bmQnpEo98zmUjhlCVnutl/gkdrbAkaFdly3MSP zOnMKJ6mZG82/ezqINko1TiIvs5EWLGddTY1nqZf/6uyy4M6OQCbURa/oNGqAFXVfXUohuXOj7N Xo1sXJTxRuHA98KCv2/QWHw//o+5wKeKK/82LzgZAeTi7oJKdwU2tMt3gS7BBh7HKrrgEqCy1JM uLwC+SKNvaBpvCw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski --- drivers/iio/dac/ad5592r-base.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c index bbe3b52c6a12..ad650dcd73a0 100644 --- a/drivers/iio/dac/ad5592r-base.c +++ b/drivers/iio/dac/ad5592r-base.c @@ -40,7 +40,8 @@ static int ad5592r_gpio_get(struct gpio_chip *chip, unsigned offset) return !!(val & BIT(offset)); } -static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) +static int ad5592r_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct ad5592r_state *st = gpiochip_get_data(chip); @@ -51,7 +52,7 @@ static void ad5592r_gpio_set(struct gpio_chip *chip, unsigned offset, int value) else st->gpio_val &= ~BIT(offset); - st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); + return st->ops->reg_write(st, AD5592R_REG_GPIO_SET, st->gpio_val); } static int ad5592r_gpio_direction_input(struct gpio_chip *chip, unsigned offset) @@ -128,7 +129,7 @@ static int ad5592r_gpio_init(struct ad5592r_state *st) st->gpiochip.direction_input = ad5592r_gpio_direction_input; st->gpiochip.direction_output = ad5592r_gpio_direction_output; st->gpiochip.get = ad5592r_gpio_get; - st->gpiochip.set = ad5592r_gpio_set; + st->gpiochip.set_rv = ad5592r_gpio_set; st->gpiochip.request = ad5592r_gpio_request; st->gpiochip.owner = THIS_MODULE; st->gpiochip.names = ad5592r_gpio_names; From patchwork Mon Apr 7 07:18:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 878811 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C11B22D7B1 for ; Mon, 7 Apr 2025 07:18:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010301; cv=none; b=LXkVXz0mAfEb2uA6Qwy9SJoV+3ipmWVVXKqKadIDbT70s3GGxjevCXbIlaYCBOMtAf9lfvCnPV+Hmr0tfWxAOPKEJCwGS1gOhsEuMxFPURfyma1K0OjtjJ+yYDE0XEXVHyQIRSUD6ulQ1jUyOKcdfPvguLdu0WX+bpFA0S4fmTE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010301; c=relaxed/simple; bh=JcjRt3IWWdiCtJbwqzp1v4b47hd64XOA+ew6annId/8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BHN9O4wlMLi1ioU49t3G25eXW60kn3otySEIQf7IQS3qaQJYpIJ8VKvjR94bWBdSihBRhH75rCU7Y0eRUvXqXzr76haTQ6zQFeoLHvJKpqUdb1Eky2HR88TD439UmXbwmxlo0/BWZCN3VPFM6JwH4qUo07V0tA5sMozJeVjglxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=N4ReUfRl; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="N4ReUfRl" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso25277355e9.2 for ; Mon, 07 Apr 2025 00:18:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010298; x=1744615098; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XYtkHCFcaSF7UbWnri58lccyI2lE1qpEsdGVCNframM=; b=N4ReUfRlxNmbLYE9UbZ2TrsC7oE+e8x0M/39C+e6wj+lv9BjbiQe4TJkXRTujYU5+Z deN4HorPfo0GxDgQ1+OgAu4dw/CMWLQVUdN389PsMsyl/1bHxFahsNLnUBWgkZwUe/u8 bU2VaqKIWtps1z8LYY5dpQI/yAfmBesqMCZVYaUTUTSM7NqYllQg3qrdFrYKPe9wIt38 1ZfvZKIu3Kp6CkCN3T3xOx64v6LYOxx1+gXvrIhymnQpaqJidHXsmViSWFyNAYqNQfCT SYW/4ZHosjaF2pM442EtyKtTkUeo16QJuTTNEP9eXBCIVgAgj/MhRz1ydnw/7BQA2BkT ouZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010298; x=1744615098; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XYtkHCFcaSF7UbWnri58lccyI2lE1qpEsdGVCNframM=; b=HW3tIxLujxVbNuON2qNI0W97gyEBbHZmJcbQIlJFsdaecOkfoLnqp5c7Y6YQf6OC2U bQWefG8Xmq+R3W3uKrETq5wAOn94t/IPatd7W/Z5H5JTyNnBX+9P9JaIr3NLCRARmraW mZMIR2tqKIVywc57zhC/FtpSyp/NCbKqJrF9SF3NsvFx1QKFzvU9tR11hWRjFkFBGH2A dGI5HFnjbzj1yZkptbGeZCUcI4hQSiGpU3LjKITwSULbI2oxz3JDbtlu38Dpwp4gxgSc LQfBizbj8o1tBGEG2qEKlFXhmKt+tdQ6CG9tq5P2qlJ3dBXUmjtc1Ct4Jgi9+0mY68h4 ijDA== X-Forwarded-Encrypted: i=1; AJvYcCU5GJoOzkQfXDP8zmtI68sBQ7u8rU1j4mQnO/E4Drdr0R+dLxOtT8ym7Ten6q3kKQFC4vGjCX8ca1/3@vger.kernel.org X-Gm-Message-State: AOJu0YwMDHWaF/uHv40ID8JT5O5XSZImWO/rX5d5LLF8RLDW8Kc/hawD yiNBe5PsbopYs/RstPjSrom8SWzdT7hkj4lmY6QyZ06Gvpv6Fr4Xv18sHq2Q/firvLOisTwqXrc UXPs= X-Gm-Gg: ASbGncubE4IFvshzie5F1u23s/kSjb1Y+kJAneqVzjRnrmA/0rxFp3gHJlFRVyD/7C1 2bPcYVwUd9DFGWLZA3p6Mm6dAWAA13tgAtq8zL4TJFdUSb8p9lG2viBLQqy4gy3sKfegWZvgK0J HYsX7ipAnYFiSt/SQktTBNAH0tDH1YICOnhyMAfObvrhm2QCzcnOTDQMU4FUzyolIuy1O/SnPAb nxhUYx4ScVR606IYKjw4Qyv8T+6W26EjhIsjJQXYq+gQ84eJbGMLuu2kbCs7JrBt7WyoXYakIaw hLwF590QWdXUSgaBrjJ43YfmVhIy95WHWeRMNn2o5T3UQgpB X-Google-Smtp-Source: AGHT+IFJgSB1mfe2t5szPiSLNr2MNwqUf8v+9jwrmbgyH2kFsuYq3Qv/ef4JBN4s56UCzcSRvHeX/g== X-Received: by 2002:a05:600c:1f07:b0:43c:f8fc:f687 with SMTP id 5b1f17b1804b1-43ecfa04a8emr85603395e9.27.1744010297012; Mon, 07 Apr 2025 00:18:17 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:16 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:12 +0200 Subject: [PATCH 4/7] iio: adc: ti-ads7950: use new GPIO line value setter callbacks Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-4-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2122; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2MIhT3UvouiWSb+JqPeZnzmfSS+HLRvIRYg5KBNUdDc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wzY9NMbOxk6VjgP1/KsmPepcYuP2rlT9xHP EzAhaaVp/KJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MwAKCRARpy6gFHHX cnZAEADY4UNBcOSE8f291z41AA1F2ND4+IVzRboTWFLvRw+4K1BaOrnd3ZLW0yDdokNkKCGXp1F 94KNmgK/lYxNmlQfVYU8N5Y1Pt6ss9q9f/d+VWanGAdv2UBp3I3d7OtrwgnmBAPB/lEzwicIsgt sfZsaPf5lNYyx3Jx9NIuCcfVRolZu/jwpY1uJcj8jTfZyM6eoAD2FTlqAR6WXBLaiAO9khXzzvr kqiRECyfrVntEMVIYATjhByrdw/x+NamoagDxFJZ7voEBVjZYLQ5b7zE+3U8B+4NFU/LJi6xCam zvRZ4l5N/ZP98/x0ypvjG+1nIrnNuZRQo+89QBDcgz+HPqC8cq/VyM067dUKJ/cIilIKi9JEjd4 bjRZvUdo1ymKm7HpwilINx+4nFjYu1a9Qji2IOUwvPFGbAFbtc/ndlgcnCO4rcyGy5CcERu1e49 Iu/iqffd0wgl6alpN7j0w44+MEwK3nw0sQSdS5AXD4MgWdJxrybBGmkpxcdsj9ynP8ryR5/t6iA WNIAAmUsJdTVSTJjFQIvAdEC5y+xUZ15rbP0FUmdaJ+wldYlpHskzODfNFucF+MEgxPtzsRFeq1 rf2cGaakRaIjryTMG8EFZSkR2pfnDh7Ls06Ao516+jPWA9WpN922ffqizx2UZg07tGkHTXTltOX nBMHrip0BRIKwDQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/ti-ads7950.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index af28672aa803..0356ccf23fea 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -403,10 +403,11 @@ static const struct iio_info ti_ads7950_info = { .update_scan_mode = ti_ads7950_update_scan_mode, }; -static void ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, - int value) +static int ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct ti_ads7950_state *st = gpiochip_get_data(chip); + int ret; mutex_lock(&st->slock); @@ -416,9 +417,11 @@ static void ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, st->cmd_settings_bitmask &= ~BIT(offset); st->single_tx = TI_ADS7950_MAN_CMD_SETTINGS(st); - spi_sync(st->spi, &st->scan_single_msg); + ret = spi_sync(st->spi, &st->scan_single_msg); mutex_unlock(&st->slock); + + return ret; } static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) @@ -499,7 +502,11 @@ static int ti_ads7950_direction_input(struct gpio_chip *chip, static int ti_ads7950_direction_output(struct gpio_chip *chip, unsigned int offset, int value) { - ti_ads7950_set(chip, offset, value); + int ret; + + ret = ti_ads7950_set(chip, offset, value); + if (ret) + return ret; return _ti_ads7950_set_direction(chip, offset, 0); } @@ -641,7 +648,7 @@ static int ti_ads7950_probe(struct spi_device *spi) st->chip.direction_input = ti_ads7950_direction_input; st->chip.direction_output = ti_ads7950_direction_output; st->chip.get = ti_ads7950_get; - st->chip.set = ti_ads7950_set; + st->chip.set_rv = ti_ads7950_set; ret = gpiochip_add_data(&st->chip, st); if (ret) { From patchwork Mon Apr 7 07:18:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879175 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68A2122DF89 for ; Mon, 7 Apr 2025 07:18:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010302; cv=none; b=Kz8Ni9R61wFwR4uKsM5bNPDwGcK0pkiXl+ns4H+GoB+RAGW0wIzjLaUPBdaCNxAs1WH53jSXzEW41jwll/2HHK3hPis6ur2QNjoTVUAoV9qLdCerRBuXd+CMvIuprfeihXZkHfFXSjARTSxGVzjF/PK6Fg4drn87TwFagdhRiIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010302; c=relaxed/simple; bh=fa5cTkRDqqhhVl7VbbjXyrlh+4Fb8+6MIvJLxTQ35n0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mbr6SSIlZLtlEng3MaBMzFj8SnL5zTfvSH/eEGCQdLDzHDliPGvoiAqiMISsylS8MR1v1gUq62Z8rqM3RM9+ZcvrRuoVAwcBzKsRXiQTch65m7bot+iOQ5xGJY6RBF7qo+6MYG2a+LvAOZnL/f2i35FYU0KnUd6ZtL7M+05VsGo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=UGqeFo4f; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="UGqeFo4f" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-43d0618746bso27649735e9.2 for ; Mon, 07 Apr 2025 00:18:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010299; x=1744615099; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xhxzR9twRT0d+wFu1RoPufbuenYk6hkExQ8ZTUxlkc8=; b=UGqeFo4fl0ioCqwVGldqEvRpW7ZOYntIvSdL9qAOkTyuyZyj4BsLDfukq211+weB/r OPfoomS7DKW9hT/5fSArxPWMZmUIyZvrepOjgmJpVG2dGswD0yZAZwkqfLmSst+r+6cx hS0uOet7yNLn8UFydrGNeA1ytTadbdXsLbH2aOQKGWgUESXM4eoC6WMd9AGvXnK7d3kf xgaKM8nEIWrn3kPrOUnrces0KS15vQytnJwIAa/jMxZY01hNSa9TCPf3yo49GgsjeNPG oDpTuOtJGP85ZnwgSHVV07JRZbggCXmUlsPlVdljssNk9JCokl7EGmRbfKJ+x19lcDrO ZV0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010299; x=1744615099; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xhxzR9twRT0d+wFu1RoPufbuenYk6hkExQ8ZTUxlkc8=; b=LWEMtPJ6ReFwmQ08yZmDRlZgKhd6eKuXe/2wVyJZrAMI+buT+SQMwv7vCw5g7KVDm5 I9a90r3Rval5zG8nNQ0g+e+GxFdI1kpandJBfYrpsTxxTBj6nvOxmhPFxPmmH3DD+Sqk GtRrLX+R4g3hWbBV76oU2reDH49EzKO0rXtEEwL69fXsacwD67po7U6lle4tOmkBDp2D 550h1DMtjmVHFRKLokjRViVq5I/I9es9x8wA81GIsTKEcySAZDoa7KZBYe9DpP+htk7n BGkysJAzchydboUTSXIYuVVCptL3METQGCjW1a7N6STHaHKDouEVkgA3sv7yDtiQJzzg wzPA== X-Forwarded-Encrypted: i=1; AJvYcCXexJJx+cNYnrlixgU423jZcIdSIdaN489D5J3LXr/5K79lAyjS+8ucy+k7YBkf7V1gOKfYLt4TlcuQ@vger.kernel.org X-Gm-Message-State: AOJu0Yw15Ae+5/6Y4iEElqkOo7/gz8a24LRFkIo+hr/xt1GQok1eWNlR qQFuaM8dT5L4rT398BZ6jJlHxayiGMDwSpa9mnTWk7lb8zBww18Yxk4dzrFzZ8U= X-Gm-Gg: ASbGncvRBRwwpwg9+8isZIWm+SV9rI7oHkPCDOcxSEsBnx2ldgZcnpYiCxocDERZJrd /KwEFZBxAuDv1xtKaXfxR0pJKCTT8fRhJRytpaRqumNKuT1D9N9MB5aPKd0XJKuoTKJBM9Y+Q19 npIie9JrhpCjXULJbaMeLP2roqZ2+vy1QuAG0MiE/UQ1OeSDrlOlE/pkLaIXiMQyiVJ9mWWIxJj AldO6sPbFPM2HS3T+/BwjkXm5FYjef0XOuuyreoyh4XR6r3xC1cm0grSYM0Xj6S4j3ZgnD/NPJr k9w0biHm7Hc01vWYT4e4yXZsq1zGWvL5jVyIsQ== X-Google-Smtp-Source: AGHT+IEEQ3IgiYXXskI8H0hQrZ/0JzuSRwAl1jb0RZVx7lz1HQP/lzeUUQGscgemWEtfywJxfZWEsw== X-Received: by 2002:a05:600c:c9:b0:43c:e7a7:1e76 with SMTP id 5b1f17b1804b1-43ed710c09amr62998745e9.1.1744010298832; Mon, 07 Apr 2025 00:18:18 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:18 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:13 +0200 Subject: [PATCH 5/7] iio: adc: ad4130: use new GPIO line value setter callbacks Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-5-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1606; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=9o+4uCrbiIXfKgm+/fV007oYqSqjRct9ZS0ApGPT4xk=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wzEtTvFQmxKS+7PuuBvSTB5CU+q0uhl8WJo YELb669MW6JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MwAKCRARpy6gFHHX cuYoD/4oOVVae8g8AEBdQIk/D/lfjmviqihOcm4tLhTCMcEO2AmPpVRe9y8kB3aNPzQvuxolavt 9Ui5KIABZmi3+twx6sLnxcOTiwOTPsOVe/DXk5DYH4aBpzG2tJ8xWLxA9PAgEdHihE8zR8KS6F6 v3wB5m26dF8fRKlAgN87MvGagSO1crfm9PzPesvf/S5H0+p0obq7f/TK5xrtOcSDQh2DA82lNp/ 0jArJg3DX6x+2BfKdifoc5yKzVFhVCBbIFcFb6SYlcKv/tCu+vXlqhp6T8gkkrcfUqA6JiMC3l6 WyUYEFdA3G61IwFBxyAucGVOJSEPXKZj63VRxiBM77vHw7HfxlTuHomWzyUx9+OBcerEYUq73Jh vYSk7/fo2i+GOQtIAMoh2apxTgzqOsIPuO3Zh6RKdVjRFid8fxVbfX1Cm42Y9BT+UUhLed6wGM/ rpgB+ITD7aJDPHgIGFz8YYlMS4mVU1WQUfPNRTr1J7fprQjFxq/jv1vBhabwFZCjHYlvIY6aW6L EtMRdihuGb0w34CZiazMUh01KkAwDLsNdNGHshDqh6ZNI1OyfXsR8W3apRtXitZHc7wOAqudolA 70IHiyciRLcenZfcA6b+go8frxJ9nrRHaFgrXM6mTHtf9f8/G6wuZD6Pk7yKkPEzmOZlDY0pJ96 UIM/PxqKEVUGc5A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski --- drivers/iio/adc/ad4130.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/adc/ad4130.c b/drivers/iio/adc/ad4130.c index 0f4c9cd6c102..6cf790ff3eb5 100644 --- a/drivers/iio/adc/ad4130.c +++ b/drivers/iio/adc/ad4130.c @@ -522,15 +522,15 @@ static int ad4130_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) return GPIO_LINE_DIRECTION_OUT; } -static void ad4130_gpio_set(struct gpio_chip *gc, unsigned int offset, - int value) +static int ad4130_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) { struct ad4130_state *st = gpiochip_get_data(gc); unsigned int mask = FIELD_PREP(AD4130_IO_CONTROL_GPIO_DATA_MASK, BIT(offset)); - regmap_update_bits(st->regmap, AD4130_IO_CONTROL_REG, mask, - value ? mask : 0); + return regmap_update_bits(st->regmap, AD4130_IO_CONTROL_REG, mask, + value ? mask : 0); } static int ad4130_set_mode(struct ad4130_state *st, enum ad4130_mode mode) @@ -2064,7 +2064,7 @@ static int ad4130_probe(struct spi_device *spi) st->gc.can_sleep = true; st->gc.init_valid_mask = ad4130_gpio_init_valid_mask; st->gc.get_direction = ad4130_gpio_get_direction; - st->gc.set = ad4130_gpio_set; + st->gc.set_rv = ad4130_gpio_set; ret = devm_gpiochip_add_data(dev, &st->gc, st); if (ret) From patchwork Mon Apr 7 07:18:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 878810 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6216922DFA2 for ; Mon, 7 Apr 2025 07:18:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010303; cv=none; b=oTU4s9g813OvcHsZht+xQNKhQCZwVWDSdT/LL2k7cquHzngS22a7cKbTeYb3y+XbY+lrPcafG91NEr1i6thkavSZLC56tir7QKKQBRk0Tbt8R9GryWmYZg1PcTA+XhZSUZrFFfNu/vxcb89Yh9vhN5oBfWgzbM1Sfk6KgJ2N0yo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010303; c=relaxed/simple; bh=pPqlQo3DRiKCcYkAQJQaHw1DlE2TLJ3LSJd2MBRf7n8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YBSqvNmCxfGO3y4gbO9F7oSnPJdPqMl4qQ0sncJ7eYrRxG/Wv6Gh/5tYTaqhpixdVbpcGJ6aPhLiODBDRHTSlVN46R3NyMTF3EGlejsXfWzzPdETTr5NsWHzFomZC8yTFBoTkBQYYhD8rcPnIgO78Uad/kv093wnnQlvnxDQ8T0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=g9XNPaNQ; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="g9XNPaNQ" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43d0c18e84eso19958865e9.3 for ; Mon, 07 Apr 2025 00:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010299; x=1744615099; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=iwTUwTMxyTj7zTjMDARLn6ufuL/C/9AMOfMQrrdFbkc=; b=g9XNPaNQC4oYWVm+6h9gAbhMNlt10ukp1wIcvu4SNr744z4QPV+paD/6y+LcBNL+mO 8K5msOvoN3yuPt5BVl4f24CfWLkRv5ILmIeWyZFQfncpP7EMy2A2GwOG91cxJFTIXYA1 n1PSSml65vvaCmurFfs1ad1KC61zMX3osIkMWGI7KG2hofDmChw8yzxE36niBKS8Ed55 4Uh17Ycku4Yb/t7Z+II8+Utl8vcw602jtNeoXXHIVnzlh6VFytv4JUoMx7zn6icsFfem sATjf8LoHbEF88SMhLrZIQwTvrhBbkeoNmroGgdl1rFLWsm/q+d/9rX8eQm4oq1WwgW5 NZfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010299; x=1744615099; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iwTUwTMxyTj7zTjMDARLn6ufuL/C/9AMOfMQrrdFbkc=; b=BIJufHKt8RmU333Ojwigms6dhi3+Y63cj92cleTQyjBs+mXppyWSCwtKOFnVlQaWuB zzxpiDC/zVPfUuzqZQ8xloYlkfZ0VMhP8nE3TsUB0A5yR2Nj1j5wKVh4CGMN9PMrOEJ4 v26ALRjryiZj/w5ghltwytIVQ02AOnLr7e7GLgH/4J5TdLFKecqgErSZM+j3hMThn14x 2dVTS/E9psH4QnJ/4dft5pNrvCDi+Y4DWGwoAHz1FR0Dxus/GVepNfHcLzwhRgpD9Jz0 u5WWtcGhPPuhmnbhPNUggdiKFtwq7kst0NQnrKmEvHC8a4fvXXtKt7SpEnTCeuXxlMRF xIcA== X-Forwarded-Encrypted: i=1; AJvYcCUDDimArlC6um5BcgL0r9O20ZfzngGro4UAkRe+685NwVtSUbneU5LkMzeO0qHSxJQpaOkemzIX9xJ6@vger.kernel.org X-Gm-Message-State: AOJu0YyhfucxAeD5PHkCx8pQmfTp7iv1otHLeSpaJo0zuyrlgeQmoKwT W2Jvk3OPK/Kv63FcXzFk1u3zNZt7FofEQ0gof4+sUxg/EKsWvgJ3W7XUrrRXhPQ= X-Gm-Gg: ASbGncuKzcXLcsNyBYKdFXHFdoRudCsdBUkdOQbP/7BdeSQzBG9bCDiGvBGkGDKYtKK 7xz+kom5LJuTOsC6qGs3HWmBeeDNTf4vvxzjvwipkOfyt2j54mbN2Ur/sUBLa4HYo6sUKc6WlMf +yPk8Y4QNTnAM0jGfJ7P6ebwjWDkm5F2Et40upCtKz1Z2PYO6BAHIeAdiwHZU6iQYtrFn9FW7iK uE82CafrYaRV/gnO5kxLZGK5eHEuS2WYJ1XFdgyBsYW9ruPtL8dM23+CtEqkHvu70+d0cjNGcuP 1dnY3v5kOQgR4fPZO5miF7A9mH1RtRwD16b/hw== X-Google-Smtp-Source: AGHT+IENyUPV18NEnfoEqkpsuV3ny2o8e5zb4W3ikuWG0pOkgQW6APi65lXejXodbaP0Kv+lSKhT4A== X-Received: by 2002:a05:600c:4e12:b0:43c:fc04:6d34 with SMTP id 5b1f17b1804b1-43ed0d9cdd5mr81345135e9.20.1744010299665; Mon, 07 Apr 2025 00:18:19 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:19 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:14 +0200 Subject: [PATCH 6/7] iio: addac: ad74413r: use new GPIO line value setter callbacks Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-6-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3029; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=BJlj3nSl7FlGTWhuoQWXENcxnJ6fTBwNzUrL3zDx7YM=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83wz/6gN2pZ9uZ2J+TYi+fGOTYcTCr9DNcV5+ qpKmZTNKJ6JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8MwAKCRARpy6gFHHX cp7nEACa2YrkHZJCjXew4GaYZASgQgQyOjwAV2GmYwTYK44E+6Aw80cdMUo3tuT4PSZquNigb1O nf7NvCHVazoztyDuI3Osn23FD4Fu1RO1UpDQUHTIilQw9SYIHFhTlVFI+UxIPgYDcP9xZON95F+ /7vzLMsdAnRQlRuytyKrF9CBGha/mdaHUMeEsnn/82D614ulI/GvsTjy++aZnW6bdoQuFEmeOCD VslRezlE3Wt+c6nBHDT3fEU/ki3GedAeFuvCTvZFkmaBvtlAqlGf/noKYoAHfwEBUq7X6DRLClJ lXKDnYLzQT6Hk6LjVV+J/WCzWk1Y0auf6lK3+KjmkVNwcETajEg+dPiGGlnYAPM7Nj4zmz0GQtH r7BCw4blQ8UEH+UNkdmRNmqg1Vrtfr2PjLVumVCgZT0f7WXWShrmuoUJ5UdTDZ2VeGEc3myU04m 61cjAit6toCB/KeBd6hfQf0LfbvD5fzdCrKcN5Es7H8qevzJCE+/5vir8yLpnCPQQRp+J+n2GVQ go9JuCjSZYqHaTXQpNJl36LeIrdRfMMxVBaLCFuQL696lXjLG2ko9gg/xN2w7Z6R2piCd8gx5Il xFlq9sf9zFl1/w31j/GR/+XguCtd75ekavgtf1nBdXhOBScmh3uz3fKEbWXRZ3ap+TRa7T0M26c 1dqfu27ctqfFDVQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski --- drivers/iio/addac/ad74413r.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/iio/addac/ad74413r.c b/drivers/iio/addac/ad74413r.c index f14d12b03da6..adfa14c4b06f 100644 --- a/drivers/iio/addac/ad74413r.c +++ b/drivers/iio/addac/ad74413r.c @@ -276,8 +276,8 @@ static int ad74413r_set_comp_drive_strength(struct ad74413r_state *st, } -static void ad74413r_gpio_set(struct gpio_chip *chip, - unsigned int offset, int val) +static int ad74413r_gpio_set(struct gpio_chip *chip, unsigned int offset, + int val) { struct ad74413r_state *st = gpiochip_get_data(chip); unsigned int real_offset = st->gpo_gpio_offsets[offset]; @@ -286,16 +286,16 @@ static void ad74413r_gpio_set(struct gpio_chip *chip, ret = ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC); if (ret) - return; + return ret; - regmap_update_bits(st->regmap, AD74413R_REG_GPO_CONFIG_X(real_offset), - AD74413R_GPO_CONFIG_DATA_MASK, - val ? AD74413R_GPO_CONFIG_DATA_MASK : 0); + return regmap_update_bits(st->regmap, + AD74413R_REG_GPO_CONFIG_X(real_offset), + AD74413R_GPO_CONFIG_DATA_MASK, + val ? AD74413R_GPO_CONFIG_DATA_MASK : 0); } -static void ad74413r_gpio_set_multiple(struct gpio_chip *chip, - unsigned long *mask, - unsigned long *bits) +static int ad74413r_gpio_set_multiple(struct gpio_chip *chip, + unsigned long *mask, unsigned long *bits) { struct ad74413r_state *st = gpiochip_get_data(chip); unsigned long real_mask = 0; @@ -309,15 +309,15 @@ static void ad74413r_gpio_set_multiple(struct gpio_chip *chip, ret = ad74413r_set_gpo_config(st, real_offset, AD74413R_GPO_CONFIG_LOGIC_PARALLEL); if (ret) - return; + return ret; real_mask |= BIT(real_offset); if (*bits & offset) real_bits |= BIT(real_offset); } - regmap_update_bits(st->regmap, AD74413R_REG_GPO_PAR_DATA, - real_mask, real_bits); + return regmap_update_bits(st->regmap, AD74413R_REG_GPO_PAR_DATA, + real_mask, real_bits); } static int ad74413r_gpio_get(struct gpio_chip *chip, unsigned int offset) @@ -1424,8 +1424,8 @@ static int ad74413r_probe(struct spi_device *spi) st->gpo_gpiochip.ngpio = st->num_gpo_gpios; st->gpo_gpiochip.parent = st->dev; st->gpo_gpiochip.can_sleep = true; - st->gpo_gpiochip.set = ad74413r_gpio_set; - st->gpo_gpiochip.set_multiple = ad74413r_gpio_set_multiple; + st->gpo_gpiochip.set_rv = ad74413r_gpio_set; + st->gpo_gpiochip.set_multiple_rv = ad74413r_gpio_set_multiple; st->gpo_gpiochip.set_config = ad74413r_gpio_set_gpo_config; st->gpo_gpiochip.get_direction = ad74413r_gpio_get_gpo_direction; From patchwork Mon Apr 7 07:18:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879174 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E92422A7FF for ; Mon, 7 Apr 2025 07:18:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010317; cv=none; b=IMZbBO5OWjfFmKFPKsKRyj4GGfGUlK1DX73MT3AIBcyR2p7Vai3vQM4iRVc4BqRGxhLiT9DZ9bForz/MwpLEqoFtdWs6SWX81DWEQTE5XXkvnfIUMk5XxPjlByITPEGS7wuIUTgxghqBZg4a2NWAhvPlzB47bFXRGpms2sb1nkY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744010317; c=relaxed/simple; bh=5kdF5oVUy/yps6X9BImufh8OuKxxdQ4BjJ7Qv2H6pxc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WOfAt2OkLvdayF5VqpqcPQPaCWgwUz1nc6K6Tbv2oqsEnjTVcQIzzJnjcXy16uHIm3mHdGyUJiGAmcX4OECBLxGCHCCizhdfHvzhjLPFEm/HZMEAoM9UDnYicY8y2LE14jHMf+L8AVUD+dErSwB+e/VLr9a7rGb+vkhkDcQLyQQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=lHzkJYB0; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="lHzkJYB0" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso25278455e9.2 for ; Mon, 07 Apr 2025 00:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744010314; x=1744615114; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=K/lQSP02uZhzaqZfFDZ+bFMWR2NaVs5b5QtoM2HpE7Y=; b=lHzkJYB0KUnV61WagiGDB8oMhwRFjC7ctOqLM+mYoAn3Tt5ODg2jEP30MKlTgDKdJe YNJeLWIt6atC1KH+jL7RxDCrPzyBnM6rxUuJxZJ6VvC6c3tlSGjmndqIBXLPz6sLweAH k/dYgVV7WHPAq8h9buMxOBQ3iMuOo0bdN0jnLnHy00AX+9MtDLs1QM5yeXrjkEqFQyxX J3bn8ngJ2JiA11mfxU6QJrolXcsCVF8NWsVw2b7srdVE3uz/hvL4C1rFnRPPzWa6GrLA 0o/bwaCllaL1ErJVUFnC4Bqqfd1AtokX94lAIBdnZoESNK77a47LUWONWk3+7Jq2zkIf T8TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744010314; x=1744615114; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K/lQSP02uZhzaqZfFDZ+bFMWR2NaVs5b5QtoM2HpE7Y=; b=P55lV+RQdYyW0piu2/H2S/wpwEky79F19zMzB2O7Qf7J73uBZf2DCLUJ6HEajxNF38 v82cowg8c3jWEtCmKhMDoVz3rEEG30/rUCRjq8KxkgLiTLIL+N02r5btWMW2XriLjgUy sk2K/p5N1tME2DOgrNYCsAp+8PukywoBp5TGNNUHKgxg01AcXPHPFWYVsPYKy9SlHq/U IF3hIsAebxCuyBYw6Tj++O7Wx/RZJYlQk2a53JAQV8/zBT3Zlh+whS4sduhd+ngF4JLj C59YMqp2mvPmjhPUEvPZbQMlm+t/HOpX1I19t3y1cTtPRl3WXoDaT6wCbkDLqe8Ja9bA SIew== X-Forwarded-Encrypted: i=1; AJvYcCURuqXbDvM6+JPqc3hjO50R8IC3MWvrrmIyrZnXJem5KYzKQbaI33mFkBdmTt9pXWvOtWA+IJ9sSFi1@vger.kernel.org X-Gm-Message-State: AOJu0Yzqb3lHefYHrMSWEdrYOPX8nk4sAr0y5rp5xAV/52Gac/ZRZSf3 1BYBN83FhkBrmZSo06c00TOZmmX/8+eDC+mELGExc0EyQJ7NMQWZM0NHlWECx2A= X-Gm-Gg: ASbGncs1UL366s7QlQZBzmIIinGNuFKZBUSifV6r4o8LOSg7Z8CfG6mEQ1aeIKcOP28 ZtYJrvkWg9KEwyA0OobuYeWxKVjlcAgtbl9aUnpCsylgM10idfiaSBr753q4P2LoLOy4J7UTXBs hxXnjB3z3kEHAzAACt/ZvS9kPwplCJVeEIFku/NcQYvwXjgxax+pfPtf7MUWZap3m6Y5Sh2bQaH aI7Wl9z77XPbAm397Pp80PTii3Szzw+KTpX/5ZxhorOwvT/54pg8ydDHENX2CJpQbwe6p2qDmZ3 m3+Em1ucrF09lH5axQTwWZekW6M0y/A/LtsS6A== X-Google-Smtp-Source: AGHT+IHZJ6eZKGM0X4E3G3AiVSKpRFA9oT3UOJNHqKpzBidSstN5tYKbajNmdPvNjyMO/2yji8ci1g== X-Received: by 2002:a05:600c:4f0e:b0:43b:c0fa:f9dd with SMTP id 5b1f17b1804b1-43ecf9c3224mr81160555e9.25.1744010300476; Mon, 07 Apr 2025 00:18:20 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8c64:734d:705a:39a7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1630f21sm125224455e9.8.2025.04.07.00.18.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 00:18:20 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 07 Apr 2025 09:18:15 +0200 Subject: [PATCH 7/7] iio: addac: ad74115: use new GPIO line value setter callbacks Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-gpiochip-set-rv-iio-v1-7-8431b003a145@linaro.org> References: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> In-Reply-To: <20250407-gpiochip-set-rv-iio-v1-0-8431b003a145@linaro.org> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Linus Walleij , Bartosz Golaszewski , Cosmin Tanislav Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1869; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=GM/OUTdtJwVfHBffPnM20PvdLToT9f+xlEL0CqiIT9o=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn83w0zT2RcvbxxdDl95J1of6Esp1CJCtG4NnBT 9KjTKwWSzGJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/N8NAAKCRARpy6gFHHX cuv7D/wJ8rQB9Y9DlVg0wZNX4DBaBKetOrAncRCE3OlQmy2QTip8kUA5d2j0dZOLtaYHSuznZ5Y ADpgEA95zc1bdV+9kVNSlvEL3nek/u4FYhCBOq7JyMHxGw7BzrS5yGEClJBcswxBIVyZcuMsLK2 qN93D+ck9WHRZBZE8U8RSOnGXfPUgFTRMSvDOp6DkGPOFfNYauVIudkYRurEjPHNyoezOEQwjxF ymy7wzw+lx0gvHkiCXF1LmnmL/e/j2tvJ9XO11pT9tmabmgyMMUaJI6sL+N3N2oLPq/ma+1fLc0 BnSQks+2lCnB+XVkUTahI+AB+IuIW3yifmZGt3cxK82Wcnjhf2uXswwx8p8W/zCq91/P1rc5L5C OCLyH2t3VJMdgkT+qm5LM+RaLkS/Xuq1JYGj/fWtiQy210zvBS32EghCDXv371F1DL4CS5KgtzO p/hRzaa6j4vd6MSG8NwXNImPXTUQqIvbdV+DENtr/RYKX8PXmky3LRt5MOvxjtP0x1EUw12SUSL ARiECEfbnshwoV1PZN9yywQMSDV3iKFs2vUcSF/5LkHqRa7NDni5yZOlHqWguvxcsxT0Zspi+OV VhrRnAS/zN1qr+lqepcZa8lDehr40lw0wA3gKwdz8haFRXS0asf24nMmq9uvTLBL1aRPJQGnuYt Gw4w2DyrGQIBw6w== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski --- drivers/iio/addac/ad74115.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/iio/addac/ad74115.c b/drivers/iio/addac/ad74115.c index a7e480f2472d..2a809e07526b 100644 --- a/drivers/iio/addac/ad74115.c +++ b/drivers/iio/addac/ad74115.c @@ -542,18 +542,16 @@ static int ad74115_gpio_get(struct gpio_chip *gc, unsigned int offset) return FIELD_GET(AD74115_GPIO_CONFIG_GPI_DATA, val); } -static void ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) +static int ad74115_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) { struct ad74115_state *st = gpiochip_get_data(gc); - struct device *dev = &st->spi->dev; - int ret; - ret = regmap_update_bits(st->regmap, AD74115_GPIO_CONFIG_X_REG(offset), - AD74115_GPIO_CONFIG_GPO_DATA, - FIELD_PREP(AD74115_GPIO_CONFIG_GPO_DATA, value)); - if (ret) - dev_err(dev, "Failed to set GPIO %u output value, err: %d\n", - offset, ret); + return regmap_update_bits(st->regmap, + AD74115_GPIO_CONFIG_X_REG(offset), + AD74115_GPIO_CONFIG_GPO_DATA, + FIELD_PREP(AD74115_GPIO_CONFIG_GPO_DATA, + value)); } static int ad74115_set_comp_debounce(struct ad74115_state *st, unsigned int val) @@ -1580,7 +1578,7 @@ static int ad74115_setup_gpio_chip(struct ad74115_state *st) .direction_input = ad74115_gpio_direction_input, .direction_output = ad74115_gpio_direction_output, .get = ad74115_gpio_get, - .set = ad74115_gpio_set, + .set_rv = ad74115_gpio_set, }; return devm_gpiochip_add_data(dev, &st->gc, st);