From: sashiko-bot@kernel.org
To: "Vijendar Mukunda" <Vijendar.Mukunda@amd.com>
Cc: linux-sound@vger.kernel.org
Subject: Re: [PATCH v5 02/25] soundwire: amd: program pad SCHMEN and OE control for ACP 7.0/7.1/7.2
Date: Sat, 07 Nov 2026 16:13:40 +0000 [thread overview]
Message-ID: <sashiko-outbox-203029@kernel.org> (raw)
In-Reply-To: <20261107154659.3358223-3-Vijendar.Mukunda@amd.com>
Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [Low] soundwire: amd: Fixes tag cites ACP 6.3 refactor instead of ACP
7.x commits
- [Low] soundwire: amd: amd_enable_sdw_pads() writes pad registers
before acp_rev check
--
commit feea96d1feca02ca2e3cb0b4f0b3f33fab424dca
Author: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
> soundwire: amd: program pad SCHMEN and OE control for ACP 7.0/7.1/7.2
>
> ACP 7.0/7.1/7.2 hardware requires SCHMEN control and
> output-enable (OE) registers to be programmed as part of the pad enable
> sequence, in addition to the existing keeper and pulldown writes.
>
> Update amd_enable_sdw_pads() to program ACP_PAD_SCHMEN_CTRL and
> ACP_PAD_DISABLE_OE_CTRL for active pads. Pass acp_rev to
> amd_enable_sdw_pads() and restrict these writes to ACP 7.0/7.1/7.2;
> ACP 6.3 is unaffected.
>
> Define per-register masks in amd_init.h replacing generic local defines
> in amd_init.c.
>
> Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
> Fixes: cf0ddbc29dfa ("soundwire: amd: refactor soundwire pads enable")
[Severity: Low]
cf0ddbc29dfa ("soundwire: amd: refactor soundwire pads enable") only
supported ACP 6.3, which is unaffected by this change, and predates both
struct sdw_amd_res.acp_rev and the ACP 7.x definitions. Should this cite
2c0ae8ef1e5e ("soundwire: amd: add support for ACP7.0 & ACP7.1 platforms")
and 34b1cb4ec286 ("soundwire: amd: Add support for acp7.2 platform")
instead so stable tooling does not attempt backports to ACP 6.3-only trees?
> diff --git a/drivers/soundwire/amd_init.c b/drivers/soundwire/amd_init.c
> index b4f45bdf3c171..032697ea35906 100644
> --- a/drivers/soundwire/amd_init.c
> +++ b/drivers/soundwire/amd_init.c
> @@ -16,37 +16,49 @@
>
> #include "amd_init.h"
>
> -#define AMD_SDW0_PAD_CTRL_MASK 0x60
> -#define AMD_SDW1_PAD_CTRL_MASK 5
> -#define AMD_SDW_PAD_CTRL_MASK (AMD_SDW0_PAD_CTRL_MASK | AMD_SDW1_PAD_CTRL_MASK)
> -#define AMD_SDW0_PAD_EN 1
> -#define AMD_SDW1_PAD_EN 0x10
> -#define AMD_SDW_PAD_EN (AMD_SDW0_PAD_EN | AMD_SDW1_PAD_EN)
> -
> -static int amd_enable_sdw_pads(void __iomem *mmio, u32 link_mask, struct device *dev)
> +static int amd_enable_sdw_pads(void __iomem *mmio, u32 link_mask, u32 acp_rev, struct device *dev)
> {
> - u32 pad_keeper_en, pad_pulldown_ctrl_mask;
> + u32 pad_keeper_mask, pad_pulldown_mask, pad_schmen_mask, pad_oe_mask;
>
> switch (link_mask) {
> case 1:
> - pad_keeper_en = AMD_SDW0_PAD_EN;
> - pad_pulldown_ctrl_mask = AMD_SDW0_PAD_CTRL_MASK;
> + pad_keeper_mask = AMD_SDW0_PAD_KEEPER_EN_MASK;
> + pad_pulldown_mask = AMD_SDW0_PAD_PULLDOWN_MASK;
> + pad_schmen_mask = AMD_SDW0_PAD_SCHMEN_MASK;
> + pad_oe_mask = AMD_SDW0_PAD_OE_CTRL_MASK;
> break;
> case 2:
> - pad_keeper_en = AMD_SDW1_PAD_EN;
> - pad_pulldown_ctrl_mask = AMD_SDW1_PAD_CTRL_MASK;
> + pad_keeper_mask = AMD_SDW1_PAD_KEEPER_EN_MASK;
> + pad_pulldown_mask = AMD_SDW1_PAD_PULLDOWN_MASK;
> + pad_schmen_mask = AMD_SDW1_PAD_SCHMEN_MASK;
> + pad_oe_mask = AMD_SDW1_PAD_OE_CTRL_MASK;
> break;
> case 3:
> - pad_keeper_en = AMD_SDW_PAD_EN;
> - pad_pulldown_ctrl_mask = AMD_SDW_PAD_CTRL_MASK;
> + pad_keeper_mask = AMD_SDW_PAD_KEEPER_EN_MASK;
> + pad_pulldown_mask = AMD_SDW_PAD_PULLDOWN_MASK;
> + pad_schmen_mask = AMD_SDW_PAD_SCHMEN_MASK;
> + pad_oe_mask = AMD_SDW_PAD_OE_CTRL_MASK;
> break;
> default:
> dev_err(dev, "No SDW Links are enabled\n");
> return -ENODEV;
> }
>
> - amd_updatel(mmio, ACP_SW_PAD_KEEPER_EN, pad_keeper_mask, pad_keeper_mask);
> - amd_updatel(mmio, ACP_PAD_PULLDOWN_CTRL, pad_pulldown_ctrl_mask, 0);
> + amd_updatel(mmio, ACP_SW_PAD_KEEPER_EN, pad_keeper_mask, pad_keeper_mask);
> + amd_updatel(mmio, ACP_PAD_PULLDOWN_CTRL, pad_pulldown_mask, 0);
> + switch (acp_rev) {
> + case ACP70_PCI_REV_ID:
> + case ACP71_PCI_REV_ID:
> + case ACP72_PCI_REV_ID:
> + amd_updatel(mmio, ACP_PAD_SCHMEN_CTRL, pad_schmen_mask, pad_schmen_mask);
> + amd_updatel(mmio, ACP_PAD_DISABLE_OE_CTRL, pad_oe_mask, 0);
> + break;
> + case ACP63_PCI_REV_ID:
> + break;
> + default:
> + dev_err(dev, "unsupported ACP revision 0x%x\n", acp_rev);
> + return -EINVAL;
> + }
[Severity: Low]
Should acp_rev be checked before programming ACP_SW_PAD_KEEPER_EN and
ACP_PAD_PULLDOWN_CTRL so that an unsupported acp_rev (such as 0x7b or 0x7f
from amd_sof_acp7x_probe()) does not modify pad registers before returning
-EINVAL?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261107154659.3358223-1-Vijendar.Mukunda@amd.com?part=2
next prev parent reply other threads:[~2026-11-07 16:13 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-07 15:45 [PATCH v5 00/25] soundwire: amd: SoundWire manager driver bug fixes Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 01/25] soundwire: amd: consolidate pad register macros into amd_init.h Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 02/25] soundwire: amd: program pad SCHMEN and OE control for ACP 7.0/7.1/7.2 Vijendar Mukunda
2026-11-07 16:13 ` sashiko-bot [this message]
2026-11-07 19:00 ` Mukunda,Vijendar
2026-11-07 15:45 ` [PATCH v5 03/25] soundwire: amd: add pad ctrl helpers for D0/D3 PM transitions Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 04/25] soundwire: amd: track full pad teardown across suspend/resume Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 05/25] soundwire: amd: fix missing wake interrupt and group wake-arming calls in runtime suspend Vijendar Mukunda
2026-11-07 16:04 ` sashiko-bot
2026-11-07 15:45 ` [PATCH v5 06/25] soundwire: amd: fix IRQ thread dropping STATUS_0TO7 on simultaneous wake Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 07/25] soundwire: amd: remove STATUS_8TO11 clear from amd_sdw_process_wake_event() Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 08/25] soundwire: amd: fix missing wake interrupt for ACP6.3 in POWER_OFF suspend Vijendar Mukunda
2026-11-07 16:02 ` sashiko-bot
2026-11-07 15:45 ` [PATCH v5 09/25] soundwire: amd: fix SDW command timeout return value handling Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 10/25] soundwire: amd: return response on IMM status cleanup timeout Vijendar Mukunda
2026-11-07 16:04 ` sashiko-bot
2026-11-07 15:45 ` [PATCH v5 11/25] soundwire: amd: clarify bad-state guard poll omission in IMM_RES_VALID path Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 12/25] soundwire: amd: cache ping slave status to avoid spurious disconnect on timeout Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 13/25] soundwire: amd: assert msg_lock is held in amd_sdw_read_ping_status() Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 14/25] soundwire: amd: fix work drain ordering in remove path Vijendar Mukunda
2026-11-07 16:14 ` sashiko-bot
2026-11-07 19:07 ` Mukunda,Vijendar
2026-11-07 15:45 ` [PATCH v5 15/25] soundwire: amd: defer dev_set_drvdata() until after INIT_WORK() Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 16/25] soundwire: amd: pm_runtime guard in remove path Vijendar Mukunda
2026-11-07 16:10 ` sashiko-bot
2026-11-07 15:45 ` [PATCH v5 17/25] soundwire: amd: use interrupt_enabled flag to guard IRQ work scheduling Vijendar Mukunda
2026-11-07 16:21 ` sashiko-bot
2026-11-07 20:29 ` Mukunda,Vijendar
2026-11-07 15:45 ` [PATCH v5 18/25] soundwire: amd: delay *sdw_ctx publication until after startup succeeds Vijendar Mukunda
2026-11-07 16:15 ` sashiko-bot
2026-11-07 20:19 ` Mukunda,Vijendar
2026-11-07 15:45 ` [PATCH v5 19/25] soundwire: amd: propagate amd_init_sdw_manager() error on resume Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 20/25] soundwire: amd: drop amd_deinit_sdw_manager() in POWER_OFF suspend Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 21/25] soundwire: amd: replace >= ACP70 with explicit switch/case in PM paths Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 22/25] soundwire: amd: fix interrupt gate and work drain ordering in PM ops Vijendar Mukunda
2026-11-07 16:25 ` sashiko-bot
2026-11-07 20:37 ` Mukunda,Vijendar
2026-11-07 15:45 ` [PATCH v5 23/25] soundwire: amd: check for NULL manager drvdata in sdw_amd_startup() Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 24/25] soundwire: amd: fix shared-register RMW race in amd_sdw_set_device_state() Vijendar Mukunda
2026-11-07 15:45 ` [PATCH v5 25/25] soundwire: amd: fix shared-register RMW race in amd_sdw_host_wake_enable() Vijendar Mukunda
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=sashiko-outbox-203029@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Vijendar.Mukunda@amd.com \
--cc=linux-sound@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.