From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) (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 4789B38333A for ; Wed, 3 Jun 2026 02:25:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780453533; cv=none; b=HfRj4lKHArZ5WfCn+M9B34A4XJ5P0RDI9HDEEaxQ9i3Sqxt6jrO4JomQ6BhGQ/fvLPCtJJbS3GMd8f8QnoYke0cj19OLW/M1HZLBcr0oDtRKYdj1Myw1F6i16eDGEC/4etjZ6Yzw2otHOtA7mg+Vu5JL4D7qErdWi4LCAETe1PY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780453533; c=relaxed/simple; bh=UQDsMPCcAMgsOmMelDpxlk1dtnw15PoU7ODWqDB8cI8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=caeY2xpEiOktYTQ0MUGhRxWA3Qt1uuz3WQY3t5DrfwdML3vDM5X5c9SzXKuayx/YpCUs4slUaxHySbQje+cQlDISG2NC3l/VM9b+FIDSEjmFUApaLpeehUZvxLjmXL4BBMureAfR3n/7PL/uhCFjZAsu9r+diwR1wASO2YtLpfQ= 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=gwDFnuQu; arc=none smtp.client-ip=74.125.82.172 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="gwDFnuQu" Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-304e6c6464dso2113254eec.1 for ; Tue, 02 Jun 2026 19:25:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780453530; x=1781058330; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=JEFK1C6syKES+KOJB0d6AfPdbHmWanh+azd/cROxIt4=; b=gwDFnuQu9DSRNOq9bGT4SiTJhctFg94oungqXQL194KMg6OBZK+uAiGjJv0yyX+48M qUNxQ2rYgM4k0Xsa/2Q2IUjID92vz5QDXN8tEXoYWAhRDtuf311rviwcfCzlIpGMgdDi 7DTn2XGuDFbfHYFiZ8/vUhgsqlgH2qW6tKxDGaxmRPNog2wvukr1Xh6tEgN2xBFcoD6c wQgSL3prDltRhofsq57V7IOQ/Bxbb8iKiUKyDQwkotiKAPVIHr9Pq+QF3aGLZy8/ORcA 3Lt0C6tKdAloz9vBDH9A2+V7crkwxWvWkHdbOvjhNRnI5OR6uPBn1yG4s1mSh8eodNo4 6hjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780453530; x=1781058330; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JEFK1C6syKES+KOJB0d6AfPdbHmWanh+azd/cROxIt4=; b=SlYd9ekSKplNxVX9U0+Fnu9btqot/ktyIAfR3rim0DOY3kVdC1BCHjC1/pCZgt1eiN E/lsi6qyDkRWl5DxzI09rrTA7A87oXciXYtB38aZX2O0VDdnLyc68wr2+KYKPwTds70f SFWkI7+B5wvutN8F34HLmf5Iti7sxZnOtbliXlIt4ZlVuHyFRZw83xcPulGC6f2/l93G zcg9VPwKHZYeGAmk/HtSPBjm65jx34lsDTmafFxVOZjX2wq09KXvQLdR9APaHVFAK5pi KorbEIcbFqF06gJKuBwy8CD6wMOZhDYaYR73erj7bo12VvAGU2MYlayRzTmr+MZ9WG3H 6p2Q== X-Forwarded-Encrypted: i=1; AFNElJ/u4chsPsPFRcALwryutI4jIzGNXzM5f7DIoz1oNXkzG3R5imImCP6a3z3PXz7guimqmt7jZTnETxdMrq8=@vger.kernel.org X-Gm-Message-State: AOJu0YyZr1jVIpJohQYDWYY9qd6uFc+sbjQVjsqdVtTfNfDn9GYoEXiq 3Khf+LyFIsNL6iL56pbYLSlZLhrgbICkD9R6z+pofdYTQBy138aOUUa/ X-Gm-Gg: Acq92OFSe4AKd2u9Z+0UEIIX2wykGIyMndatykqP+TP/NwSHTz34bdjRoN93d0N71O+ VMQCObIugF+ztQnEeoZ8I+x1ngsK/PlPN7PPyFW4LdGZEZI3a7/uVkmFBN52Ji85BiXbPfVXveg jyFIdZHPP9o6NOH6wuhGV1QRyeluLsIAh7ovrCJY70F0Cs3RXOq4LBmvfAUboHoRh7f37rnr22Z q3RdBNW6a1wTeG1zAvJBSwEf9HTiDHlXpfKTKSU2SVwyslz+cV4DVYP2npqqK95orixLk6Is2oZ dDxYylfiGjZQBV/v3LUqMCvHX3BS0aesRZoATs8W+Ev7+nWtso4prFAPwTL41BNQB7gbgD20FCu qOOPcmQ2FkfhhK3XWi1JDn2ut0ESWZnkVAsQRhXzI064reoWwck+k4h2vrUYrgbZN1wDCDunxRJ 0kOjnMM1Gs9nB2NkUt3MgxMfWOYU6I1e9Dby9oBq95KpqJ2uvYJYGTJqQhPrOjmZ4OSJeDXSRtK iofB6hNisT4dA== X-Received: by 2002:a05:693c:25c4:b0:2dd:6937:79b8 with SMTP id 5a478bee46e88-3074fa52073mr730991eec.5.1780453530279; Tue, 02 Jun 2026 19:25:30 -0700 (PDT) Received: from google.com ([2a00:79e0:2ebe:8:c4f4:520b:1304:b259]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3074dea8708sm1184972eec.15.2026.06.02.19.25.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 19:25:29 -0700 (PDT) Date: Tue, 2 Jun 2026 19:25:26 -0700 From: Dmitry Torokhov To: steven Cc: wens@kernel.org, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] Input: axp20x-pek - add support for AXP313A variant Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Wed, Jun 03, 2026 at 09:38:54AM +0800, steven wrote: > Add power button support for the AXP313A PMIC. The AXP313A does not > have the PEK_KEY register (0x36) used to configure startup and shutdown > timings, unlike AXP20X and AXP221. Create a dedicated axp313a_info > configuration with NULL time tables to prevent regmap out-of-bounds > access. > > The sysfs attributes (startup/shutdown) will return -EOPNOTSUPP when > accessed on AXP313A devices. > > Signed-off-by: steven > --- > Changes in v2: > - Fixed regmap out-of-bounds access issue reported by Sashiko AI > - Created dedicated axp313a_info with NULL time tables > - Added NULL pointer checks to prevent crashes > - AXP313A lacks PEK_KEY (0x36) per datasheet verification > - Power button still functional using hardware default timings > > v1: https://lore.kernel.org/all/tencent_5F1FF80489E702360F352F889570656BF608@qq.com/ > --- > drivers/input/misc/axp20x-pek.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c > index d4e2fc9a937f..de43eef0c0ea 100644 > --- a/drivers/input/misc/axp20x-pek.c > +++ b/drivers/input/misc/axp20x-pek.c > @@ -85,6 +85,13 @@ static const struct axp20x_info axp221_info = { > .shutdown_mask = AXP20X_PEK_SHUTDOWN_MASK, > }; > > +static const struct axp20x_info axp313a_info = { > + .startup_time = NULL, > + .startup_mask = 0, > + .shutdown_time = NULL, > + .shutdown_mask = 0, > +}; > + > static ssize_t axp20x_show_attr(struct device *dev, > const struct axp20x_time *time, > unsigned int mask, char *buf) > @@ -93,6 +100,9 @@ static ssize_t axp20x_show_attr(struct device *dev, > unsigned int val; > int ret, i; > > + if (!time) > + return -EOPNOTSUPP; Use is_visible to control whether attributes are accessible. Thanks. -- Dmitry