public inbox for linux-i3c@lists.infradead.org
 help / color / mirror / Atom feed
From: Jeremy Kerr <jk@codeconstruct.com.au>
To: Dylan Hung <dylan_hung@aspeedtech.com>,
	alexandre.belloni@bootlin.com,  joel@jms.id.au,
	u.kleine-koenig@pengutronix.de, gustavoars@kernel.org,
	 krzysztof.kozlowski@linaro.org, zenghuchen@google.com,
	matt@codeconstruct.com.au,  linux-i3c@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: BMC-SW@aspeedtech.com
Subject: Re: [PATCH] i3c: dw: Disable IBI IRQ depends on hot-join and SIR enabling
Date: Wed, 01 May 2024 14:22:03 +0800	[thread overview]
Message-ID: <563ad5613e9c5f0671e1f49f2d9ba71d8735799b.camel@codeconstruct.com.au> (raw)
In-Reply-To: <20240119054547.983693-1-dylan_hung@aspeedtech.com>

Hi Dylan,

Just a question on a prior patch you sent:

> Disable IBI IRQ signal and status only when hot-join and SIR enabling
> of all target devices attached to the bus are disabled.
> 
> Fixes: e389b1d72a62 ("i3c: dw: Add support for in-band interrupts")

[...]

> --- a/drivers/i3c/master/dw-i3c-master.c
> +++ b/drivers/i3c/master/dw-i3c-master.c
> @@ -1163,8 +1163,10 @@ static void dw_i3c_master_set_sir_enabled(struct dw_i3c_master *master,
>                 global = reg == 0xffffffff;
>                 reg &= ~BIT(idx);
>         } else {
> -               global = reg == 0;
> +               bool hj_rejected = !!(readl(master->regs + DEVICE_CTRL) & DEV_CTRL_HOT_JOIN_NACK);
> +
>                 reg |= BIT(idx);
> +               global = (reg == 0xffffffff) && hj_rejected;
>         }
>         writel(reg, master->regs + IBI_SIR_REQ_REJECT);
>  

My interpretation of this change is that we keep the "global" IBI irq
enabled if hot-join-nack is set (ie, always, because we don't support
hot join, and configure the hardware to nack all hot join requests).

However, we never enable the hot-join NACK interrupt - IBI_QUEUE_CTRL
bit 0 is never set. So I can't see how we would ever get an interrupt
for the hot join NACK case anyway. Because of that, this patch is just
keeping the IBI threshold interrupt always enabled for no reason.

Or is something else happening here? Is there another cause for the IBI
threshold IRQs?

Cheers,


Jeremy

-- 
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c

  parent reply	other threads:[~2024-05-01  6:22 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-19  5:45 [PATCH] i3c: dw: Disable IBI IRQ depends on hot-join and SIR enabling Dylan Hung
2024-02-18 23:32 ` Alexandre Belloni
2024-05-01  6:22 ` Jeremy Kerr [this message]
2024-05-02  5:24   ` Dylan Hung
2024-05-06  5:09     ` Jeremy Kerr
2024-05-06  5:48       ` Dylan Hung
2024-05-06  6:58         ` Jeremy Kerr

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=563ad5613e9c5f0671e1f49f2d9ba71d8735799b.camel@codeconstruct.com.au \
    --to=jk@codeconstruct.com.au \
    --cc=BMC-SW@aspeedtech.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=dylan_hung@aspeedtech.com \
    --cc=gustavoars@kernel.org \
    --cc=joel@jms.id.au \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-i3c@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeconstruct.com.au \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=zenghuchen@google.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox