mmcsd: Remove the not really used capacity field
to avoid the check of CONFIG_HAVE_LONG_LONG in many place Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
parent
8e5e6ab8cb
commit
a2239891e7
@ -93,6 +93,8 @@
|
||||
# define MMCSD_MULTIBLOCK_LIMIT CONFIG_MMCSD_MULTIBLOCK_LIMIT
|
||||
#endif
|
||||
|
||||
#define MMCSD_CAPACITY(b, s) ((s) >= 10 ? (b) << ((s) - 10) : (b) >> (10 - (s)))
|
||||
|
||||
/****************************************************************************
|
||||
* Private Types
|
||||
****************************************************************************/
|
||||
@ -130,12 +132,6 @@ struct mmcsd_state_s
|
||||
uint8_t blockshift; /* Log2 of blocksize */
|
||||
uint16_t blocksize; /* Read block length (== block size) */
|
||||
uint32_t nblocks; /* Number of blocks */
|
||||
|
||||
#ifdef CONFIG_HAVE_LONG_LONG
|
||||
uint64_t capacity; /* Total capacity of volume */
|
||||
#else
|
||||
uint32_t capacity; /* Total capacity of volume (Limited to 4Gb) */
|
||||
#endif
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
@ -537,7 +533,6 @@ static int mmcsd_get_scr(FAR struct mmcsd_state_s *priv, uint32_t scr[2])
|
||||
* priv->wrprotect true: card is write protected (from CSD)
|
||||
* priv->blocksize Read block length (== block size)
|
||||
* priv->nblocks Number of blocks
|
||||
* priv->capacity Total capacity of volume
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@ -655,11 +650,6 @@ static void mmcsd_decode_csd(FAR struct mmcsd_state_s *priv, uint32_t csd[4])
|
||||
|
||||
priv->blockshift = readbllen;
|
||||
priv->blocksize = (1 << readbllen);
|
||||
#ifdef CONFIG_HAVE_LONG_LONG
|
||||
priv->capacity = ((uint64_t)(priv->nblocks)) << readbllen;
|
||||
#else
|
||||
priv->capacity = (priv->nblocks << readbllen);
|
||||
#endif
|
||||
|
||||
if (priv->blocksize > 512)
|
||||
{
|
||||
@ -692,14 +682,10 @@ static void mmcsd_decode_csd(FAR struct mmcsd_state_s *priv, uint32_t csd[4])
|
||||
*/
|
||||
|
||||
uint32_t csize = ((csd[1] & 0x3f) << 16) | (csd[2] >> 16);
|
||||
#ifdef CONFIG_HAVE_LONG_LONG
|
||||
priv->capacity = ((uint64_t)(csize + 1)) << 19;
|
||||
#else
|
||||
priv->capacity = (csize + 1) << 19;
|
||||
#endif
|
||||
|
||||
priv->blockshift = 9;
|
||||
priv->blocksize = 1 << 9;
|
||||
priv->nblocks = priv->capacity >> 9;
|
||||
priv->nblocks = (csize + 1) << (19 - priv->blockshift);
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS_INFO
|
||||
decoded.u.sdblock.csize = csize;
|
||||
@ -724,7 +710,6 @@ static void mmcsd_decode_csd(FAR struct mmcsd_state_s *priv, uint32_t csd[4])
|
||||
(1 << (csizemult + 2));
|
||||
priv->blockshift = readbllen;
|
||||
priv->blocksize = (1 << readbllen);
|
||||
priv->capacity = (priv->nblocks << readbllen);
|
||||
|
||||
/* Some devices, such as 2Gb devices, report blocksizes larger than
|
||||
* 512 bytes but still expect to be accessed with a 512 byte blocksize.
|
||||
@ -893,8 +878,8 @@ static void mmcsd_decode_csd(FAR struct mmcsd_state_s *priv, uint32_t csd[4])
|
||||
decoded.fileformat, decoded.mmcecc, decoded.crc);
|
||||
|
||||
finfo("Capacity: %luKb, Block size: %db, nblocks: %d wrprotect: %d\n",
|
||||
(unsigned long)(priv->capacity / 1024), priv->blocksize,
|
||||
priv->nblocks, priv->wrprotect);
|
||||
(unsigned long)MMCSD_CAPACITY(priv->nblocks, priv->blockshift),
|
||||
priv->blocksize, priv->nblocks, priv->wrprotect);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -3377,8 +3362,8 @@ static int mmcsd_probe(FAR struct mmcsd_state_s *priv)
|
||||
{
|
||||
/* Yes... */
|
||||
|
||||
finfo("Capacity: %lu Kbytes\n",
|
||||
(unsigned long)(priv->capacity / 1024));
|
||||
finfo("Capacity: %" PRIu32 " Kbytes\n",
|
||||
MMCSD_CAPACITY(priv->nblocks, priv->blockshift));
|
||||
priv->mediachanged = true;
|
||||
}
|
||||
|
||||
@ -3432,7 +3417,6 @@ static int mmcsd_removed(FAR struct mmcsd_state_s *priv)
|
||||
* be), and that the card has never been initialized.
|
||||
*/
|
||||
|
||||
priv->capacity = 0; /* Capacity=0 sometimes means no media */
|
||||
priv->blocksize = 0;
|
||||
priv->probed = false;
|
||||
priv->mediachanged = false;
|
||||
|
Loading…
Reference in New Issue
Block a user