From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 5ABF43A6F00 for ; Sun, 12 Jul 2026 12:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783859864; cv=none; b=Cm0sWPVFdWm00bBdkfrckjj3HiwTd9timW8TQgyZFTKKmUtT/N/746xZhqM2zSNoaTXfLKWwFxBz9ArKdifSdLUoKVChJ9ClqXuw7kJQYL8IfdfHucYDsIHIP3pt0KYBwdRQX3tNjfqVRLiH6UaKPWz3Fw/CSezD36OUEWoIleI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783859864; c=relaxed/simple; bh=syj38HJ0/UXCc9P3lZdkd0oDCkLRFetu02r9wiSP/wI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l97mcpY0/mUpsNGOSIE4jxsRLuv4HchHunYWhEp7ojErKZTi/oBcuSO8MYg3wUq2WWU6zlH9D48E6lbz+s6c3xtAaUDCS9V0DwDBc/yrj6NT0hOODO0GETgz6Z2pmkyhYEYmdDBf8+HJS/hT/rhPYAQ5Q+9LIjdzpfhJhD2th9s= 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=FmWPzPMU; arc=none smtp.client-ip=209.85.128.41 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="FmWPzPMU" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-493f2e39e81so8135055e9.2 for ; Sun, 12 Jul 2026 05:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783859862; x=1784464662; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hNARwloA3rbnFq4jTz32GunvMhdlXc/eq0tF3XfoMbU=; b=FmWPzPMUCfP2+l+q5fjnA/Wp0SoKU2TqpNp/KJjH5CMNNMfyQS3wT7lu2IwKfWcPr9 xwfioYomK1IAU5/gLY2eSxvKWZcqfaoHS8eVoxd++loSGvYCpuQBVf4q8CmF45ZvHDNh YYQC2MgIEJItdHnxV1n40gGlL7x8LB2b70iPW/O0X2bYtDX99KlFIGpBDcjjewOa7Bm3 8RFnQjfD7mpsi+GBcQSb07KUybCNbwFutWAIvliKZYnfQe5gheLRSHrZkpSRC/ybZKaK 1i8+dmlHfADGJW7U8gTwAttllY0jqT8WAn08G6si+VRNFuzPi+nzQcwGPGbHXHbwtEHQ BO3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783859862; x=1784464662; h=content-transfer-encoding:mime-version:references:in-reply-to :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=hNARwloA3rbnFq4jTz32GunvMhdlXc/eq0tF3XfoMbU=; b=LiH1XwxIExtXVhPQ0UwdWT79KjKkPvJY/IOUobonIu/rBoNIysbVPgm2IB07QeBwAe zo8avcJ4oIyjAbnn98f4VB7+jhStw7qmvXjTH/O+nLxJnyyw4C+7Qo+asn81Q9l3a5f0 /kdrxp1nYU6aDoOGb4jyAKwkV3bXrTsUV4C0LGyyuQEJW+ToShXO4ozGFScXmKLp6N+l 5AgVTW5XOGsc0qUatyqnSBpf5cLLlfY9FQ2CTIRhB/D+7rMjjKz4KeycKQlM6opjEyBz R543a/gSFARZbD3OStMSFdTMvWFx2Fxc5nB0uWnj++417ONDMF7c8TtjBwdrgcYGURAd APkQ== X-Forwarded-Encrypted: i=1; AHgh+RqvLXkLYl8+V4Gn7fzmdYRyc+Vw1oKKOKO9h+e184Ij1EQXVsi4K2aBpLx5OnqN84zeJr+HvT5/2OSE+w0=@vger.kernel.org X-Gm-Message-State: AOJu0Yycvrtolb1evHjKbCe/xGS5nl1PzbYNTtejlN7q3bTzTuVhtgIq kPJ9fM3iKdy+7SmY7gd8a8TaSv4QS6m9DUz6XCrayKx2ZgUE+N4LpU+J X-Gm-Gg: AfdE7clA6sMl5FVW2HFLon/COtsaG+6yNpt1OYtt52FkLIL9+0TF7HiGT2nU6fC0AfZ Dx9hfM1/gixHHoTi7symjnNcHHBMTrdA9W7YjgnHSs1vjJcwENYT35SGXyvsC6+H6vADTJSXQrN jvgmXy/QbCGQD3y5fiRBJfvbjcAeQHmx4Nj3SlRNCpE86Vay6qLRpUt+XeAXyXSTHCdu5I3cyyc EiXl5AfAITuDL9VIFBc0hQyUdsXFEJZZ/aj3z4QP09/Ai5ELmOLZCiV4XaqFKZEV9Kb7ZlR/9cc 1gY/GzHAUjybs90VnbND8IE0E++v5jqDRfAmwI0PpJxJKNmoG5LPH+ClrJAXU7WSdhihjvY3BQD Kisin/pG0PP9iYX3Ht1B6Qry5z6HStfT3bfv38q1kTInPUDKRfumVDtmjW3dxCXzyeY/JTOUP2W 6YETkRu/XxOYumZOfGWoE9riSvIw== X-Received: by 2002:a05:600c:45d4:b0:493:a966:d5b5 with SMTP id 5b1f17b1804b1-493f87dc5d3mr55586175e9.2.1783859861600; Sun, 12 Jul 2026 05:37:41 -0700 (PDT) Received: from fra-x8664 ([2a01:e11:8000:43b0:96d6:566b:35c:7b8c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493eb6f3c42sm280280485e9.1.2026.07.12.05.37.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 05:37:41 -0700 (PDT) From: Francesco Magazzu To: Lyude Paul , Danilo Krummrich Cc: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dan Carpenter , Karol Herbst Subject: [PATCH v2 4/4] drm/nouveau/clk: don't clobber reclock status when restoring volt/fan Date: Sun, 12 Jul 2026 14:36:16 +0200 Message-ID: <20260712123616.1180830-5-postadelmaga@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260712123616.1180830-1-postadelmaga@gmail.com> References: <20260712123616.1180830-1-postadelmaga@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit nvkm_cstate_prog() reuses 'ret' for the voltage and fan-speed restore calls it makes after reprogramming the clocks. Those calls almost always succeed, so the status of the reclock itself is overwritten and the function reports success even when clk->func->calc() or clk->func->prog() failed. The converse is also true: a successful reclock is reported as an error if the final restore call fails, even though that failure is only logged and otherwise ignored. The only consumer of the return value is the error message in nvkm_pstate_work(), so in practice a failing reclock is simply never reported. Nothing else changes, but a function that returns success on failure is a trap for the next caller. Keep the calc/prog status in 'ret' and use a separate local for the restore calls. Fixes: 3eca809b3c05 ("drm/nouveau/clk: cosmetic changes") Signed-off-by: Francesco Magazzu --- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c index 4d546b07f..05336fc7d 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c @@ -199,16 +199,18 @@ nvkm_cstate_prog(struct nvkm_clk *clk, struct nvkm_pstate *pstate, int cstatei) } if (volt) { - ret = nvkm_volt_set_id(volt, cstate->voltage, - pstate->base.voltage, clk->temp, -1); - if (ret && ret != -ENODEV) - nvkm_error(subdev, "failed to lower voltage: %d\n", ret); + int err = nvkm_volt_set_id(volt, cstate->voltage, + pstate->base.voltage, clk->temp, -1); + + if (err && err != -ENODEV) + nvkm_error(subdev, "failed to lower voltage: %d\n", err); } if (therm) { - ret = nvkm_therm_cstate(therm, pstate->fanspeed, -1); - if (ret && ret != -ENODEV) - nvkm_error(subdev, "failed to lower fan speed: %d\n", ret); + int err = nvkm_therm_cstate(therm, pstate->fanspeed, -1); + + if (err && err != -ENODEV) + nvkm_error(subdev, "failed to lower fan speed: %d\n", err); } return ret; -- 2.55.0