[U-Boot] [PATCH 1/3] [OneNAND] Flex-OneNAND driver support
Scott Wood
scottwood at freescale.com
Mon Sep 28 22:02:41 CEST 2009
On Thu, Sep 24, 2009 at 11:43:47AM +0530, Amul Kumar Saha wrote:
> +static loff_t flexonenand_addr(struct onenand_chip *this, int block)
> +{
> + loff_t ofs = 0;
> + int die = 0, boundary;
> +
> + if (ONENAND_IS_DDP(this) && block >= this->density_mask) {
> + block -= this->density_mask;
> + die = 1;
> + ofs = this->diesize[0];
> + }
> +
> + boundary = this->boundary[die];
> + ofs += block << (this->erase_shift - 1);
> + if (block > (boundary + 1))
> + ofs += (block - boundary - 1) << (this->erase_shift - 1);
> + return ofs;
You're missing some (loff_t) casts that are in Linux, here and elsewhere.
> +inline loff_t onenand_addr(struct onenand_chip *this, int block)
This is not a header file; let GCC decide when to inline. Note that this
function is not specified as inline in Linux.
There are some other fairly significant differences with Linux later in
the patch -- is this due to missing functionality that u-boot doesn't
need, or something else?
-Scott
More information about the U-Boot
mailing list