P4080/mtd: Fix the freescale lbc issue with 36bit mode

When system uses 36bit physical address, res.start is 36bit
physical address. But the function of in_be32 returns 32bit
physical address. Then both of them compared each other is
wrong. So by converting the address of res.start into
the right format fixes this issue.

Signed-off-by: Lan Chunhe-B25806 <[email protected]>
Signed-off-by: Roy Zang <[email protected]>
Reviewed-by: Anton Vorontsov <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
This commit is contained in:
Lan Chunhe-B25806 2010-10-18 15:22:32 +08:00 • committed by David Woodhouse
commit 0b824d2b10
3 changed files with 24 additions and 2 deletions

View file

@ -868,7 +868,7 @@ static int __devinit fsl_elbc_nand_probe(struct platform_device *pdev)
(in_be32(&lbc->bank[bank].br) & BR_MSEL) == BR_MS_FCM &&
(in_be32(&lbc->bank[bank].br) &
in_be32(&lbc->bank[bank].or) & BR_BA)
== res.start)
== fsl_lbc_addr(res.start))
break;
if (bank >= MAX_BANKS) {