From 5238c3bb259fcfe2b68d44088c27e87a6cca0430 Mon Sep 17 00:00:00 2001 From: Jukka Laitinen Date: Mon, 23 Sep 2024 15:59:25 +0300 Subject: [PATCH] drivers/mmcsd/mmcsd_sdio.c: Fix setting SDIO_WIDEBUS for SD cards This corrects the setting widebus for SD cards, which was recently broken in 4f7f751d2adaa2911d8822fbeee87662257d5a36. The if checking the priv->caps, priv->buswidth and IS_MMC has been wrong for some time. The proper logic is that for MMC only the priv->caps is checked. For SD card, both priv->caps and priv->buswidth need to be checked. Signed-off-by: Jukka Laitinen --- drivers/mmcsd/mmcsd_sdio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mmcsd/mmcsd_sdio.c b/drivers/mmcsd/mmcsd_sdio.c index b3d3033ccba..c09739c946f 100644 --- a/drivers/mmcsd/mmcsd_sdio.c +++ b/drivers/mmcsd/mmcsd_sdio.c @@ -2690,8 +2690,9 @@ static int mmcsd_widebus(FAR struct mmcsd_state_s *priv) /* Configure the SDIO peripheral */ - if ((IS_MMC(priv->type) && ((priv->caps & SDIO_CAPS_1BIT_ONLY) == 0)) && - ((priv->buswidth & MMCSD_SCR_BUSWIDTH_4BIT) != 0)) + if ((priv->caps & SDIO_CAPS_1BIT_ONLY) == 0 && + (IS_MMC(priv->type) || + (priv->buswidth & MMCSD_SCR_BUSWIDTH_4BIT) != 0)) { /* JEDEC specs: A.8.3 Changing the data bus width: 'Bus testing * procedure' shows how mmc bus width may be detected. This driver