lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aPZMJb9VwylTIiCM@lizhi-Precision-Tower-5810>
Date: Mon, 20 Oct 2025 10:50:13 -0400
From: Frank Li <Frank.li@....com>
To: Laurentiu Mihalcea <laurentiumihalcea111@...il.com>
Cc: Abel Vesa <abelvesa@...nel.org>, Peng Fan <peng.fan@....com>,
	Michael Turquette <mturquette@...libre.com>,
	Stephen Boyd <sboyd@...nel.org>, Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
	Fabio Estevam <festevam@...il.com>,
	Philipp Zabel <p.zabel@...gutronix.de>,
	Daniel Baluta <daniel.baluta@....com>,
	Shengjiu Wang <shengjiu.wang@....com>, linux-clk@...r.kernel.org,
	imx@...ts.linux.dev, devicetree@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
	Pengutronix Kernel Team <kernel@...gutronix.de>
Subject: Re: [PATCH v2 7/8] reset: imx8mp-audiomix: Support i.MX8ULP SIM LPAV

On Mon, Oct 20, 2025 at 07:29:28AM -0700, Laurentiu Mihalcea wrote:
>
> On 10/17/2025 7:57 AM, Frank Li wrote:
> > On Fri, Oct 17, 2025 at 04:20:24AM -0700, Laurentiu Mihalcea wrote:
> >> From: Laurentiu Mihalcea <laurentiu.mihalcea@....com>
> >>
> >> Support i.MX8ULP's SIM LPAV by adding its reset map definition.
> >>
> >> Reviewed-by: Daniel Baluta <daniel.baluta@....com>
> >> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@....com>
> >> ---
> >>  drivers/reset/reset-imx8mp-audiomix.c | 51 +++++++++++++++++++++++++++
> >>  1 file changed, 51 insertions(+)
> >>
> >> diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-imx8mp-audiomix.c
> >> index c370913107f5..b333d7c1442a 100644
> >> --- a/drivers/reset/reset-imx8mp-audiomix.c
> >> +++ b/drivers/reset/reset-imx8mp-audiomix.c
> >> @@ -3,6 +3,7 @@
> >>   * Copyright 2024 NXP
> >>   */
> >>
> >> +#include <dt-bindings/reset/fsl,imx8ulp-sim-lpav.h>
> >>  #include <dt-bindings/reset/imx8mp-reset-audiomix.h>
> >>
> >>  #include <linux/auxiliary_bus.h>
> >> @@ -17,6 +18,8 @@
> >>  #define IMX8MP_AUDIOMIX_EARC_RESET_OFFSET	0x200
> >>  #define IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET	0x108
> >>
> >> +#define IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET	0x8
> >> +
> >>  struct imx8mp_reset_map {
> >>  	unsigned int offset;
> >>  	unsigned int mask;
> >> @@ -55,6 +58,50 @@ static const struct imx8mp_reset_info imx8mp_reset_info = {
> >>  	.num_lines = ARRAY_SIZE(imx8mp_reset_map),
> >>  };
> >>
> >> +static const struct imx8mp_reset_map imx8ulp_reset_map[] = {
> >> +	[IMX8ULP_SIM_LPAV_HIFI4_DSP_DBG_RST] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(25),
> > Register defination still perfer use macro. If not, let me know.
>
> I see no value in adding defines for the masks (see patch 4 commit message)
>
> in this particular scenario.
>
>
> Is the assignment of the "mask" field for the "struct imx8mp_reset_map" item found
>
> at index  IMX8ULP_SIM_LPAV_HIFI4_DSP_DBG_RST not enough to deduce that the
>
> constant we're using is the mask for the DSP_DBG_RST bit?

This bit is NOT software choose bit, which must be align hardware spec.
Define macro help map name to spec and easy to look for spec by use macro.

There are over thousand result to seach bit 25.

eventhough search SYSCTRL0, may have many SYSCTRL0 in RM.

Frank
>
>
> >
> > Frank
> >> +		.shift = 25,
> >> +		.active_low = false,
> >> +	},
> >> +	[IMX8ULP_SIM_LPAV_HIFI4_DSP_RST] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(16),
> >> +		.shift = 16,
> >> +		.active_low = false,
> >> +	},
> >> +	[IMX8ULP_SIM_LPAV_HIFI4_DSP_STALL] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(13),
> >> +		.shift = 13,
> >> +		.active_low = false,
> >> +	},
> >> +	[IMX8ULP_SIM_LPAV_DSI_RST_BYTE_N] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(5),
> >> +		.shift = 5,
> >> +		.active_low = true,
> >> +	},
> >> +	[IMX8ULP_SIM_LPAV_DSI_RST_ESC_N] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(4),
> >> +		.shift = 4,
> >> +		.active_low = true,
> >> +	},
> >> +	[IMX8ULP_SIM_LPAV_DSI_RST_DPI_N] = {
> >> +		.offset = IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET,
> >> +		.mask = BIT(3),
> >> +		.shift = 3,
> >> +		.active_low = true,
> >> +	},
> >> +};
> >> +
> >> +static const struct imx8mp_reset_info imx8ulp_reset_info = {
> >> +	.map = imx8ulp_reset_map,
> >> +	.num_lines = ARRAY_SIZE(imx8ulp_reset_map),
> >> +};
> >> +
> >>  struct imx8mp_audiomix_reset {
> >>  	struct reset_controller_dev rcdev;
> >>  	void __iomem *base;
> >> @@ -183,6 +230,10 @@ static const struct auxiliary_device_id imx8mp_audiomix_reset_ids[] = {
> >>  		.name = "clk_imx8mp_audiomix.reset",
> >>  		.driver_data = (kernel_ulong_t)&imx8mp_reset_info,
> >>  	},
> >> +	{
> >> +		.name = "clk_imx8ulp_sim_lpav.reset",
> >> +		.driver_data = (kernel_ulong_t)&imx8ulp_reset_info,
> >> +	},
> >>  	{ }
> >>  };
> >>  MODULE_DEVICE_TABLE(auxiliary, imx8mp_audiomix_reset_ids);
> >> --
> >> 2.43.0
> >>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ