Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757421AbcKBUWI (ORCPT ); Wed, 2 Nov 2016 16:22:08 -0400 Received: from mail-db5eur01on0085.outbound.protection.outlook.com ([104.47.2.85]:50190 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757396AbcKBUWD (ORCPT ); Wed, 2 Nov 2016 16:22:03 -0400 From: Ruxandra Ioana Radulescu 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 Thread-Topic: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects Thread-Index: AQHSK6SM8a1AznC2PkCqYP628s2T+qDF2HDg Date: Wed, 2 Nov 2016 14:50:02 +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: <1477058509-12547-4-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=ruxandra.radulescu@nxp.com; x-originating-ip: [192.88.146.1] x-ms-office365-filtering-correlation-id: f8623361-7f12-4644-8091-08d4032f871f x-microsoft-exchange-diagnostics: 1;DB4PR04MB0781;7:yRyf0IzH9Vv/5wtHzDc9kGs/9MWkByvJE0zjvgUoxGYAWl5zW1T66Rkx/3N9rIWG8ca6niwXWKNJmH9otQ90J9VfX7x+vnVt0FNI/u+EsTvZirx5TCUjWwlwbzVQeSbLl4gQEJ2xMgwScc1kZDSIpcY6ISux5c6wvgl1hEA3Z06SCvgGKSNf716HcX79Wx8p/uGH6O+SpVjg8bB8JoThzIhGMsHv+fVc4b9kBdGYyR06JqkKKM6xTf/dBLUt+OHGIbuY52seYrnbDpzlWI4OGQKDw09EcdIBBFHLOmkHhtJC3spOvIfMxPqw9GUjjpoozNDp/tqZW8Sv+csypJTSCXR/9vsoy+fkcL2DjzZQPLc= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB4PR04MB0781; 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)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6046074)(6072074);SRVR:DB4PR04MB0781;BCL:0;PCL:0;RULEID:;SRVR:DB4PR04MB0781; x-forefront-prvs: 0114FF88F6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(189002)(377454003)(13464003)(199003)(66066001)(97736004)(586003)(8676002)(189998001)(76576001)(81156014)(81166006)(5001770100001)(10400500002)(87936001)(7736002)(305945005)(7846002)(5660300001)(575784001)(3846002)(86362001)(122556002)(74316002)(6116002)(2950100002)(102836003)(5002640100001)(2501003)(11100500001)(2900100001)(2906002)(77096005)(105586002)(19580405001)(3280700002)(7696004)(19580395003)(68736007)(9686002)(3660700001)(4326007)(33656002)(92566002)(76176999)(106116001)(54356999)(106356001)(101416001)(8936002)(50986999)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR04MB0781;H:VI1PR0402MB2847.eurprd04.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A: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: 02 Nov 2016 14:50:02.9295 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR04MB0781 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 uA2KMHJh011073 Content-Length: 8996 Lines: 321 > -----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. Thanks, Ioana