From nobody Thu Dec 18 23:40:35 2025 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 571651B375A; Thu, 29 Aug 2024 18:44:26 +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=1724957069; cv=none; b=C76xn4rkNmUbY3zFatrSkvXTKV56u68iDl9D3P+P3p2rMn0isqcamqmbE08x7qoEjbKn6gqEBCWesNP/GOu9/7bjYINOw1U86BHo+B2QgGfiQYR/Im5MWsJsean5hapzPRbsojaj4qx6V4CRuQfEm27TfvmIxl50o4YyZGHeLQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724957069; c=relaxed/simple; bh=qpJqoXXVp81Jqp1u+obwScqa1CLPfjAjajgTXw639pM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Owaz9+xJiM8cE8gujB5alryyxA1IvnFnpSD0M12W+b6vuSgae12zMTw0zFhUaRiN8hP0JZ+Wvf+Rf9DVzDjph93v7lfb26ljBXaGgD3tH0gZUHI2tTJQW2Brf44bgbnPnpnYEeJK7vf+Pg1FuYZSNa57M/e5jbpzMu85EKZ9LgM= 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; dkim=fail (2048-bit key) header.d=rjwysocki.net header.i=@rjwysocki.net header.b=Be6cPNkC reason="signature verification failed"; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=rjwysocki.net header.i=@rjwysocki.net header.b="Be6cPNkC" 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 6.2.0) id cdde2e4b8dfd1e1f; Thu, 29 Aug 2024 20:44:25 +0200 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 B64BE6A8C15; Thu, 29 Aug 2024 20:44:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rjwysocki.net; s=dkim; t=1724957065; bh=qpJqoXXVp81Jqp1u+obwScqa1CLPfjAjajgTXw639pM=; h=From:Subject:Date; b=Be6cPNkCq5HiOnpgD0nhy38rlZ3RPVufSr+Lx8VWvSKIVcWC5RVyLLTR4trpscsIH 8JfnqftJmTL6mSz9xlbP3tMm6jLrw0RHKZDe3XOX208T0113i41DyFDt4qIMk2cfHR cGtwptaZlfK4iG6E+6/e/MPW7bW1dfrNXlWxmytDVjU7rOg5FRa6znyUHk6QFXOuQ8 GV/rR0CA0lURgFK9/rVmkXYd/EA9yHtsiywKtDVQqtSbTXMdt1Z2Kgy77wH4hta24U VGE0NMsJG4WnaEAGknwl+e+BM7YImGxajmrodBRIjWasUHawliqEF5z9cei30TSZZ8 KuKe3tMRco5nA== From: "Rafael J. Wysocki" To: Linux ACPI Cc: LKML , Bob Moore , Saket Dumbre Subject: [PATCH v1 12/20] ACPICA: Allow for supressing leading zeros when using acpi_ex_convert_to_ascii() Date: Thu, 29 Aug 2024 20:37:31 +0200 Message-ID: <3510303.QJadu78ljV@rjwysocki.net> In-Reply-To: <5819337.DvuYhMxLoT@rjwysocki.net> References: <5819337.DvuYhMxLoT@rjwysocki.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CLIENT-IP: 195.136.19.94 X-CLIENT-HOSTNAME: 195.136.19.94 X-VADE-SPAMSTATE: clean X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrudefgedguddvjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfjqffogffrnfdpggftiffpkfenuceurghilhhouhhtmecuudehtdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkjghfggfgtgesthfuredttddtjeenucfhrhhomhepfdftrghfrggvlhculfdrucghhihsohgtkhhifdcuoehrjhifsehrjhifhihsohgtkhhirdhnvghtqeenucggtffrrghtthgvrhhnpeeltdeikeekkeevieektefggfetueetfeejveejgeduledvudehieeuvdeiheeiveenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeduleehrddufeeirdduledrleegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehinhgvthepudelhedrudefiedrudelrdelgedphhgvlhhopehkrhgvrggthhgvrhdrlhhotggrlhhnvghtpdhmrghilhhfrhhomheprhhjfiesrhhjfiihshhotghkihdrnhgvthdpnhgspghrtghpthhtohepgedprhgtphhtthhopehlihhnuhigqdgrtghpihesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehrohgsvghrthdrmhhoohhrvgesihhnthgvlhdrtghomhdprhgtphhtthhopehsrghkvghtrdguuhhmsghrvgesihhnthgvlhdrtghomh X-DCC--Metrics: v370.home.net.pl 1024; Body=4 Fuz1=4 Fuz2=4 Content-Type: text/plain; charset="utf-8" From: Armin Wolf ACPICA commit 792a337104ce2c1729d33d76241b42b3214aa60f Allow to specifiy wether leading zeros should be supressed ot not when using acpi_ex_convert_to_ascii(). Link: https://github.com/acpica/acpica/commit/792a3371 Signed-off-by: Armin Wolf Signed-off-by: Rafael J. Wysocki --- drivers/acpi/acpica/exconvrt.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/acpica/exconvrt.c b/drivers/acpi/acpica/exconvrt.c index 3729bf3b74f7..4e8ab3c26565 100644 --- a/drivers/acpi/acpica/exconvrt.c +++ b/drivers/acpi/acpica/exconvrt.c @@ -17,7 +17,8 @@ ACPI_MODULE_NAME("exconvrt") =20 /* Local prototypes */ static u32 -acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 max_length); +acpi_ex_convert_to_ascii(u64 integer, + u16 base, u8 *string, u8 max_length, u8 leading_zeros); =20 /*************************************************************************= ****** * @@ -249,6 +250,7 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *ob= j_desc, * base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX * string - Where the string is returned * data_width - Size of data item to be converted, in by= tes + * leading_zeros - Allow leading zeros * * RETURN: Actual string length * @@ -257,7 +259,8 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *ob= j_desc, *************************************************************************= *****/ =20 static u32 -acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 data_width) +acpi_ex_convert_to_ascii(u64 integer, + u16 base, u8 *string, u8 data_width, u8 leading_zeros) { u64 digit; u32 i; @@ -266,7 +269,7 @@ acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *str= ing, u8 data_width) u32 hex_length; u32 decimal_length; u32 remainder; - u8 supress_zeros; + u8 supress_zeros =3D !leading_zeros; =20 ACPI_FUNCTION_ENTRY(); =20 @@ -293,7 +296,6 @@ acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *str= ing, u8 data_width) break; } =20 - supress_zeros =3D TRUE; /* No leading zeros */ remainder =3D 0; =20 for (i =3D decimal_length; i > 0; i--) { @@ -379,6 +381,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, u32 string_length =3D 0; u16 base =3D 16; u8 separator =3D ','; + u8 leading_zeros; =20 ACPI_FUNCTION_TRACE_PTR(ex_convert_to_string, obj_desc); =20 @@ -400,6 +403,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, * Make room for the maximum decimal number size */ string_length =3D ACPI_MAX_DECIMAL_DIGITS; + leading_zeros =3D FALSE; base =3D 10; break; =20 @@ -408,6 +412,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, /* Two hex string characters for each integer byte */ =20 string_length =3D ACPI_MUL_2(acpi_gbl_integer_byte_width); + leading_zeros =3D TRUE; break; } =20 @@ -428,7 +433,8 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, string_length =3D acpi_ex_convert_to_ascii(obj_desc->integer.value, base, new_buf, - acpi_gbl_integer_byte_width); + acpi_gbl_integer_byte_width, + leading_zeros); =20 /* Null terminate at the correct place */ =20 @@ -448,6 +454,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, * From ACPI: "If the input is a buffer, it is converted to a * a string of decimal values separated by commas." */ + leading_zeros =3D FALSE; base =3D 10; =20 /* @@ -475,6 +482,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, * * Each hex number is prefixed with 0x (11/2018) */ + leading_zeros =3D TRUE; separator =3D ' '; string_length =3D (obj_desc->buffer.length * 5); break; @@ -488,6 +496,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, * * Each hex number is prefixed with 0x (11/2018) */ + leading_zeros =3D TRUE; separator =3D ','; string_length =3D (obj_desc->buffer.length * 5); break; @@ -528,7 +537,8 @@ acpi_ex_convert_to_string(union acpi_operand_object * o= bj_desc, =20 new_buf +=3D acpi_ex_convert_to_ascii((u64) obj_desc-> buffer.pointer[i], - base, new_buf, 1); + base, new_buf, 1, + leading_zeros); =20 /* Each digit is separated by either a comma or space */ =20 --=20 2.43.0