From patchwork Fri May 19 07:30:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Steven J. Hill" X-Patchwork-Id: 9736095 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A781C601C2 for ; Fri, 19 May 2017 07:30:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C20042875B for ; Fri, 19 May 2017 07:30:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B65DF28897; Fri, 19 May 2017 07:30:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2542F287BB for ; Fri, 19 May 2017 07:30:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750745AbdESHa2 (ORCPT ); Fri, 19 May 2017 03:30:28 -0400 Received: from mail-dm3nam03on0054.outbound.protection.outlook.com ([104.47.41.54]:61568 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750718AbdESHa0 (ORCPT ); Fri, 19 May 2017 03:30:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=7Un8ZF9EcfU41RPIeg845safnIU0mEplDTSpamvz1Dw=; b=VIptN36fmLrGIqCNfeMSGboDianT4Om3k0hxHGE78i49/X6kI1MOajVP6SzpsTc7hyscvLuxVUVZ6xdaiRqSljUvR1Zw3paklM2lbi8h8zGvUizJS3Un7wApYyiZZXtPTPg0sJDZc1qPzbk/lsf1ndlkbf5UvSmLKotiLj+Gnfc= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=cavium.com; Received: from [10.0.0.4] (173.18.42.219) by CY4PR07MB3205.namprd07.prod.outlook.com (10.172.115.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16; Fri, 19 May 2017 07:30:19 +0000 Subject: [RFC PATCH] mmc: core: Remove CONFIG_MMC_BLOCK_BOUNCE option. To: Linus Walleij , Bartlomiej Zolnierkiewicz References: <20170510082418.10513-1-linus.walleij@linaro.org> <20170510082418.10513-2-linus.walleij@linaro.org> <3202707.f2tzK1cxd8@amdc3058> From: "Steven J. Hill" Cc: "linux-mmc@vger.kernel.org" , Ulf Hansson , Adrian Hunter , linux-block@vger.kernel.org, Jens Axboe , Christoph Hellwig , Arnd Bergmann , Paolo Valente , Daniel Mack , Marc Zyngier Message-ID: Date: Fri, 19 May 2017 02:30:10 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [173.18.42.219] X-ClientProxiedBy: BN6PR06CA0023.namprd06.prod.outlook.com (10.175.123.161) To CY4PR07MB3205.namprd07.prod.outlook.com (10.172.115.147) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0b6f0d1b-00c4-4c78-b9bd-08d49e88e97e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:CY4PR07MB3205; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3205; 3:92Kvc0bxp3gFIbVscTmvGozZEs3NxvvtR8nwMnIVfXlk1IajSu0oJOfeyvEGjgpI7XtSzwPx/kMmOIACosEgV3tuotKqD2PBebMTJJeNBKtH3Ve/oYgsrzoAWv5VeqOxFFda+GMAzLzZ4+VhGfmD1yUlvzGcnDFm19/8uYKCZESxzl7ol0prFcYdYpgEzUXx79UBJZvN7dCOAzKzxmMQM31h+tUuEJv+d5oT7rpglb4YW13jWYAm37zAW0xMVtEX1tat/n+Po4rd37K2XrpwfjhQHXZGJea8BBOeqUYNZL15HKVIvENI3h1pZFh53FAKfD9AeoRdABvibLf+g1sfUg==; 25:7wTTR6XI9HW99OFMvKaxAsqy/fu6SaUu/M2AVBq0Dw94cHEUIpH+Mcv+FdAMj8zh3VGVu0K/dwZ6r6JyzGvFhKLdDRPxuLX5sqy2Jca46e2MCkvZrRnOdfMy4SBnnRMmA2Le06Mdf+k7d7SyOaAvp44+4u4BQ9XBjtSFon5Hvv7k9XvWeCDmRHSnOVa77GUTx7Zib4VXnW9t2xPv9OuVXFms41RY2C6/w4RKtj2MSdDqzvjBzVbZ/XOUBZ9PfVmSHlS8Ze7ynjivC6PLx9kxwYOdt0/yXK8xVvIXBhLyebxwOKgBaK7BqgIaZcXAapYI8MMooENK4TWE0U/upd171sZWwipreEyF6kps/Y+Hm9udD4cOjR97QUt7OlkVAoRnLijMrELEQCuXmbCvqu9sIL8O7/+UKwWNDb4p/qukd3+Cj++mfIEqzD27dcHA1rlBR/wBj1rdMXpowUjWM3qoUz+EHlXcnn0SDFqM7HeFvPs= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3205; 31:zWiG4f72eXdsigkwgFattRK6/nauMv4Bi/rtsLqOmyddJcE7AmR5vDR+avg8wrIC/EumUc7hse+00euvXyXj8sW25GmPcYrGX9z2AtrYQjGiuedkOyzHg6KwmXwIesqW8DfjOssU8HRqrgar80Gr39jhJH4vOzK8+wMf1tljw+fApPZlyXUwMf6wR/xPsQDR4Iw06U/t5fFdSvGMct1Z/Hj5L/quUC/bnFtUX5r/cDAsktnbIvmZXYN6s7d2MJwQJB7pIC69dpPKXLG8QfEv3A==; 20:XLJLFxnSLXnbS/UkmnD134JjcVKQlSuLDq5wxayDdjuzCrIFRMf9FnaN8QVwBvL8HiL5Xep4K1CWCoPl/2fEFV1HgqjBDAIGcOFylNFvYtfHijV3CFgEI/wrzCzH57y82hVbX0XQ9PJAEut20DoWho/dYAcmeQsz1wskHjBhu30DRR3H/H7INs2TxvDzEAHcJTHbtOGC9QEuOKqmjox6ApXezIrJpiGfOxkvlD4cJe4taoSzGmJnWgL4PxwQXh475FLbtJvMSvDyy/N1QMWDd7QFa6TIMxDLJbXJKZA0msrBqHxVEq/WyDEnw6+SCL2lDnCB0Nl4K5FOEc3aoBjEMgD2wFhG+vlYZ4JHzo8B5RtzEGK7q/L2OujTDWCosVDXRC7hUWRvYM+qh9IPjIFbFBMrPN1sb3nWQDyTHKgm19+f6PeyqSKXkbvMUfGZztxzNzL8oPlYXyhjdvnYEwypu9DFCi7/eEDr/DHQYRNAlggkcQBCHuTO9XYb9EA6WFWt X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(6072148); SRVR:CY4PR07MB3205; BCL:0; PCL:0; RULEID:; SRVR:CY4PR07MB3205; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3205; 4:G/csfuwEbk2AQFv+HE0sjYn4xmdGDoQk8RWTyv0msiDjsNzwvYE7c1Uj3NvNM88uqYzFlkiMZGdNBKjOi6itEKU30AC46SC3rOMNS0/5V9+WtTKCqIhhbe3U5cggIm9+RySB3c6TanB2Y50iRlYGd8DCmOIk78cHP8dORZBUXDJCMqX7LBiFdob/nXbjsfiyqXKvVm2Xn1Vm/eu/KyA8v0sQZxamD8n8bpfTPZWfsVJqhieblEf7j7qgusGd5A8m+utF71LufiFzNxL0Cz1kWAuYVoKr42u+mLszha5AThIlfaZ2B9sflDhnS6+4dhPzjOAVppIZVqVCi4P/sGlDR80621qVKuaR9YvQltGpTZgFv82745H9BEB7UuIHu1TmKtlYYUGyl/darzQAKyLUbQP8fNOoAWw2J9vA9bA5Kt29vafEzy0h9ghpB9SoBldvSYuXy0vnmW+N6fH8dcSxWT1jmSh5STl9iL3Dyxwor3KCZu4g3v8H0zm3ptT0ryDIC/Ra61uGBQwj6n5SR8YcPtwEV8R+Qha0A3MfIqqH1r9Wf5qyTiEKppEo5TVO7FlYO44obFmTN7FXStCVsqMn1e/bRmIlYrquhBPbN0s2zNoFo1jFhaEeYchBBWC0JTTzy9eO/nG6QM1xd6liFvWVnorTCL6Gc9Nh/8xgkRQHHoa/bPgo24p5CuTaoeY+AlTcqyzKu+hrVGIJHvYKyakpJr0C/S1XimRuKLLqKANmac9OqaSZpmYqBohlhSh574H0hehXqZmQQyNl+k9PA9O0vP3MZ9uJSqiXZwCsEmRNMc0= X-Forefront-PRVS: 031257FE13 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39850400002)(39840400002)(39400400002)(39410400002)(33646002)(31686004)(42186005)(38730400002)(77096006)(6486002)(90366009)(478600001)(4326008)(53936002)(54906002)(25786009)(8676002)(81166006)(36756003)(4001350100001)(3846002)(6116002)(189998001)(230700001)(50466002)(93886004)(6666003)(2950100002)(7416002)(305945005)(23676002)(5660300001)(7736002)(66066001)(65806001)(83506001)(76176999)(54356999)(50986999)(47776003)(31696002)(86362001)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3205; H:[10.0.0.4]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjA3TUIzMjA1OzIzOjMzSkNmdjdpcVU5ZmR2T29lVWw3RTR2dHVR?= =?utf-8?B?cFYvMTNCMW8rUEx5WlZuaXJzQXFHT2dlL1VnRXZzUGFPRVBkUDEwK0VzSXlZ?= =?utf-8?B?c09Sc1NHRlBHTERYYU9WTi9IZzRoSFVqam1Xc0VPeXUyQXhvM3RDeFpUUW5h?= =?utf-8?B?US9EU1d2S3RhOENLK2pUTHBRYW5KRnBDN2VMY01HdHJKS243UHhPTDE5UU1X?= =?utf-8?B?U1c3RS9JdmN4N1VQeWN4ZnpWUnc1RnV6S25FVGtlTzJnQWIzN0xtYTVGRkJu?= =?utf-8?B?NXE2MUd0Rzg0dFdQOTh5WHVzRGpTTHQrMGFkNWw1UENDTEs1cjFWa1pnZ1ZN?= =?utf-8?B?Sm0vODFGbzBzK2tLZnRTMnE0UVdmT3l0WVM0S2FXOW55anV6SFdKVGdWYlFu?= =?utf-8?B?ZUpEUDJwb2J1WXowVVljQWxFZnE1NzFtR3lhYnF0NzdRL3U5TGdrVHJ5QWRJ?= =?utf-8?B?dExZbW1zSURnVThubUw4TDEvUzlIYlJ1MXkvYWdIWVBicis4VUJWRW5HZWlV?= =?utf-8?B?OXlMMFZLcTJGMzNYNFFGWUNrS1FYc1VVT3pCMmVaU1g0REVFZUREcTg5WlRl?= =?utf-8?B?MkJQdm9STlRCM2NXOUhkcmxUNU1zSGQ4YmRLTnBWT0dIRUNnNy9GcXZtSVl1?= =?utf-8?B?WGRES2lvOUJwUjQyQi9SRkVLRjI4by9SYUQzTDdmM0h4cklJNWxoZTQ3TTRo?= =?utf-8?B?OEN5bGY1VVpDUnlBRnNCZ0pJSkVITjdJWFdEUnNTRHM1d3hLYk9XNzA5ZjB4?= =?utf-8?B?OWpkcFM2SEVTZ0JvbkdrenRmSkFscFIvYTZIVmtNZ1RMTDExUzVzTVlGVUl3?= =?utf-8?B?enVMMWZncHQ0Q0FSQ0lmSjJtbk43MEg0UCtWTmxlb0xDNHo0dUIwZ2lYdW42?= =?utf-8?B?aURaZjhtQUxacFo1SmE5TkRWMi9JTTRWU3M4NkxZcGZiTTA0VHZyYmZvcXkx?= =?utf-8?B?S2paVXV2cG9YRW8wMExjRlB2TzMrWTlrRHkzZjRLaFRMSlJDV3BXUHhDaEti?= =?utf-8?B?ZjRnV3dVRDlUdlVWTlB6MkJ4YzR4bnNZRnc5R3lOUHFBK3VjWHRSS2NYVEhV?= =?utf-8?B?UnhBQ28zZzloZXZWL1FCOHc3cnFZWXR1Uk41cmRoeWVnVHFhY0lPcTlhUUJX?= =?utf-8?B?OXhoUzBsQW1QUmNwVlFSY0lCSXA4cDVCSENxckZIcWhGNGwzYUR4cWUzUHM4?= =?utf-8?B?K3VxNVVZZlA0ditmNDYzTU9QaEhPNGU0NFl3eWVZWHFmR3g0MUtMYjJ6NHNB?= =?utf-8?B?S010aTNEV2hKUVozenZ3VUhLSFdhU3FpSDFpK3JuaVFFbCt5bW5NeGZqNm5F?= =?utf-8?B?TEcybTZTallNMlRvcm9DSkEyYTc3V2FZSlJibHp5MThGcE9jMG9ONk9DZW8x?= =?utf-8?B?SWVWMmIrZnJSbjFMRHUrZVFDVy9KZWFvWk9OSFZpMUxVSlhIT2NPU0RhNWU2?= =?utf-8?B?RjdHSHpUZng2MFA1bWRKQkxvN1ZoOVJMd0NXVlZHbzRPYnFmV3psbEtTdGpC?= =?utf-8?B?RVplTWFCcXFyMk1wdlJDUHFMVzduQVhDYTViM1VWZ2JtZEJ4aE9UL0h1czA1?= =?utf-8?Q?HZIMB8U0smgDfZEFben04EBp8kQBlwm2JFiaH20LOxGo=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3205; 6:GxGiYDSO0yTfaoppimjNFjTvgd0dde3HHxHbb6jPxykR2xEl9jiej1wplmUG17WAegXqAoWvQqlU7KAJxgJJl+w7vmyxtd7yq/VQZHzqqQhbO+1AySW797bxmPtvWj0PEXPRQEPEezUpok67J9bbRlmzYEtZpZ5L3RokHdZ2tW+wSDcEUsaDu9x1NRPoJjgCRI0OeEEYvG1NLoB8zLXADr6YnzVSzEEdX9uu2UfXntkRV0HIOygC56dwQYUXrF2+YFJQ5VNRLjKkqbT1VTg+DgpzazItvpdO/XnGXKYftwD9jYYlMRYe4OSXyqg1lMKMbF7w+CnM2DyDfcNgAO1Qq4RL6RkFk1jZC6XgsvScxkN3Er+46DpXyY3ymsPFw++w8+76GinnBls1Yl3UYKz30awY6UE1kdON0nEhV/B2EP5mwgevDNQ5kDGYs3FKUDtkPRHehYovTWwLuRJwwqZBQToCziFVhXf4JxGmKW/H+UP2e9jMdu351qKdAN4+bm1Z1aR/FDeUpXdh1OJ/LPJ3QA==; 5:ZruPGFIU/RCFToHp9g9/eC/mXjorVmoi74OQLPOQumCxMsBZB4s6KKMkt9O5AKxdt+dOco3aN3kncM7jz9RRTROABCPHa9sjlLmI7YvJEG+DLDtP2yMfxTP1cCVWRilrxNhSywb2kl288lYx5jC2B0DOwIC6GNnrztpVfG0j+ns=; 24:/vcrmqVVX6IHdNBlRoK0y/QOb397+BnoCIKjlO7A10v/WmaQ0xNeL/uJ2JUnvtkDnVUw3n3kDREI/Q2A7NUmKSqGoDUH1LKsli0eripeN34= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3205; 7:Kf2wttFqQWR9C07mtFhDhwVUHtmdrmupUidXHgDSbyem5rtaIRGivbxuzVr9VrsOKTYH+ygoV43jjIku9M2kr3m5zQMae8tAZU4HX7gY+SR/P/WMf16FBdZSoRB0vO9hdFiO1wJjHxx6R550IpFVKzoRngjrAPQ9RbfIHsrwDE3rOCqAZFz1okpqu/w2prqP005LxwYSJq2PWrBYMYeNsFm6aOiBo0pnx0GNY1eCINyruhU51hQ3mUB0tuk6knYG6rPqVmh+ZtZDAKGysw2p9hE8nr9nRBFk+I7o2S6XIEQWc+8y9IoKLlrVSfuaLxWlAw9E+oZ/VpomGdpRmv2HMw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2017 07:30:19.4374 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3205 Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Remove MMC bounce buffer config option and associated code. This is proposed in addition to Linus' changes to remove the config option. I have tested this on our Octeon hardware platforms. Signed-off-by: Steven J. Hill --- arch/arm/configs/colibri_pxa300_defconfig | 1 - arch/arm/configs/davinci_all_defconfig | 1 - arch/arm/configs/lpc32xx_defconfig | 1 - arch/arm/configs/nhk8815_defconfig | 1 - arch/arm/configs/sama5_defconfig | 1 - arch/arm/configs/u300_defconfig | 1 - arch/arm/configs/zeus_defconfig | 1 - arch/blackfin/configs/CM-BF533_defconfig | 1 - arch/blackfin/configs/CM-BF537E_defconfig | 1 - arch/mips/configs/cavium_octeon_defconfig | 1 - arch/mips/configs/qi_lb60_defconfig | 1 - drivers/mmc/core/Kconfig | 18 ----- drivers/mmc/core/queue.c | 109 +++--------------------------- drivers/mmc/host/davinci_mmc.c | 6 +- include/linux/mmc/card.h | 1 - 15 files changed, 9 insertions(+), 136 deletions(-) diff --git a/arch/arm/configs/colibri_pxa300_defconfig b/arch/arm/configs/colibri_pxa300_defconfig index be02fe2..10c940c 100644 --- a/arch/arm/configs/colibri_pxa300_defconfig +++ b/arch/arm/configs/colibri_pxa300_defconfig @@ -51,7 +51,6 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_MON=y CONFIG_USB_STORAGE=y CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_PXA=y CONFIG_EXT3_FS=y CONFIG_INOTIFY=y diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig index 67db829..8a8f086 100644 --- a/arch/arm/configs/davinci_all_defconfig +++ b/arch/arm/configs/davinci_all_defconfig @@ -188,7 +188,6 @@ CONFIG_USB_G_SERIAL=m CONFIG_USB_G_PRINTER=m CONFIG_USB_CDC_COMPOSITE=m CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_DAVINCI=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=m diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig index 6ba430d..655edfd 100644 --- a/arch/arm/configs/lpc32xx_defconfig +++ b/arch/arm/configs/lpc32xx_defconfig @@ -146,7 +146,6 @@ CONFIG_USB_LPC32XX=y CONFIG_USB_MASS_STORAGE=m CONFIG_USB_G_SERIAL=m CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_ARMMMCI=y CONFIG_MMC_SPI=y CONFIG_NEW_LEDS=y diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig index 7d2ad30..e113d4a 100644 --- a/arch/arm/configs/nhk8815_defconfig +++ b/arch/arm/configs/nhk8815_defconfig @@ -95,7 +95,6 @@ CONFIG_GPIO_STMPE=y CONFIG_MFD_STMPE=y CONFIG_REGULATOR=y CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_ARMMMCI=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig index 777c9e9..c330071 100644 --- a/arch/arm/configs/sama5_defconfig +++ b/arch/arm/configs/sama5_defconfig @@ -180,7 +180,6 @@ CONFIG_USB_GADGET=y CONFIG_USB_ATMEL_USBA=y CONFIG_USB_G_SERIAL=y CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_OF_AT91=y diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig index aaa95ab..d6eb9fe 100644 --- a/arch/arm/configs/u300_defconfig +++ b/arch/arm/configs/u300_defconfig @@ -50,7 +50,6 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_USB_SUPPORT is not set CONFIG_MMC=y CONFIG_MMC_UNSAFE_RESUME=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_ARMMMCI=y CONFIG_RTC_CLASS=y # CONFIG_RTC_HCTOSYS is not set diff --git a/arch/arm/configs/zeus_defconfig b/arch/arm/configs/zeus_defconfig index cd11da8..a126f7b 100644 --- a/arch/arm/configs/zeus_defconfig +++ b/arch/arm/configs/zeus_defconfig @@ -146,7 +146,6 @@ CONFIG_USB_MASS_STORAGE=m CONFIG_USB_G_SERIAL=m CONFIG_USB_G_PRINTER=m CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_PXA=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=m diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig index 9a5716d..7a40109 100644 --- a/arch/blackfin/configs/CM-BF533_defconfig +++ b/arch/blackfin/configs/CM-BF533_defconfig @@ -59,7 +59,6 @@ CONFIG_SPI_BFIN5XX=y # CONFIG_HWMON is not set # CONFIG_USB_SUPPORT is not set CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_SPI=m # CONFIG_DNOTIFY is not set CONFIG_VFAT_FS=y diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig index 6845928..b47ced8 100644 --- a/arch/blackfin/configs/CM-BF537E_defconfig +++ b/arch/blackfin/configs/CM-BF537E_defconfig @@ -83,7 +83,6 @@ CONFIG_GPIO_SYSFS=y CONFIG_USB_GADGET=m CONFIG_USB_ETH=m CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_SPI=m CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y diff --git a/arch/mips/configs/cavium_octeon_defconfig b/arch/mips/configs/cavium_octeon_defconfig index d4fda41..7f337cf 100644 --- a/arch/mips/configs/cavium_octeon_defconfig +++ b/arch/mips/configs/cavium_octeon_defconfig @@ -130,7 +130,6 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m CONFIG_MMC=y # CONFIG_PWRSEQ_EMMC is not set # CONFIG_PWRSEQ_SIMPLE is not set -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_CAVIUM_OCTEON=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_DS1307=y diff --git a/arch/mips/configs/qi_lb60_defconfig b/arch/mips/configs/qi_lb60_defconfig index d7bb8cc..df067bc 100644 --- a/arch/mips/configs/qi_lb60_defconfig +++ b/arch/mips/configs/qi_lb60_defconfig @@ -110,7 +110,6 @@ CONFIG_USB_ETH=y # CONFIG_USB_ETH_RNDIS is not set CONFIG_MMC=y CONFIG_MMC_UNSAFE_RESUME=y -# CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_MMC_JZ4740=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_JZ4740=y diff --git a/drivers/mmc/core/Kconfig b/drivers/mmc/core/Kconfig index fc1ecda..42e8906 100644 --- a/drivers/mmc/core/Kconfig +++ b/drivers/mmc/core/Kconfig @@ -61,24 +61,6 @@ config MMC_BLOCK_MINORS If unsure, say 8 here. -config MMC_BLOCK_BOUNCE - bool "Use bounce buffer for simple hosts" - depends on MMC_BLOCK - default y - help - SD/MMC is a high latency protocol where it is crucial to - send large requests in order to get high performance. Many - controllers, however, are restricted to continuous memory - (i.e. they can't do scatter-gather), something the kernel - rarely can provide. - - Say Y here to help these restricted hosts by bouncing - requests back and forth from a large buffer. You will get - a big performance gain at the cost of up to 64 KiB of - physical memory. - - If unsure, say Y here. - config SDIO_UART tristate "SDIO UART/GPS class support" depends on TTY diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c index 5c37b6b..0dcf31d 100644 --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c @@ -23,8 +23,6 @@ #include "core.h" #include "card.h" -#define MMC_QUEUE_BOUNCESZ 65536 - /* * Prepare a MMC request. This just filters out odd stuff. */ @@ -219,73 +217,6 @@ static struct mmc_queue_req *mmc_queue_alloc_mqrqs(int qdepth) return mqrq; } -#ifdef CONFIG_MMC_BLOCK_BOUNCE -static int mmc_queue_alloc_bounce_bufs(struct mmc_queue_req *mqrq, int qdepth, - unsigned int bouncesz) -{ - int i; - - for (i = 0; i < qdepth; i++) { - mqrq[i].bounce_buf = kmalloc(bouncesz, GFP_KERNEL); - if (!mqrq[i].bounce_buf) - return -ENOMEM; - - mqrq[i].sg = mmc_alloc_sg(1); - if (!mqrq[i].sg) - return -ENOMEM; - - mqrq[i].bounce_sg = mmc_alloc_sg(bouncesz / 512); - if (!mqrq[i].bounce_sg) - return -ENOMEM; - } - - return 0; -} - -static bool mmc_queue_alloc_bounce(struct mmc_queue_req *mqrq, int qdepth, - unsigned int bouncesz) -{ - int ret; - - ret = mmc_queue_alloc_bounce_bufs(mqrq, qdepth, bouncesz); - if (ret) - mmc_queue_reqs_free_bufs(mqrq, qdepth); - - return !ret; -} - -static unsigned int mmc_queue_calc_bouncesz(struct mmc_host *host) -{ - unsigned int bouncesz = MMC_QUEUE_BOUNCESZ; - - if (host->max_segs != 1) - return 0; - - if (bouncesz > host->max_req_size) - bouncesz = host->max_req_size; - if (bouncesz > host->max_seg_size) - bouncesz = host->max_seg_size; - if (bouncesz > host->max_blk_count * 512) - bouncesz = host->max_blk_count * 512; - - if (bouncesz <= 512) - return 0; - - return bouncesz; -} -#else -static inline bool mmc_queue_alloc_bounce(struct mmc_queue_req *mqrq, - int qdepth, unsigned int bouncesz) -{ - return false; -} - -static unsigned int mmc_queue_calc_bouncesz(struct mmc_host *host) -{ - return 0; -} -#endif - static int mmc_queue_alloc_sgs(struct mmc_queue_req *mqrq, int qdepth, int max_segs) { @@ -312,7 +243,6 @@ static int __mmc_queue_alloc_shared_queue(struct mmc_card *card, int qdepth) { struct mmc_host *host = card->host; struct mmc_queue_req *mqrq; - unsigned int bouncesz; int ret = 0; if (card->mqrq) @@ -325,26 +255,10 @@ static int __mmc_queue_alloc_shared_queue(struct mmc_card *card, int qdepth) card->mqrq = mqrq; card->qdepth = qdepth; - bouncesz = mmc_queue_calc_bouncesz(host); - - if (bouncesz && !mmc_queue_alloc_bounce(mqrq, qdepth, bouncesz)) { - bouncesz = 0; - pr_warn("%s: unable to allocate bounce buffers\n", - mmc_card_name(card)); - } - - card->bouncesz = bouncesz; - - if (!bouncesz) { - ret = mmc_queue_alloc_sgs(mqrq, qdepth, host->max_segs); - if (ret) - goto out_err; - } - - return ret; + ret = mmc_queue_alloc_sgs(mqrq, qdepth, host->max_segs); + if (ret) + mmc_queue_free_shared_queue(card); -out_err: - mmc_queue_free_shared_queue(card); return ret; } @@ -387,18 +301,11 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, if (mmc_can_erase(card)) mmc_queue_setup_discard(mq->queue, card); - if (card->bouncesz) { - blk_queue_bounce_limit(mq->queue, BLK_BOUNCE_ANY); - blk_queue_max_hw_sectors(mq->queue, card->bouncesz / 512); - blk_queue_max_segments(mq->queue, card->bouncesz / 512); - blk_queue_max_segment_size(mq->queue, card->bouncesz); - } else { - blk_queue_bounce_limit(mq->queue, limit); - blk_queue_max_hw_sectors(mq->queue, - min(host->max_blk_count, host->max_req_size / 512)); - blk_queue_max_segments(mq->queue, host->max_segs); - blk_queue_max_segment_size(mq->queue, host->max_seg_size); - } + blk_queue_bounce_limit(mq->queue, limit); + blk_queue_max_hw_sectors(mq->queue, + min(host->max_blk_count, host->max_req_size / 512)); + blk_queue_max_segments(mq->queue, host->max_segs); + blk_queue_max_segment_size(mq->queue, host->max_seg_size); sema_init(&mq->thread_sem, 1); diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c index 621ce47..2c6d131 100644 --- a/drivers/mmc/host/davinci_mmc.c +++ b/drivers/mmc/host/davinci_mmc.c @@ -149,11 +149,7 @@ /* * One scatterlist dma "segment" is at most MAX_CCNT rw_threshold units, - * and we handle up to MAX_NR_SG segments. MMC_BLOCK_BOUNCE kicks in only - * for drivers with max_segs == 1, making the segments bigger (64KB) - * than the page or two that's otherwise typical. nr_sg (passed from - * platform data) == 16 gives at least the same throughput boost, using - * EDMA transfer linkage instead of spending CPU time copying pages. + * and we handle up to MAX_NR_SG segments. */ #define MAX_CCNT ((1 << 16) - 1) diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index aad015e..23653c7 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -306,7 +306,6 @@ struct mmc_card { unsigned int nr_parts; struct mmc_queue_req *mqrq; /* Shared queue structure */ - unsigned int bouncesz; /* Bounce buffer size */ int qdepth; /* Shared queue depth */ };