linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Antheas Kapenekakis <lkml@antheas.dev>
To: platform-driver-x86@vger.kernel.org
Cc: linux-hwmon@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-pm@vger.kernel.org, Guenter Roeck <linux@roeck-us.net>,
	Jean Delvare <jdelvare@suse.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Joaquin Ignacio Aramendia <samsagax@gmail.com>,
	Derek J Clark <derekjohn.clark@gmail.com>,
	Kevin Greenberg <kdgreenberg234@protonmail.com>,
	Joshua Tam <csinaction@pm.me>,
	Parth Menon <parthasarathymenon@gmail.com>,
	Eileen <eileen@one-netbook.com>,
	Antheas Kapenekakis <lkml@antheas.dev>
Subject: [PATCH v3 09/12] platform/x86: oxpec: Move pwm_enable read to its own function
Date: Sun,  9 Mar 2025 12:21:10 +0100	[thread overview]
Message-ID: <20250309112114.1177361-10-lkml@antheas.dev> (raw)
In-Reply-To: <20250309112114.1177361-1-lkml@antheas.dev>

Currently, this driver breaks ABI by using auto as 0 and manual as 1.
However, for pwm_enable, 0 is full speed, 1 is manual, and 2 is auto.
For the correction to be possible, this means that the pwm_enable
endpoint will need access to both pwm enable and value (as for
the 0th value, the fan needs to be set to full power).

Therefore, begin by moving the current pwm_enable read to its own
function, oxp_pwm_enable.

Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
---
 drivers/platform/x86/oxpec.c | 50 +++++++++++++++++++-----------------
 1 file changed, 27 insertions(+), 23 deletions(-)

diff --git a/drivers/platform/x86/oxpec.c b/drivers/platform/x86/oxpec.c
index eb7eafebbd37..471444fbd786 100644
--- a/drivers/platform/x86/oxpec.c
+++ b/drivers/platform/x86/oxpec.c
@@ -766,6 +766,32 @@ static int oxp_pwm_disable(void)
 	}
 }
 
+static int oxp_pwm_read(long *val)
+{
+	switch (board) {
+	case orange_pi_neo:
+		return read_from_ec(ORANGEPI_SENSOR_PWM_ENABLE_REG, 1, val);
+	case aok_zoe_a1:
+	case aya_neo_2:
+	case aya_neo_air:
+	case aya_neo_air_1s:
+	case aya_neo_air_plus_mendo:
+	case aya_neo_air_pro:
+	case aya_neo_flip:
+	case aya_neo_geek:
+	case aya_neo_kun:
+	case oxp_2:
+	case oxp_fly:
+	case oxp_mini_amd:
+	case oxp_mini_amd_a07:
+	case oxp_mini_amd_pro:
+	case oxp_x1:
+		return read_from_ec(OXP_SENSOR_PWM_ENABLE_REG, 1, val);
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
 /* Callbacks for hwmon interface */
 static umode_t oxp_ec_hwmon_is_visible(const void *drvdata,
 				       enum hwmon_sensor_types type, u32 attr, int channel)
@@ -863,29 +889,7 @@ static int oxp_platform_read(struct device *dev, enum hwmon_sensor_types type,
 			}
 			return 0;
 		case hwmon_pwm_enable:
-			switch (board) {
-			case orange_pi_neo:
-				return read_from_ec(ORANGEPI_SENSOR_PWM_ENABLE_REG, 1, val);
-			case aok_zoe_a1:
-			case aya_neo_2:
-			case aya_neo_air:
-			case aya_neo_air_1s:
-			case aya_neo_air_plus_mendo:
-			case aya_neo_air_pro:
-			case aya_neo_flip:
-			case aya_neo_geek:
-			case aya_neo_kun:
-			case oxp_2:
-			case oxp_fly:
-			case oxp_mini_amd:
-			case oxp_mini_amd_a07:
-			case oxp_mini_amd_pro:
-			case oxp_x1:
-				return read_from_ec(OXP_SENSOR_PWM_ENABLE_REG, 1, val);
-			default:
-				break;
-			}
-			break;
+			return oxp_pwm_read(val);
 		default:
 			break;
 		}
-- 
2.48.1


  parent reply	other threads:[~2025-03-09 11:21 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-09 11:21 [PATCH v3 00/12] hwmon: (oxpsensors) Add devices, features, fix ABI and move to platform/x86 Antheas Kapenekakis
2025-03-09 11:21 ` [PATCH v3 01/12] hwmon: (oxp-sensors) Distinguish the X1 variants Antheas Kapenekakis
2025-03-09 15:24   ` Guenter Roeck
2025-03-10 23:04   ` Derek John Clark
2025-03-09 11:21 ` [PATCH v3 02/12] hwmon: (oxp-sensors) Add all OneXFly variants Antheas Kapenekakis
2025-03-09 15:24   ` Guenter Roeck
2025-03-10 23:03   ` Derek John Clark
2025-03-10 23:19     ` Antheas Kapenekakis
2025-03-09 11:21 ` [PATCH v3 03/12] platform/x86: oxpec: Move hwmon/oxp-sensors to platform/x86 Antheas Kapenekakis
2025-03-10 23:17   ` Derek John Clark
2025-03-10 23:30     ` Antheas Kapenekakis
2025-03-10 23:39       ` Guenter Roeck
2025-03-09 11:21 ` [PATCH v3 04/12] ABI: testing: add tt_toggle and tt_led entries Antheas Kapenekakis
2025-03-10 23:25   ` Derek John Clark
2025-03-10 23:37     ` Antheas Kapenekakis
2025-03-09 11:21 ` [PATCH v3 05/12] power: supply: add inhibit-charge-s0 to charge_behaviour Antheas Kapenekakis
2025-03-10 23:30   ` Derek John Clark
2025-03-09 11:21 ` [PATCH v3 06/12] platform/x86: oxpec: Add charge threshold and behaviour to OneXPlayer Antheas Kapenekakis
2025-03-10 23:50   ` Derek John Clark
2025-03-11  0:02     ` Antheas Kapenekakis
2025-03-11 14:09   ` kernel test robot
2025-03-09 11:21 ` [PATCH v3 07/12] platform/x86: oxpec: Rename ec group to tt_toggle Antheas Kapenekakis
2025-03-10 23:51   ` Derek John Clark
2025-03-09 11:21 ` [PATCH v3 08/12] platform/x86: oxpec: Add turbo led support to X1 devices Antheas Kapenekakis
2025-03-10 23:57   ` Derek John Clark
2025-03-09 11:21 ` Antheas Kapenekakis [this message]
2025-03-10 23:26   ` [PATCH v3 09/12] platform/x86: oxpec: Move pwm_enable read to its own function Derek John Clark
2025-03-09 11:21 ` [PATCH v3 10/12] platform/x86: oxpec: Move pwm value read/write to separate functions Antheas Kapenekakis
2025-03-10 23:58   ` Derek John Clark
2025-03-09 11:21 ` [PATCH v3 11/12] platform/x86: oxpec: Move fan speed read to separate function Antheas Kapenekakis
2025-03-10 23:58   ` Derek John Clark
2025-03-09 11:21 ` [PATCH v3 12/12] platform/x86: oxpec: Adhere to sysfs-class-hwmon and enable pwm on 2 Antheas Kapenekakis
2025-03-11  0:02   ` Derek John Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250309112114.1177361-10-lkml@antheas.dev \
    --to=lkml@antheas.dev \
    --cc=corbet@lwn.net \
    --cc=csinaction@pm.me \
    --cc=derekjohn.clark@gmail.com \
    --cc=eileen@one-netbook.com \
    --cc=jdelvare@suse.com \
    --cc=kdgreenberg234@protonmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=parthasarathymenon@gmail.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=samsagax@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).