RE: UHS-I bus speed mode should be set last in UHS initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arindam,

> -----Original Message-----
> From: linux-mmc-owner@xxxxxxxxxxxxxxx [mailto:linux-mmc-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Nath, Arindam
> Sent: Tuesday, June 14, 2011 12:00 AM
> To: subhashj@xxxxxxxxxxxxxx
> Cc: Philip Rakity; zhangfei gao; cjb@xxxxxxxxxx; linux-
> mmc@xxxxxxxxxxxxxxx; Lu, Aaron
> Subject: RE: UHS-I bus speed mode should be set last in UHS
> initialization
> 
> Adding Philip and Zhangfei.
> 
> Hi Subhash,
> 
> Does your controller follow some non-standard steps for initialization?
> I referred to Figure 3-14, section 3.9.4 of Physical Layer Spec v3.01,
> and it shows the order, setting Driver Strength Select, Bus Speed Mode,
> and then Current Limit. So please confirm back.

Sorry, I don't know what do you mean by non standard steps for
initialization. Nowhere in v3.01 spec, it is mentioned that Bus speed mode
**must** be set before current limit. Figure 3-14 also doesn't indicate
this.

If you set the bus speed mode in sd_set_bus_speed_mode(), you are changing
the host controller timings as well and if it's SDR50/SDR104 mode, then
immediately after setting the host controller timing mode, we have to
execute tuning sequence but here before executing tuning sequence, you are
sending the CMD6 which involves the read data transfer from card which is
bound to fail without tuning and it does fail with our host controller.

Do let me know if this explanation make sense.

Regards,
Subhash

> 
> Thanks,
> Arindam
> 
> > -----Original Message-----
> > From: subhashj@xxxxxxxxxxxxxx [mailto:subhashj@xxxxxxxxxxxxxx]
> > Sent: Tuesday, June 14, 2011 1:27 AM
> > To: Nath, Arindam
> > Subject: FW: UHS-I bus speed mode should be set last in UHS
> > initialization
> >
> > Hi Arindam,
> >
> > Does this change make sense for you? If yes, then I can go ahead and
> > post a
> > patch for this.
> >
> > Regards,
> > Subhash
> >
> > -----Original Message-----
> > From: linux-mmc-owner@xxxxxxxxxxxxxxx
> > [mailto:linux-mmc-owner@xxxxxxxxxxxxxxx] On Behalf Of Subhash
> Jadavani
> > Sent: Monday, June 06, 2011 3:44 PM
> > To: linux-mmc@xxxxxxxxxxxxxxx
> > Subject: UHS-I bus speed mode should be set last in UHS
> initialization
> >
> > Hi Chris, Arindam,
> >
> > mmc_sd_init_uhs_card function sets the driver type, current limit and
> > bus
> > speed mode on card as well as on host controller side. Currently bus
> > speed
> > mode is set by sending CMD6 to card and setting timing mode in host
> > controller and then before initiating tuning sequence, it also tries
> to
> > set current limit by sending CMD6 to card which fails on our host
> > controller (due to data CRC or timeout errors) if bus speed mode is
> > SDR50/SDR104 mode.
> >
> > So basically bus speed mode should be set only after current limit is
> > set
> > in the card and immediately after setting the bus speed mode, tuning
> > sequence should be initiated. So following changes is needed. If it
> > looks
> > fine then I can send you this change in patch.
> >
> > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index
> > 0da37eb..19634d5 100644
> > --- a/drivers/mmc/core/sd.c
> > +++ b/drivers/mmc/core/sd.c
> > @@ -610,13 +610,13 @@ static int mmc_sd_init_uhs_card(struct mmc_card
> > *card)
> >         if (err)
> >                 goto out;
> >
> > -       /* Set bus speed mode of the card */
> > -       err = sd_set_bus_speed_mode(card, status);
> > +       /* Set current limit for the card */
> > +       err = sd_set_current_limit(card, status);
> >         if (err)
> >                 goto out;
> >
> > -       /* Set current limit for the card */
> > -       err = sd_set_current_limit(card, status);
> > +       /* Set bus speed mode of the card */
> > +       err = sd_set_bus_speed_mode(card, status);
> >         if (err)
> >                 goto out;
> >
> > Regards,
> > Subhash
> >
> > --
> > Sent by a consultant of the Qualcomm Innovation Center, Inc.
> > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
> > Forum.
> >
> >
> > --
> > 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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux