[PATCH] hw/sd/omap_mmc: Use device_cold_reset() instead of device_legacy_reset()

Peter Maydell posted 1 patch 3 years ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210430222348.8514-1-peter.maydell@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>
hw/sd/omap_mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] hw/sd/omap_mmc: Use device_cold_reset() instead of device_legacy_reset()
Posted by Peter Maydell 3 years ago
The omap_mmc_reset() function resets its SD card via
device_legacy_reset().  We know that the SD card does not have a qbus
of its own, so the new device_cold_reset() function (which resets
both the device and its child buses) is equivalent here to
device_legacy_reset() and we can just switch to the new API.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
cc'ing Markus who was interested in conversions away from
the legacy API. As warned, the conversion patch itself is
not very interesting as the difficulty is all in confirming
that the device being reset has no qbuses...

 hw/sd/omap_mmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c
index 1f946908fe1..b67def63813 100644
--- a/hw/sd/omap_mmc.c
+++ b/hw/sd/omap_mmc.c
@@ -318,7 +318,7 @@ void omap_mmc_reset(struct omap_mmc_s *host)
      * into any bus, and we must reset it manually. When omap_mmc is
      * QOMified this must move into the QOM reset function.
      */
-    device_legacy_reset(DEVICE(host->card));
+    device_cold_reset(DEVICE(host->card));
 }
 
 static uint64_t omap_mmc_read(void *opaque, hwaddr offset,
-- 
2.20.1


Re: [PATCH] hw/sd/omap_mmc: Use device_cold_reset() instead of device_legacy_reset()
Posted by Markus Armbruster 3 years ago
Peter Maydell <peter.maydell@linaro.org> writes:

> The omap_mmc_reset() function resets its SD card via
> device_legacy_reset().  We know that the SD card does not have a qbus
> of its own, so the new device_cold_reset() function (which resets
> both the device and its child buses) is equivalent here to
> device_legacy_reset() and we can just switch to the new API.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> cc'ing Markus who was interested in conversions away from
> the legacy API. As warned, the conversion patch itself is
> not very interesting as the difficulty is all in confirming
> that the device being reset has no qbuses...

The commit messsage makes this helpful.  Thanks!

I wonder whether we should add a hint to device_legacy_reset()'s
comment.


Re: [PATCH] hw/sd/omap_mmc: Use device_cold_reset() instead of device_legacy_reset()
Posted by Philippe Mathieu-Daudé 3 years ago
On 5/1/21 7:55 AM, Markus Armbruster wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
> 
>> The omap_mmc_reset() function resets its SD card via
>> device_legacy_reset().  We know that the SD card does not have a qbus
>> of its own, so the new device_cold_reset() function (which resets
>> both the device and its child buses) is equivalent here to
>> device_legacy_reset() and we can just switch to the new API.
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>> ---
>> cc'ing Markus who was interested in conversions away from
>> the legacy API. As warned, the conversion patch itself is
>> not very interesting as the difficulty is all in confirming
>> that the device being reset has no qbuses...
> 
> The commit messsage makes this helpful.  Thanks!

Looking in archives, Damien did convert devices in v3:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg634100.html

But it got lost after telling him cold/warn was not enough,
and better would be a multi-phase reset. Full thread:
https://www.mail-archive.com/qemu-block@nongnu.org/msg54084.html

> I wonder whether we should add a hint to device_legacy_reset()'s
> comment.

I'd rather convert and remove device_legacy_reset().

Regards,

Phil.