From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Bernhard Beschow <shentey@gmail.com>, qemu-devel@nongnu.org
Cc: "Bin Meng" <bmeng.cn@gmail.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Guenter Roeck" <linux@roeck-us.net>,
"Andrey Smirnov" <andrew.smirnov@gmail.com>,
"Jean-Christophe Dubois" <jcd@tribudubois.net>,
"Peter Maydell" <peter.maydell@linaro.org>,
qemu-block@nongnu.org, "Laurent Vivier" <lvivier@redhat.com>,
qemu-arm@nongnu.org,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH 08/14] hw/sd/sd: Allow for inverting polarities of presence and write-protect GPIOs
Date: Fri, 17 Jan 2025 18:24:30 +0100 [thread overview]
Message-ID: <da1630f6-f25c-45ff-a69c-a2d9a5e0eeb6@linaro.org> (raw)
In-Reply-To: <6AF83F55-5BFF-438D-AB05-5403D619B403@gmail.com>
On 17/1/25 00:20, Bernhard Beschow wrote:
>
>
> Am 12. Januar 2025 18:06:04 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>> On 9/1/25 17:20, Bernhard Beschow wrote:
>>>
>>>
>>> Am 9. Januar 2025 11:40:10 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>>>> Hi Bernhard,
>>>>
>>>> On 8/1/25 10:25, Bernhard Beschow wrote:
>>>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>>> ---
>>>>> hw/sd/sd.c | 12 ++++++++----
>>>>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>>>
>>>>
>>>>> @@ -876,8 +878,8 @@ static void sd_reset(DeviceState *dev)
>>>>> sd->cmd_line = true;
>>>>> sd->multi_blk_cnt = 0;
>>>>> - qemu_set_irq(sd->readonly_cb, sd_get_readonly(sd));
>>>>> - qemu_set_irq(sd->inserted_cb, sd_get_inserted(sd));
>>>>> + qemu_set_irq(sd->readonly_cb, sd_get_readonly(sd) ^ sd->readonly_active_low);
>>>>
>>>> Please embed in sd_get_readonly(),
>>>>
>>>>> + qemu_set_irq(sd->inserted_cb, sd_get_inserted(sd) ^ sd->inserted_active_low);
>>>>
>>>> and sd_get_inserted().
>>>
>>> Are you sure? I deliberately implemented it as is because embedding would change the internal logic of the device as well as SDCardClass::{get_inserted, get_readonly}.
>>
>> Yes, this is why I requested that change. Why don't you think it is correct?
>
> I'm asking because I think that moving the xor inside the methods would break the device model.
>
> The goal of the active_low attributes is to invert the polarity of the GPIOs only which allows to model boards where these are inverted. IOW they are intended to influence the wiring. That is in contrast to the two methods which determine the internal logic of the device model. They are also used as virtual method implementations of SDCardClass::{get_inserted, get_readonly} which determine the logic of the sd bus. Moving the xor inside inverts their return values if s->*_active_low are true, effectively flipping every if statement, which seems wrong to me. What do I miss?
Right... Then maybe we should model polarity in qemu_irq.
Patches 7 & 8 queued, thanks!
next prev parent reply other threads:[~2025-01-17 17:24 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 9:25 [PATCH 00/14] i.MX and SDHCI improvements Bernhard Beschow
2025-01-08 9:25 ` [PATCH 01/14] hw/sd/sdhci: Set SDHC_NIS_DMA bit when appropriate Bernhard Beschow
2025-01-09 12:10 ` Philippe Mathieu-Daudé
2025-01-08 9:25 ` [PATCH 02/14] hw/char/imx_serial: Fix reset value of UFCR register Bernhard Beschow
2025-01-08 9:25 ` [PATCH 03/14] hw/char/imx_serial: Update all state before restarting ageing timer Bernhard Beschow
2025-01-08 9:25 ` [PATCH 04/14] hw/core: Introduce TYPE_SHARED_IRQ Bernhard Beschow
2025-01-08 13:53 ` BALATON Zoltan
2025-01-09 9:14 ` Bernhard Beschow
2025-01-08 14:26 ` Bernhard Beschow
2025-01-09 11:43 ` David Woodhouse
2025-01-08 9:25 ` [PATCH 05/14] hw/pci-host/designware: Expose MSI IRQ Bernhard Beschow
2025-01-08 9:25 ` [PATCH 06/14] hw/gpio/imx_gpio: Don't clear input GPIO values upon reset Bernhard Beschow
2025-01-08 9:25 ` [PATCH 07/14] hw/sd/sd: Remove legacy sd_set_cb() in favor of GPIOs Bernhard Beschow
2025-01-09 11:37 ` Philippe Mathieu-Daudé
2025-01-08 9:25 ` [PATCH 08/14] hw/sd/sd: Allow for inverting polarities of presence and write-protect GPIOs Bernhard Beschow
2025-01-09 11:40 ` Philippe Mathieu-Daudé
2025-01-09 16:20 ` Bernhard Beschow
2025-01-12 18:06 ` Philippe Mathieu-Daudé
2025-01-16 23:20 ` Bernhard Beschow
2025-01-17 17:24 ` Philippe Mathieu-Daudé [this message]
2025-01-08 9:25 ` [PATCH 09/14] hw/char/imx_serial: Turn some DPRINTF() statements into trace events Bernhard Beschow
2025-01-09 11:42 ` Philippe Mathieu-Daudé
2025-01-08 9:25 ` [PATCH 10/14] hw/timer/imx_gpt: Remove unused define Bernhard Beschow
2025-01-08 16:21 ` Philippe Mathieu-Daudé
2025-01-08 9:25 ` [PATCH 11/14] tests/qtest/libqos: Reuse TYPE_IMX_I2C define Bernhard Beschow
2025-01-09 11:58 ` Philippe Mathieu-Daudé
2025-01-09 14:59 ` Fabiano Rosas
2025-01-08 9:25 ` [PATCH 12/14] hw/i2c/imx_i2c: Convert DPRINTF() to trace events Bernhard Beschow
2025-01-09 11:43 ` Philippe Mathieu-Daudé
2025-01-09 11:56 ` Philippe Mathieu-Daudé
2025-01-09 12:38 ` Philippe Mathieu-Daudé
2025-01-09 16:16 ` Bernhard Beschow
2025-01-08 9:25 ` [PATCH 13/14] hw/misc/imx6_src: " Bernhard Beschow
2025-01-09 11:44 ` Philippe Mathieu-Daudé
2025-01-08 9:25 ` [PATCH 14/14] hw/gpio/imx_gpio: Turn DPRINTF() into " Bernhard Beschow
2025-01-09 11:57 ` Philippe Mathieu-Daudé
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=da1630f6-f25c-45ff-a69c-a2d9a5e0eeb6@linaro.org \
--to=philmd@linaro.org \
--cc=andrew.smirnov@gmail.com \
--cc=bmeng.cn@gmail.com \
--cc=farosas@suse.de \
--cc=jcd@tribudubois.net \
--cc=linux@roeck-us.net \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shentey@gmail.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;
as well as URLs for NNTP newsgroup(s).