From patchwork Sun Mar 3 15:31:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 209317 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp972723dyc; Sun, 3 Mar 2024 07:43:10 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWkxXhTGyFPwDu/fwHxKms+9qYCnmMBR2iiih6c/Ec18rYpjTpZzgdxwJkXNPTcEs5jbvN6bCSN+3XYT+fHmbEuPRdSkw== X-Google-Smtp-Source: AGHT+IFKLddyJvHrubmHU6PCBdBGP9yR4VamrWErP3JZvf63GkA4kzuQj2CewzQZvQbB6ygX1tfW X-Received: by 2002:a05:6a00:3025:b0:6e6:136b:e16 with SMTP id ay37-20020a056a00302500b006e6136b0e16mr1312133pfb.22.1709480590691; Sun, 03 Mar 2024 07:43:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709480590; cv=pass; d=google.com; s=arc-20160816; b=llROIo83QqCuGsXTMpRUmam+RYId/nvssV+n4toHY1bYDHjMqwlz98wAoJFAUhkUnP ZjOC6wtPpVrpIbANLahLHDQyRprxIXlUgIPJ1voL6zPWBi44da5vsm38MlAzk7OILock LCnqUOnRsFLLrHJhMBbn5eOUVWO1a9naCMoxM7iC7ZJ6/gogu5A9lxGnSz7hLDhcT3Vw YmF5+sLmr41/k7QDhfRvJborBYc4Ms8pUqu/7fyjF+0N3fa1//Pp8O63EsGSIYlYNeSb 4P+fbZDLHkQ+yfWsL5EWWqFOAl8tVX4fdbFWn+rJB7sRk5/tNTCHttBb3Q/0vK3sVc4H fpQw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=20xmk/5xBU9kGmFvofK5ObWS5VMArh5eFVXJOsXttaQ=; fh=dENBTHx7kJ0jlNJaErTJ7Ld+rhETTNznjDk+Wc/4RaE=; b=dxp7xGT2AKUyqfkTcfsnVU+T2P1BYlyHgQgpE2c85cM3IcKlaW0rCCBjaxFsHSOzx+ sKzUKVwzHq6ITWprRoU9gbbqytU0qtTccIgm3W/J3eai/YtqZfXcCNCXkMOWFfOpfRoj ywkjwVSzNVLsDXLkfBaPqFEc8TehBdwkcU7ihnEZG4ukKLVDjiHZVnoKdLgLAiiROI5P kXVVJywhVlhIKwIgzNzK8KyFE5DmbeNKUtO/18tTxuC8gLBVmexchZNl1L8oKHNt30F9 7JbJKEQYp07lOkzhARU+sIh21kasr3r7aZoqiPqUo/AnA6QxsSzM7Qw+F1WnPXp1+5Zv tvzw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=qSBoFGGm; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89801-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89801-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id b7-20020a631b07000000b005dc75bb7b73si6669218pgb.875.2024.03.03.07.43.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Mar 2024 07:43:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89801-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=qSBoFGGm; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89801-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89801-ouuuleilei=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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 676E9288835 for ; Sun, 3 Mar 2024 15:32:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8556169E08; Sun, 3 Mar 2024 15:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b="qSBoFGGm" Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (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 9941E5A107; Sun, 3 Mar 2024 15:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.69.126.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; cv=none; b=ik2hEOg8TGy26MmcESy3uWbPHMa3DvgxnFhdp3oM5GrCgQJObfHsoyh3oXAfhT+GDzlEPxoUTqnU9wGzYDuV6ZB0x9DN+XzLLGJ9PvhlfnPbLkSjEyqn1Akw9Odo8Z3q3HxA6UZNEK2CIcr3l+ODKeDaRX4cMIxUPPDQImjIFdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; c=relaxed/simple; bh=7Y+sg6xU/tnRXb7nijX/qTcZu9YebnvPyPbqD2+B3oc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LFEqHrQbs5HVUddafAtxPkvg+kErF6/cRJdMRJciNjMIp+ck15Ia/n1xFxv8PNY6IFDdlGCOQIx83254RLoOf2VFKUOys8PkzPbJKkD2/SPpxhpAp10p6yGBIWQGaOP0oJ5JSlRclrb/B8tfCOhxPZ0LKNC6Mdwu4MURdqnFUQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net; spf=pass smtp.mailfrom=weissschuh.net; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b=qSBoFGGm; arc=none smtp.client-ip=159.69.126.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=weissschuh.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1709479880; bh=7Y+sg6xU/tnRXb7nijX/qTcZu9YebnvPyPbqD2+B3oc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=qSBoFGGmRDRvcBmdFarxZfB6CRYQi137tHupqZF9EWxtpaBPBOwUoC20rfFZAO/uq pJbuKtX5zxcrYjLkLSpk1H2LjNfHk8piSbazm+d9J8uytHCANIyC/iG6CuMc2ej277 kQDEZaI7GJu14tYkKHbt++UDSxhVe5rlTdqWUyHs= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Sun, 03 Mar 2024 16:31:13 +0100 Subject: [PATCH v2 1/4] power: supply: mm8013: fix "not charging" detection Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240303-power_supply-charge_behaviour_prop-v2-1-8ebb0a7c2409@weissschuh.net> References: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> In-Reply-To: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> To: Sebastian Reichel , Hans de Goede , Konrad Dybcio Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , =?utf-8?q?Thomas_Wei?= =?utf-8?q?=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1709479879; l=2437; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=7Y+sg6xU/tnRXb7nijX/qTcZu9YebnvPyPbqD2+B3oc=; b=IQvGhFBz5UJ3o+kOa80uOHlJwACcG9eD17Q1U+K31JZAr2mT1CIU5BeoN15u290SdZ83ox6S8 N2XHc5u5mhOBfFp7yyPtJNSJ8C2Q7UBqtgG6bVtYx1hrhLL4x7i1Zam X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792520319652809402 X-GMAIL-MSGID: 1792520319652809402 The charge_behaviours property is meant as a control-knob that can be changed by the user. Page 23 of [0] which documents the flag CHG_INH as follows: CHG_INH : Charge Inhibit When the current is more than or equal to charge threshold current, charge inhibit temperature (upper/lower limit) :1 charge permission temperature or the current is less than charge threshold current :0 So this is pure read-only information which is better represented as POWER_SUPPLY_STATUS_NOT_CHARGING. [0] https://product.minebeamitsumi.com/en/product/category/ics/battery/fuel_gauge/parts/download/__icsFiles/afieldfile/2023/07/12/1_download_01_12.pdf Signed-off-by: Thomas Weißschuh --- drivers/power/supply/mm8013.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/power/supply/mm8013.c b/drivers/power/supply/mm8013.c index caa272b03564..20c1651ca38e 100644 --- a/drivers/power/supply/mm8013.c +++ b/drivers/power/supply/mm8013.c @@ -71,7 +71,6 @@ static int mm8013_checkdevice(struct mm8013_chip *chip) static enum power_supply_property mm8013_battery_props[] = { POWER_SUPPLY_PROP_CAPACITY, - POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR, POWER_SUPPLY_PROP_CHARGE_FULL, POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, POWER_SUPPLY_PROP_CHARGE_NOW, @@ -103,16 +102,6 @@ static int mm8013_get_property(struct power_supply *psy, val->intval = regval; break; - case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: - ret = regmap_read(chip->regmap, REG_FLAGS, ®val); - if (ret < 0) - return ret; - - if (regval & MM8013_FLAG_CHG_INH) - val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; - else - val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; - break; case POWER_SUPPLY_PROP_CHARGE_FULL: ret = regmap_read(chip->regmap, REG_FULL_CHARGE_CAPACITY, ®val); if (ret < 0) @@ -187,6 +176,8 @@ static int mm8013_get_property(struct power_supply *psy, if (regval & MM8013_FLAG_DSG) val->intval = POWER_SUPPLY_STATUS_DISCHARGING; + else if (regval & MM8013_FLAG_CHG_INH) + val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING; else if (regval & MM8013_FLAG_CHG) val->intval = POWER_SUPPLY_STATUS_CHARGING; else if (regval & MM8013_FLAG_FC) From patchwork Sun Mar 3 15:31:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 209315 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp968638dyc; Sun, 3 Mar 2024 07:32:34 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX9FND7HibVVnevT6ZJOaB12Pq1pH30z82VvRvyzbT+Ro4VmpZxy3YuARTNTEXbaeXmI/GmR2POFWxYKW/EbFuypEduPg== X-Google-Smtp-Source: AGHT+IFlWftP7h3Je5BdzlMexCoE/0jhk6IibqGusj4hN5gI5ErTTEifJK4XeKWbs9tGSCaCR9L3 X-Received: by 2002:a05:6808:1929:b0:3c1:e869:2ee1 with SMTP id bf41-20020a056808192900b003c1e8692ee1mr3817630oib.24.1709479953866; Sun, 03 Mar 2024 07:32:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709479953; cv=pass; d=google.com; s=arc-20160816; b=ceiGmwT24/OSSKmrTWe9IF/rM/V7eN797FnSWtf6OQ4V9t5xkjycRRDqsfI5WkTc5S jOON/hyS8DqZEfPeYLKWmLO0WzYcAoI+XlRdfpqfSh6FsQSHyFCarfGGBtQZt2tkfixT N8zGNEvcAMyzZk8lrmeyS+KMvlQ+ZP93xVhk585jUYMTazjXphecWIlbme0WsBhPUoX+ sj0hp3iMcG0d9dck1l/8wN3et4eNGpX7f3dyvpIUwWFFT1u7AoxXBe/7UHwQiyZwThd0 xVJacdsxJO5O+TVjC09CT4ey+nol5xov4yLu20sPKQo/KN0d/vQjXXvbOCunKujIV/Cu WLYg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=rHtGfVlYDcs4R0JqDjPkYkwLYaO27oNgi9PID/zsU7E=; fh=dENBTHx7kJ0jlNJaErTJ7Ld+rhETTNznjDk+Wc/4RaE=; b=mlg7gqdGK+B9X+tSdYbZgB8EDTKsdgByACDzQwrroFq9IfGQUhvbFmBYDxmknxxZcj pmvtz/xzVphxelqBA5zyOvXF8AJLk8QzgcLulaioRWcrv9jkaXIIYqHafP4GXpJ0SzKg H2rkLWgjcmFKl2yIx/iHSYBIQNxde2o2gAsE43ItbjgnCdhIJlzh+T6b2IKjTzViSs24 VGI1yjRnqaWWA2KxL9lL5FjHw9nZA25vMcieKC/8S3Zr8ULnIh5tFMx++7NlccbLZYro x0I/4PRl4rgDo3ouFsMlJqYDU0XSOATowmSHg9xIp1UMFi+WJSdXkHta8+r5h3D/sHek wPsQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=STo5rBOq; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89800-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89800-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id ey8-20020a05622a4c0800b0042eef5963basi774762qtb.671.2024.03.03.07.32.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Mar 2024 07:32:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89800-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=STo5rBOq; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89800-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89800-ouuuleilei=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id A0BBE1C21A46 for ; Sun, 3 Mar 2024 15:32:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 272FC69DE1; Sun, 3 Mar 2024 15:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b="STo5rBOq" Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (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 47DED67C43; Sun, 3 Mar 2024 15:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.69.126.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479892; cv=none; b=ZwbDIymB/V9P9p0EH8Y2zydrKiIVZz1ix/wCOZiicGfZSNLHr6gG6Nu260CHEeOkwo8ciEf1ky+Uut7AHKdp4CBHU6GiDhrjcVM9m615N0zPBChZixDtPO6UudN0uL7Zc2VSBJQ5e6dENgah52qJeOEuE9YGVOeRgXPwtbo22zE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479892; c=relaxed/simple; bh=vO0wi2by1WM0BWnFkPRqBVKMUBA1OoHp/KPmP50MDPk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cDHoCX/y3a7You53ezbFYQdnH4Vz0Ay6osBKDEljqKN919zLo6uOgbMgh1wD8VRJH5yVRo+4OXtqyLf4BVr07TPQIi82nG38CmBQd/wvK5UTGSPbv3rgCWS9lm/XBJP4oAkmAH8+wPeyNOmhQEwldah/4JZ1dI0sobZ80DXk68g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net; spf=pass smtp.mailfrom=weissschuh.net; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b=STo5rBOq; arc=none smtp.client-ip=159.69.126.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=weissschuh.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1709479880; bh=vO0wi2by1WM0BWnFkPRqBVKMUBA1OoHp/KPmP50MDPk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=STo5rBOqunq7z5IG7wu5dKvIA21c5NhAPYn8+cuq24n/Jhmfbey52WnUd3saXvOib lmFqOc0+d6dojbXEDmVKLFlriXFtVfStoMX7D/euAS4ubVg79IbwHhQfxNc28sfB3C lKlB7Js9uLTD4BntdbzoS2fbU5Vf/V3dGNaI1avQ= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Sun, 03 Mar 2024 16:31:14 +0100 Subject: [PATCH v2 2/4] power: supply: core: ease special formatting implementations Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240303-power_supply-charge_behaviour_prop-v2-2-8ebb0a7c2409@weissschuh.net> References: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> In-Reply-To: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> To: Sebastian Reichel , Hans de Goede , Konrad Dybcio Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , =?utf-8?q?Thomas_Wei?= =?utf-8?q?=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1709479879; l=1698; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=vO0wi2by1WM0BWnFkPRqBVKMUBA1OoHp/KPmP50MDPk=; b=a4Tl17+Sqj9JWs4YaN8gTyUAG/AsZ3gSSPoZt8UeygTkJQEzuF9NsdqZb1pGUJMgoyw2rQ7Tg Zn8LkgaBgGiBhXTaqmL8u+iil5YwHxL5grGwjfDu4HtLuCyrnXTJjEd X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792519651724811558 X-GMAIL-MSGID: 1792519651724811558 By moving the conditional into the default-branch of the switch new additions to the switch won't have to bypass the conditional. This makes it easier to implement those special cases like the upcoming change to the formatting of "charge_behaviour". Suggested-by: Hans de Goede Link: https://lore.kernel.org/lkml/53082075-852f-4698-b354-ed30e7fd2683@redhat.com/ Signed-off-by: Thomas Weißschuh --- drivers/power/supply/power_supply_sysfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c index 977611e16373..10fec411794b 100644 --- a/drivers/power/supply/power_supply_sysfs.c +++ b/drivers/power/supply/power_supply_sysfs.c @@ -298,11 +298,6 @@ static ssize_t power_supply_show_property(struct device *dev, } } - if (ps_attr->text_values_len > 0 && - value.intval < ps_attr->text_values_len && value.intval >= 0) { - return sysfs_emit(buf, "%s\n", ps_attr->text_values[value.intval]); - } - switch (psp) { case POWER_SUPPLY_PROP_USB_TYPE: ret = power_supply_show_usb_type(dev, psy->desc, @@ -312,7 +307,12 @@ static ssize_t power_supply_show_property(struct device *dev, ret = sysfs_emit(buf, "%s\n", value.strval); break; default: - ret = sysfs_emit(buf, "%d\n", value.intval); + if (ps_attr->text_values_len > 0 && + value.intval < ps_attr->text_values_len && value.intval >= 0) { + ret = sysfs_emit(buf, "%s\n", ps_attr->text_values[value.intval]); + } else { + ret = sysfs_emit(buf, "%d\n", value.intval); + } } return ret; From patchwork Sun Mar 3 15:31:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 209316 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp972564dyc; Sun, 3 Mar 2024 07:42:42 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX3kEcbpcokEX11GzTuD29WHMQObfY8w9Pt72pjbZ3Z6+Ejkzbbh3ITrnvtdYsZqwimKQIyuaekrp2cxhPVBDKw/tZ8PA== X-Google-Smtp-Source: AGHT+IHCjjNsqno+IveMv6I9xh2ruIDLya2BaxLyqipImp5lZktVzPqD1vLii5fR9CGSnY6lq6PW X-Received: by 2002:a05:6808:14cc:b0:3c1:ad42:fb3e with SMTP id f12-20020a05680814cc00b003c1ad42fb3emr8274166oiw.10.1709480561763; Sun, 03 Mar 2024 07:42:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709480561; cv=pass; d=google.com; s=arc-20160816; b=L+FS2XZ7xdL1dG8S4ILFFjD2pf07xSW+XO+V29Xkg6XBWeUqKD/7gNj1MVCwZWySom Ka3RIkMkrxwqNsxgoYT211o4YdZgw4UnjGD/HJBGwP67AC7IAvP+V6p2k/Ynhpq1/wjZ vJ73Yck2dpLOoH79jF3OVKlZehsXtRi6eHR+oMNi+o7aHHSUdksZIgFhN6HbzdoUFGQ2 PQynm0JMDSFqghjlpJeHBbhnD4gIqba2mp6UOVZ+wTqxPF6wJiIWYHooAaoJPxbnToEk 6hLNsX26Hhbh/8YHrJPDqjmJO4l3I2qqbByNK17KQAYYlDTq+LTzjXdc7WnwaE4nUJZY Tw1g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=IDXCSR7rsE+YK67QmmhztJKlieIzCBqDX0ECWnAbMZU=; fh=dENBTHx7kJ0jlNJaErTJ7Ld+rhETTNznjDk+Wc/4RaE=; b=sR8UrF8z/65W4GuVLfuTTObjpnUfCGaLCNGJ7koEtn6IA+7Ateo/S38XBPpyPMlBGT QVZgdA59EhmVk42fv2BdKwCUdoNhj3U3BZl2jEbuny9BiL7sl0nmKNqBsPJbZlkKU0n9 za3CxdIj/Nl+BgpS/YQthdYYEsUArmD5W6XGRpagaNfK37sYgjQOKj1DhLmPRuAupjDA 8U79XTZnVi2/DqOR/z25dQvVM1ABz71bE6hpse6VpBnsPTXcqep/XW4hkXuDjKYj8gpV zxC5ZByCbbg7jX35YTZ5i0Up1uwltCySD1ExCXIYiNH0I7mc/ZYXwfanunxtWzD5p/B/ EWQw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b="Af/JS/9K"; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89802-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89802-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id u15-20020a63f64f000000b005dbd518e89esi6998537pgj.761.2024.03.03.07.42.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Mar 2024 07:42:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89802-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b="Af/JS/9K"; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89802-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89802-ouuuleilei=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 sv.mirrors.kernel.org (Postfix) with ESMTPS id E0E73288843 for ; Sun, 3 Mar 2024 15:32:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 87E2869E09; Sun, 3 Mar 2024 15:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b="Af/JS/9K" Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (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 47D7467A19; Sun, 3 Mar 2024 15:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.69.126.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; cv=none; b=RN8HViUZkMR+iv+CLbuTR1NpeyBohM1NjEkpD8Nn4gWnNcpRfdxtA1jHALCS/yc9ULvlqbXUuqViLyE4eMt4drZHmzTFdK34t1rCEXuUI0bg8U8whSJB0Ftmr0xA6BM2Z1eZL84tHOL0rG3cYzJeLM42KtXrLtWjQY8uZKrtHUs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; c=relaxed/simple; bh=fE1ygv1xYb2HYZUOI0x3ptRJowm9HrcXCdzDrxnyxeM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IhTS+eIKAwr8F1sFPFz1WWEB5dRsY35g6hWOLB6+QZ1XSp8BOKsTy2zC5vVtRCX/mVkAMkyOIFey5gl2enJoVisOxzNHyYJyHyxpRYHUVo5EuRrpKpuijevg+HPxjCZcu7Ua6zQJWFcHufUO99HJRcdMTOh5LHSTA0F6oX34Te8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net; spf=pass smtp.mailfrom=weissschuh.net; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b=Af/JS/9K; arc=none smtp.client-ip=159.69.126.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=weissschuh.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1709479880; bh=fE1ygv1xYb2HYZUOI0x3ptRJowm9HrcXCdzDrxnyxeM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Af/JS/9Kt4KdQ6bu0kzZ8NvVB/YI2b3GVeQ9EiWlSbJ4xdPKjZWi3OVYzImqhNrU4 atexIMqonVVXufcC+DUjT6ON0NzfZXHUNkReyHRy1zWAFBUeaiR/oNZqI5OmL3iP1Y kyscKTMdSLW4TK4zjN7YUZkD4khUu4jXZUoDj75I= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Sun, 03 Mar 2024 16:31:15 +0100 Subject: [PATCH v2 3/4] power: supply: core: fix charge_behaviour formatting Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240303-power_supply-charge_behaviour_prop-v2-3-8ebb0a7c2409@weissschuh.net> References: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> In-Reply-To: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> To: Sebastian Reichel , Hans de Goede , Konrad Dybcio Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , =?utf-8?q?Thomas_Wei?= =?utf-8?q?=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1709479879; l=2886; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=fE1ygv1xYb2HYZUOI0x3ptRJowm9HrcXCdzDrxnyxeM=; b=sfdWoZTYKANqBRjwaPPhtrEBieQe4GFAgpyFXMfHn5dcLMAEOywqcu6+l/zZo5uoqEXNF+6A7 qaRltUz4qwWDk8YzAzd6maTHUomulkZmcj4SoPGHmJwjg5q3CAOc+9w X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792520289663780839 X-GMAIL-MSGID: 1792520289663780839 This property is documented to have a special format which exposes all available behaviours and the currently active one at the same time. For this special format some helpers are provided. However the default property logic in power_supply_sysfs.c is not using the helper and the default logic only prints the currently active behaviour. Adjust power_supply_sysfs.c to follow the documented format. There are currently two in-tree drivers exposing charge behaviours: thinkpad_acpi and mm8013. thinkpad_acpi is not affected by the change, as it directly uses the helpers and does not use the power_supply_sysfs.c logic. As mm8013 does not set implement desc->charge_behaviours. the new logic will preserve the simple output format in this case. Fixes: 1b0b6cc8030d ("power: supply: add charge_behaviour attributes") Signed-off-by: Thomas Weißschuh --- drivers/power/supply/power_supply_sysfs.c | 20 ++++++++++++++++++++ include/linux/power_supply.h | 1 + 2 files changed, 21 insertions(+) diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c index 10fec411794b..a20aa0156b0a 100644 --- a/drivers/power/supply/power_supply_sysfs.c +++ b/drivers/power/supply/power_supply_sysfs.c @@ -271,6 +271,23 @@ static ssize_t power_supply_show_usb_type(struct device *dev, return count; } +static ssize_t power_supply_show_charge_behaviour(struct device *dev, + struct power_supply *psy, + union power_supply_propval *value, + char *buf) +{ + int ret; + + ret = power_supply_get_property(psy, + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR, + value); + if (ret < 0) + return ret; + + return power_supply_charge_behaviour_show(dev, psy->desc->charge_behaviours, + value->intval, buf); +} + static ssize_t power_supply_show_property(struct device *dev, struct device_attribute *attr, char *buf) { @@ -303,6 +320,9 @@ static ssize_t power_supply_show_property(struct device *dev, ret = power_supply_show_usb_type(dev, psy->desc, &value, buf); break; + case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: + ret = power_supply_show_charge_behaviour(dev, psy, &value, buf); + break; case POWER_SUPPLY_PROP_MODEL_NAME ... POWER_SUPPLY_PROP_SERIAL_NUMBER: ret = sysfs_emit(buf, "%s\n", value.strval); break; diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index c0992a77feea..a50ee69503bf 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -242,6 +242,7 @@ struct power_supply_config { struct power_supply_desc { const char *name; enum power_supply_type type; + u8 charge_behaviours; const enum power_supply_usb_type *usb_types; size_t num_usb_types; const enum power_supply_property *properties; From patchwork Sun Mar 3 15:31:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 209318 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:fa17:b0:10a:f01:a869 with SMTP id ju23csp972738dyc; Sun, 3 Mar 2024 07:43:12 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUKgvpoxD84RhlGrCWNt5gGVoGlzzl2C0YHogs3S47o2vR7JTtPnUII6+ek7X9+QPmHjB5E0G0U652evfFCDgJmNfEQ3g== X-Google-Smtp-Source: AGHT+IHbMaNLLbvAF3cpZ5ZLYfhDUYxCfKPxEc+9MiM4xg8BSTaJLQ/sjaHV7oODslRt4HTyYOsG X-Received: by 2002:a05:6e02:1a01:b0:363:bdb9:72af with SMTP id s1-20020a056e021a0100b00363bdb972afmr9805601ild.23.1709480592435; Sun, 03 Mar 2024 07:43:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709480592; cv=pass; d=google.com; s=arc-20160816; b=UkGWJnhY3BJFkZOCum/yDor6unUKJUIfbFFJof6iViznBiB8zuA93dR2NcHcGYnI9I mCqqJEVdCiNctTaWnwRuxSkRCxy66QGNJXIybtUMqNVSc5izpDdeuYBxSl60ivq2mzi9 VfGD0iyDnKSZ5R1RiMj8JZZnN2xK7ue6AEKPLZmaJdLDnApUoMylPse1BTfbMXSmQs7i kt5aKP/meV8BgOloMNg4kHwDE8KPkqvd6DY0zE0SNZJLVzj2YS9sAqLqDevtxU3dMMS6 jdoPaZHvl+8g0VWlJIT6LM2SsoxdgYeBrEOm62UuYV6iXCXwmDQn9xV8J0o5r4hK8yGq sbKg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=7PwZfrUq4/Nv0LPLdkhxIlDtyfwbWuXCsc8I5wrJlls=; fh=dENBTHx7kJ0jlNJaErTJ7Ld+rhETTNznjDk+Wc/4RaE=; b=bx5D9voMqvUUrejKHB1oa52fY1NILJLWKPGRRNLT63mjgUOOqTXoeSu+aXjvnuEKyI Kw027BUigaoFQW9XM/MXKBBulRXMcz9Ul0R3pnVKZY8J5fv5tLGhAXsm2PC/6hCVnkjF yKC0vo69mRPFtXEet6nHBEIPz8Zaj6/6/feZR856nRFoUMP1HDef7Gmx1wYk6d72L2VG 5DBOaFt+bvTBWrblCqP89UncU/Zr31FhSMdP6hw+4UAgtcto1ddcljDl97ho5BqzLtUI O/5o3h+Jj2tJxSXTJ0Hr8O828Ky7/ib7zPqtXVSGwYQdK3NXi1uzHU2m09fuQp4HO/21 5VPg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=ed4xwleR; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89803-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89803-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id b16-20020a63d810000000b005d8e1dc1df6si7211092pgh.731.2024.03.03.07.43.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Mar 2024 07:43:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-89803-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@weissschuh.net header.s=mail header.b=ed4xwleR; arc=pass (i=1 spf=pass spfdomain=weissschuh.net dkim=pass dkdomain=weissschuh.net); spf=pass (google.com: domain of linux-kernel+bounces-89803-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-89803-ouuuleilei=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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 628BB288913 for ; Sun, 3 Mar 2024 15:32:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DCC2D69E1F; Sun, 3 Mar 2024 15:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b="ed4xwleR" Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) (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 47DB367A1D; Sun, 3 Mar 2024 15:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.69.126.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; cv=none; b=cEFgVdzYyjdIxLg0U0OLypbebUSeZSydgbadap10l3oKIdTrw9BJK20dsbhJLv/VyQxei/4MyODjXZd4FNLblyOjeUw29od55EV4aV3l6K2QVU/ksZG3H8PY/in50ucx1R1wNLILotz+xSDPZcPANVip2GTpI/YlMQzIHAECClg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479893; c=relaxed/simple; bh=uSL4zHrRtxegcQPlUUbn7PFzXuC2VWmGYlhL0gi2nWI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FiB9BYX8qHMrL0Wr64N1d4KRrWs+Y5Z0vtgdUy2WjvKK783BrscenvWt4fgwe0GSxcvOhAU3u2Xblp7tcMEqMyC9+G9nFlSEoKuKkMgwydoYEhb1mO9PDhymjmnQQ5GUWCBbljXOA0zkMS//sCtV67rLXOjMz/f3yGHn0v/rq4k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net; spf=pass smtp.mailfrom=weissschuh.net; dkim=pass (1024-bit key) header.d=weissschuh.net header.i=@weissschuh.net header.b=ed4xwleR; arc=none smtp.client-ip=159.69.126.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=weissschuh.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=weissschuh.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=weissschuh.net; s=mail; t=1709479880; bh=uSL4zHrRtxegcQPlUUbn7PFzXuC2VWmGYlhL0gi2nWI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ed4xwleRDJ84ipdoh3Z5HFWfQdsX7BXILqmE7GG3jjRPQF5lr5BJLJ8h9hXVYMpFh n5rCJakdPL+CXQNS2Ddo8FIoqce9Rt2qcrpM2kwN5fBhzz9ToQbcj+rMJDbKaa81wo /BnGmzZNRpUiT5R+i3N4dsoZADLCu9LEYLTciopg= From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= Date: Sun, 03 Mar 2024 16:31:16 +0100 Subject: [PATCH v2 4/4] power: supply: test-power: implement charge_behaviour property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240303-power_supply-charge_behaviour_prop-v2-4-8ebb0a7c2409@weissschuh.net> References: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> In-Reply-To: <20240303-power_supply-charge_behaviour_prop-v2-0-8ebb0a7c2409@weissschuh.net> To: Sebastian Reichel , Hans de Goede , Konrad Dybcio Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , =?utf-8?q?Thomas_Wei?= =?utf-8?q?=C3=9Fschuh?= X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1709479879; l=2814; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=uSL4zHrRtxegcQPlUUbn7PFzXuC2VWmGYlhL0gi2nWI=; b=VBPfUTlYlMVvpfwyZ0EUwuk/b6rXS/LCIf/SFUH7VkqycelzdsFR+rB3puZy85hSyhQdRcEHX b2cl1z5dlIZBXQoCn83KJOKyjXaF5VEoPX0BgPmTT2e4elka/XJ+MfL X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792520322028213308 X-GMAIL-MSGID: 1792520322028213308 To validate the special formatting of the "charge_behaviour" sysfs property add it to the example driver. Signed-off-by: Thomas Weißschuh --- drivers/power/supply/test_power.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/power/supply/test_power.c b/drivers/power/supply/test_power.c index 0d0a77584c5d..1dfbaabb8086 100644 --- a/drivers/power/supply/test_power.c +++ b/drivers/power/supply/test_power.c @@ -35,6 +35,8 @@ static int battery_capacity = 50; static int battery_voltage = 3300; static int battery_charge_counter = -1000; static int battery_current = -1600; +static enum power_supply_charge_behaviour battery_charge_behaviour = + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; static bool module_initialized; @@ -123,6 +125,9 @@ static int test_power_get_battery_property(struct power_supply *psy, case POWER_SUPPLY_PROP_CURRENT_NOW: val->intval = battery_current; break; + case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: + val->intval = battery_charge_behaviour; + break; default: pr_info("%s: some properties deliberately report errors.\n", __func__); @@ -131,6 +136,26 @@ static int test_power_get_battery_property(struct power_supply *psy, return 0; } +static int test_power_battery_property_is_writeable(struct power_supply *psy, + enum power_supply_property psp) +{ + return psp == POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR; +} + +static int test_power_set_battery_property(struct power_supply *psy, + enum power_supply_property psp, + const union power_supply_propval *val) +{ + switch (psp) { + case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: + battery_charge_behaviour = val->intval; + break; + default: + return -EINVAL; + } + return 0; +} + static enum power_supply_property test_power_ac_props[] = { POWER_SUPPLY_PROP_ONLINE, }; @@ -156,6 +181,7 @@ static enum power_supply_property test_power_battery_props[] = { POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_CURRENT_AVG, POWER_SUPPLY_PROP_CURRENT_NOW, + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR, }; static char *test_power_ac_supplied_to[] = { @@ -178,6 +204,11 @@ static const struct power_supply_desc test_power_desc[] = { .properties = test_power_battery_props, .num_properties = ARRAY_SIZE(test_power_battery_props), .get_property = test_power_get_battery_property, + .set_property = test_power_set_battery_property, + .property_is_writeable = test_power_battery_property_is_writeable, + .charge_behaviours = BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO) + | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE) + | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE), }, [TEST_USB] = { .name = "test_usb",