From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760727AbbJ3TsL (ORCPT ); Fri, 30 Oct 2015 15:48:11 -0400 Received: from mail-bl2on0144.outbound.protection.outlook.com ([65.55.169.144]:4288 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755102AbbJ3Trt (ORCPT ); Fri, 30 Oct 2015 15:47:49 -0400 Authentication-Results: spf=fail (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 v2 1/8] staging: fsl-mc: static inline function to differentiate root dprc Date: Fri, 30 Oct 2015 14:32:03 -0500 Message-ID: <1446233530-8918-2-git-send-email-Lijun.Pan@freescale.com> X-Mailer: git-send-email 2.3.3 In-Reply-To: <1446233530-8918-1-git-send-email-Lijun.Pan@freescale.com> References: <1446233530-8918-1-git-send-email-Lijun.Pan@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC003;1:fvLGRQUxmMhd7Fg59Ed7SUB/c1hjPif+6hs7NyCbjtX8ugIlPvfTdDEgGsLLKKMfjz7hzy6m5kMkpAzN7GEvCfXzLc5c/W/zuHVvVroiLZz4uLQUPTIkQ+7UDhfqYiiwjj6mKl6E7GO2W7XmJrG9mZH6HR3gQ0XiFywGGXrGgdeienU29DNV4GwDA+wToPoTe6N0nrXduemTXfv5ocJl8Pi4lmDX4lnJJQnfjN0Y6mJNIV0I69eY5WjLKgaBULKq1z7mSayAl3Kc+ZzjvJ35X7MBzZodCqv+zTXMexWXjbiBu3oeiTROLe+w7wCZ5sJnGZ57GSaD7hscvLVHluNjAg/oWwLseICzXKjErOlH4WxK0YZVXDBX/RDce636OilfJW2kPnJc7IDRREVVBVjG7Q== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(81156007)(189998001)(50226001)(97736004)(77096005)(5001770100001)(229853001)(5003940100001)(19580405001)(19580395003)(5008740100001)(107886002)(86362001)(4001430100002)(2201001)(2950100001)(5001960100002)(85426001)(106466001)(76176999)(11100500001)(92566002)(6806005)(50986999)(104016004)(47776003)(87936001)(48376002)(50466002)(105606002)(36756003)(5007970100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB1304;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1304;2:m+VvTTnyCzNk9+S0PtJGP+Iwp6cAadgqH/mCRDRzPLBi2BDyud4jytUTZWuCid8CPXlTCBjiaEy4N0gt+1wyq6GTArp3Ehe7kJnDzVHnTmq8qK6hH4i6NOq4tnH9/+sp7PasJsvTrEVlb4jdcM+LZCfSEGd5JFfMEVAwSxH6IFw=;3:yfJEqCoHdgfuX0aoWiixtptWq9hTn4lZ5lG6qInAgbFxt18dIsO9OQw9TsWvziFvgsbo/2ud3Ix9VBmB+i1/M4QyQG06xTBh6yhnGkv6Ig6gDDwwlsuv+L4AiH07D4Jn8AALl40W1aaSaPo9qOtZoKefaBiC0QFhVynhG48RbBt0/n20ZkEnN0mcH7NUdm4ZnYtWdQr9QD95/InU5cbAZzm4sV+s7HlNNt/HOW86p3M=;25:Ed9AhDiXHGXSBQcCptA95QwRT93tTZ8VmB+k4X2cf0uyE47HYNHjD90M11rcUT4sBSoMJ9vN4nMzX8Q2iOokFcBNW29ZRenzJAMZ4xRA4dvVJG6mcNWUu+RS+t/I781zhxaFKB9Fja33VI+860T7lfbiVkOXkeWTn91NYemaTc3lmjFuY1XgQzu6vXUpCtyQWzkhwkQcc2SQfmTmPUk0QEH6ltykaSnhlXCdf6K1q0OYlsY0Y1Z30yDEkIVdxq20 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1304; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1304;20:zeMWMCp6y5IDahaVdvhktGJ5OejC5OwlMAb2XKd/7XD2cKHBqGDmUPtZSMqftJN4k1Ptd1Ae4W5WIZfHQO3JVqKA70qgQZDAdmO6yXmoyUFueX877fVnBDpFJCsbA3VGIZ+soJisSeIhUtPvFZmbvY7Xd1jme+b5G8rjHaPuWeD4/OybTg2L1A7D/HwIb/iOyHnF6sufx1y1x816p0u5JwGdQ/c+uvdbteYUclSlfHmYUnT1C4/a6FUEGFDSD3DBP1cgIZ61aIJ5rpqPeEzyQAXxHug9ceR0eF5ic0MLn9NRPZPG2NnlmTufRqp2E4hz967fb2PM5HBl1Q7x1rp//40DX2t03FF95NnfMPC93+o=;4:/Jj2psBaZmv/IjsgJYYrg1YsVGQm6mr5BvlVvWL3eY9RiEm8Geiy3haV27J5b7YYBqJ7rE6iIKDK+C54pwCLC2jCBW8o1BjkZO4KGj1pUbZtzfnHAo/lSe/YGEjYlF13M6U6gC4cV0DYIpFXXesJcKn/lm8KUh6m4utqVBwlX0zmm1sYwuuwifaSNbmXXmZ3DMSKxMzSoO6e3wxVVWs+Cn9NwzHsCOH+1aEwePpBzc3zXaCEB8zdiYaafA+8vMDMkyJAopu/8VIwQQwbuJRIeZJPyX8HH7543MK3yJ1KPEYGOu6pYSW/KSBJVrX99UU8O1kuRhcxbA1+FnyKUdrATeBiMbVn1ItGbCELnyTBSBZEgKJcFxbBH9mX06dyCsFnJ1ByY8WRmR0RJPWW2THg/w== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(10201501046)(3002001)(102215026);SRVR:BY1PR0301MB1304;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1304; X-Forefront-PRVS: 07459438AA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0301MB1304;23:WpVT4FztMAwgLwXJ5Do/Mng1upgsvajekI0Pfc8?= =?us-ascii?Q?JGDDm4Ep5OR4lfCWDXbWltybgSUGSH4WszsQTGsQjtBdsGn8ktgPICABAS41?= =?us-ascii?Q?cmt1tCQjj7KrJHmSn7RSTTW0SKximc23b4n+axu+GY08tJYAbfP3ymSXGsL5?= =?us-ascii?Q?RZA6U1WbT1QqslzrrLi5ZityeAjrwnmrCeXunPPcbwK6GTbfXwXT5vtG3kvC?= =?us-ascii?Q?/RpGGzZUyqhi55NvOjO9pfR+X313tpjLe8PAzvVcs81qp9GDZEy7zTRrNAbl?= =?us-ascii?Q?mOb98Azav69VfxGAkroleKLIrCqS+oSkKAtJuutS7kWYzEeHDNjk7hpgRHLa?= =?us-ascii?Q?F15OU5GlDzR/clwR42yy0xXBuJ/5FxXsAo9AFPuU+/egxDHrwAI3GrE4vhgE?= =?us-ascii?Q?4dPjLugD5Y1+MjD6q8hq1A3az+Q4qeF5IhzftIJpLpxhE8B2oILVfPDMuM3G?= =?us-ascii?Q?hMuV76CnpWHya985PdMm2Y/WUax1jN5HudGaY7FNZaDW8+/ooHhtDh+ndWOw?= =?us-ascii?Q?qrJhkZFPzkj/wSHJy5xeKBQbGlrLN/yYdvs7HlJQCE9q9cpFBVqiI2iMm/9D?= =?us-ascii?Q?IbVAFCtlBaOYHSusQ8QAMOZY/QH0Y4uNA+Pz/uyfBcKOvYchmMdr/mpDYlX6?= =?us-ascii?Q?9eBfMNVHBJIuCs1vjw6LuBDOVOnmMaMvQ0amn1Z0IBm7fqXgXZg92VaSb1ZS?= =?us-ascii?Q?S3LW5I6B99Gf+FDKCM5v/BvFTqc38zBFV+Jty/0s2WVPpVS4NMF5yaQFek8E?= =?us-ascii?Q?gh7nWI6POssERE2fG5CyrQJ+JuFospOaLYg1ZV+4vQxVhDU8229dTWOKppoO?= =?us-ascii?Q?DVy/qVSNXAyoAhDO4k3+xi9VD1qAqEPNqyY0ga+ATw8JdFXqT5ScY6X3NeeD?= =?us-ascii?Q?jIzxZsuxxm8mlWDRbKS2WTLH+KkV7gE61no+osDUsEwbJeLFn+nJDkk/nT4z?= =?us-ascii?Q?U56VBYNXpou2XSezjEd3HfNPrPxl7VJjADjJSEcXG/03ZDZ96LGcOqd3tJ9h?= =?us-ascii?Q?AUiJchWn2KWOKE5mweJu1Hq1GqClOC72+XW/BimS6a34Gc4BXgud22a8C2tD?= =?us-ascii?Q?xINPimB2Jk6SJxVzmbNA7RiibnyZW?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1304;5:hKRgtU9K8MkOU+wGYK7Iy5Meq0KJslJGl567pRCTDol+UjiYv2QdCGZnsfKC06+OR85WnID3UydcPvnXRpeHaOskjpTmMIA6tYUzxwwF3Nh4GmNf0JpO4SAcp3D0vmVz9JJw775v5nIyQcCfDP7E0w==;24:geyfk6miEDH5Gh62VZ7ejKrsA+pNvC6hAss2syFEp7uOPOHyrSD70vUbBfytDVukhBtxRqcCwir4nxAdWsUKd1ZnXGl/emzSuYJi+hwz0Uw=;20:xGKBH3ZMFcV+BMFEZt9AlJlZHhGibiP+Ys4bNn5XLGG3Fle2BUq+YdWybe2imPqTGQ9FCAtC/v1nWk7aBsCkEQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2015 19:47:42.5576 (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: BY1PR0301MB1304 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