From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965090AbcBIAPj (ORCPT ); Mon, 8 Feb 2016 19:15:39 -0500 Received: from mail-by2on0134.outbound.protection.outlook.com ([207.46.100.134]:61309 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964809AbcBIAPe (ORCPT ); Mon, 8 Feb 2016 19:15:34 -0500 X-Greylist: delayed 921 seconds by postgrey-1.27 at vger.kernel.org; Mon, 08 Feb 2016 19:15:33 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 v3 1/8] staging: fsl-mc: static inline function to differentiate root dprc Date: Mon, 8 Feb 2016 17:40:11 -0600 Message-ID: <1454974818-5385-2-git-send-email-Lijun.Pan@freescale.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1454974818-5385-1-git-send-email-Lijun.Pan@freescale.com> References: <1454974818-5385-1-git-send-email-Lijun.Pan@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD023;1:p3a+OJ/J87WOUYGciE3vdOSNATCvb4vQd1uG2iyx8KDVVMnBNDzzQg3OJYYnmlaEYB935Od1+ww6eSquJwy/AaiHvwNRUEJS9qG/uw6ZkuDMAPPRuqxVRtlH5UYKY/6Lab/8K6pwEGxaVPiImbYQ/55WJ+Eo08oc/JrnqRBdyuLKl/0qr1tpkY8Mh66t5h7w+GWx1ZBOVWWC7mFFjEF4ZUdz99owLTGB54+JkcakB+lyqyTNA3o81Pmho5QCZGcNIXxOCz1IYgkOUqwY++GcCWdqHo8SX+TENQCGJyD13TwrVxAAC9LtIWs3THE9tzp9dtM9AvmxZI6o4gBRhOwrFiAkkxv766p//7sWFX2KrIKctcjLIS8oecrGnqXfYyc0hoe7br2ehlxYNt1L1qjBsP9Osg8CGBSO0K7ikQ6BNw/aR8BqzzH7GSNP/aeACROTb4iRfbmiDn2169HYIbXr/uzsacAlaQnotqVJrzHhAuBMFJU7VqheUDWkO1GnDXHf X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(3190300001)(199003)(189002)(19580395003)(11100500001)(19580405001)(5008740100001)(47776003)(104016004)(85326001)(6806005)(1220700001)(36756003)(4001430100002)(92566002)(77096005)(586003)(2201001)(1096002)(5001960100002)(107886002)(189998001)(229853001)(106466001)(2950100001)(87936001)(4326007)(5001770100001)(86362001)(50466002)(2906002)(50986999)(50226001)(76176999)(5003940100001)(48376002);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR0301MB2067;H:tx30smr01.am.freescale.net;FPR:;SPF:PermError;MLV:sfv;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 9547c07f-5de9-4560-a64f-08d330e3f698 X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2067;2:y0MJXTW/R9iKTAXlAFnFrJ/vvRYaYi601bFk0rhPjbQjBA7jk5d0FwqS8jyqy5cANs/C6wBeeNHaYALxfteNPdcQ67QcmjmsweyV0XJ0IjjBl1AUDz36QMIGoohEVX3TNyqUKZF7urkvofl9rJ5h2CMY4DHCxb62BnuSEquqdP28PSJY5EywXRgc3UQ1ZUZZ;3:UkGkM5TMYKr+w2TfsBGN5v9fXAMrj3yPsX74jRzUA9tioSNzttE1S1HjpnDXROOC/2qciAZ3tflVPdCqtlgWh1bcByYGAyYosTlhwN7yY43B0oZPdOYy31dLTEYFSJP08nJvzFE12sqJv27AFDTqcYq5P6qn1lsso39Mozen/ssFJGfJYtyqojYAvTUe31Y/hJh16HVc6s3aFORHqnwLxBttei6pHdaqvLBvHwjv8Fo=;25:fPdkX9cCIaqbMw7l9yDmHFHu4+nnkDhNl8oDMmkGPqXK7v8P6UBSAaJttAY7zpc4RImFzH9r35PpDZAS39RNOHlW9NNpnan7zu8ym8NaOtV2cB+RTZxIpxEqzoUNgfAtbppTAl16V75R6WrXfGAPWxbaPciEr/K1VyXSStX5yZYJb3+MpOabScH9vPwS9+6UrKQeetiegtWdwwde/AuosnDPJFOa0JdSE6oXgMNPDO7ORElWSGDOrLdx6qRtYUP7mmdBoH85t4sR0exz8R6zya/QO3yGrZt8UTYfK8Zd5eDuEKiqtnhkKOFzxr5FfHzY X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB2067; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2067;20:umAswVX7aa6P1S/XJhvQXsmk0RM2Y8cpHnxiejXlaUnVm3Nc6qa/RParcdWagY4OAGz77cT6bh0k4Zky++Dow89HHKDuizvJ63VGPeoD+qsrQkr/BvzaNhs1+KmXhAoa5wzSTCNPApsvOdYXXja/u+H2ypPMDRBMIxcMlaF/67JhQfZ5ndrGsKy7fJtmdqWhuKbmd0TwQvhvNWjFWjdoTqQpWS/F1m7pIilDlT1Pz5Q9jdoWtlnJg7Tci1Q3NxBsfi8fyh9vqvMequPdvboEl+7AJZALQ+npaytmXQG51EShiTUYNbzyMavwsQChEBTGvvd6Mid4FheAAjWoPB+2PUpGMjd0r8jPyU+fCnogkM8E9CCcbcF8Vfl6j+HnPsj9hXiPUNkwydtHnRkp47nK+FR0kTpsJHPlkzKgO0Ybix9ocyhkzd7u5tospl+5vLi7;4:oBe29XGdDnHVw4N2Oy/xtHqpYkr/NADgnM9I/DFSr3vmNMOnqxZDyAMqeagJFC/PBS906KzvBLB2i7qY6fTk+Do0Miet93mMNLwYU2l+S0kE0n5NdhmCqUoO4nb+FOQgdLcMAjvkBJ+jReHzEP86uMMgObo6v9ji8StIjFzsWxlZHhe/AxPaEjOmCDOkeg4zoeHNFrWSlzHzqckXfD+nsfqal3ahF7UVqtNkwzMVoYHjS/h/oW1DGGp9Mq9GVzpTd555DwvKc28y32yxwaJ7sGsI7GxNLM9k+rl9PFlYWdabikUmYWlnb+CdcpIgroTIbMJb+4RSjtQd2yeHNtuCHnVr9Ils+424OdZOXSflDahGDCK/XQR04HS6G2N0/gfJrdF3MsUsozZ3uutz5j/rbeCb90Vf1e82oL6aIC/axmm3+GIAQnI2OwCTRkWjlucw7fudx3pUaWn/4kHgGux4I8oPXCG2YO7UF9LRKmcqQEP4hz3ei/iZ67noAopYRsxy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13024025)(13017025)(13015025)(8121501046)(5005006)(13023025)(13018025)(10201501046)(3002001);SRVR:BLUPR0301MB2067;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB2067; X-Forefront-PRVS: 08476BC6EF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB2067;23:7NK9/K67QAqIJp1jY7aOdOgDbWHBTbaIwduMon5?= =?us-ascii?Q?UkKSiQ/ZE2nf6CVaT/iOfJJYiCHA7suaFSQaaaA041H0VpX7B0Lj16Xrn1s/?= =?us-ascii?Q?WlOMnTwcdo9LM/gATMVZAvgbwzvoTONKoA3EOALRIcg+wEKvAC5vFMElLm0+?= =?us-ascii?Q?2rQgPj6zmrqOuk8+IyEz4FS/Fbk9vvEhY7KVuVq8vfi5RdVGmC8xXNaW2sjq?= =?us-ascii?Q?2NbTOqBe5Of4LV5ZaEf9+NldxtQKfSYHPDDtUdRfNr3ZKPoL8BluZoRlMW6R?= =?us-ascii?Q?WE+vcQrzd5kFGoC7dUsDoSuYkZngCQ3NKQa6rn3TLUX5ZNByQ/hpNr+dPbik?= =?us-ascii?Q?Fdj/6DIPa92j8UYrz/hAS4Oy5oup+Qed6vTO1UJYL9lAQ4vyO8vPkojrhmbz?= =?us-ascii?Q?/MCmJIEKLWoGWAOwxGEXt7KorF7+pif1Ea6lhqX5DZf3aBG8JRJyH8xGujh7?= =?us-ascii?Q?0gtfRCvb6+spsViUvMj2f2wuxMkoFTaK4CwaXityrZ4jz6b1ra9PcwbVAUrw?= =?us-ascii?Q?IOpPRTr7sCmLW/guJHF68bE009511bk3TOEdrLM+bR6qQjwoFNGtYiAIdjQJ?= =?us-ascii?Q?8rX38ZZmG0EtHyhryV8BjjOT5d7p+njLE1s0RTFYTSYNA/ewegj59GT5T/9C?= =?us-ascii?Q?SVyCs4PDXm89k3MUrraAtL5vWLAMw10yEQtfBFpCQiDW/9NnK5p1MiQS4/s4?= =?us-ascii?Q?xlNAgwRGa4ynjD/IPjjMd2dg5MfE0L9lgyY2gnRg8L2Y+VOtvsSdbI3Lafez?= =?us-ascii?Q?dYDZwmji9Nxpcx+aXkGshb9w2lU4gCI92tDYCXkSdygw4v4candYTs/gMY5h?= =?us-ascii?Q?r4djWaPuozsrPcDZIziptAhLv1HphgQS4gVk63Ub3Gx0eER74ojysq6KVBrW?= =?us-ascii?Q?uHA2Cx7CpOnPcj8PmJQyO5RShsdg/7DXCxe/CsI82y2f351F/8mSEfAMBTpV?= =?us-ascii?Q?5THLAnbH/rfr80o3/jfwP55vaoXKMmixIeQHrvOxXeMdI8IGf1b+HlGfkAC8?= =?us-ascii?Q?ZNQgTFmj3h96u2jkBYgddxfB4xCLtwBqs391KQep6wKfpEw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2067;5:DdFuqkg06F1F3isR05OcnCPTzatakz1mHY4KawYA3CqOF+vTbHdtS325kKd0jinHhGYpmbWXWgEKlZXvmRTyEvrSgU7kg56mxVakb+B4UqQXHKfNgg3vPnkgiDm2m7d9TVErLx9YZERZ+zSxNkvo9Q==;24:U+V0zLfWkyXzrLON3v61HQC8jpsgihw9thFMx4VnVQiOQScuZBOv3Ac5AvzJTz+AHqtDvHTk6D1GysDbegmlP7XyuSHwxA3FTxqQ0hvzdZM= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2016 00:00:03.9628 (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: BLUPR0301MB2067 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 --- v3: rebased on top of greg's staging-testing 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 9317561..b828985 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -24,8 +24,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 @@ -54,7 +52,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; /* @@ -238,20 +236,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) { @@ -545,7 +529,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 @@ -777,7 +761,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 ac7c1ce..6dffa29 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -15,6 +15,7 @@ #include #include #include +#include #include "../include/dprc.h" #define FSL_MC_VENDOR_FREESCALE 0x1957 @@ -226,4 +227,17 @@ void fsl_mc_free_irqs(struct fsl_mc_device *mc_dev); 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_ */ -- 1.7.9.5