[RESEND PATCH v4 2/4] mtd: cfi_cmdset_0002: Invalidate cache after entering/exiting OTP memory
Christian Riesch
christian.riesch at omicron.at
Mon Jun 2 01:55:22 PDT 2014
Hi Brian,
Thank you for your comments!
On Wed, May 28, 2014 at 8:46 AM, Brian Norris
<computersforpeace at gmail.com> wrote:
>
> On Mon, May 05, 2014 at 08:14:27AM +0200, Christian Riesch wrote:
> > --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> > +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> > @@ -1157,11 +1157,42 @@ static int cfi_amdstd_read (struct mtd_info *mtd, loff_t from, size_t len, size_
> > typedef int (*otp_op_t)(struct map_info *map, struct flchip *chip,
> > loff_t adr, size_t len, u_char *buf);
> >
> > +static inline void otp_enter(struct map_info *map, struct flchip *chip,
>
> Why is this function marked 'inline'? Is this to satisfy the comments
> regarding CONFIG_MTD_XIP and inlining functions? That all looks highly
> fragile ('inline' is not a guarantee, for instance).
I really don't remember why I marked it inline, it was more than a
year ago. Yes, probably due to the comments regarding CONFIG_MTD_XIP.
Christian
> And does anyone
> use CONFIG_MTD_XIP=y these days?
http://thread.gmane.org/gmane.linux.drivers.mtd/47127
It doesn't look like if there were lots of users. This is the only
thread mentioning the use of CONFIG_MTD_XIP on the mailing list in the
last years...
>
> If there are no good reasons otherwise, I'd say this trips over Chapter
> 15 of Documentation/CodingStyle.
>
> But if this is the only issue, then I'm OK taking the series as-is -- it
> has been pending for a long time, as you note...
If you would like me to change it, I'll send an update. But up to now
it seems to be the only issue.
Christian
>
> > + loff_t adr, size_t len)
> > +{
> > + struct cfi_private *cfi = map->fldrv_priv;
> > +
> > + cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > + cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > + cfi_send_gen_cmd(0x88, cfi->addr_unlock1, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > +
> > + INVALIDATE_CACHED_RANGE(map, chip->start + adr, len);
> > +}
> > +
> > +static inline void otp_exit(struct map_info *map, struct flchip *chip,
>
> Same here.
>
> > + loff_t adr, size_t len)
> > +{
> > + struct cfi_private *cfi = map->fldrv_priv;
> > +
> > + cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > + cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > + cfi_send_gen_cmd(0x90, cfi->addr_unlock1, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > + cfi_send_gen_cmd(0x00, cfi->addr_unlock1, chip->start, map, cfi,
> > + cfi->device_type, NULL);
> > +
> > + INVALIDATE_CACHED_RANGE(map, chip->start + adr, len);
> > +}
> > +
> > static inline int do_read_secsi_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf)
> > {
> > DECLARE_WAITQUEUE(wait, current);
> > unsigned long timeo = jiffies + HZ;
> > - struct cfi_private *cfi = map->fldrv_priv;
> >
> > retry:
> > mutex_lock(&chip->mutex);
>
> Brian
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
More information about the linux-mtd
mailing list