From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) (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 A0ADB2DF719 for ; Wed, 8 Jul 2026 22:48:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783550909; cv=none; b=lg7yak1X8VpUY9GhzGFW8hHvrxjgqYabBBFw1lui0MEW+KiTCsCo9hfQA8FMlRwooMaJkYfhY1BWxmX5Tl3RLswdbsYz1qOk+IhsdlSoS+UHKr6wZ+ssB/WEWq8+DhHr/f/Fm/RYAJISsroNO1buCdPyEEKyyOWeg+ainw1Srfs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783550909; c=relaxed/simple; bh=nQX/Kn5G3ZH/L8fZkAmyxEeI7mV90VwZj8IHlC9nZec=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=oyGnXAddAVNNFpDK/nP2Hb0yDZJXi9Q5doPnTrMRTHskeoCC0cGfUg0GzXd8VxW/GFSOXBHzK9i6qE+xw6TlpwxWYgU2PGNuuRXEwaTtS1WG9tT+2TX4Ukr/NUJksLitF45GprifZrNtM0gHD82P9FitjcVjLwFnO4fkYw783Ow= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jT+gqW2k; arc=none smtp.client-ip=209.85.160.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jT+gqW2k" Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-51c16ac21acso6798961cf.0 for ; Wed, 08 Jul 2026 15:48:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783550907; x=1784155707; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=kOIU/Q+WQzJvS79ZfIzIzsTDKkVRFJ8CsUMjqnigyQI=; b=jT+gqW2kll22Bsbpkqz4PTNYbdZVjVl2k8/uyCEd3pE5AHgM0v2hROI1ZR98zkBGDY aAMTqnmpjHd+yXKLMe1c+bAh9Ny36tz9OmdUfVUToM3IhcDw6+kBRflu+zEFOR91eIyl uYY5XGQdZnu7v59eVLeeRW72xVrGDBpsXrJxXGCKg73bDznjFyL/Hluw3linfZog/8VB g2gYxLuv1mA5IdfydwGHIFSFRilzJmeJ445i2ukuXIZAPLyPpw7l6khlgCdDSoWAS0cU MDch8H8O+MxmpR4doaIT4VsvwjWpwa7BdE0liZ98d+WjerhVYvHKAaBn8DtKiQ7bxe2t Ttmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783550907; x=1784155707; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=kOIU/Q+WQzJvS79ZfIzIzsTDKkVRFJ8CsUMjqnigyQI=; b=fRxYBJN9LWR3KHOilOw5O+flBMyPqbwULyGEGEJRmPY8K6YApBK3CtffwkHy/O+AsQ cqqnDZCPrvb4jV1hvmThAjwH5Z/N14crWP39fqawK/G1BehSYKDIem+eYbMr0ADPurlW 4+dTX2ahsNe0yJXQjXK01PWzeNaSQkQqmb0oKZ+cvtHQMAln/XubzXR4KFT7v8/zpvGt P2Izg+VeNqmamw8Y5UZXgmgaeOfrxPE1rx8OeK+zP/LCOZz86brk+SkeyEG5QxgTTV/p d4J2t71GT0kimAphv/grpw1qWSru2UadFfk+4XcbRxzk8PiD3rWjVWSt8vApeBE3JBUm YTOw== X-Forwarded-Encrypted: i=1; AHgh+RrUbqa/x2XsOxfMC3VhSt3TurdrLIufX/V5csBL58YMMfOihNXyV9w3RlAx+LMxjZeerP3RmONxFFtvsEk=@vger.kernel.org X-Gm-Message-State: AOJu0YzQ7hfT9ZgmhbaWzyaWlKw3eXvgcN3XpPZThzSdnlee8SKv4ejd lbCk8OJ7+fZ3qsV/o36wQTtcQldBWvx+PikGS18cf+3YZryhOMO+8MKI X-Gm-Gg: AfdE7cmQEnx7IojxeCG/lW0QeYOCn4u9g/5QhAee6J5L8ocaQTDzSkfa877Kof5k5y1 qKNAZDrD6K65+/f94OlTBtR3eHteMUt08bqRiN4009Ng1PHcWj9GoKDtbRDHqNDmtVKrH7tN/IO gg8orqR4U0g0rH5oxF05+fq2mYMabNCyHzTXMta/TwTzOgUUhGEJJnwgRluvto+9frgdBAUmPEh oJqjYWuh/b0R8Uz4bC2+OPQYY2tvHZTlZOzL/vJ423KXOy1l9tOG8j7E0cdmTkN91987BIstmZD auXIwqDjm9hH+vCcvjPv2kQFg2OwWwVD+sy+JHXdNRupwADXaO8kKnzyNWXs0R/g+02R7Ltg2HJ o/2xz9H/zecVunGOTyfnoZ0fQyDErXEi20vXhWtZwMnCHGcFjBMiY5pFZkBvmr43tOxS8DcSeD3 PfgUDSREmGSNOWKES4q1Jbr7qqc52X5X0JnXg7zNbf+O2JFHzKVjzD1AcBYK3ATYnRqXq5mN0EQ VnhbzTqecpl9Unmvidb8AE4edZhA1m7UpwgfNC67dtcXcs3vVhQgbfUDBm0pbPjcg== X-Received: by 2002:ac8:7f81:0:b0:51b:f40b:2faa with SMTP id d75a77b69052e-51c8b3e32aemr50992231cf.52.1783550906576; Wed, 08 Jul 2026 15:48:26 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-51c41e084e8sm142990171cf.28.2026.07.08.15.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 15:48:25 -0700 (PDT) From: Rosen Penev To: linux-gpio@vger.kernel.org Cc: Linus Walleij , Bartosz Golaszewski , Thierry Reding , Ralph Sennhauser , Rob Herring , Andrew Lunn , linux-kernel@vger.kernel.org (open list) Subject: [PATCHv2] gpio: mvebu: use devm_clk_get_optional_enabled() Date: Wed, 8 Jul 2026 15:48:22 -0700 Message-ID: <20260708224822.960617-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The clock is obtained without doing any sort of cleanup on remove or anywhere else. Use the proper function to handle this. When it fails with -EPROBE_DEFER for example, return so that it can be handled. When the clock is not found, it's NULL and not a PTR_ERR. Handle that as well. Fixes: 757642f9a584e ("gpio: mvebu: Add limited PWM support") Signed-off-by: Rosen Penev --- v2: return -ENOENT as before. drivers/gpio/gpio-mvebu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 8d3acadb0d68..a863b0bf46ff 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -833,8 +833,8 @@ static int mvebu_pwm_probe(struct platform_device *pdev, offset = 0; } - if (IS_ERR(mvchip->clk)) - return PTR_ERR(mvchip->clk); + if (!mvchip->clk) + return -ENOENT; chip = devm_pwmchip_alloc(dev, mvchip->chip.ngpio, sizeof(*mvpwm)); if (IS_ERR(chip)) @@ -1182,10 +1182,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev) return id; } - mvchip->clk = devm_clk_get(&pdev->dev, NULL); /* Not all SoCs require a clock.*/ - if (!IS_ERR(mvchip->clk)) - clk_prepare_enable(mvchip->clk); + mvchip->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL); + if (IS_ERR(mvchip->clk)) + return PTR_ERR(mvchip->clk); mvchip->soc_variant = soc_variant; mvchip->chip.label = dev_name(&pdev->dev); -- 2.55.0