Message ID | 20140909121902.GA22965@amd (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Sep 9, 2014 at 5:19 AM, Pavel Machek <pavel@ucw.cz> wrote: > > Without this patch, boot hangs when trying to mount root filesystem on > socfpga platform in about 50% cases. I think this should have a better description than this -- this is too vague. Did it use to always work, is this a new failure? You enable some more error checking and improved stop handling, why was the previous one inadequate on this platform? -Olof -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tuesday, September 09, 2014 at 07:32:14 PM, Olof Johansson wrote: > On Tue, Sep 9, 2014 at 5:19 AM, Pavel Machek <pavel@ucw.cz> wrote: > > Without this patch, boot hangs when trying to mount root filesystem on > > socfpga platform in about 50% cases. > > I think this should have a better description than this -- this is too > vague. Did it use to always work, is this a new failure? You enable > some more error checking and improved stop handling, why was the > previous one inadequate on this platform? +1 nit: It would also be nice if this patch contained proper mmc: tag in the Subject line (which applies to all other socfpga patches across all MLs). Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue 2014-09-09 10:32:14, Olof Johansson wrote: > On Tue, Sep 9, 2014 at 5:19 AM, Pavel Machek <pavel@ucw.cz> wrote: > > > > Without this patch, boot hangs when trying to mount root filesystem on > > socfpga platform in about 50% cases. > > I think this should have a better description than this -- this is too > vague. Did it use to always work, is this a new failure? You enable > some more error checking and improved stop handling, why was the > previous one inadequate on this platform? I don't think it ever worked reliably. I don't know what is different for socfpga, or if it is broken on other platforms, too. I have two socfpga boards here, but no other dw_mmc board. Patch was separated from rocketboards.org repository. Hope this helps, Pavel
Hi, Pavel. On 09/10/2014 05:56 AM, Pavel Machek wrote: > On Tue 2014-09-09 10:32:14, Olof Johansson wrote: >> On Tue, Sep 9, 2014 at 5:19 AM, Pavel Machek <pavel@ucw.cz> wrote: >>> >>> Without this patch, boot hangs when trying to mount root filesystem on >>> socfpga platform in about 50% cases. >> >> I think this should have a better description than this -- this is too >> vague. Did it use to always work, is this a new failure? You enable >> some more error checking and improved stop handling, why was the >> previous one inadequate on this platform? > > I don't think it ever worked reliably. I don't know what is different > for socfpga, or if it is broken on other platforms, too. I have two > socfpga boards here, but no other dw_mmc board. I didn't know what error is occurred at your board. But i guess it looks like HLE error, right? Or you can share how booting is failed. than i think we can discuss more detailedly about your problem. Best Regards, Jaehoon Chung > > Patch was separated from rocketboards.org repository. > > Hope this helps, > > Pavel > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 8f216ed..739ba78 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -42,8 +42,8 @@ /* Common flag combinations */ #define DW_MCI_DATA_ERROR_FLAGS (SDMMC_INT_DRTO | SDMMC_INT_DCRC | \ - SDMMC_INT_HTO | SDMMC_INT_SBE | \ - SDMMC_INT_EBE) + SDMMC_INT_HTO | SDMMC_INT_FRUN | \ + SDMMC_INT_SBE | SDMMC_INT_EBE) #define DW_MCI_CMD_ERROR_FLAGS (SDMMC_INT_RTO | SDMMC_INT_RCRC | \ SDMMC_INT_RESP_ERR) #define DW_MCI_ERROR_FLAGS (DW_MCI_DATA_ERROR_FLAGS | \ @@ -1302,7 +1302,8 @@ static void dw_mci_tasklet_func(unsigned long priv) if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { dw_mci_stop_dma(host); - send_stop_abort(host, data); + if (data->stop) + send_stop_abort(host, data); state = STATE_DATA_ERROR; break; } @@ -1324,6 +1325,11 @@ static void dw_mci_tasklet_func(unsigned long priv) set_bit(EVENT_DATA_COMPLETE, &host->completed_events); err = dw_mci_data_complete(host, data); + if (!data->stop) { + dw_mci_request_end(host, host->mrq); + goto unlock; + } + if (!err) { if (!data->stop || mrq->sbc) { if (mrq->sbc && data->stop) @@ -1872,6 +1878,9 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id) queue_work(host->card_workqueue, &host->card_work); } + if (pending & SDMMC_INT_HLE) + mci_writel(host, RINTSTS, SDMMC_INT_HLE); + /* Handle SDIO Interrupts */ for (i = 0; i < host->num_slots; i++) { struct dw_mci_slot *slot = host->slot[i]; @@ -2361,8 +2370,7 @@ 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"); + dev_err(host->dev, "Platform data must supply num_slots.\n"); return -ENODEV; } @@ -2399,8 +2407,7 @@ int dw_mci_probe(struct dw_mci *host) } if (!host->bus_hz) { - dev_err(host->dev, - "Platform data must supply bus speed\n"); + dev_err(host->dev, "Platform data must supply bus speed\n"); ret = -ENODEV; goto err_clk_ciu; }
Without this patch, boot hangs when trying to mount root filesystem on socfpga platform in about 50% cases. Signed-off-by: Pavel Machek <pavel@denx.de>