From: "James Tai [戴志峰]" <james.tai@realtek.com>
To: Thomas Gleixner <tglx@linutronix.de>,
Marc Zyngier <maz@kernel.org>, "Rob Herring" <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
kernel test robot <lkp@intel.com>,
Dan Carpenter <error27@gmail.com>
Subject: RE: [PATCH v3 2/6] irqchip: Add interrupt controller support for Realtek DHC SoCs
Date: Fri, 22 Dec 2023 06:20:33 +0000 [thread overview]
Message-ID: <e96f77598aec446c9a68c01afe61cfd9@realtek.com> (raw)
In-Reply-To: <87sf3wlwlz.ffs@tglx>
Hi Thomas,
>>>On Wed, Nov 29 2023 at 13:43, James Tai wrote:
>>>> +static inline void realtek_intc_clear_ints_bit(struct
>>>> +realtek_intc_data *data, int bit) {
>>>> + writel(BIT(bit) & ~1, data->base + data->info->isr_offset);
>>>
>>>That '& ~1' solves what aside of preventing bit 0 from being written?
>>>
>> The ISR register uses bit 0 to clear or set ISR status.
>> Write 0 to clear bits and write 1 to set bits.
>> Therefore, to clear the interrupt status, bit 0 should consistently be
>> set to '0'.
>
>And how does BIT(bit) with 1 <= bit <= 31 end up having bit 0 set?
>
>Also a comment explaining the reasoning here would be helpful.
To perform the clearing action in the ISR register, it's essential that bit 0 remains set to 0.
This is because bit 0 in the ISR register has a specific function for controlling the interrupt status.
When BIT(bit) is used with 1 <= bit <= 31, it generates a bitmask with only that particular bit set to 1, and all other bits, including bit 0, set to 0.
The '& ~1' operation is then applied to ensure that even if bit 0 was somehow set, it will be cleared, maintaining the register's functionality.
For example, suppose the current value of the ISR register is 0x4, and we want to clear bit 3.
In that case, writing 0x4 (which represents bit 3 set to 1) to the ISR register will clear bit 3.
Thanks for your feedback.
Regards,
James
next prev parent reply other threads:[~2023-12-22 6:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 5:43 [PATCH v3 0/6] Initial support for the Realtek DHC SoCs James Tai
2023-11-29 5:43 ` [PATCH v3 1/6] dt-bindings: interrupt-controller: Add support for " James Tai
2023-11-29 8:57 ` Krzysztof Kozlowski
2023-12-08 5:40 ` James Tai [戴志峰]
2023-11-29 5:43 ` [PATCH v3 2/6] irqchip: Add interrupt controller " James Tai
2023-11-29 8:21 ` Dan Carpenter
2023-11-29 13:21 ` Dan Carpenter
2023-12-08 8:21 ` James Tai [戴志峰]
2023-12-08 8:43 ` Dan Carpenter
2023-12-11 5:19 ` James Tai [戴志峰]
2023-11-29 15:41 ` Rob Herring
2023-12-11 5:19 ` James Tai [戴志峰]
2023-12-08 15:31 ` Thomas Gleixner
2023-12-19 3:15 ` James Tai [戴志峰]
2023-12-20 15:30 ` Thomas Gleixner
2023-12-22 6:20 ` James Tai [戴志峰] [this message]
2023-11-29 5:43 ` [PATCH v3 3/6] irqchip: Introduce RTD1319 support using the Realtek common interrupt controller driver James Tai
2023-12-08 15:37 ` Thomas Gleixner
2023-12-19 5:51 ` James Tai [戴志峰]
2023-12-11 17:41 ` Rob Herring
2023-12-19 5:10 ` James Tai [戴志峰]
2023-11-29 5:43 ` [PATCH v3 4/6] irqchip: Introduce RTD1319D " James Tai
2023-11-29 5:43 ` [PATCH v3 5/6] irqchip: Introduce RTD1325 " James Tai
2023-11-29 5:43 ` [PATCH v3 6/6] irqchip: Introduce RTD1619B " James Tai
2023-12-08 15:41 ` Thomas Gleixner
2023-12-19 3:29 ` James Tai [戴志峰]
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=e96f77598aec446c9a68c01afe61cfd9@realtek.com \
--to=james.tai@realtek.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=error27@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=maz@kernel.org \
--cc=robh+dt@kernel.org \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).