From f95d13b3a1980d1c2acfa40de06cb9fd2319d24c Mon Sep 17 00:00:00 2001 From: anjianjun Date: Sun, 31 Oct 2021 18:55:28 +0800 Subject: [PATCH] mmcsd: Add gotextcsd callback to sdio_dev_s so the driver implementation could get critical EXTCSD info Signed-off-by: anjianjun --- drivers/mmcsd/mmcsd_sdio.c | 2 ++ include/nuttx/sdio.h | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/mmcsd/mmcsd_sdio.c b/drivers/mmcsd/mmcsd_sdio.c index bcb8e77714c..89b33ac14d5 100644 --- a/drivers/mmcsd/mmcsd_sdio.c +++ b/drivers/mmcsd/mmcsd_sdio.c @@ -2758,6 +2758,8 @@ static int mmcsd_read_csd(FAR struct mmcsd_state_s *priv) finfo("MMC ext CSD read succsesfully, number of block %" PRId32 "\n", priv->nblocks); + SDIO_GOTEXTCSD(priv->dev, buffer); + /* Return value: One sector read */ return OK; diff --git a/include/nuttx/sdio.h b/include/nuttx/sdio.h index b32f61743d4..be420210dd6 100644 --- a/include/nuttx/sdio.h +++ b/include/nuttx/sdio.h @@ -539,6 +539,24 @@ #define SDIO_CLOCK(dev,rate) ((dev)->clock(dev,rate)) +/**************************************************************************** + * Name: SDIO_GOTEXTCSD + * + * Description: + * Notify driver EXT CSD data + * + * Input Parameters: + * dev - An instance of the SDIO device interface + * buffer - Ext Csd data + * + * Returned Value: + * None. + * + ****************************************************************************/ + +#define SDIO_GOTEXTCSD(dev,buffer) \ + ((dev)->gotextcsd?(dev)->gotextcsd(dev,buffer):OK) + /**************************************************************************** * Name: SDIO_ATTACH * @@ -1008,6 +1026,7 @@ struct sdio_dev_s int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t buflen); #endif /* CONFIG_SDIO_DMA */ + void (*gotextcsd)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer); }; /****************************************************************************