Rainy saturday, time for some hobbyist contributions :)

In this series we try to address the issue Zoltan reported
and try to fix in [*], but using a more generic approach.
The SDHCI code ends up better consolidated and ready to
scale for more vendor implementations.

I expect (with few QOM knowledge) this to be trivial to review.

- Remove SDHCIState::vendor field
- Convert state fields to class ones
- Simplify endianness handling
- Add default reset values as class fields

[*] 
https://lore.kernel.org/qemu-devel/20250210160329.dda7f4e6...@zero.eik.bme.hu/

Philippe Mathieu-Daudé (12):
  hw/sd/sdhci: Remove need for SDHCIState::vendor field
  hw/sd/sdhci: Introduce SDHCIClass stub
  hw/sd/sdhci: Make quirks a class property
  hw/sd/sdhci: Make I/O region size a class property
  hw/sd/sdhci: Enforce little endianness on PCI devices
  hw/sd/sdhci: Allow SDHCI classes to register their own MemoryRegionOps
  hw/sd/sdhci: Simplify MemoryRegionOps endianness check
  hw/sd/sdhci: Unify default MemoryRegionOps
  hw/sd/sdhci: Add SDHCIClass::ro::capareg field
  hw/sd/sdhci: Allow SDHCI classes to have different register reset
    values
  hw/sd/sdhci: Implement Freescale eSDHC as TYPE_FSL_ESDHC
  hw/ppc/e500: Replace generic SDHCI by Freescale eSDHC

 hw/sd/sdhci-internal.h |  25 +++----
 include/hw/sd/sdhci.h  |  43 ++++++++++-
 hw/arm/fsl-imx25.c     |   2 -
 hw/arm/fsl-imx6.c      |   2 -
 hw/arm/fsl-imx6ul.c    |   2 -
 hw/arm/fsl-imx7.c      |   2 -
 hw/arm/fsl-imx8mp.c    |   2 -
 hw/ppc/e500.c          |  10 +--
 hw/sd/sdhci-pci.c      |   1 +
 hw/sd/sdhci.c          | 163 ++++++++++++++++++++++++++---------------
 10 files changed, 155 insertions(+), 97 deletions(-)

-- 
2.47.1


Reply via email to