Will Newton <will.newton@xxxxxxxxx> wrote: > On Sun, May 20, 2012 at 5:27 AM, Seungwon Jeon <tgih.jun@xxxxxxxxxxx> wrote: > > In case of "host->bus_hz < slot->clock", divider value is > > miscalculated. And clock divider register value is multiple > > of 2. If calculated divider value is odd number, result can > > be over-clocking. > > > > Signed-off-by: Seungwon Jeon <tgih.jun@xxxxxxxxxxx> > > --- > > drivers/mmc/host/dw_mmc.c | 10 ++++++---- > > 1 files changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > > index f2f8463..c87745e 100644 > > --- a/drivers/mmc/host/dw_mmc.c > > +++ b/drivers/mmc/host/dw_mmc.c > > @@ -617,14 +617,16 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot) > > u32 div; > > > > if (slot->clock != host->current_speed) { > > - if (host->bus_hz % slot->clock) > > + div = host->bus_hz / slot->clock; > > + if (host->bus_hz % slot->clock && > > + host->bus_hz > slot->clock) > > /* > > * move the + 1 after the divide to prevent > > * over-clocking the card. > > */ > > This comment seems to be no longer relevant so it should be removed. > > > - div = ((host->bus_hz / slot->clock) >> 1) + 1; > > - else > > - div = (host->bus_hz / slot->clock) >> 1; > > + div += 1; div += 1; It's still effective. Best regards, Seungwon Jeon > > + > > + div = (host->bus_hz != slot->clock) ? DIV_ROUND_UP(div, 2) : 0; > > > > dev_info(&slot->mmc->class_dev, > > "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ" > > -- > > 1.7.0.4 > > > > > > -- > > 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 > -- > 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 -- 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