Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp624036rdb; Mon, 29 Jan 2024 12:42:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IGDqIJQ4fKdfiQzQ5ioHUMMFh+CZBn4jdbFLJOFP8vHJCzPGs4zUL5boSGFd1NCurQ7wlrx X-Received: by 2002:a05:6358:938c:b0:176:51d2:802 with SMTP id h12-20020a056358938c00b0017651d20802mr7626486rwb.1.1706560934930; Mon, 29 Jan 2024 12:42:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706560934; cv=pass; d=google.com; s=arc-20160816; b=QE3nOY5VGOv4lNiyyrM0r8mKenEDwK4KhapyTJQiH314WFTWLvhq/oi2SueBYacW8V 8m2DRoOTHsCvroMjUk2H6ptnnXunu6/EkKoZ0PEuwtwpnXMxRDH31gKCer73ZbzkMKow yizGyOsgPxibZA28lFrEw087iDest15M+C2enO9AcT1uj3KHi4ltfBi/EbqYek6lc2nf v4PVuMUBaQhbzqc/fGmgS8nQyOzU+DXUpERUNMVuP5AwDjR1aJYadyFoR+c4PRlhvCh4 HITI57dHwQt2SvxOukuIHA6whhPeiq8Slxk8w9lCez+osXj1uTLcsCKBvWCtXuzdjFnM HKDg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=9sxjXg838bRXbRaSLrqzZkazlJ45vAJkIsDW6+B+UQw=; fh=nzxeE/TYNAMKFnNVzFRGzlLgExbBQK7SWWNZjNc8t74=; b=CTn4yQZ+GvvkwrqobDZSXHq4czbfknygT8hjAn2RJ3eFlF9kxNTpy0A44L+2a/w9q/ 7guv0z9H6S+q9OdptdkhdXvhFa1f+jeBKLyORC1i6wvgy/3SevdnMRXoomQBSs+hYptw cslk5Ex2iBLsjrLmAPoifBKYuIb8ssqcNuFqtftAqyF46kkaC3jmXd9EcTmgCSpXXNSw YEOJyJJO1rk3NExxpRYSt7WqHZk9JCzokxC+h1er5d9fAQyfB0G6KPZsfbf1cXWA8bZd CUHCcw+Dh8FSDfHk5Ug99Gn/uZ5fPIpUGz7lE/iCNlKD7ThKmJOHlqSohu9gs3joA1h7 iOOA== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=rjwysocki.net); spf=pass (google.com: domain of linux-kernel+bounces-43482-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-43482-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id l187-20020a633ec4000000b005cd811e2ffesi6279457pga.18.2024.01.29.12.42.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 12:42:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-43482-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=rjwysocki.net); spf=pass (google.com: domain of linux-kernel+bounces-43482-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-43482-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 08C4EB23C5D for ; Mon, 29 Jan 2024 20:41:12 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 26FEC156967; Mon, 29 Jan 2024 20:41:01 +0000 (UTC) Received: from cloudserver094114.home.pl (cloudserver094114.home.pl [79.96.170.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4226C604C5; Mon, 29 Jan 2024 20:40:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.96.170.134 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706560860; cv=none; b=AVJI+tHPw9Sp8cx/Q/4E2I1+xBymubPZuz5NPHi336DWA+8Ax5n2323Eo7rx+5YaGHBjWnyt6MYL5LM9V5kYr/TECnRIcRcizYQNfoVSPgLBTaE3MDT5rQt/kFeHWlS4eOozp5WVrgjwcubN/tkQhafbI5rUjcv3GvWYkXp7Ar0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706560860; c=relaxed/simple; bh=bgKBzEUJGevs+03viKCGW7Vn/kvA4V7Wl7NnMIBDmXI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=rZ7f4oP6CNmY4H3oYB451QU4C6Qpj8deUXrr+Ej97rKOY953a7aFoHLBZYPOqGfjwnfBo4CItRi04QdyK0fAWQ0Rjnw0jR7jool9ghDvaDVwcmTZw4mPc8RqxBbklaYqybyRfIvuHLAa5DUTb1Ctiz5/p+sr8cuUiG+rvpcAfls= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rjwysocki.net; spf=pass smtp.mailfrom=rjwysocki.net; arc=none smtp.client-ip=79.96.170.134 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rjwysocki.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rjwysocki.net Received: from localhost (127.0.0.1) (HELO v370.home.net.pl) by /usr/run/smtp (/usr/run/postfix/private/idea_relay_lmtp) via UNIX with SMTP (IdeaSmtpServer 5.4.0) id da105db8dd8b6701; Mon, 29 Jan 2024 21:40:54 +0100 Received: from kreacher.localnet (unknown [195.136.19.94]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by cloudserver094114.home.pl (Postfix) with ESMTPSA id 4F993669776; Mon, 29 Jan 2024 21:40:54 +0100 (CET) From: "Rafael J. Wysocki" To: Linux PM , Daniel Lezcano Cc: LKML , Lukasz Luba , Zhang Rui , Srinivas Pandruvada , Manaf Meethalavalappu Pallikunhi Subject: [PATCH v1] thermal: sysfs: Make trip hysteresis writable along with trip temperature Date: Mon, 29 Jan 2024 21:40:54 +0100 Message-ID: <4565526.LvFx2qVVIh@kreacher> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8" X-CLIENT-IP: 195.136.19.94 X-CLIENT-HOSTNAME: 195.136.19.94 X-VADE-SPAMSTATE: clean X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvkedrfedtgedguddvkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfjqffogffrnfdpggftiffpkfenuceurghilhhouhhtmecuudehtdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkggfgtgesthfuredttddtjeenucfhrhhomhepfdftrghfrggvlhculfdrucghhihsohgtkhhifdcuoehrjhifsehrjhifhihsohgtkhhirdhnvghtqeenucggtffrrghtthgvrhhnpeegfffhudejlefhtdegffekteduhfethffhieettefhkeevgfdvgfefieekiefgheenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecukfhppeduleehrddufeeirdduledrleegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepudelhedrudefiedrudelrdelgedphhgvlhhopehkrhgvrggthhgvrhdrlhhotggrlhhnvghtpdhmrghilhhfrhhomhepfdftrghfrggvlhculfdrucghhihsohgtkhhifdcuoehrjhifsehrjhifhihsohgtkhhirdhnvghtqedpnhgspghrtghpthhtohepjedprhgtphhtthhopehlihhnuhigqdhpmhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopegurghnihgvlhdrlhgviigtrghnoheslhhinhgrrhhordhorhhgpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtoheplhhukhgrshiirdhluhgsrges rghrmhdrtghomhdprhgtphhtthhopehruhhirdiihhgrnhhgsehinhhtvghlrdgtohhmpdhrtghpthhtohepshhrihhnihhvrghsrdhprghnughruhhvrggurgeslhhinhhugidrihhnthgvlhdrtghomh X-DCC--Metrics: v370.home.net.pl 1024; Body=7 Fuz1=7 Fuz2=7 From: Rafael J. Wysocki Trip point temperature can be modified via sysfs if CONFIG_THERMAL_WRITABLE_TRIPS is enabled and the thermal zone creator requested that the given trip be writable in the writable trips mask passed to the registration function. However, trip point hysteresis is treated differently - it is only writable if the thermal zone has a .set_trip_hyst() operation defined and neither CONFIG_THERMAL_WRITABLE_TRIPS, nor the writable trips mask supplied by the zone creator has any bearing on this. That is inconsistent and confusing, and it generally does not meet user expectations. For this reason, modify create_trip_attrs() to handle trip point hysteresis in the same way as trip point temperature, so they both are writable at the same time regardless of what trip point operations are defined for the thermal zone. Link: https://lore.kernel.org/linux-pm/20240106191502.29126-1-quic_manafm@quicinc.com Signed-off-by: Rafael J. Wysocki --- Notes: * I don't think that CONFIG_THERMAL_WRITABLE_TRIPS is very useful. The only thing controlled by it is whether or not the writable trip mask used during registration will have any effect and this is quite confusing. Some drivers select it for this reason which seems a bit odd to me. Maybe it can be dropped after the patch below? * IMO the writable trips mask itself is quite cumbersome and it would be better to mark individual trips as writable in the trips table passed during registration. This would be less prone to mistakes and it would allow the code to check whether or not the given trip should be writable (root can change sysfs file modes after all). If I'm not mistaken, this change should not be very hard to make, although it may take some time to switch over all of the relevant drivers from using the mask. --- drivers/thermal/thermal_sysfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-pm/drivers/thermal/thermal_sysfs.c =================================================================== --- linux-pm.orig/drivers/thermal/thermal_sysfs.c +++ linux-pm/drivers/thermal/thermal_sysfs.c @@ -474,7 +474,8 @@ static int create_trip_attrs(struct ther tz->trip_hyst_attrs[indx].name; tz->trip_hyst_attrs[indx].attr.attr.mode = S_IRUGO; tz->trip_hyst_attrs[indx].attr.show = trip_point_hyst_show; - if (tz->ops->set_trip_hyst) { + if (IS_ENABLED(v) && + mask & (1 << indx)) { tz->trip_hyst_attrs[indx].attr.attr.mode |= S_IWUSR; tz->trip_hyst_attrs[indx].attr.store = trip_point_hyst_store;