On Thu, 22 Apr 2021 at 15:18, Christian Löhle <CLoehle@xxxxxxxxxxxxxx> wrote: > > Ignore the reported capacity if the card otherwise reports UHS support. > > Currently SDSC cards reporting UHS support except for the CCS do not run > through the voltage switch. > While strictly speaking a SDSC card cannot support UHS in compliance > with the standard, there is no good reason to throttle them that way. Maybe not, but I think the code just tries to conform to the SD spec. > Especially for pSLCs in practice such cards benefit greatly by this patch, > as they can be new and UHS supporting, but must not lie about their CCS. Can you provide some concrete examples of SDSC cards that support UHS-I? > The behaviour of linux-mmc for SDSC is deviating from the standard anyway > in such a case, as the card is treated as UHS card not supporting the > voltage switch in general. > Such a card will come up as > mmc0: new ultra high speed SDR25 SD card at address 0001. > Thus the subsystem will support CMD23 and others to the card. > But if we deviate from the standard anyway, then we might as well > not throttle SDSC to 25MB/s. Not sure I understand this correctly? Can you elaborate a bit more, so I understand how we deviate from the SD spec here? As far as I understand the spec, SDSC cards shouldn't support UHS-I. If we decide to deviate from the spec to support this anyway, at least we need to know about a couple of cards that actually supports this. Kind regards Uffe > > Signed-off-by: Christian Loehle <cloehle@xxxxxxxxxxxxxx> > --- > drivers/mmc/core/sd.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c > index 6fa51a6ed058..281ca2da8e0b 100644 > --- a/drivers/mmc/core/sd.c > +++ b/drivers/mmc/core/sd.c > @@ -841,11 +841,10 @@ int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid, u32 *rocr) > return err; > > /* > - * In case CCS and S18A in the response is set, start Signal Voltage > - * Switch procedure. SPI mode doesn't support CMD11. > + * In case S18A in the response is set, start Signal Voltage Switch > + * procedure. SPI mode doesn't support CMD11. > */ > - if (!mmc_host_is_spi(host) && rocr && > - ((*rocr & 0x41000000) == 0x41000000)) { > + if (!mmc_host_is_spi(host) && rocr && (*rocr & 0x01000000)) { > err = mmc_set_uhs_voltage(host, pocr); > if (err == -EAGAIN) { > retries--; > -- > 2.31.1 > > Hyperstone GmbH | Line-Eid-Strasse 3 | 78467 Konstanz > Managing Directors: Dr. Jan Peter Berns. > Commercial register of local courts: Freiburg HRB381782 >