From patchwork Thu Jul 9 20:22:00 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roy Pledge X-Patchwork-Id: 493557 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E23101402B5 for ; Fri, 10 Jul 2015 06:42:39 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id C87C71A2ACD for ; Fri, 10 Jul 2015 06:42:39 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0123.outbound.protection.outlook.com [207.46.100.123]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 19C1B1A0E24 for ; Fri, 10 Jul 2015 06:37:20 +1000 (AEST) Received: from BLUPR0301CA0029.namprd03.prod.outlook.com (10.162.113.167) by BY1PR03MB1481.namprd03.prod.outlook.com (10.162.210.14) with Microsoft SMTP Server (TLS) id 15.1.213.14; Thu, 9 Jul 2015 20:22:09 +0000 Received: from BL2FFO11OLC013.protection.gbl (2a01:111:f400:7c09::163) by BLUPR0301CA0029.outlook.office365.com (2a01:111:e400:5259::39) with Microsoft SMTP Server (TLS) id 15.1.213.14 via Frontend Transport; Thu, 9 Jul 2015 20:22:08 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11OLC013.mail.protection.outlook.com (10.173.160.161) with Microsoft SMTP Server (TLS) id 15.1.213.8 via Frontend Transport; Thu, 9 Jul 2015 20:22:08 +0000 Received: from otc-sw1.am.freescale.net (otc-sw1.am.freescale.net [10.29.200.182]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id t69KM2ud005014; Thu, 9 Jul 2015 13:22:07 -0700 From: Roy Pledge To: , Subject: [PATCH 09/11] soc/bman: Add HOTPLUG_CPU support to the BMan driver Date: Thu, 9 Jul 2015 16:22:00 -0400 Message-ID: <1436473322-21247-10-git-send-email-Roy.Pledge@freescale.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1436473322-21247-1-git-send-email-Roy.Pledge@freescale.com> References: <1436473322-21247-1-git-send-email-Roy.Pledge@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC013; 1:sVmHMZVWnUYe4D8b1g2A0Vx4dXeiVU9EnFpAAQJt47D8Qn64m/fk35IQ84iSoNkw5DrdYDovjVmWx3AOJQwmKFi9JuMEOg5KC8lxmifMB9wArlhM3433O5GDQdP8ysWUsbfzTuDo6d+dtcT9hK4k2Ii4PJVIVOAJi6F9EcuoUcLN/mQHrHjuOXkB636NObWCFWcr8W8E1yqvOTwVu76YYgjNl2kt3b8U7ILcncEizveOQco6NVHumdIJwhy/sjn9MykK9AbKpVCF6fMV14nobyuvpf+x/PbjSDUM6xZ24Xyy4KCK9SQKXKNaKEk3rCnWm5CXsnyrU4uweqUNGhpI81QudIHZbly6LepP3xGErCgSj90iuXmSm4TvSP+8I7cBVtsHwn6WuSYmPRJIgngXaGws3M3rn8bcxGpNaF8QPj5tCfCGpNSv6U6i5AYlkBVB X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(339900001)(199003)(189002)(36756003)(92566002)(50466002)(77096005)(50226001)(46102003)(5003940100001)(2950100001)(19580405001)(189998001)(106466001)(19580395003)(50986999)(62966003)(77156002)(76176999)(48376002)(47776003)(104016003)(229853001)(6806004)(85426001)(5001920100001)(86362001)(5001770100001)(87936001)(5001960100002)(105606002)(4001450100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR03MB1481; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1481; 2:rPwfRN/SCS+qFyIWeUyW0dUjI53cnEMI/yt3RNirgiKQdqnnb/wwWZ1mYafF1JGU; 3:esSL6z3fCMHwBIoOu3lmXGuFA+hnghrQ2cKx5wSEYXagPO8X8Q2H20iqhMaYB1g6j2i22Eq0+qUAaIMWpGXCMxrbRGN6F7eW2T1UExj39OIQ/fPgO/W8TZ2ZyFfzpwNaf9uT0RdDKar0kGthRhL19EbchsBNtLAkE3h4WkRUJxnO/AmYCYmPTkF0yBPMZ3El16SCRUZUo9de4a8CYyOmsqsNqphpJt6nJcL3A9zK+lU=; 25:HcZ7wxHcwAlfAo7MzjraOW7Lnbu+yG4OGYVq6AL41v6cfvJaRDg/nisMdTM/uJtHedR1Ixfn1MWkoUC7LIylMOWDcles3CR1wJckvgh1QCZ+6aH1qq1CFl8S/dyNkkp5jXVIZ1YJeuDweQtnawpuTS4KNztjYDXllzcNjoSPzjeh0F2x9nR/xltfmjJiATYz9PHMJMMBdYaBx+jdBz9midDU1vZS9c71IvVN0Fr5qENY0yMlbRLNIFi9KD9XJsfvu9x9p6tDbn7zkV/F3E/LYg==; 20:OIHNkadDgYHXD71nayyCwW/GIuot6L1iTYpagRnzg99/vK27xX077QwhSenyVUHpN0Wf/5YdE9gfLsySwpjDbF5Aawv/BSWxBxfWUQjycO1z8dVGtgk35ezMQzo7riGZr5KDZ+jmAV1Pdn4vLDJrI6RtV96pj9a2keyVBZeUV9nqYoHKcpp8AuiHCDwWvs7cfwqi2w30XYNQ3P1hQSLtKb1f3SHSkmUq1wywAUB0e5mmzCt98S8o5nbhDChWRtOHdSYTda+531/uG2zcjChy4NM6hx6jUVBjsAFeCbLySAj16XoNwnd56Qx+DNKqsE3Wx83E7ohDwcimKioXVYg9OgKhRaiiGHKti8ptDbFVPEk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR03MB1481; BY1PR03MB1481: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BY1PR03MB1481; BCL:0; PCL:0; RULEID:; SRVR:BY1PR03MB1481; X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1481; 4:9QENLm1s6IYUY8xQ/yzW8Bf/vQg0xT6Uo6XRRqwXEmI+I0jTWMgWwx6KgeGDbnFkiaX+myPXtenbIOUYsoskzfaa67n6rHfX5zHdXDprj1m9HEwl4kd8Kg4QzXkFHVrw+9eDqJunqIYwLhp7BG9vu7oPMpYmNWPN0O3IktS2o7xgEjP6cO3rMfA5fTXA2KYquFwMlS6WB4EWgkCtlwjmSc4qRlRP3NOJaCj+2Jr/c+19p82ctxdYX0TYhO6CXcy+3ADMzvXAreawHJZYnXI4hTjeAxMSU+21qD/ut+riivQ= X-Forefront-PRVS: 0632519F33 X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1481; 23:QzavBm2t6V7Q78L5QN+64QQgZ0JsQlWjnCo7g/r7/yCclEdSk+52PFp6QulYpxYlEpUPY6Dj3+3oScQnLjaapnqY6BoWAtv9pokxb7sTAIvdJmPhY8sB0ZZ8hUsu8b8gEaIfo8G21qD+RKFrsBb+aq3lyraXaaPLBuPethhuO3xeMlb+RicBDEeGhduuSkNFmKlZnD8rkcQXEJ2wxrdlnTIulaIsZa0wRFllO0CVfmSPDaiQbZ+V2hTjbkbGH9470bY4Dk5Pg9QzQJ3p4u3OF6tgu+V6wumibTken6Q3jaGXnjnWrS+k+pMC7m+LiE+lz6ioFcgUGl3k8jWDxKU2ZT7YzLLwUSZyprYMYEnzTrG2nz8jmHWQvEIRJa5yosGDOdnlltoFikZF+PrlfvSBrpANIAqAFQioHJQbBpDGqCR4+11nVdrUUQkPvkcrkt8FsZaWVPyy3hwTmKimZLY29+Hfu/eZ5p4xDQ7UAkkIPu/LrE75FyZg7lFzYqmYJpCIxVJx7wMtbAmzxXW2VysU+vBs0SMoRk39aYdVql2OzxLfsvk1oyjuJW9zdDcPLlNjzH1Qeb0KnEWYxs3uo4Ujon9dC0A2iNahGpgkeYIJGy6LPOTZSHaWMa1VZ1djEzF9E4+CJpXwK3AsHv6wWnmPmgqbj088aYNWwgV0GoKOaOjo4/pjMbBw/bUVs9YaDqnO1mgZRW0w4GL6BSVnr1aFIhcdMv/lCqRAUL2MQu3b+VFaKPjvpn9LLJunMTKCw7M/IiJ40kfpgGhezAwKGTyk+UZ6uahCuth9Wg5tZhf40eggJmDl5mvpYQex1/J1+8SBlS7e28DtUmF/IW+zh9ffjKjbXT6gyr6xtxIPsCyl+rRrvELb+j03Xx2pZGle4lBLETxpjVlT0SjHXxdWGK+a3RePCD8oNUWA75fa1lSwbQSmmvYcBJqIImvHR7fcp3Ge X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1481; 5:5mBBB5Nv+JJ9/6nKd51q0ueMMfiHOk5dM/B/tiwDZmlpZJC69e0oxtPX3euv+0uqbjO/tSq7ZZcQl7ugKWfohBp6ru/2/ZF3QM1YqQOWblnY1e3cpULHzDksGT+gqXfeFPN7oedcR6EFdFbluB1G2A==; 24:qtVD7h9BotxjjRvi8msDt+N1vCTD+2i5B2hZavliCCqRhiFjzm+cEHJkvDulF61qJcR1Nba6kKJqSlMFJJOG0VjCeelpx1VkCSAskaQQbEU=; 20:+CRwMB337p1TAEcOHYX4AMre5x1WqxW8qiPn4c37n+iUTGhRXBt/mt5on9OITcoTFs2HmPKdehlU1sFugWuCNg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2015 20:22:08.5871 (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: BY1PR03MB1481 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Hai-Ying Wang Add support for CPU hotplug for the DPAA 1.0 Buffer Manager driver Signed-off-by: Hai-Ying Wang Signed-off-by: Emil Medve Signed-off-by: Roy Pledge --- drivers/soc/fsl/qbman/bman_portal.c | 40 +++++++++++++++++++++++++++++++++++ drivers/soc/fsl/qbman/dpaa_sys.h | 3 +++ 2 files changed, 43 insertions(+) diff --git a/drivers/soc/fsl/qbman/bman_portal.c b/drivers/soc/fsl/qbman/bman_portal.c index 62d8f64..f33d671 100644 --- a/drivers/soc/fsl/qbman/bman_portal.c +++ b/drivers/soc/fsl/qbman/bman_portal.c @@ -129,6 +129,42 @@ static void __cold bman_offline_cpu(unsigned int cpu) } } +#ifdef CONFIG_HOTPLUG_CPU +static void __cold bman_online_cpu(unsigned int cpu) +{ + struct bman_portal *p = (struct bman_portal *)affine_bportals[cpu]; + const struct bm_portal_config *pcfg; + + if (p) { + pcfg = bman_get_bm_portal_config(p); + if (pcfg) + irq_set_affinity(pcfg->public_cfg.irq, cpumask_of(cpu)); + } +} + +static int __cold bman_hotplug_cpu_callback(struct notifier_block *nfb, + unsigned long action, void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + + switch (action) { + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + bman_online_cpu(cpu); + break; + case CPU_DOWN_PREPARE: + case CPU_DOWN_PREPARE_FROZEN: + bman_offline_cpu(cpu); + } + + return NOTIFY_OK; +} + +static struct notifier_block bman_hotplug_cpu_notifier = { + .notifier_call = bman_hotplug_cpu_callback, +}; +#endif /* CONFIG_HOTPLUG_CPU */ + static int __cold bman_portal_probe(struct platform_device *of_dev) { struct device *dev = &of_dev->dev; @@ -342,6 +378,10 @@ static int __init bman_portal_driver_register(struct platform_driver *drv) for_each_cpu(cpu, &offline_cpus) bman_offline_cpu(cpu); +#ifdef CONFIG_HOTPLUG_CPU + register_hotcpu_notifier(&bman_hotplug_cpu_notifier); +#endif + bman_seed_bpid_range(0, bman_pool_max); return 0; diff --git a/drivers/soc/fsl/qbman/dpaa_sys.h b/drivers/soc/fsl/qbman/dpaa_sys.h index 3758f96..930a4d3 100644 --- a/drivers/soc/fsl/qbman/dpaa_sys.h +++ b/drivers/soc/fsl/qbman/dpaa_sys.h @@ -43,6 +43,9 @@ #include #include #include +#ifdef CONFIG_HOTPLUG_CPU +#include +#endif #include