Message ID | 20240703134356.85972-5-philmd@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/sd/sdcard: Cleanups before adding eMMC support | expand |
On 7/3/24 3:43 PM, Philippe Mathieu-Daudé wrote: > In preparation of introducing eMMC support which have > different CSD/CID structures, introduce a pair of handlers > in SDCardClass. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Thanks, C. > --- > include/hw/sd/sd.h | 2 ++ > hw/sd/sd.c | 7 +++++-- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h > index 29c76935a0..bfbc83c110 100644 > --- a/include/hw/sd/sd.h > +++ b/include/hw/sd/sd.h > @@ -128,6 +128,8 @@ struct SDCardClass { > void (*enable)(SDState *sd, bool enable); > bool (*get_inserted)(SDState *sd); > bool (*get_readonly)(SDState *sd); > + void (*set_cid)(SDState *sd); > + void (*set_csd)(SDState *sd, uint64_t size); > > const struct SDProto *proto; > }; > diff --git a/hw/sd/sd.c b/hw/sd/sd.c > index 10f2764a53..d46be50760 100644 > --- a/hw/sd/sd.c > +++ b/hw/sd/sd.c > @@ -689,6 +689,7 @@ static inline uint64_t sd_addr_to_wpnum(uint64_t addr) > static void sd_reset(DeviceState *dev) > { > SDState *sd = SD_CARD(dev); > + SDCardClass *sc = SD_CARD_GET_CLASS(sd); > uint64_t size; > uint64_t sect; > > @@ -709,8 +710,8 @@ static void sd_reset(DeviceState *dev) > sd->size = size; > sd_set_ocr(sd); > sd_set_scr(sd); > - sd_set_cid(sd); > - sd_set_csd(sd, size); > + sc->set_cid(sd); > + sc->set_csd(sd, size); > sd_set_cardstatus(sd); > sd_set_sdstatus(sd); > > @@ -2485,6 +2486,8 @@ static void sd_class_init(ObjectClass *klass, void *data) > sc->enable = sd_enable; > sc->get_inserted = sd_get_inserted; > sc->get_readonly = sd_get_readonly; > + sc->set_cid = sd_set_cid; > + sc->set_csd = sd_set_csd; > sc->proto = &sd_proto_sd; > } >
diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 29c76935a0..bfbc83c110 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -128,6 +128,8 @@ struct SDCardClass { void (*enable)(SDState *sd, bool enable); bool (*get_inserted)(SDState *sd); bool (*get_readonly)(SDState *sd); + void (*set_cid)(SDState *sd); + void (*set_csd)(SDState *sd, uint64_t size); const struct SDProto *proto; }; diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 10f2764a53..d46be50760 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -689,6 +689,7 @@ static inline uint64_t sd_addr_to_wpnum(uint64_t addr) static void sd_reset(DeviceState *dev) { SDState *sd = SD_CARD(dev); + SDCardClass *sc = SD_CARD_GET_CLASS(sd); uint64_t size; uint64_t sect; @@ -709,8 +710,8 @@ static void sd_reset(DeviceState *dev) sd->size = size; sd_set_ocr(sd); sd_set_scr(sd); - sd_set_cid(sd); - sd_set_csd(sd, size); + sc->set_cid(sd); + sc->set_csd(sd, size); sd_set_cardstatus(sd); sd_set_sdstatus(sd); @@ -2485,6 +2486,8 @@ static void sd_class_init(ObjectClass *klass, void *data) sc->enable = sd_enable; sc->get_inserted = sd_get_inserted; sc->get_readonly = sd_get_readonly; + sc->set_cid = sd_set_cid; + sc->set_csd = sd_set_csd; sc->proto = &sd_proto_sd; }
In preparation of introducing eMMC support which have different CSD/CID structures, introduce a pair of handlers in SDCardClass. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- include/hw/sd/sd.h | 2 ++ hw/sd/sd.c | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-)