Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932482AbcLBMvA (ORCPT ); Fri, 2 Dec 2016 07:51:00 -0500 Received: from mail-db5eur01on0051.outbound.protection.outlook.com ([104.47.2.51]:39530 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750975AbcLBMu7 (ORCPT ); Fri, 2 Dec 2016 07:50:59 -0500 From: Laurentiu Tudor To: Stuart Yoder , "gregkh@linuxfoundation.org" CC: "devel@driverdev.osuosl.org" , "linux-kernel@vger.kernel.org" , "agraf@suse.de" , "arnd@arndb.de" , Leo Li , Ioana Ciornei , "Catalin Horghidan" , Ruxandra Ioana Radulescu , Roy Pledge Subject: Re: [PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions Thread-Topic: [PATCH v3 5/9] bus: fsl-mc: dpio: add global dpaa2 definitions Thread-Index: AQHSTCUaW8VXFX7sEkaizRoooVuj2aD0lEIA Date: Fri, 2 Dec 2016 12:19:07 +0000 Message-ID: <584166BA.9050805@nxp.com> References: <1480632094-3621-1-git-send-email-stuart.yoder@nxp.com> <1480632094-3621-6-git-send-email-stuart.yoder@nxp.com> In-Reply-To: <1480632094-3621-6-git-send-email-stuart.yoder@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=laurentiu.tudor@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [192.88.146.1] x-microsoft-exchange-diagnostics: 1;VI1PR0401MB2270;7:KJDplyIgTY+HbUrr3T5h7QlCq6ntfVnPwdIL+3TmhzWZ5KF9/TPENfz+rQ981odB6uJg2yV0+XSqCXsBpTwq+UaNfQl6u5k134+KxNU2LyoztIt0p9QcV71CEwi51VwaJiMi3tw2A9sv6Gbl2HsisRr3QFI2HmtFFXrxZW/RjUTfDLbyTOc76dMphmyK8IgfOCpg2j9Ot1WvAqQXEkl6Gbm8WMpMHzyR4wva/7GgAdrEK/pQef8xAbS/nFBALGlLVRxznjSLqyh1Vff9rg01JbN54CVl1AuN4CMJgkqNpBdACd7rVL3BDJce/cnAUNtMvlshRl8B4gH+4EFe2/4TuWkBhy5bozpZ0ZV1tZYpc5o= x-forefront-antispam-report: SFV:SKI;SCL:-1SFV:NSPM;SFS:(10009020)(6009001)(7916002)(189002)(377454003)(199003)(24454002)(36756003)(4326007)(39450400002)(105586002)(80316001)(6116002)(106356001)(6506004)(5660300001)(81156014)(3280700002)(3660700001)(33656002)(2501003)(2906002)(8936002)(81166006)(68736007)(106116001)(101416001)(66066001)(5001770100001)(59896002)(97736004)(76176999)(39410400001)(102836003)(87266999)(54356999)(122556002)(2950100002)(65816999)(7846002)(2900100001)(92566002)(189998001)(229853002)(7736002)(305945005)(50986999)(38730400001)(3846002)(6486002)(99136001)(77096006)(86362001)(8676002)(6512004)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0401MB2270;H:VI1PR0401MB1856.eurprd04.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; x-ms-office365-filtering-correlation-id: 2f732048-601f-4e4c-f126-08d41aad6a38 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:VI1PR0401MB2270; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(185117386973197); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(20161123558021)(6072148)(6047074);SRVR:VI1PR0401MB2270;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0401MB2270; x-forefront-prvs: 0144B30E41 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="Windows-1252" Content-ID: <184502FFBF92CC4BADDC46CA1F23E7E1@eurprd04.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2016 12:19:07.7331 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2270 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id uB2Cp63F028769 Content-Length: 5394 Lines: 171 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 0000000..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_HELDACTIVE 0x40 > +/* FQ force eligible */ > +#define DPAA2_DQ_STAT_FORCEELIGIBLE 0x20 > +/* valid frame */ > +#define DPAA2_DQ_STAT_VALIDFRAME 0x10 > +/* 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 0x00FFFFFF > +#define DQ_FRAME_COUNT_MASK 0x00FFFFFF 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 completed. > + * @dq: the dequeue result > + * > + * Return boolean. Why not use bool for the return type then? > + */ > +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 > + * @dq: the dequeue result > + * > + * seqnum is valid only if VALIDFRAME flag is TRUE > + * > + * Return seqnum. > + */ > +static inline u16 dpaa2_dq_seqnum(const struct dpaa2_dq *dq) > +{ > + return le16_to_cpu(dq->dq.seqnum); > +} > + > +/** > + * dpaa2_dq_odpid() - Get the odpid field in dequeue response > + * @dq: the dequeue result > + * > + * odpid is valid only if ODPVAILD flag is TRUE. s/ODPVAILD/ODPVALID/ --- Best Regards, Laurentiu