Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934983AbcKDOju (ORCPT ); Fri, 4 Nov 2016 10:39:50 -0400 Received: from mail-db5eur01on0065.outbound.protection.outlook.com ([104.47.2.65]:3712 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933568AbcKDOjs (ORCPT ); Fri, 4 Nov 2016 10:39:48 -0400 From: Stuart Yoder To: Ruxandra Ioana Radulescu , "gregkh@linuxfoundation.org" CC: German Rivera , "devel@driverdev.osuosl.org" , "linux-kernel@vger.kernel.org" , "agraf@suse.de" , "arnd@arndb.de" , Leo Li , Roy Pledge Subject: RE: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects Thread-Topic: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects Thread-Index: AQHSK6SM8xu8wlpLIkKDzw1ebs822KDF2X4AgAMX5yA= Date: Fri, 4 Nov 2016 14:06:34 +0000 Message-ID: References: <1477058509-12547-1-git-send-email-stuart.yoder@nxp.com> <1477058509-12547-4-git-send-email-stuart.yoder@nxp.com> In-Reply-To: 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=stuart.yoder@nxp.com; x-originating-ip: [100.44.38.67] x-ms-office365-filtering-correlation-id: 53165642-c00e-4c4b-a029-08d404bbc94f x-microsoft-exchange-diagnostics: 1;VI1PR0401MB2637;7:mYL/frpYXPKZi7BVRpOo8wSuk2Sk6AeZpiernbq0ZxRsPY3Z2Q1UY2UkQm9YlkO752oMvpNvjMnGws67QTJZRBGnzrEW6hyx8wY5NLh2lCS+emERknyDslFq6aHYg7AIqd4vnXN91aq/1EKog09xetHn/FBc4jffBTXZKn6O/U2INm4a8YCO2fu+HCqJGLFcg/AjvTRao8NXeOrIAlPjQ2FmbZ52jDA8XIqb62tZ+FMI6ff0fr9x2oJ8ovUZ6/0dFf+gvQ3oTrBjFNFfh7xp97GlDp6uy1p+qA+arMI1bDFpjOCjADLonK1Y19Qi8naV1ERMi1kGRRZBzudMOHFvNesEhuqXmoriqg11GGxBG5o= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0401MB2637; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(35073007944872)(185117386973197); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6045074)(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6046074)(6072074);SRVR:VI1PR0401MB2637;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0401MB2637; x-forefront-prvs: 01165471DB x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(377454003)(13464003)(199003)(189002)(4326007)(105586002)(122556002)(575784001)(54356999)(86362001)(5001770100001)(66066001)(68736007)(97736004)(101416001)(106356001)(50986999)(106116001)(3660700001)(3280700002)(76176999)(74316002)(92566002)(7736002)(2900100001)(3900700001)(305945005)(7846002)(2501003)(9686002)(33656002)(2950100002)(5002640100001)(5660300001)(7696004)(11100500001)(10400500002)(19580395003)(6116002)(3846002)(81156014)(8936002)(81166006)(77096005)(87936001)(102836003)(586003)(8676002)(2906002)(189998001)(76576001)(19580405001)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0401MB2637;H:VI1PR0401MB2638.eurprd04.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2016 14:06:34.7245 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2637 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 uA4EdxA9021922 Content-Length: 10274 Lines: 336 > -----Original Message----- > From: Ruxandra Ioana Radulescu > Sent: Wednesday, November 02, 2016 9:50 AM > To: Stuart Yoder ; gregkh@linuxfoundation.org > Cc: German Rivera ; devel@driverdev.osuosl.org; linux-kernel@vger.kernel.org; > agraf@suse.de; arnd@arndb.de; Leo Li ; Roy Pledge ; Stuart Yoder > > Subject: RE: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects > > > -----Original Message----- > > From: Stuart Yoder [mailto:stuart.yoder@nxp.com] > > Sent: Friday, October 21, 2016 5:02 PM > > To: gregkh@linuxfoundation.org > > Cc: German Rivera ; devel@driverdev.osuosl.org; > > linux-kernel@vger.kernel.org; agraf@suse.de; arnd@arndb.de; Leo Li > > ; Ruxandra Ioana Radulescu > > ; Roy Pledge ; Stuart > > Yoder > > Subject: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects > > > > From: Ioana Radulescu > > > > Add the command build/parse APIs for operating on DPIO objects through > > the DPAA2 Management Complex. > > > > Signed-off-by: Ioana Radulescu > > Signed-off-by: Roy Pledge > > Signed-off-by: Stuart Yoder > > --- > > drivers/bus/fsl-mc/Kconfig | 10 ++ > > drivers/bus/fsl-mc/Makefile | 3 + > > drivers/bus/fsl-mc/dpio/Makefile | 9 ++ > > drivers/bus/fsl-mc/dpio/dpio-cmd.h | 198 > > ++++++++++++++++++++++++++++++++ > > drivers/bus/fsl-mc/dpio/dpio.c | 229 > > +++++++++++++++++++++++++++++++++++++ > > drivers/bus/fsl-mc/dpio/dpio.h | 108 +++++++++++++++++ > > 6 files changed, 557 insertions(+) > > create mode 100644 drivers/bus/fsl-mc/dpio/Makefile > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio-cmd.h > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.c > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.h > > > > diff --git a/drivers/bus/fsl-mc/Kconfig b/drivers/bus/fsl-mc/Kconfig > > index 5c009ab..a10aaf0 100644 > > --- a/drivers/bus/fsl-mc/Kconfig > > +++ b/drivers/bus/fsl-mc/Kconfig > > @@ -15,3 +15,13 @@ config FSL_MC_BUS > > architecture. The fsl-mc bus driver handles discovery of > > DPAA2 objects (which are represented as Linux devices) and > > binding objects to drivers. > > + > > +config FSL_MC_DPIO > > + tristate "QorIQ DPAA2 DPIO driver" > > + depends on FSL_MC_BUS > > + help > > + Driver for the DPAA2 DPIO object. A DPIO provides queue and > > + buffer management facilities for software to interact with > > + other DPAA2 objects. This driver does not expose the DPIO > > + objects individually, but groups them under a service layer > > + API. > > diff --git a/drivers/bus/fsl-mc/Makefile b/drivers/bus/fsl-mc/Makefile > > index d56afee..d18df72 100644 > > --- a/drivers/bus/fsl-mc/Makefile > > +++ b/drivers/bus/fsl-mc/Makefile > > @@ -17,3 +17,6 @@ mc-bus-driver-objs := fsl-mc-bus.o \ > > fsl-mc-msi.o \ > > dpmcp.o \ > > dpbp.o > > + > > +# MC DPIO driver > > +obj-$(CONFIG_FSL_MC_DPIO) += dpio/ > > diff --git a/drivers/bus/fsl-mc/dpio/Makefile b/drivers/bus/fsl- > > mc/dpio/Makefile > > new file mode 100644 > > index 0000000..128befc > > --- /dev/null > > +++ b/drivers/bus/fsl-mc/dpio/Makefile > > @@ -0,0 +1,9 @@ > > +# > > +# QorIQ DPAA2 DPIO driver > > +# > > + > > +subdir-ccflags-y := -Werror > > + > > +obj-$(CONFIG_FSL_MC_DPIO) += fsl-mc-dpio.o > > + > > +fsl-mc-dpio-objs := dpio.o > > diff --git a/drivers/bus/fsl-mc/dpio/dpio-cmd.h b/drivers/bus/fsl- > > mc/dpio/dpio-cmd.h > > new file mode 100644 > > index 0000000..b25a4cc > > --- /dev/null > > +++ b/drivers/bus/fsl-mc/dpio/dpio-cmd.h > > @@ -0,0 +1,198 @@ > > +/* > > + * Copyright 2013-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 the above-listed copyright holders nor the > > + * names of any 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 THE COPYRIGHT HOLDERS AND > > CONTRIBUTORS "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 THE COPYRIGHT HOLDERS OR > > CONTRIBUTORS 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_DPIO_CMD_H > > +#define _FSL_DPIO_CMD_H > > + > > +/* DPIO Version */ > > +#define DPIO_VER_MAJOR 4 > > +#define DPIO_VER_MINOR 2 > > + > > +/* Command Versioning */ > > + > > +#define DPIO_CMD_ID_OFFSET 4 > > +#define DPIO_CMD_BASE_VERSION 1 > > + > > +#define DPIO_CMD(id) ((id << DPIO_CMD_ID_OFFSET) | > > DPIO_CMD_BASE_VERSION) > > + > > +/* Command IDs */ > > +#define DPIO_CMDID_CLOSE DPIO_CMD(0x800) > > +#define DPIO_CMDID_OPEN > > DPIO_CMD(0x803) > > +#define DPIO_CMDID_CREATE > > DPIO_CMD(0x903) > > +#define DPIO_CMDID_DESTROY > > DPIO_CMD(0x983) > > +#define DPIO_CMDID_GET_API_VERSION > > DPIO_CMD(0xa03) > > + > > +#define DPIO_CMDID_ENABLE > > DPIO_CMD(0x002) > > +#define DPIO_CMDID_DISABLE > > DPIO_CMD(0x003) > > +#define DPIO_CMDID_GET_ATTR > > DPIO_CMD(0x004) > > +#define DPIO_CMDID_RESET DPIO_CMD(0x005) > > +#define DPIO_CMDID_IS_ENABLED > > DPIO_CMD(0x006) > > + > > +#define DPIO_CMDID_SET_IRQ > > DPIO_CMD(0x010) > > +#define DPIO_CMDID_GET_IRQ > > DPIO_CMD(0x011) > > +#define DPIO_CMDID_SET_IRQ_ENABLE > > DPIO_CMD(0x012) > > +#define DPIO_CMDID_GET_IRQ_ENABLE > > DPIO_CMD(0x013) > > +#define DPIO_CMDID_SET_IRQ_MASK > > DPIO_CMD(0x014) > > +#define DPIO_CMDID_GET_IRQ_MASK > > DPIO_CMD(0x015) > > +#define DPIO_CMDID_GET_IRQ_STATUS > > DPIO_CMD(0x016) > > +#define DPIO_CMDID_CLEAR_IRQ_STATUS > > DPIO_CMD(0x017) > > + > > +#define DPIO_CMDID_SET_STASHING_DEST > > DPIO_CMD(0x120) > > +#define DPIO_CMDID_GET_STASHING_DEST > > DPIO_CMD(0x121) > > +#define DPIO_CMDID_ADD_STATIC_DEQUEUE_CHANNEL > > DPIO_CMD(0x122) > > +#define DPIO_CMDID_REMOVE_STATIC_DEQUEUE_CHANNEL > > DPIO_CMD(0x123) > > + > > +struct dpio_cmd_open { > > + __le32 dpio_id; > > +}; > > + > > +#define DPIO_CHANNEL_MODE_MASK 0x3 > > + > > +struct dpio_cmd_create { > > + __le16 pad0; > > + u8 channel_mode; > > + u8 pad1; > > + u8 num_priorities; > > + > > +}; > > + > > +#define DPIO_ENABLE 1 > > + > > +struct dpio_rsp_is_enabled { > > + u8 enabled; > > +}; > > + > > +struct dpio_cmd_set_irq { > > + /* cmd word 0 */ > > + u8 irq_index; > > + u8 pad[3]; > > + __le32 irq_val; > > + /* cmd word 1 */ > > + __le64 irq_addr; > > + /* cmd word 2 */ > > + __le32 irq_num; > > +}; > > + > > +struct dpio_cmd_get_irq { > > + __le32 pad; > > + u8 irq_index; > > +}; > > + > > +struct dpio_rsp_get_irq { > > + /* response word 0 */ > > + __le32 irq_val; > > + __le32 pad; > > + /* response word 1 */ > > + __le64 irq_addr; > > + /* response word 2 */ > > + __le32 irq_num; > > + __le32 type; > > +}; > > + > > +struct dpio_cmd_set_irq_enable { > > + u8 enable; > > + u8 pad[3]; > > + u8 irq_index; > > +}; > > + > > +struct dpio_cmd_get_irq_enable { > > + __le32 pad; > > + u8 irq_index; > > +}; > > + > > +struct dpio_rsp_get_irq_enable { > > + u8 enabled; > > +}; > > + > > +struct dpio_cmd_set_irq_mask { > > + __le32 mask; > > + u8 irq_index; > > +}; > > + > > +struct dpio_cmd_get_irq_mask { > > + __le32 pad; > > + u8 irq_index; > > +}; > > + > > +struct dpio_rsp_get_irq_mask { > > + __le32 mask; > > +}; > > + > > +struct dpio_cmd_get_irq_status { > > + __le32 status; > > + u8 irq_index; > > +}; > > + > > +struct dpio_rsp_get_irq_status { > > + __le32 status; > > +}; > > + > > +struct dpio_cmd_clear_irq_status { > > + __le32 status; > > + u8 irq_index; > > +}; > > + > > +struct dpio_rsp_get_attr { > > + /* cmd word 0 */ > > + __le32 id; > > + __le16 qbman_portal_id; > > + u8 num_priorities; > > + u8 channel_mode; > > + /* cmd word 1 */ > > + __le64 qbman_portal_ce_addr; > > + /* cmd word 2 */ > > + __le64 qbman_portal_ci_addr; > > + /* cmd word 3 */ > > + __le32 pad; > > + __le32 qbman_version; > > +}; > > + > > +struct dpio_cmd_set_stashing_dest { > > + u8 sdest; > > +}; > > + > > +struct dpio_rsp_get_stashing_dest { > > + u8 sdest; > > +}; > > + > > +struct dpio_cmd_add_static_dequeue_channel { > > + __le32 dpcon_id; > > +}; > > + > > +struct dpio_rsp_add_static_dequeue_channel { > > + u8 channel_index; > > +}; > > + > > +struct dpio_cmd_remove_static_dequeue_channel { > > + __le32 dpcon_id; > > +}; > > Hi Stuart, looks like you removed unused API functions from dpio.h > and dpio.c, but not the structures and CMDID defines associated with > them, which are now dead code. I didn't modify this particular file when I sent it out, but agree that we should clean that up. Will remove unused structs/defines in v2 of this series. Thanks, Stuart