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/