Re: [PATCH v4] fpga: altera-freeze-bridge: clear all illegal request bits

From: Xu Yilun

Date: Sat Nov 14 2026 - 10:24:11 EST


On Thu, Nov 12, 2026 at 11:43:30AM +0800, tze.yee.ng@xxxxxxxxxx wrote:
> From: Tanmay Kathpalia <tanmay.kathpalia@xxxxxxxxxx>
>
> A Partial Reconfiguration Region Controller can be connected to one or
> more Freeze Bridge. Each Freeze Bridge has an illegal_request bit
> represented in the freeze_illegal_request register. Bit i is the bridge on
> freeze interface i. Unlike the status and control registers, which act on
> all bridges collectively, this register reports each bridge individually.
>
> Writing a literal 1 clears only bit 0 and leaves the illegal request
> latched for every other bridge. Write back the value just read instead, so
> the set-to-clear applies to whichever Freeze Bridge reported the request.
>
> Fixes: ca24a648f535 ("fpga: add altera freeze bridge support")
> Cc: stable@xxxxxxxxxxxxxxx # v4.10+
>
> Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@xxxxxxxxxx>
> Signed-off-by: Tze Yee Ng <tze.yee.ng@xxxxxxxxxx>

Reviewed-by: Xu Yilun <yilun.xu@xxxxxxxxx>

Applied to for-next, thanks.

> ---
> Changes in v4:
> - Restore the narrative opening sentences from v2; the earlier rewrite read
> too much like a dense hardware spec (Xu Yilun).
>
> Changes in v3:
> - Reword the commit message in imperative mood (Xu Yilun).
> - Describe the freeze_illegal_request register layout: one write-1-to-clear
> bit per Freeze Bridge via the Conduit Merger, versus the collective
> status/ctrl registers (Xu Yilun).
>
> Changes in v2:
> - Add "Cc: stable@xxxxxxxxxxxxxxx # v4.10+" into the signoff area so the
> stable-kernel rule is satisfied (reported by kernel test robot).
> - Remove Chiau Ee's signoff as he is no longer working on this patch.
>
> Link v3:
> https://lore.kernel.org/all/13856736bdb808b64826aab337d9919abeb3ea5c.1791253862.git.tze.yee.ng@xxxxxxxxxx/
> ---
> drivers/fpga/altera-freeze-bridge.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/fpga/altera-freeze-bridge.c b/drivers/fpga/altera-freeze-bridge.c
> index 30d03ba14481..cc0c320538da 100644
> --- a/drivers/fpga/altera-freeze-bridge.c
> +++ b/drivers/fpga/altera-freeze-bridge.c
> @@ -51,7 +51,7 @@ static int altera_freeze_br_req_ack(struct altera_freeze_br_data *priv,
> if (illegal) {
> dev_err(dev, "illegal request detected 0x%x", illegal);
>
> - writel(1, csr_illegal_req_addr);
> + writel(illegal, csr_illegal_req_addr);
>
> illegal = readl(csr_illegal_req_addr);
> if (illegal)
> --
> 2.43.7
>
>