From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753507AbbLKToV (ORCPT ); Fri, 11 Dec 2015 14:44:21 -0500 Received: from mail-bn1on0132.outbound.protection.outlook.com ([157.56.110.132]:13488 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752872AbbLKTnQ (ORCPT ); Fri, 11 Dec 2015 14:43:16 -0500 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 4/8] staging: fsl-mc: root dprc rescan attribute to sync kernel with MC Date: Fri, 11 Dec 2015 13:25:50 -0600 Message-ID: <1449861954-2824-5-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;BY2FFO11FD042;1:vv+wzzq1zelZycCjLx5VQfWgOlQfOLK7Okwa62JJ/rN/q7zkI3c4RfJqJLcOB65bfke4rvKWs20W3olDejd66zpjTs2QUXpAVaT2rIGtigQxHa8SDBROEtoWF7xG3ZYS9XLy5iJxjYHShM407Ckw4glgsIJV2vUQb/LyOrkNej6EC84G5NXHwV9vb97Jhu5cXhCKwGWa0g53eGCTrLQC+l5/GFNqL1dPHZiD6UfQBvKR6pI1zjy+itxd5ASHWUruQ16Qc6PtisJHQoXApfaL62k/tLSwkqMLsWVKA2NYI7kwJQUn8jlP8Lhm96gR8u4u6RDUEVWYgvVWjrIJoqDOSmZwq+yuPprV2kol60Rd5UqJmlj+g7P2MwIk6Sj+XzZEmKm5q09wE6oz3z5AJPIRPGGJgVX6AUXr/8vT/z87mTw= X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(199003)(189002)(92566002)(87936001)(107886002)(5001960100002)(5001770100001)(106466001)(50226001)(47776003)(36756003)(229853001)(81156007)(97736004)(2950100001)(189998001)(5003940100001)(1220700001)(1096002)(104016004)(76176999)(77096005)(11100500001)(19580395003)(85326001)(19580405001)(4001430100002)(2201001)(50986999)(86362001)(586003)(5008740100001)(50466002)(48376002)(6806005)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BL2PR03MB500;H:tx30smr01.am.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BL2PR03MB500;2:humKh86Cedc/gzEZfvLNT5ZTNXD/hzwTgWfkRqCrSSsD1FsPjum39pRgxexhcCx/yHiBowfVbPYC2oUL4RmhRYpFpBT/Wkt1aF2BI2TBzcfEeIv329wpVQxLA97u+Nly348phkikwiDctU1mSQldRQ==;3:PL6ojnXFSu6AZCtM8XSPNB+QPkj1SNoBU0zfLsVuzShie7qghHAWB9v+iZWCIuP2spVfdlewZXbvKSgopFiqIq4Uh3uXJiAQpo0etrPWdKERO/mpIqHpW67Nw5Sd2WS3Dqn315K03N+fLk9ymc2NoDfTqnY7uQllvOKkwz3i64oqu15F3x3vuLClojDyhDx6/X7HG07SlMweKj02w9tQJf/i47bikI92zMccEhBm1XY=;25:iMJELukrqF/JVPwkGZMXgQ4dzk5zhrBrn4Rm3t794fXFuz5STppCIxodX+gWJZqD6AJI3DmSgu/RQAgSbUEgAN1OtgYYxakMvBSpdcjFtfOsX7JdKbfJpDioRMwT15L5ZBG70L+6oezYw1q6ZvSJWuEbOGGtdg5qqxBK1rNrNl0dnPx0TEifw7J/E9OAzK7w49dZ+fru+1PWwrsHprzH3LjRNbOO7XDKAjgw2AlxnwExfSXMZwODvCEb0ejSfGGz X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB500; X-Microsoft-Exchange-Diagnostics: 1;BL2PR03MB500;20:eZQE0nDSK8Pj7IeQRYxZhRRjDHP8j2282KtBmkMyvL9HW6HSu5Pd3tiJNwhkVstI0TGoMMKRe7fVeKNhrNDKIw3VRlNDwGd+1kH0iaoO8fJAzQfNdvWRCZqs9b2s+FR3h90/0NuAQrphCF2O7IvAjClKNftZfA0wNkv9/JpgTYJahwzxcj+pqgJ/sDCZF/LH0q1TozNich1mbx5dMOQbxrNIiyLI4NTqEFn4KQ0OSZXm5V0kTkJmJmdd1MbxnEEDse/8dsBllACiXA8hlMo/Ufhx8kyC/st90dl//VN+HRXZnlzu5MypL/gL1G0Pw4NOYDvBcNjDVGjYg13Xzia+BhwyagqtP3yq5aPdr66eGnw=;4:5AuWiiXey/Ooi+bJyBJTnHO69oSmT4KqSILejWLws1zGD3Q12qFk+uO3x/FwqIB4pgjaeQmh8/arjzSTSj6lrRISyIrnOFQGOQqk3wxdwrbozsfMgNEc0Lrw6fSb433MgJNy7IL77uKUxv6IYXDftN7C/jmlEk9IStGSAKeVNcW8gECGcQETeJpAuBqr/gnhY0GWXT7Q6h50I4+M9sVP/ejyau3Q9JElbm/dbmB0dd4Cpp8fiwPMoHlt+KBlXjR0QeZV38doE8dBSvoOhFoqZRYvSmqOck+I8TzJ4lCWX5RUmLO+6uHXN8CWcoHhrTv/JdGm2ErQ/4xL4gxZJskyZyChYC3WYjgc+hY50oOscoxBIYTHfyUOeHE1dQK53Qqxwz/VW9EVI9duVbdz3ZAsMeWsyZxZOGOrhftzNFkzt58= 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:BL2PR03MB500;BCL:0;PCL:0;RULEID:;SRVR:BL2PR03MB500; X-Forefront-PRVS: 0787459938 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BL2PR03MB500;23:lAZiksWJe2wJW97IiNyswXKnJrA5RCNEr4ScKwLO1E?= =?us-ascii?Q?gLowZnq89WcKUFgGvlbbBYnt82+3vt87Rh2k0BUstIefXWGP0+Oj5G+/Z+Rm?= =?us-ascii?Q?U1Cq8Chwh7tRXgXUOvI8lG/XM1+GKCwnHVp7r2KQ3Zi7uCUNrT9mw6hTXJXm?= =?us-ascii?Q?DV7jJW1oi5NSoDdsWR5QeUz2qdP2zhRqreDwECvcyo8g5K8aPcm21wdTsceH?= =?us-ascii?Q?eHKW2bOEyAUGg6KtRmYVrN29IkdwE8hQAWUhQGyeUSqmG2+G1n7XUi+WTcTC?= =?us-ascii?Q?ubMPQhFKk+RJ60dWKTtyuhrwyDLJrgv69LkpooHPcArQ8h4zCEq7IzTYU1T8?= =?us-ascii?Q?Yv6l1yn2IoHCGbnTodEwoHIpMDAUP3sCoNOsZeAfDxN1nui3bQhW5cH7ghBm?= =?us-ascii?Q?cJ3v3JRpx0R1xmGz/gdEEd+HVBr32twr3ZJsjO35nMA6cY6LNIdRbVntUqnc?= =?us-ascii?Q?eaDemgwDntUGPUF6ucznMBfUgtmr0cQSCW9ZLfAtLE2MjmHES1uvtJBF9CJA?= =?us-ascii?Q?ufg5LKRRfHQVXpHCyg1wL5B1HaNWGimUyZr404J0lv49m1yyFpHsykc38LmS?= =?us-ascii?Q?9lpZqLW0mdk/J7ZaU7KQ/kMbmRYijQIBPnBGR4kcx6KbujS0H0d5jscRWZtA?= =?us-ascii?Q?iKIOb/2Yf6UVz+I2HnxLOvjBgzxcTu+V3mG8mKjuPv4QKCxJ21kZy1zrVW4m?= =?us-ascii?Q?oiSfw5ZT0gF1hQeybs8x5neUgu9dSq+y/TmuRayRtsOfoDwPuVOQNTLn7Vis?= =?us-ascii?Q?ZeUofTNrgHKG/OdAJYBcDTbBSuNv7nFfJtc45Jii/ZJxgiBtvZ3HUTnuz7mA?= =?us-ascii?Q?lY34Y71wSnqZrrFw/ngl0xtFqty6GmrZSY0Bg/XCITMun3tgggLsRalkQl5/?= =?us-ascii?Q?kopgAdEUGa7dMm7l/mTCTAOiCOBz5vUW3v7bfxBv2LbrcNbaK2rVXFuW1WqO?= =?us-ascii?Q?Z3dEvBwGE+heRDytCEd2Nvf+LOKl9F2w9huImjzFNcTCl/JhGrUQ3Zl0tPTv?= =?us-ascii?Q?7iYl/wPr3lZ5ldP7w595R4C+ndjcioxTVX0OtqAXJBXjWdkbLrB1184BoHJa?= =?us-ascii?Q?f8aXA=3D?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR03MB500;5:7xOa14p1mkquKU/9Q5a22W4yDtItdKOdmVBsZTelQT+8Pso7axCA/K5nIgD7S/lYwnkys9lvbLp3rBlFQPzqRJi8y2BwTvOwP1qkLhsf2gfxcdrZ2wVx1+WBSVcwhSTaAC7g48YjhMFcS0B5hAItKw==;24:B08WPqrR/SBDPYpmVGtaCeukWrzV2O/3DET5j6UWoG4mVSYUqA4lJ8vTo8orcK6XD+uVKruo219jsFj6NehCLdURUUaMFX0tdI3u24GP+AA= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2015 19:43:11.3332 (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: BL2PR03MB500 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce the rescan attribute as a device attribute to synchronize the fsl-mc bus objects and the MC firmware. To rescan the root dprc only, e.g. echo 1 > /sys/bus/fsl-mc/devices/dprc.1/rescan Signed-off-by: Lijun Pan --- drivers/staging/fsl-mc/bus/mc-bus.c | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 25e205421..61d44fd 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -100,10 +100,53 @@ static int fsl_mc_bus_uevent(struct device *dev, struct kobj_uevent_env *env) return 0; } +static ssize_t rescan_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + unsigned long val; + struct fsl_mc_device *root_mc_dev; + struct fsl_mc_bus *root_mc_bus; + + if (!is_root_dprc(dev)) + return -EINVAL; + + root_mc_dev = to_fsl_mc_device(dev); + root_mc_bus = to_fsl_mc_bus(root_mc_dev); + + if (kstrtoul(buf, 0, &val) < 0) + return -EINVAL; + + if (val) { + mutex_lock(&root_mc_bus->scan_mutex); + dprc_scan_objects(root_mc_dev); + mutex_unlock(&root_mc_bus->scan_mutex); + } + + return count; +} + +static DEVICE_ATTR_WO(rescan); + +static struct attribute *fsl_mc_dev_attrs[] = { + &dev_attr_rescan.attr, + NULL, +}; + +static const struct attribute_group fsl_mc_dev_group = { + .attrs = fsl_mc_dev_attrs, +}; + +static const struct attribute_group *fsl_mc_dev_groups[] = { + &fsl_mc_dev_group, + NULL, +}; + struct bus_type fsl_mc_bus_type = { .name = "fsl-mc", .match = fsl_mc_bus_match, .uevent = fsl_mc_bus_uevent, + .dev_groups = fsl_mc_dev_groups, }; EXPORT_SYMBOL_GPL(fsl_mc_bus_type); -- 2.3.3