From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753521AbbLKT7S (ORCPT ); Fri, 11 Dec 2015 14:59:18 -0500 Received: from mail-by2on0109.outbound.protection.outlook.com ([207.46.100.109]:8608 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751358AbbLKT7L (ORCPT ); Fri, 11 Dec 2015 14:59:11 -0500 X-Greylist: delayed 957 seconds by postgrey-1.27 at vger.kernel.org; Fri, 11 Dec 2015 14:59:11 EST Authentication-Results: spf=permerror (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none;freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; From: Lijun Pan To: , , , CC: , , , , , , , , , , , , , Lijun Pan Subject: [PATCH RESEND v2 1/8] staging: fsl-mc: static inline function to differentiate root dprc Date: Fri, 11 Dec 2015 13:25:47 -0600 Message-ID: <1449861954-2824-2-git-send-email-Lijun.Pan@freescale.com> X-Mailer: git-send-email 2.3.3 In-Reply-To: <1449861954-2824-1-git-send-email-Lijun.Pan@freescale.com> References: <1449861954-2824-1-git-send-email-Lijun.Pan@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD041;1:zGtgwHUFRD+EWgI5cpRtP0vsA459Su7rqbqxIdEnZqS4hQleRx74kcfFeNBwbR/n6X1ZB15BgKI0KJnESah/5IZBPadqw+yJPOrZ7HojRAfHV9eqqm6eKZqg05yc5oNGpNmMGf/6lrzbd1q6Ep4VGwKJFIaKxNwI2bfcoxTQM8tMd2ktx/i/v0U5svzQKmmJRmbFTw2fuX57lmKu7ySDZNAJa5LMN4zYytP2j12daCHby7R0r3JRh8PWJC61JS5NjT1o055odAUvXM20kub85PXJKeJKYD3/grsINV1MKqKsTUwz9K6lDWCplN2aLapqrD+z/DY9pfcguoEyIQcfM4rfJE5BIht0sLtpFp4x/dyUzorhYIBiRJ7kqmm17l7EisxpEloTwvmwNT5bTfLxNzSoSxGbnRqfjkjpBRxvSeg= X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(189002)(199003)(586003)(48376002)(5008740100001)(19580395003)(50986999)(86362001)(47776003)(229853001)(2201001)(76176999)(85326001)(106466001)(87936001)(5003940100001)(50466002)(11100500001)(1220700001)(81156007)(92566002)(50226001)(5001770100001)(19580405001)(36756003)(77096005)(5001960100002)(97736004)(2950100001)(6806005)(4001430100002)(1096002)(104016004)(107886002)(189998001)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1298;H:tx30smr01.am.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1298;2:QO9RA9km3ogELN0/IukZ3rcUN0kU5zVmYadd/kHBHnWYoolImuQI9sMQrK49COLyk/p9uv5koxAKrou80voI6JqP8Ozgc47N/rnyyTBaRifOPA64fIaBt0nMdx7qPWn/Ye9hcjeKNJSRFVrkcOoyIw==;3:q4QFEdYZtabjgU/q0IFC7K4cIjUHYKMbHmw9KIcDQqzplf5FIhok5+5OyoHQQ0spNezhCO9G7KphGcsdH3fKQuWM59bZ5luDmbsJ0nAUd7UbGmjxxyoPyEZPOBgcnUsxVtd+t/RICTbI48h65PmSwqoLVUU/zRz4awWkxjaPoIzgJwIEeiQYNvKMViHvDUWyVoEL7tAfw5mPd8ocjfPj4HkbpBkPmJ1UYI/rf+k2NEo=;25:x/YvpRulJPpkWanoZSXDUymnBxKg/Qk9yyao3BdURH2jUQeQG+YGFGE+9YkgdSuV+t6WUBc65YRdjYJsaIy5H6iHSsRwlvnOXNIcTMiAhSo0VCe3uYq5PvgjuPu7lcUvbGGBI2FLKO8r5ucky/5IY+UzwuhgCs4vJ9mpGfRSKouC/VUPgqqsLpIpZPO8Xo2eC5TkxJg6rtxE5Z6+uTKMnQ55MIZVVdR1JrJN1VnXH+jWFzHnjOTjC1PyrM0RmgIg X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1298; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1298;20:qIKaY1SobrSXQqvX7uXR8rfLeCraZ6CiXo0+pkh99Jkrxq1Yu/xb6VIntUTEX2qaCQPznsN/uGe+yv6N6XWY8A4fZe/ngFngYx1UD/fZ90RJQ0ZYveDgz+xYqVVYxPXSxCcYI18HZzs8usSXmr9ZJablK7lFRP+5dCechQ56V2xif0NIUKl1h1X1w9aoJT4UU7LXwX3jYQnvlXwhoYbMBXJqf0COBABDv3kTS+F+nijeBJR1Eic6VgncSbwK6O6NLWJxJd+fO76SP6LuRGDyx3+wLzaKrkjAdutjvWvjlxl+96h2qoml7N5OoW6FUj6cmpY4F2NB0w89QhZ9OoajAuXlqN05aHTGzV8Hmu6mKTM=;4:kZp0n56lDUmmsKhS0VcEWtaQr3Q5w6Z3KreiZsYmAuQtlxQfKHwERMOxiE4uX78DXtJWpOM7X6/ShcYc52mDjj7aRyqryl6NViNvb8Kzq8fSDwYGrkxoR+GsFghQ+r8ar7bSyOBjn5dP9qGGMlX9m+VJOBVGOVR+Ko3MDFe1pmsUk0ypVSQtDmunnIwesWSSk1qb163S6l+h8UMPGsCerjjFIQ+ibfYfVclnhhATxNXb9r9jctNnJm4VOFCCqbc0QTD+cA4Xx3Pj5wvQ+9GaPs9LyCF3Qe7fQXPAEbhWCFhcqJmwpky2PR8QX9ogloYwqlf0Yio1F7QNKXjeUywL/MyH47rE5FWAwXg+fxowiq8DKxZzFL73mHhIqrirdBCnVPlfG+0MCh5oCBny3U6PhAojtbxeivRzPe00a4+A3WI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001);SRVR:BN3PR0301MB1298;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1298; X-Forefront-PRVS: 0787459938 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1298;23:HwIY89093+eeopy+XKSFTx23BC4W6gP1lo03qDN?= =?us-ascii?Q?+2BcD9xNTEPHwwZTmVa3wtBaBDF8X7lu9/RMo/ZOQjLYAWp37lH0BZd4ZMMD?= =?us-ascii?Q?qNBebAFgXd1O01kL6lRa6klHPjNg4efmp9cCYhFoBSbJvMamsezm14hmeqKR?= =?us-ascii?Q?nWBkGHDXQWLUMXcO09Yo+zFakYFTnV+qHuxL6zBeSLFIi6gFgQym+lc/iamp?= =?us-ascii?Q?mIpFzjY4KLo43AeQdSAeIsUUJ83TXzHFcELWqKaEFGdJ8QIf9ijPZuGSiIb7?= =?us-ascii?Q?bhEtp+cnz79eGqubN5rIopMviVTNUEPefiVwRGDCJrOv9mszjwly2DJA8uc9?= =?us-ascii?Q?pIMa3OgPUrB6bSR4k7GwTwoKqnb2ubsKT2pqaBHNi0CIymRC8aVlwuAVVEZp?= =?us-ascii?Q?IxzgkK/uwzr81aTbDDWPSlscubZpy4f7jIi9qH3UhgYHWNw3yRpj06+u7M1E?= =?us-ascii?Q?cy1abCG6zVgQbFKn/KWl243aWWWkwlZ/Hkw+6zo2DtQGO6UApJoCwfrxVxOF?= =?us-ascii?Q?B7z2KLL3kkEMAqX5BSgPwNIEjIOowtELkL3lYJUmhczjofcfxRfNT4B4wKfh?= =?us-ascii?Q?K8+y1fQmBw2D7fv0Uv5q12fQovC+RRzg+RSOl0dNdioIL0/r9eQ1Fx02Xe6I?= =?us-ascii?Q?9IaDAs/oXoeC34djLyCES/pUtPqwLg8ktlXhnCVN0ahwrowVa/QWQzBYcXZM?= =?us-ascii?Q?wUm0Tei06vL794fWKAL2ZefkStz1WyM5FQmcqsuum7BZeRrZ1vfoDZKzUzS4?= =?us-ascii?Q?NNe/KnHeqOLikuVF05xyq91QhAdkixQ58LgyqOJdSESQPnmNPB2iQB8fKcIY?= =?us-ascii?Q?i8o4nV6Ai9b6OiBYczXyXmsVtO6O0jTepxDppk533nDwI3fySJzHFl9m3KNS?= =?us-ascii?Q?32uBr7ixMRfd8PltRXFSpRD/eYKxA4S1YPQdGHSjglUueShnyF59o9SzYLTB?= =?us-ascii?Q?J5P92iMyiscozNmu8HfyyWAzEay2HBvEpkS2+6kn3eLq1UVsY+mBI/grtQOR?= =?us-ascii?Q?puyAijCPUAVkGDSxeI+EHHY2IX7UjbUz7UBwG8n9tf/vAnv4Zy3RTg3PuuuS?= =?us-ascii?Q?cIXnPT44=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1298;5:zAId+YunkY9OvNahz3Uv/kYFUzQ44+HUhTypCMuOmMqqKa+d2YBn7iytNCOYAZxXIsQdflrRP+ztoWe3cjl1YyLateufy0jn0+j0tpy9ywSXDvjdLY5+CxzJ75RzDItMd1TNvBRAXSR8VIjPkELHYg==;24:iwcz1bXkhf8K1laRWPhouhg6CGMVOWpkpjkPaafC8oXAjxJ/14Mp8xjdeY3zx1tCCmuD7EVUXHlfyKmf9/XBC0LEojzzvgCcJf2NoasLEDw= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2015 19:43:11.0915 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1298 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Define a static inline function is_root_dprc(dev) to tell whether a device is root dprc or not via platform_bus_type. Remove fsl_mc_is_root_dprc() because is_root_dprc() is simpler and easier to understand. Signed-off-by: Lijun Pan --- v2: use static inline function instead of macro replace the fsl_mc_is_root_dprc with is_root_dprc drivers/staging/fsl-mc/bus/mc-bus.c | 22 +++------------------- drivers/staging/fsl-mc/include/mc.h | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 84db55b..25e205421 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -22,8 +22,6 @@ static struct kmem_cache *mc_dev_cache; -static bool fsl_mc_is_root_dprc(struct device *dev); - /** * fsl_mc_bus_match - device to driver matching callback * @dev: the MC object device structure to match against @@ -52,7 +50,7 @@ static int fsl_mc_bus_match(struct device *dev, struct device_driver *drv) * Only exception is the root DPRC, which is a special case. */ if ((mc_dev->obj_desc.state & DPRC_OBJ_STATE_PLUGGED) == 0 && - !fsl_mc_is_root_dprc(&mc_dev->dev)) + !is_root_dprc(&mc_dev->dev)) goto out; /* @@ -236,20 +234,6 @@ static void fsl_mc_get_root_dprc(struct device *dev, } } -/** - * fsl_mc_is_root_dprc - function to check if a given device is a root dprc - */ -static bool fsl_mc_is_root_dprc(struct device *dev) -{ - struct device *root_dprc_dev; - - fsl_mc_get_root_dprc(dev, &root_dprc_dev); - if (!root_dprc_dev) - return false; - else - return dev == root_dprc_dev; -} - static int get_dprc_icid(struct fsl_mc_io *mc_io, int container_id, u16 *icid) { @@ -541,7 +525,7 @@ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) mc_dev->mc_io = NULL; } - if (fsl_mc_is_root_dprc(&mc_dev->dev)) { + if (is_root_dprc(&mc_dev->dev)) { if (atomic_read(&root_dprc_count) > 0) atomic_dec(&root_dprc_count); else @@ -772,7 +756,7 @@ static int fsl_mc_bus_remove(struct platform_device *pdev) { struct fsl_mc *mc = platform_get_drvdata(pdev); - if (WARN_ON(!fsl_mc_is_root_dprc(&mc->root_mc_bus_dev->dev))) + if (WARN_ON(!is_root_dprc(&mc->root_mc_bus_dev->dev))) return -EINVAL; fsl_mc_device_remove(mc->root_mc_bus_dev); diff --git a/drivers/staging/fsl-mc/include/mc.h b/drivers/staging/fsl-mc/include/mc.h index a933291..6051955 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -14,6 +14,7 @@ #include #include #include +#include #include "../include/dprc.h" #define FSL_MC_VENDOR_FREESCALE 0x1957 @@ -200,4 +201,17 @@ void fsl_mc_object_free(struct fsl_mc_device *mc_adev); extern struct bus_type fsl_mc_bus_type; +/** + * is_root_dprc - tell whether dev is root dprc or not. + * root dprc's parent is a platform device, + * that platform device's bus type is platform_bus_type. + * @dev: MC object device + * return 1 on root dprc, 0 otherwise + */ +static inline bool is_root_dprc(struct device *dev) +{ + return ((to_fsl_mc_device(dev)->flags & FSL_MC_IS_DPRC) && + ((dev)->bus == &fsl_mc_bus_type) && + ((dev)->parent->bus == &platform_bus_type)); +} #endif /* _FSL_MC_H_ */ -- 2.3.3