> -----Original Message----- > From: Ruxandra Ioana Radulescu > Sent: Friday, November 04, 2016 10:04 AM > To: Stuart Yoder <stuart.yoder@xxxxxxx>; gregkh@xxxxxxxxxxxxxxxxxxx > Cc: German Rivera <german.rivera@xxxxxxx>; devel@xxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > agraf@xxxxxxx; arnd@xxxxxxxx; Leo Li <leoyang.li@xxxxxxx>; Roy Pledge <roy.pledge@xxxxxxx> > Subject: RE: [PATCH 4/9] bus: fsl-mc: dpio: add frame descriptor and scatter/gather APIs > > > -----Original Message----- > > From: Stuart Yoder > > Sent: Friday, November 04, 2016 4:32 PM > > To: Ruxandra Ioana Radulescu <ruxandra.radulescu@xxxxxxx>; > > gregkh@xxxxxxxxxxxxxxxxxxx > > Cc: German Rivera <german.rivera@xxxxxxx>; devel@xxxxxxxxxxxxxxxxxxxx; > > linux-kernel@xxxxxxxxxxxxxxx; agraf@xxxxxxx; arnd@xxxxxxxx; Leo Li > > <leoyang.li@xxxxxxx>; Roy Pledge <roy.pledge@xxxxxxx> > > Subject: RE: [PATCH 4/9] bus: fsl-mc: dpio: add frame descriptor and > > scatter/gather APIs > > > > > +/** > > > > + * dpaa2_fd_set_bpid() - Set the bpid field of frame descriptor > > > > + * @fd: the given frame descriptor > > > > + * @bpid: buffer pool id to be set > > > > + */ > > > > +static inline void dpaa2_fd_set_bpid(struct dpaa2_fd *fd, uint16_t bpid) > > > > +{ > > > > + fd->simple.bpid = bpid; > > > > +} > > > > > > The setter/getter functions for fd.ctrl are missing. > > > > Ok, will add those. Does the ethernet driver use that field? > > Yes. > > > > > > > + > > > > +/** > > > > + * struct dpaa2_sg_entry - the scatter-gathering structure > > > > + * @addr: address of the sg entry > > > > + * @len: length in this sg entry > > > > + * @bpid: buffer pool id > > > > + * @format_offset: offset in the MS 16 bits, BPID in the LS 16 bits > > > > > > Description of the format_offset field is incorrect, it shouldn't > > > contain the reference to BPID. > > > > Thanks, will fix. > > > > > > +/** > > > > + * dpaa2_sg_get_len() - Get the length in SG entry > > > > + * @sg: the given scatter-gathering object > > > > + * > > > > + * Return the length. > > > > + */ > > > > +static inline u32 dpaa2_sg_get_len(const struct dpaa2_sg_entry *sg) > > > > +{ > > > > + if (dpaa2_sg_short_len(sg)) > > > > + return le32_to_cpu(sg->len) & SG_SHORT_LEN_MASK; > > > > + > > > > + return le32_to_cpu(sg->len); > > > > +} > > > > > > We should do this in dpaa2_fd_get_len() as well. Hardware is capable of > > > generating FDs with SL bit set for single frame format too, although in > > > practice I've never actually seen it. > > > > Any suggestion on how to test this case? > > Actually, I stand corrected. Apparently WRIOP _always_ generates short > len frames, it just happens that, for the current default settings, the rest > of the bits in the 32bit word that contains the short length field are always > zero. Ok, so we were getting lucky. I'll fix that in the next respin. Thanks, Stuart _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel