From patchwork Tue Apr 8 07:36:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879126 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 48DAA263F3C for ; Tue, 8 Apr 2025 07:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097795; cv=none; b=lqzLymz36ANXD82NlVyNtJjquIOzMkUe8DEnyzaHqaoDQ+61mywPPqg3VpcPWejcAQYeCFcnn4xqAJLZP6TpA/yxNHg5ws9Fkq0+fCI5uZusRemjD4qs3wYBy1sVMdgC/qQ+uYyDQA4teXDmc9LrSYkQoINaPhcP3oJdiWyEk3Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097795; c=relaxed/simple; bh=f1gvdJx8Loyz8p9Ae5vvTtn8TGqY6yTHOkwuoxiu7Q4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DZhzTVOnWrxctVtLxnY2LrDrkW88/aVAwy2vYfYjYbiesmbMLZ/LWFy4SVST0GCxEqIIZCUAjfNSHC1e5I0dlVEumlDdxLWyi81nfQ4Ag+QYBP5MBMz6HMV1Roft3Rd2Y8MVbpN1XWMxd0Ochmou7qHN/cjKiCq0zeRmx15bweM= 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=NWpOVDfw; arc=none smtp.client-ip=209.85.221.53 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="NWpOVDfw" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-39c1efc4577so2838651f8f.0 for ; Tue, 08 Apr 2025 00:36:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744097791; x=1744702591; 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=WYYBwBUgrkHK/0euSwqf61Okzm14DHjthqYOcHC33Wc=; b=NWpOVDfw3MwlJuMGAVsX0l82C7l1S3sPWHDTB8ZKAy8dJh72DYF/CVFU2/LgACZduq qxRhMGjwOw2yyG3IzTXjuN6yOmuBd/PjKA3gQmbL5iXR0kzImUEypCvo2+3NpP7WSdSA Yvi1r4aUB9aBeJw7GBtVVqMZIyre0nev+3wP4ccoyAUnlW4jz/9KTgH+UekGC5ssbXmA jA2Bt9jlVg1JyDLSehFGQ/nkSFBhxTLrgOzsIpBRJiQd5rC3fK2jrBQet70yq+jc36Gc F84856JC9EmwNimuC+Jykvh8VPF4FSKdecfrTqV7ykRWRz+ioZlw35rgIXOT7qZLdvvX /otg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744097791; x=1744702591; 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=WYYBwBUgrkHK/0euSwqf61Okzm14DHjthqYOcHC33Wc=; b=sfEIv61Slt5RU3I3uzGrn/9RAMCeMg5FzhlvMTX0j69p3Nf9ZB4Hx474/AcXjvb72P Lt6i6TGxsOrX8IA41TRjnnN60A44B0Ixu5+93bQWR0X3XkWT1FhrebKWFeWqEGvFhbwx foYOduhufFDZ9GxdqMdxAVIadNRDkYISEOI1rT5kOnBUKfoovLMXlUp4QWRiEnzZCPD9 Kh+heLlk11SHd8HqYfJY3U1mvouwLt+bSCBNioI0Z7VmCOmqRtf9JqkpC3W7SLYfPGFZ 8TaKKkO3CdfGs4cRM4QYDcuoKuXAizNk73RviIYkJQAWkx2BnmOLLcIwWWkx5N8zZg0V wRdw== X-Forwarded-Encrypted: i=1; AJvYcCXi+c00QxdCC0Jyjcd8i6mdHSurxqTz7LMFoUZHnv6Pyo84EUvMEQDq44mUAcRm7n/jW9Qw6GQoI+D4@vger.kernel.org X-Gm-Message-State: AOJu0YxW6yMC+H7UZJprV91pYT8yd1w0+dmYHtVxxD5u75qx06p2WTk7 XrNfofflH4uqyNw2DqhpmmjwmXJ0s383Cku8YFOJsiGFAmRfF450yxqP5a3GERA= X-Gm-Gg: ASbGncvZznba46ieng520XHk8ZvuPDAqpnpzd27+BBSadEiTeaqr4dS2boPC1vbuOTk bvTiLwF2boFtnjcb7Dpy5wjGgseyH9AfAhPMQYB335mYQ6EQ9txm4NaMiCchFrDcqJWDCoKOWva qqU+c7mvOy4fIrfS/15kx/iImYrmCD8eGRWZ54fOG+h+FtqQePIjSqEDrZjJwtCQpLy13DtQa6L 8FTiXyDETo6BomzN5Pp4fwH4/7or0rFIQ9m80jjM/UEGqxDGm9d1sjEifWrC3nUwnVAUyDVKmyM PyAm9uhJHs6HptJcY3Kh8BlCmjPGrmFXqDD2vA== X-Google-Smtp-Source: AGHT+IHuknOf2MEYZIH4vly+yvgFVYTvAeajz7uAY1cJhAG9CEANFH/3i0TlBwFBJIv1EMxCaXRMlQ== X-Received: by 2002:a05:6000:18a6:b0:39c:dfa:e1bb with SMTP id ffacd0b85a97d-39cba975ba2mr12601970f8f.42.1744097791599; Tue, 08 Apr 2025 00:36:31 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:2adf:eaae:f6ea:1a73]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c3020d980sm14287627f8f.61.2025.04.08.00.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 00:36:31 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 08 Apr 2025 09:36:28 +0200 Subject: [PATCH 1/4] regulator: rpi-panel-attiny: don't double-check GPIO range Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250408-gpiochip-set-rv-regulator-v1-1-a18b6154b31a@linaro.org> References: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> In-Reply-To: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> To: Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski Cc: 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=843; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=6w/lhSUlY/2g8qgnJibVufLNc/lhrp+acFD/YyHB5IA=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9NH9KEqqz+ltxQ3NzEB73XhAjAFA+ZqB10gwX USTjcIaM+qJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/TR/QAKCRARpy6gFHHX cqgfEAC8B7CjZtEgDQt844CEnE3o4Hptp6uxl1TFS9daIlxRiPt4T5jTbt2mBlMitOLhBhff45a ynEwfbPlRXMPDUsdF1E5yPEfWavRK/VHriAWMz2trlzYSDZWHzWrGJ7ZSkKR2gQfXcA84D2pgMI HWxQlMu5kg5EMZA0tD/psg4RY3xxYjUqY0A28Qbymxiud6wrM5TOqpGhnT2gEgBFuMVJImV1Oub ao8q5yRCoql9OK7XQUfddrnZyV2vCL3YtItUsCBkScqnY2kBrJiwub1CDKAXsCBvwlIAF2igfCR BoRvluQH2UKKcpetIhVBWG5Fus1Gwjk0/WJ+aK94cYm1soGcRINyKFcR3VYymhkFbtcUC4mfZVC ENdSiumxFSi9XYhwTIfX/YeDJfvV+JJUuy0gD+VZhy/Gr0V0bkaHzBJvUcvzMpeiTCUNwqwYmq/ ZnNkl2W0FXx1mKTrOfsYsFO18dxzYSHgrzbxlfPlMu6XXUYEv9Q+xFxvVsn6hD/bIb5S/TMAmEP 05dnaRn7qd2YGA0viW13hOl348YrbqUjc6c9v+cV/cdcHhBd20Fa3Zx39sOijKba86EaFE4Sv6K oROLlatNX+VwreqdjkhMr2Sbg94niDwJrwS+DdXYkHRwx57z/t+C1WlkCtd8Vhb377xReAHyi9K ZB4cx07MFICC/DA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski GPIO core already checks GPIO ranges, there's no need to check it again in the set() callback. Signed-off-by: Bartosz Golaszewski --- drivers/regulator/rpi-panel-attiny-regulator.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/regulator/rpi-panel-attiny-regulator.c b/drivers/regulator/rpi-panel-attiny-regulator.c index 6c3b6bfac961..f5ce50ced294 100644 --- a/drivers/regulator/rpi-panel-attiny-regulator.c +++ b/drivers/regulator/rpi-panel-attiny-regulator.c @@ -216,9 +216,6 @@ static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) struct attiny_lcd *state = gpiochip_get_data(gc); u8 last_val; - if (off >= NUM_GPIO) - return; - mutex_lock(&state->lock); last_val = attiny_get_port_state(state, mappings[off].reg); From patchwork Tue Apr 8 07:36:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879899 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 BB1842641EA for ; Tue, 8 Apr 2025 07:36:34 +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=1744097796; cv=none; b=WWJWwNfl+AYMuHlOn6EsQsoLMKbJKlOaVAUgjtNxJOJOPbKZUUIdQfVSlZjSPcy7xOmbMeQI5BePFGYBYkM17sZm1fVqp9dNcNXtJ4yTNFTJNfFD68vCXtZSy5HC/gYab0MjOLk79sKv7ngFPxWg+mFB4t9C1z72BnOw+QrcOYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097796; c=relaxed/simple; bh=zDVSLesP0T7A2McRjojWEmZkKOxXjOebJPoK+EP0dIk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FaZHwHwSivLzJPKM5a0GrM71y/hsjAORLSXfoHK0KGdr9VRgwdGc5pXMwoHYH+xFXyeiHGmOmVnhNqCB06GjJVb/30phU2EoFBPugvh2Y7iCbCAC1wHSmtvHY8qzf+yscbgNGciI5PivWUJ2kZJ7tFqiifFLRG+Uehikyctl2ZM= 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=CxmOxaoK; 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="CxmOxaoK" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43d0359b1fcso32767775e9.0 for ; Tue, 08 Apr 2025 00:36:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744097793; x=1744702593; 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=ieIGmxyhNPbpd78PJf2XL1UkaAJt0mspe5nebAeYm4w=; b=CxmOxaoKBFTGoVSi7HTcN9IFStWh7LTAYfj4vYbIhXI+wthwDY0lUl8P45zRKS6j1E sT3twl/MVfuHzIxyiXri+jcwDeRkmW6L42/oO3a+LzLrFgEG8IzxgwJCYGzx3WZxJLuR xg03sgWNUFZZ98zVGiii+Agb2aajGW0g7B8qdz1kWztO2UHFXY3jvoRZ+aSGrVuYPWGJ /MvBLSF+VDcCfGoGuq4j2C0PnVByHgCFhYaKVG2ihlZluWuZA3sTgbB5ygmji/Vwshw6 kDYvNWyTeKPkcTELkCK44InzZpdCnLPCL5aiSAAQ3jv5x5L9sPNtd1iqfu8rVgatgLc4 csAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744097793; x=1744702593; 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=ieIGmxyhNPbpd78PJf2XL1UkaAJt0mspe5nebAeYm4w=; b=VQ2GzGIRTu6PYZugx/RcIGK3uYMBoF0+wmAk6VWfAEFCCYmStPcUsX5s4I6rhE6vmx jOmVFrblU9DoGsmrxfpJ6GvTlXciHXQvV6qvwOay89+AViU7GPAi9bHfsp/EAuwBuewr QIWXtJ6TK/78CK1GKiLZaKA8Xcl2F8rEcA8tsPHpQ1hQfpguG+PNyNxHS9aj/Dt2tFPE wzKLfygNecbKlJ6g5jeqReLMq2YUirU5ibvMzFV0jT6buW8R/jJAsGy9VubRVmrdjlgX fUsnEKSSkq+sICUAt7143UbHYD5ZZjTcsqTKHzI/RrSJPWFD0SpzahjENik/jqT1Ag2Y HLgA== X-Forwarded-Encrypted: i=1; AJvYcCViXYYx9iu68+I15Yrwv5oHPTtCzRJZJg/6WULMkg6kgWljSLr60ARH6xZOkV5cWaTYnlxTRPJceetO@vger.kernel.org X-Gm-Message-State: AOJu0YzU+SOCaPtjG/QaAHTvZkiagzqyfzl7MVuMX8OX3+9pODWUeOtF /vlFsLwXDITvdmB1tzTRKAxxSbxHl9DeXzoihfOXYwdBjnAwrW6uUqAa/NzfsJs= X-Gm-Gg: ASbGncv9DAHjNC7MVhBiJxbJTBWsi7LFgt4reVhlyiNhle6h0pVOxgyIiuxCxkiF8yh BBegZDCRas0q4pd5gOgalxJ3wLWfcuMh7hkngbuKlw75kgGGUACTtj+wyD75W9wVQ02iWedAj+q ScqiN2smbIUqS/Heg2RQbL3x7G675f5fRsGMo1gi8WQO7iSjBv29Je8semiBwAXk5IU7IbaWpBP pRBoc2+eI7qJGPLA6XkUY4m+I9z4O1cdymS5ZKnHdWTkp0WqELt6JTpaGALcvNOV10TJuCxaz9c xXecV90zyE+rTfOgyoQ9KYy/4SvyTKXu0MxKPA== X-Google-Smtp-Source: AGHT+IHBeowJuxDcX5UF6gWDD+kUYBEUe0mJaKP7pQljslu07Q2/7r0/c5GOuYrPNr6M1Lh6Efwwug== X-Received: by 2002:a05:600c:4f52:b0:43b:c6a7:ac60 with SMTP id 5b1f17b1804b1-43f0e5dda3amr16240405e9.10.1744097792929; Tue, 08 Apr 2025 00:36:32 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:2adf:eaae:f6ea:1a73]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c3020d980sm14287627f8f.61.2025.04.08.00.36.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 00:36:32 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 08 Apr 2025 09:36:29 +0200 Subject: [PATCH 2/4] regulator: rpi-panel-attiny: use devres for mutex management Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250408-gpiochip-set-rv-regulator-v1-2-a18b6154b31a@linaro.org> References: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> In-Reply-To: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> To: Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski Cc: 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=3420; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=yvLD6k1WGtmY4t8wzqLA9DATPQj/XYYaQSOinVOC51g=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9NH9iCFL/+9CwkxFsk8fCeOL2QEwfNyUME5KE SP5vozMZd2JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/TR/QAKCRARpy6gFHHX cuQ0D/4n5UrRuykA0JBWm33mmjOt6Hmtv+7ILDXOQ9I1h2BDUcgCquGpH+tPCEElmgEgtR5ClDT xlacF7jxLrPiPU5ZkqGP96Q/f/Mp/VPXLQr0yKmoivXY+C9Vze+fcv52jPZmzIWFIKZBZv4vXyV 6TtxIUNBxlN2o/UgPw9uBVlHPtr53+AWG9aeRO8kDysDDMOOB3I0vmR/sq2qlAtbUFiEAMjiXFq QLa3q3FD6ZWkDv0gaddU+nR3QIOeTujNQF6dSyAqyRAWPpcAgon46q6ItdTra0y9RQSI06LmNwi jOnxDNO+bk8a6VHYUxXnse/0qvetnHBT8jcJ5IPzLLblxzblxjha0oLvvVQ4J+V31XeZ3XOOGce /rNm3dHuQPRdDT5C6rwTzcl6IXj3sb4T6Rm1zI+sgAS9hIBVmRcYM6KtxEQuJCA2XA7psOo5z/n EFLSrS9LeL8c+EJXQ90Sv079lLvXJhVxp23hf0y/pDTR85nYH+BWjjQgW1KZfBegs5o3CwC8Zyd bCq1GSpn2Bt3uqkvP814n4ANuzqxxWeC3VzlMGIzh1dCOEV1Ylk91BpWMbD5PE6HHsVrHlXfyzC BJVP0FJlMeJg/bs5HOlJd3MHzekYtM+hPLrP1qUhVa9x5eH6b4wznDzsCkpPlHV2XTuaMtSUD2Z 2bQV4wh6y/inKhg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Simplify the probe() code and remove the remove() callback by using devres to manage the mutex resources. Signed-off-by: Bartosz Golaszewski --- drivers/regulator/rpi-panel-attiny-regulator.c | 39 ++++++++------------------ 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/drivers/regulator/rpi-panel-attiny-regulator.c b/drivers/regulator/rpi-panel-attiny-regulator.c index f5ce50ced294..5ff348939560 100644 --- a/drivers/regulator/rpi-panel-attiny-regulator.c +++ b/drivers/regulator/rpi-panel-attiny-regulator.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -293,7 +294,10 @@ static int attiny_i2c_probe(struct i2c_client *i2c) if (!state) return -ENOMEM; - mutex_init(&state->lock); + ret = devm_mutex_init(&i2c->dev, &state->lock); + if (ret) + return ret; + i2c_set_clientdata(i2c, state); regmap = devm_regmap_init_i2c(i2c, &attiny_regmap_config); @@ -301,13 +305,13 @@ static int attiny_i2c_probe(struct i2c_client *i2c) ret = PTR_ERR(regmap); dev_err(&i2c->dev, "Failed to allocate register map: %d\n", ret); - goto error; + return ret; } ret = attiny_i2c_read(i2c, REG_ID, &data); if (ret < 0) { dev_err(&i2c->dev, "Failed to read REG_ID reg: %d\n", ret); - goto error; + return ret; } switch (data) { @@ -316,8 +320,7 @@ static int attiny_i2c_probe(struct i2c_client *i2c) break; default: dev_err(&i2c->dev, "Unknown Atmel firmware revision: 0x%02x\n", data); - ret = -ENODEV; - goto error; + return -ENODEV; } regmap_write(regmap, REG_POWERON, 0); @@ -333,8 +336,7 @@ static int attiny_i2c_probe(struct i2c_client *i2c) rdev = devm_regulator_register(&i2c->dev, &attiny_regulator, &config); if (IS_ERR(rdev)) { dev_err(&i2c->dev, "Failed to register ATTINY regulator\n"); - ret = PTR_ERR(rdev); - goto error; + return PTR_ERR(rdev); } props.type = BACKLIGHT_RAW; @@ -345,10 +347,8 @@ static int attiny_i2c_probe(struct i2c_client *i2c) bl = devm_backlight_device_register(&i2c->dev, dev_name(&i2c->dev), &i2c->dev, state, &attiny_bl, &props); - if (IS_ERR(bl)) { - ret = PTR_ERR(bl); - goto error; - } + if (IS_ERR(bl)) + return PTR_ERR(bl); bl->props.brightness = 0xff; @@ -363,26 +363,12 @@ static int attiny_i2c_probe(struct i2c_client *i2c) state->gc.can_sleep = true; ret = devm_gpiochip_add_data(&i2c->dev, &state->gc, state); - if (ret) { + if (ret) dev_err(&i2c->dev, "Failed to create gpiochip: %d\n", ret); - goto error; - } - - return 0; - -error: - mutex_destroy(&state->lock); return ret; } -static void attiny_i2c_remove(struct i2c_client *client) -{ - struct attiny_lcd *state = i2c_get_clientdata(client); - - mutex_destroy(&state->lock); -} - static const struct of_device_id attiny_dt_ids[] = { { .compatible = "raspberrypi,7inch-touchscreen-panel-regulator" }, {}, @@ -396,7 +382,6 @@ static struct i2c_driver attiny_regulator_driver = { .of_match_table = attiny_dt_ids, }, .probe = attiny_i2c_probe, - .remove = attiny_i2c_remove, }; module_i2c_driver(attiny_regulator_driver); From patchwork Tue Apr 8 07:36:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879125 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 1162C2641F5 for ; Tue, 8 Apr 2025 07:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097797; cv=none; b=s9QOiES+/xCVZDKTlrLFfNaq6FzlSNhYB3ArqAb0/K3cn1m7kA/xZPupPWkafD+236LEx4HNnJba+F0q1Me+151pVJAVo+LDUlp7ums4Q6R7V5v0ofPMfiUHovcTGx8h2i39MGWUIxTb/q1NhWQYTHGvYU+PNvdbrru29xHybXI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097797; c=relaxed/simple; bh=jYN84no5HfMrvCOtmNwOTquSUUgh/6PVglmv/98TzZM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e5kLRp8E2/pwuoxamPiV87kj8vK9n1vKlbPpBFn4W3XpDcNNRzSryRNSvy4QE5WrV5ExRYgdzPZRJXt8kTAtbK3wpc1Cy1ka7t4A6ffMWQVJUdGom0Jj72RCjtlLcppC+M/syHxKxB7mRYijQHYbsMn+z0Mm5q/r5+Bb8KtrGNQ= 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=Nn8LGNts; arc=none smtp.client-ip=209.85.128.49 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="Nn8LGNts" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so23021345e9.0 for ; Tue, 08 Apr 2025 00:36:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744097794; x=1744702594; 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=gHis8ysDm+/ce9937f9eb+O8K3AUE5i9Qwr+5PKEGCI=; b=Nn8LGNtsvypMEqPk8ddjC+3x5t8Ln9kzsj9uChKAAk0L3htMeta8QGCYrem2z0V8ch ZaZXSX64D+z9NTpvhFAH8ZZzoT6vZqAKcz5N4WEI4t7wPC5xSDNjvT6+ASpVLLJOxMcd 0ns+4jYZ72aohBaTzWrXVZuzo4jKqUZNvqvvR5xDRHDWMSpKUmt5QlhnKXNg01cBsMBH u+vIuLDrvbo2OcBGZU/DUkp99zlYzdigHH4oN16MiA/6q0WXf7ooOMlFVTtTe8LW/gL+ v1lMzYlVatrhonk8Rha2SYPEZXDSjgxcdThefwpNZKZcKAoUfrhcELOCxpSE7ks14gqQ dP/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744097794; x=1744702594; 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=gHis8ysDm+/ce9937f9eb+O8K3AUE5i9Qwr+5PKEGCI=; b=eHikYT+PH0L/3+4LoUgu1IhVcPcwVrsc7i3u5HRzIDfSwshMyWfCzIV4VZk6rjAksO wKPD6tRvpgA3N9lOErSffA2WUSq1b9AJSqG4G62AtGn2fw7yNy2xl6U/giwPRKJ2xiN/ FwI4iR0bk/rcMO+74GexGkYCIKHsO0t4EaU1eNCYlF71eZRT5MXkQ1hhd4oQ6N0C18U3 lt1Sm3b73ChsTP6kM+Ii5QD03/6N51tgznEFIQQFn/jYXS77p8KSDkRLH4dPFFE4oJ6L DYwU613kkeafZzNRETUctNEpJpR3RYAVpfM5NRlVy+VMAcFbg8M9WnuBMY5ncIvMF9UR PbrQ== X-Forwarded-Encrypted: i=1; AJvYcCVVubnEZgaqVUt+Sa/mbnB4xZxtfZ+uFxYmbQGhbsfgkQuQzp5PUxYEF8zvtv5228NRse+lg5XUStWz@vger.kernel.org X-Gm-Message-State: AOJu0YxXfvRRYnTdBq28Xz6VSJQ16mU8eZS36o+GvfqFe2gkhRDduT45 Xn93ElTiqCtjWN4v53/cScKxfqpqsFQFVRhwxYkdfLI4/plVlnFfMjjrukaoKJQ= X-Gm-Gg: ASbGncsgAz/xoGShQp7TAEZIrteq8kLJG/1xvNuo794KzjHJetOFl3gOQ4vI4zeCxqF IgOp2jGCjnCkEUxkt/A5ns1m9w0H8YH6dR0dGr9c86QUYOV7xGxm4rdw+dGassS59GMipe65Fvf jTs2UhuPSSH4ZhzgkAw4CdvnD5E2dS5lhhUPZAmVD6XmNIirZ//th3vQMuvWifn1PL4hwfiZgGF XYWUyQVT1CfuwxeYLiZvANYuD1x2p+le3Qik0gexDy7wYHkwwwN1WQzAZSa5KSwdG3aMARO8SWM hYWOTb4cVo6+3loVLNEYH5R4N0yl3Pb7rhbJHQ== X-Google-Smtp-Source: AGHT+IGHagAQNTtn2a+MuMwHyBshBsQtM9UgV2ixBg56P23KxFjIh375u0gTz/ubybm8RglkXY7FFA== X-Received: by 2002:a05:600c:1382:b0:43c:f8fc:f69a with SMTP id 5b1f17b1804b1-43ecf8231a8mr152102955e9.4.1744097794503; Tue, 08 Apr 2025 00:36:34 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:2adf:eaae:f6ea:1a73]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c3020d980sm14287627f8f.61.2025.04.08.00.36.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 00:36:33 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 08 Apr 2025 09:36:30 +0200 Subject: [PATCH 3/4] regulator: rpi-panel-attiny: use lock guards for the state mutex Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250408-gpiochip-set-rv-regulator-v1-3-a18b6154b31a@linaro.org> References: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> In-Reply-To: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> To: Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski Cc: 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=3451; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Cm0XoajVTF7WGyfXVhXt5rXgkMBzUPTLlPuMZdlyTXc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9NH9Pmx8NozKyr2Yh4useXvhNRl9MT5x7yLAm 2Z1OrJBtJiJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/TR/QAKCRARpy6gFHHX cpdOD/0TJ2PvGhJPRb6muqCjVh6EsoEvWJ62CYpFC7GLKMbP9kosgqZRbg6EY6pbiQaREHAPLc0 XF1Pgj4ipR5iKaieNqfJV11RL1vPr9dfZ4hjU/YoCtHeoQl/oG2MWXGVFsIcb8raL3xdQ87iTl8 wQBrNOzOlMCpcnakqxkC1pmo366tNDO34hDb5X72FQ8QvevW9YT5J7Hu8L5fq/TwdnPWcuOKw6e Qs50ASLtjcbqOGpwwxJVBfD1j1cE+xhLBBd4svrqThG6TDn5Ks+ixcHLsnxkgQz9oY3jZUgDQQT EvOcHhSKwmSJ5BzuomgfCoGvJaLJ8lhQjU419CPlmSj/csMB5hVguJ0AqJB3DB8ALky5hyUcKAb vFZz2YhuGPWb91KW7RgyXQPumPh5yYsW+Sb5u6h/VOWRgtR1lE0H5WDpLs6s9vWeyV027Ed4MZW XZpN8Kffo2PSye8H+Oc7xzjF6L8XshROKx8DS2TFiD9jfWsdOs/k8RiRzRZtiqDS5PyvmwCisbV 5qX1BSIw+syRhGirNNEm1LXlh45YEnetjuP2SXuqrMqq+L4hRmeixS6GXLJQDFZoqCTQR/0z7Lq DLBZOqybxUROocdeWM8s4oRAKN5i1SqgiByVzDL0v0eiQ71nsBAJ/HLH+SGwODtnXLEZvqUYWhM +8wA0vMGpZEWThg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use mutex lock guards from linux/cleanup.h to simplify the driver code. Note that ret must be initialized in order to avoid a build warning as scoped_guard() is implemented as a for loop. Signed-off-by: Bartosz Golaszewski --- drivers/regulator/rpi-panel-attiny-regulator.c | 35 ++++++++++---------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/drivers/regulator/rpi-panel-attiny-regulator.c b/drivers/regulator/rpi-panel-attiny-regulator.c index 5ff348939560..43a7c4737cb4 100644 --- a/drivers/regulator/rpi-panel-attiny-regulator.c +++ b/drivers/regulator/rpi-panel-attiny-regulator.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -94,7 +95,7 @@ static int attiny_lcd_power_enable(struct regulator_dev *rdev) { struct attiny_lcd *state = rdev_get_drvdata(rdev); - mutex_lock(&state->lock); + guard(mutex)(&state->lock); /* Ensure bridge, and tp stay in reset */ attiny_set_port_state(state, REG_PORTC, 0); @@ -115,8 +116,6 @@ static int attiny_lcd_power_enable(struct regulator_dev *rdev) msleep(80); - mutex_unlock(&state->lock); - return 0; } @@ -124,7 +123,7 @@ static int attiny_lcd_power_disable(struct regulator_dev *rdev) { struct attiny_lcd *state = rdev_get_drvdata(rdev); - mutex_lock(&state->lock); + guard(mutex)(&state->lock); regmap_write(rdev->regmap, REG_PWM, 0); usleep_range(5000, 10000); @@ -136,8 +135,6 @@ static int attiny_lcd_power_disable(struct regulator_dev *rdev) attiny_set_port_state(state, REG_PORTC, 0); msleep(30); - mutex_unlock(&state->lock); - return 0; } @@ -145,19 +142,17 @@ static int attiny_lcd_power_is_enabled(struct regulator_dev *rdev) { struct attiny_lcd *state = rdev_get_drvdata(rdev); unsigned int data; - int ret, i; + int ret = 0, i; - mutex_lock(&state->lock); - - for (i = 0; i < 10; i++) { - ret = regmap_read(rdev->regmap, REG_PORTC, &data); - if (!ret) - break; - usleep_range(10000, 12000); + scoped_guard(mutex, &state->lock) { + for (i = 0; i < 10; i++) { + ret = regmap_read(rdev->regmap, REG_PORTC, &data); + if (!ret) + break; + usleep_range(10000, 12000); + } } - mutex_unlock(&state->lock); - if (ret < 0) return ret; @@ -190,7 +185,7 @@ static int attiny_update_status(struct backlight_device *bl) int brightness = backlight_get_brightness(bl); int ret, i; - mutex_lock(&state->lock); + guard(mutex)(&state->lock); for (i = 0; i < 10; i++) { ret = regmap_write(regmap, REG_PWM, brightness); @@ -198,8 +193,6 @@ static int attiny_update_status(struct backlight_device *bl) break; } - mutex_unlock(&state->lock); - return ret; } @@ -217,7 +210,7 @@ static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) struct attiny_lcd *state = gpiochip_get_data(gc); u8 last_val; - mutex_lock(&state->lock); + guard(mutex)(&state->lock); last_val = attiny_get_port_state(state, mappings[off].reg); if (val) @@ -239,8 +232,6 @@ static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) msleep(100); } - - mutex_unlock(&state->lock); } static int attiny_i2c_read(struct i2c_client *client, u8 reg, unsigned int *buf) From patchwork Tue Apr 8 07:36:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 879898 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 3209326460E for ; Tue, 8 Apr 2025 07:36:36 +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=1744097798; cv=none; b=UTSmfHd8PzihYo1/kagkakUIa5evY9F+SX2qvUjDCBGHbUqr6rxmIrcQ0Pakp3wnX90lOqIgaed6ZFEL1+E8jTr2CoKpEl2Ggfm5eXMhpOXjNcsUB+oM4XF5A6lR+8zEX0awpjwfEgl0vunEnAyLZxhl4csxjt/13KgGK9UB0Vk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744097798; c=relaxed/simple; bh=05zU1Ccr9yOLMj2iUNDMrlJo9Ujt7vNHa1DQZ+YdkO4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nEHtgNaXDIUXQnfpcN68nAvoMpPQLrngFifdPSWEsz0vstnsvidfAzvhn5xS9RolbQOSmf9QIaFG/lhxiicFYvV2gBdHR9lG/TEXt0qqR/9YlMR2bbZHa6MMjnfNUmrcSVcaA2O783zH7N1ExkplwOpC0V0RerHsRd6yBymhNww= 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=DxPvCY+z; 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="DxPvCY+z" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43d0359b1fcso32768065e9.0 for ; Tue, 08 Apr 2025 00:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1744097795; x=1744702595; 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=kM096SgLF/xDM5ehediIIVzZvU9OMbppluTe8DVRK4k=; b=DxPvCY+zw82SJfXyxD4GU16qqay1Rp68SQB3hNSfawfTNfyIPntS3hlb70HXYGpf/K ykQJRNHjdQBeGVXH+ptB/k/wOnmqCR/9bSh9zEDFDI3u3cJ7mmCZ6G9WLOiiE30JFODl 8aY1Lxf61BgxGz7/j5gs0r3ALJ0F6HifnXCsVzdJ9OUNya9fxjP9DZvbck4AV5rHJTOn oSCVf288LJWpF/x+vs1OALsvZTj/euVg8iS50abvnVUfHTDNVcIo0s9P08UlMb3MofiC fITX1TRo8UNI5Z0iHM+6PFmxyrdc9YqN4xi97WvUsKZkkqwCsJs3a7azsyLYWrpZfSh9 0RPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744097795; x=1744702595; 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=kM096SgLF/xDM5ehediIIVzZvU9OMbppluTe8DVRK4k=; b=UPBoYJqh9Pqkv6AAavoxYWXzFl/Cj2RNE2+AKIGaUy/mnv/H3yOT72Gk2g/BYN1mpa 4B/tNJJyxUktEyD0XHlWIhP1+sGQvcK9GJXU5UvvpbNhYA40Rp9/9ytVz0SbZ1VnQYiK JHFO7XDBgFHkHUBZKUk2cBmRgnmNVJqSvt5Q6WTw8xcFVKO3Ux99z10rHv7qR2TClUqc RGEDkYpKp3yrF5wCDc4xXGIeFo+okH3zD5/to3iNCmDzQUylQT999aRQsikZbz7jrW3h SSTGP+HyvK9qEPHzoYa5VFI7BHiVmlp0eDOo3/Bv0S9EFzaKXSW71FUNcSju2fpohTPM FOzg== X-Forwarded-Encrypted: i=1; AJvYcCVkgdGhinkKxetSKH9BZ6yeJRt1oHkoSdaUFhFdxvBR2DfSRKnivb8xeSWgKTZIBmYHq+Ejtg+VTSS9@vger.kernel.org X-Gm-Message-State: AOJu0YzbVlXLgG0Vnxi2rVb9KDn8yWWQSEwP9SbXoZIrLI1/CmRNjU7e TIH3+umVxGcUUV4B0m0WixkHbuOTHs9/xj2BjHS97vo8kk6dDDrp1NOWoy8cNOc= X-Gm-Gg: ASbGnctmvIhyOWSB0f1+eUiu+3kK9yjw8KwBqSreOZA3QTnwbNLsoiNP1AykeWgYBoj ndVKyfsARB3FZckGBtWW+dGBGulL6Q3P7AHJkojDAfF9a40+wOOvHVixnwaf7UzGUPLDnHA8Qoy XPaHCRGtMAyOsB2+505je2sjcEu/UhLO9U/Q6iFbgXjlutMNfs6bq5QITUpHSSBHfCh3v4F0jub Tip7Sj2uA+XQqSpadpkuw6PhllSmLObO5IQj7H+PZq1B7XbhDowura6+Xo5T4mvRLgidpMEWy6K x2bl3xh63vGF2FiIgu6QQOaI+M/1aVl9O2JPPQ== X-Google-Smtp-Source: AGHT+IGqAZNwvkkT66aidmtMFAuZ998J7V83w2RRytOg8jUYiK+eL0Qx5YxjhhMuBaNCr8BVDL2iRg== X-Received: by 2002:a05:600c:6a8e:b0:43d:174:2668 with SMTP id 5b1f17b1804b1-43f0e4169ecmr17353035e9.0.1744097795460; Tue, 08 Apr 2025 00:36:35 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:2adf:eaae:f6ea:1a73]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c3020d980sm14287627f8f.61.2025.04.08.00.36.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 00:36:34 -0700 (PDT) From: Bartosz Golaszewski Date: Tue, 08 Apr 2025 09:36:31 +0200 Subject: [PATCH 4/4] regulator: rpi-panel-attiny: 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: <20250408-gpiochip-set-rv-regulator-v1-4-a18b6154b31a@linaro.org> References: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> In-Reply-To: <20250408-gpiochip-set-rv-regulator-v1-0-a18b6154b31a@linaro.org> To: Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski Cc: 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=1508; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=tGoxqy++nkqQRXjGhwwXyr6+v2LydOiiKnIqwmxDNvw=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBn9NH9ULUrSeUEZg78nVRcumLJX94S2Ad77IrOO t0AeKHmR1OJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCZ/TR/QAKCRARpy6gFHHX cjziD/wNd0mAvA0YYUakqeiIb5oRbeS/vBhhpnkYDPNtzT/+nGw7l1BWGaMFfhRiRas8BwKvLuv n99DWRXcxYdY7NGxE7+4mXz4URzMgHztn0FHb9G4Gedhl6tj3jo0bO8FBAXdfvDKsiXEfC5HFU2 yVhAHKQAEABPwuFnhLIVKREohBTkLskPsoZUrT8Vq014TT1TYpAE5qn2N3q6JdTFS0z5qtVRzTE yFftUUlpiH2Dl36GbTtvoJoCWg6QRMxC52KT42nL+7FV2SufUr0ouTZvNBwIwMG15JJN1yYn0Mp YQzSBTiRpmzew/SR4xbvp6vxMsKQtMpyRKOEhRQCNqPNGMZygBftmKJCfZYVQapED+keq2eSf7d lMWMzDAia+/CYAOeyRH6d0L8yxNzSt/Hj0DBdLPlgQa7h+qMhBHkQapEEZTnVXkQRuTZpACA1ON WFhdXL5acJaqjYqMdg7wENAbQrXG7hXdfCOcgXtLPaMc/8R4goa/9ZK2y8Hbgo/5xk9hHM9Nu/W 8IPnlOH+52WE/ctkRfIYMqxynqm7pScYKX2YRO3I5urf08n7AfUYPzzdu2oHVkj1ROUxhMfLtE7 Hbg+JkkNoGVEPtcpnMSUP7TiMrlBk/0V0Tg4kJxSA0Eiu/hVB4J+Hn2g9RSWF7lHpe3OyKgp8fz 2vWBI/S9O9bMJWw== 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/regulator/rpi-panel-attiny-regulator.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/rpi-panel-attiny-regulator.c b/drivers/regulator/rpi-panel-attiny-regulator.c index 43a7c4737cb4..58dbf8bffa5d 100644 --- a/drivers/regulator/rpi-panel-attiny-regulator.c +++ b/drivers/regulator/rpi-panel-attiny-regulator.c @@ -205,7 +205,7 @@ static int attiny_gpio_get_direction(struct gpio_chip *gc, unsigned int off) return GPIO_LINE_DIRECTION_OUT; } -static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) +static int attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) { struct attiny_lcd *state = gpiochip_get_data(gc); u8 last_val; @@ -232,6 +232,8 @@ static void attiny_gpio_set(struct gpio_chip *gc, unsigned int off, int val) msleep(100); } + + return 0; } static int attiny_i2c_read(struct i2c_client *client, u8 reg, unsigned int *buf) @@ -349,7 +351,7 @@ static int attiny_i2c_probe(struct i2c_client *i2c) state->gc.base = -1; state->gc.ngpio = NUM_GPIO; - state->gc.set = attiny_gpio_set; + state->gc.set_rv = attiny_gpio_set; state->gc.get_direction = attiny_gpio_get_direction; state->gc.can_sleep = true;