On 30/07/2011, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> wrote: > On 16:07 Sat 30 Jul , Antony Pavlov wrote: >> On 30/07/2011, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> >> wrote: >> >> > +static uint32_t ns16550_read(struct console_device *cdev, uint32_t off) >> > +{ >> > + struct device_d *dev = cdev->dev; >> > + struct NS16550_plat *plat = (struct NS16550_plat *)dev->platform_data; >> > + int width = dev->resource[0].flags & IORESOURCE_MEM_TYPE_MASK; >> > + >> > + off <<= plat->shift; >> > + >> > + if (plat->reg_read) >> > + return plat->reg_read((unsigned long)dev->priv, off); >> > >> >> So, this code __always__ make swap before calling platform-dependent >> reg_read (if any). >> And platform-dependent reg_read must assume the presence of the shift. >> >> I propose this variant: >> --------------------------- >> if (plat->reg_read) >> return plat->reg_read((unsigned long)dev->priv, off); >> >> off <<= plat->shift; > the idea is avoid duplicated code in reg_read > > if you do not want the shift you let shift at 0 Yeah, but this code make shift __always__, for every device, even if device need no shift. There is another way to reduce duplication of code. I shell send the patch latter. -- Best regards, Antony Pavlov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox