aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/src
diff options
context:
space:
mode:
authorUladzimir Pylinski <barthess@yandex.ru>2015-02-19 17:16:15 +0000
committerUladzimir Pylinski <barthess@yandex.ru>2015-02-19 17:16:15 +0000
commitd5307c5e08bf00d85c04917aafb5e2f58d56b1e5 (patch)
tree16e07c2f2a49b8e8a5317f6b3ee18707ca395ee3 /os/hal/src
parent9e2c12eb741938452ec295a1b9809e96174fd71f (diff)
downloadChibiOS-d5307c5e08bf00d85c04917aafb5e2f58d56b1e5.tar.gz
ChibiOS-d5307c5e08bf00d85c04917aafb5e2f58d56b1e5.tar.bz2
ChibiOS-d5307c5e08bf00d85c04917aafb5e2f58d56b1e5.zip
SDIO. Added forgotten NULL pointer checks.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7695 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/src')
-rw-r--r--os/hal/src/sdc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/os/hal/src/sdc.c b/os/hal/src/sdc.c
index bdd6bddea..260c7f861 100644
--- a/os/hal/src/sdc.c
+++ b/os/hal/src/sdc.c
@@ -308,6 +308,10 @@ static bool sdc_detect_bus_clk(SDCDriver *sdcp, sdcbusclk_t *clk) {
*clk = SDC_CLK_25MHz; /* safe default */
+ /* Use safe default when there is no space for data.*/
+ if (NULL == scratchpad)
+ return HAL_SUCCESS;
+
if (sdc_lld_read_special(sdcp, scratchpad, 64, MMCSD_CMD_SWITCH, cmdarg))
return HAL_FAILED;
@@ -623,9 +627,10 @@ bool sdcConnect(SDCDriver *sdcp) {
goto failed;
sdc_lld_set_data_clk(sdcp, clk);
- /* Reads extended CSD if needed.*/
- if (SDC_MODE_CARDTYPE_MMC == (sdcp->cardmode & SDC_MODE_CARDTYPE_MASK) &&
- mmcsdGetSlice(sdcp->csd, MMCSD_CSD_MMC_CSD_STRUCTURE_SLICE) > 1) {
+ /* Reads extended CSD if needed and possible.*/
+ if (NULL != scratchpad &&
+ SDC_MODE_CARDTYPE_MMC == (sdcp->cardmode & SDC_MODE_CARDTYPE_MASK) &&
+ mmcsdGetSlice(sdcp->csd, MMCSD_CSD_MMC_CSD_STRUCTURE_SLICE) > 1) {
if(sdc_lld_read_special(sdcp, scratchpad, 512, MMCSD_CMD_SEND_EXT_CSD, 0))
goto failed;
}