On Dec 13, 2007 4:53 PM, Pierre Ossman <[EMAIL PROTECTED]> wrote:
> On Thu, 13 Dec 2007 16:13:11 +0900
> Kyungmin Park <[EMAIL PROTECTED]> wrote:
>
> > It already checked the ext_csd_struct is less than 2,
> > so it doesn't need to check it.
> > Current code only accepts the revision 1.2.
> >
> > Signed-off-by: Kyungmin Park <[EMAIL PROTECTED]>
>
> It wasn't wrong the last time you brought this up, and it still isn't wrong. 
> Those bits aren't defined until version 1.2 of the EXT_CSD register, hence we 
> do not trust them. If you have some broken card that you feel you must have 
> support for, then start working on some quirks system.

Now see the code.

First, it checks the ext_csd_struct.
       ext_csd_struct = ext_csd[EXT_CSD_REV];
        if (ext_csd_struct > 2) {
                printk(KERN_ERR "%s: unrecognised EXT_CSD structure "
                        "version %d\n", mmc_hostname(card->host),
                        ext_csd_struct);
                err = -EINVAL;
                goto out;
        }
        => here possible values are 0, 1, 2

        => It only accepts the ext_csd 2 but my *broken* card has 1.
so it's failed.
        if (ext_csd_struct >= 2) {
                card->ext_csd.sectors =
                        ext_csd[EXT_CSD_SEC_CNT + 0] << 0 |
                        ext_csd[EXT_CSD_SEC_CNT + 1] << 8 |
                        ext_csd[EXT_CSD_SEC_CNT + 2] << 16 |
                        ext_csd[EXT_CSD_SEC_CNT + 3] << 24;
                if (card->ext_csd.sectors)
                        mmc_card_set_blockaddr(card);
        }

In my MMC Spec. (v4.2), there's no problem to read it even though it's
revision 1.1

Anyway how do it handle this one? Do you have any idea?

Thank you,
Kyungmin Park
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to