> -----Original Message-----
> From: Ruxandra Ioana Radulescu
> Sent: Friday, November 04, 2016 10:04 AM
> To: Stuart Yoder <[email protected]>; [email protected]
> Cc: German Rivera <[email protected]>; [email protected]; 
> [email protected];
> [email protected]; [email protected]; Leo Li <[email protected]>; Roy Pledge 
> <[email protected]>
> 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 <[email protected]>;
> > [email protected]
> > Cc: German Rivera <[email protected]>; [email protected];
> > [email protected]; [email protected]; [email protected]; Leo Li
> > <[email protected]>; Roy Pledge <[email protected]>
> > 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
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to