RE: [PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions
> -Original Message- > From: Laurentiu Tudor > Sent: Friday, December 02, 2016 6:19 AM > To: Stuart Yoder <stuart.yo...@nxp.com>; gre...@linuxfoundation.org > Cc: de...@driverdev.osuosl.org; linux-ker...@vger.kernel.org; ag...@suse.de; > a...@arndb.de; Leo Li > <leoyang...@nxp.com>; Ioana Ciornei <ioana.cior...@nxp.com>; Catalin Horghidan > <catalin.horghi...@nxp.com>; Ruxandra Ioana Radulescu > <ruxandra.radule...@nxp.com>; Roy Pledge > <roy.ple...@nxp.com> > Subject: Re: [PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions > > On 12/02/2016 12:41 AM, Stuart Yoder wrote: > > From: Roy Pledge <roy.ple...@nxp.com> > > > > Create header for global dpaa2 definitions. Add definitions > > for dequeue results. > > > > Signed-off-by: Roy Pledge <roy.ple...@nxp.com> > > Signed-off-by: Stuart Yoder <stuart.yo...@nxp.com> > > --- > > include/linux/fsl/dpaa2-global.h | 203 > > +++ > > 1 file changed, 203 insertions(+) > > create mode 100644 include/linux/fsl/dpaa2-global.h > > > > diff --git a/include/linux/fsl/dpaa2-global.h > > b/include/linux/fsl/dpaa2-global.h > > new file mode 100644 > > index 000..3ee3f29 > > --- /dev/null > > +++ b/include/linux/fsl/dpaa2-global.h > > @@ -0,0 +1,203 @@ > > +/* > > + * Copyright 2014-2016 Freescale Semiconductor Inc. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions are > > met: > > + * * Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * * Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in > > the > > + * documentation and/or other materials provided with the > > distribution. > > + * * Neither the name of Freescale Semiconductor nor the > > + * names of its contributors may be used to endorse or promote > > products > > + * derived from this software without specific prior written > > permission. > > + * > > + * ALTERNATIVELY, this software may be distributed under the terms of the > > + * GNU General Public License ("GPL") as published by the Free Software > > + * Foundation, either version 2 of that License or (at your option) any > > + * later version. > > + * > > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY > > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > IMPLIED > > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY > > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > > DAMAGES > > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > > SERVICES; > > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED > > AND > > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR > > TORT > > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > > OF THIS > > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > + */ > > +#ifndef __FSL_DPAA2_GLOBAL_H > > +#define __FSL_DPAA2_GLOBAL_H > > + > > +#include > > +#include > > +#include > > + > > +struct dpaa2_dq { > > + union { > > + struct common { > > + u8 verb; > > + u8 reserved[63]; > > + } common; > > + struct dq { > > + u8 verb; > > + u8 stat; > > + __le16 seqnum; > > + __le16 oprid; > > + u8 reserved; > > + u8 tok; > > + __le32 fqid; > > + u32 reserved2; > > + __le32 fq_byte_cnt; > > + __le32 fq_frm_cnt; > > + __le64 fqd_ctx; > > + u8 fd[32]; > > + } dq; > > + struct scn { > > + u8 verb; > > + u8 stat; > > + u8 state; > > + u8 reserved; > > + __le32 rid_tok; > > + __le64 ctx;
Re: [PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions
On 12/02/2016 12:41 AM, Stuart Yoder wrote: > From: Roy Pledge> > Create header for global dpaa2 definitions. Add definitions > for dequeue results. > > Signed-off-by: Roy Pledge > Signed-off-by: Stuart Yoder > --- > include/linux/fsl/dpaa2-global.h | 203 > +++ > 1 file changed, 203 insertions(+) > create mode 100644 include/linux/fsl/dpaa2-global.h > > diff --git a/include/linux/fsl/dpaa2-global.h > b/include/linux/fsl/dpaa2-global.h > new file mode 100644 > index 000..3ee3f29 > --- /dev/null > +++ b/include/linux/fsl/dpaa2-global.h > @@ -0,0 +1,203 @@ > +/* > + * Copyright 2014-2016 Freescale Semiconductor Inc. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are > met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of Freescale Semiconductor nor the > + * names of its contributors may be used to endorse or promote products > + * derived from this software without specific prior written > permission. > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY > + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED > + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY > + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > SERVICES; > + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED > AND > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > THIS > + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > +#ifndef __FSL_DPAA2_GLOBAL_H > +#define __FSL_DPAA2_GLOBAL_H > + > +#include > +#include > +#include > + > +struct dpaa2_dq { > + union { > + struct common { > + u8 verb; > + u8 reserved[63]; > + } common; > + struct dq { > + u8 verb; > + u8 stat; > + __le16 seqnum; > + __le16 oprid; > + u8 reserved; > + u8 tok; > + __le32 fqid; > + u32 reserved2; > + __le32 fq_byte_cnt; > + __le32 fq_frm_cnt; > + __le64 fqd_ctx; > + u8 fd[32]; > + } dq; > + struct scn { > + u8 verb; > + u8 stat; > + u8 state; > + u8 reserved; > + __le32 rid_tok; > + __le64 ctx; > + } scn; > + }; > +}; > + > + Extra blank line. > +/* Parsing frame dequeue results */ > +/* FQ empty */ > +#define DPAA2_DQ_STAT_FQEMPTY 0x80 > +/* FQ held active */ > +#define DPAA2_DQ_STAT_HELDACTIVE0x40 > +/* FQ force eligible */ > +#define DPAA2_DQ_STAT_FORCEELIGIBLE 0x20 > +/* valid frame */ > +#define DPAA2_DQ_STAT_VALIDFRAME0x10 > +/* FQ ODP enable */ > +#define DPAA2_DQ_STAT_ODPVALID 0x04 > +/* volatile dequeue */ > +#define DPAA2_DQ_STAT_VOLATILE 0x02 > +/* volatile dequeue command is expired */ > +#define DPAA2_DQ_STAT_EXPIRED 0x01 > + > +#define DQ_FQID_MASK 0x00FF > +#define DQ_FRAME_COUNT_MASK 0x00FF We should have these 2 macro values aligned too. > +/** > + * dpaa2_dq_flags() - Get the stat field of dequeue response > + * @dq: the dequeue result. > + */ > +static inline u32 dpaa2_dq_flags(const struct dpaa2_dq *dq) > +{ > + return dq->dq.stat; > +} > + > +/** > + * dpaa2_dq_is_pull() - Check whether the dq response is from a pull > + * command. > + * @dq: the dequeue result > + * > + * Return 1 for volatile(pull) dequeue, 0 for static dequeue. > + */ > +static inline int dpaa2_dq_is_pull(const struct dpaa2_dq *dq) > +{ > + return (int)(dpaa2_dq_flags(dq) & DPAA2_DQ_STAT_VOLATILE); > +} > + > +/** > + * dpaa2_dq_is_pull_complete() - Check whether the pull command is
[PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions
From: Roy PledgeCreate header for global dpaa2 definitions. Add definitions for dequeue results. Signed-off-by: Roy Pledge Signed-off-by: Stuart Yoder --- include/linux/fsl/dpaa2-global.h | 203 +++ 1 file changed, 203 insertions(+) create mode 100644 include/linux/fsl/dpaa2-global.h diff --git a/include/linux/fsl/dpaa2-global.h b/include/linux/fsl/dpaa2-global.h new file mode 100644 index 000..3ee3f29 --- /dev/null +++ b/include/linux/fsl/dpaa2-global.h @@ -0,0 +1,203 @@ +/* + * Copyright 2014-2016 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef __FSL_DPAA2_GLOBAL_H +#define __FSL_DPAA2_GLOBAL_H + +#include +#include +#include + +struct dpaa2_dq { + union { + struct common { + u8 verb; + u8 reserved[63]; + } common; + struct dq { + u8 verb; + u8 stat; + __le16 seqnum; + __le16 oprid; + u8 reserved; + u8 tok; + __le32 fqid; + u32 reserved2; + __le32 fq_byte_cnt; + __le32 fq_frm_cnt; + __le64 fqd_ctx; + u8 fd[32]; + } dq; + struct scn { + u8 verb; + u8 stat; + u8 state; + u8 reserved; + __le32 rid_tok; + __le64 ctx; + } scn; + }; +}; + + +/* Parsing frame dequeue results */ +/* FQ empty */ +#define DPAA2_DQ_STAT_FQEMPTY 0x80 +/* FQ held active */ +#define DPAA2_DQ_STAT_HELDACTIVE0x40 +/* FQ force eligible */ +#define DPAA2_DQ_STAT_FORCEELIGIBLE 0x20 +/* valid frame */ +#define DPAA2_DQ_STAT_VALIDFRAME0x10 +/* FQ ODP enable */ +#define DPAA2_DQ_STAT_ODPVALID 0x04 +/* volatile dequeue */ +#define DPAA2_DQ_STAT_VOLATILE 0x02 +/* volatile dequeue command is expired */ +#define DPAA2_DQ_STAT_EXPIRED 0x01 + +#define DQ_FQID_MASK 0x00FF +#define DQ_FRAME_COUNT_MASK 0x00FF + +/** + * dpaa2_dq_flags() - Get the stat field of dequeue response + * @dq: the dequeue result. + */ +static inline u32 dpaa2_dq_flags(const struct dpaa2_dq *dq) +{ + return dq->dq.stat; +} + +/** + * dpaa2_dq_is_pull() - Check whether the dq response is from a pull + * command. + * @dq: the dequeue result + * + * Return 1 for volatile(pull) dequeue, 0 for static dequeue. + */ +static inline int dpaa2_dq_is_pull(const struct dpaa2_dq *dq) +{ + return (int)(dpaa2_dq_flags(dq) & DPAA2_DQ_STAT_VOLATILE); +} + +/** + * dpaa2_dq_is_pull_complete() - Check whether the pull command is completed. + * @dq: the dequeue result + * + * Return boolean. + */ +static inline int dpaa2_dq_is_pull_complete( + const struct dpaa2_dq *dq) +{ + return (int)(dpaa2_dq_flags(dq) & DPAA2_DQ_STAT_EXPIRED); +} + +/** + * dpaa2_dq_seqnum() - Get the seqnum field in dequeue response + *