Hi, Shawn. On 01/21/2016 04:52 PM, Shawn Lin wrote: > num_slots comes from pdata if existing, otherwise from > dw_mci_parse_dt which make it at least one slot. If > num_slots is less than 1 for the existing pdata case, > current code return -ENODEV. But dw_mci_probe seems to > treat this a optional case as it will call SDMMC_GET_SLOT_NUM > if no slot assigned. Well, we need to consider more thing.. Host can get the number of slot from SDMMC_GET_SLOT_NUM(). But i think this way also has the problem. num_slot isn't defined anywhere, and num_slot should be set to value of SDMMC_GET_SLOT_NUM. If that value is higher than 1, it should be blocking..(I didn't test all cases..) Even though this patch is not correct, i could check the problem relevant to num_slot, because of this patch. :) my suggestion is if pdata->num_slot is not defined anywhere, just set to 1 by default. not take from SDMMC_GET_SLOT_NUM. if (host->pdata->nums_slots < 1 || host->pdata->nums_slots > SDMMC_GET_SLOT_NUM()) This is correct condition. num_slots can't be higher than number of supported slots. how about? Best Regards, Jaehoon Chung > > Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> > > --- > > drivers/mmc/host/dw_mmc.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 7128351..a116ec6 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2949,12 +2949,6 @@ int dw_mci_probe(struct dw_mci *host) > } > } > > - if (host->pdata->num_slots < 1) { > - dev_err(host->dev, > - "Platform data must supply num_slots.\n"); > - return -ENODEV; > - } > - > host->biu_clk = devm_clk_get(host->dev, "biu"); > if (IS_ERR(host->biu_clk)) { > dev_dbg(host->dev, "biu clock not available\n"); > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html