From patchwork Sat Mar 10 15:51:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meghana Madhyastha X-Patchwork-Id: 10273691 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 A94A560594 for ; Sat, 10 Mar 2018 15:51:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 96C772969B for ; Sat, 10 Mar 2018 15:51:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8A7E8296C2; Sat, 10 Mar 2018 15:51:38 +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_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham 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 292B92969B for ; Sat, 10 Mar 2018 15:51:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932279AbeCJPvh (ORCPT ); Sat, 10 Mar 2018 10:51:37 -0500 Received: from mail-pl0-f67.google.com ([209.85.160.67]:40637 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932150AbeCJPvh (ORCPT ); Sat, 10 Mar 2018 10:51:37 -0500 Received: by mail-pl0-f67.google.com with SMTP id x3-v6so391242plo.7 for ; Sat, 10 Mar 2018 07:51:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=N2hjd8DaI9P3+ycraxtEQGC9PufCmpaavtqAS1B74fc=; b=V3qn1Tw/+zP2mpo+26+wKxPmFWKEu576rY9FDNhzx6In6t8tiSgEKjL5syeeR5VNio LkHgCzGilaNmYUG0vpCk5fhqc8I+5TWjgSHrBj608H5FtKTDdDHZTceoFR5v+qfa81Am 1CUrd/7vXD5iTg+owaomvBwbnkILcNsQN7h08GCKVlhPXD4gJXp/8rzcFommDvJqMaMD 68W5EPAr88PXq05xti/YIEkigLfLupEc130b+/kvGYxnV3ThONzLBX8PNYK2PmhQCLp9 qIuljCoOr5/Ge7LdgO6XHfChKoNi6YZgWVhL+7t36lgeQnp5B4jEqLRXUHD2xQAKV0lV VUEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=N2hjd8DaI9P3+ycraxtEQGC9PufCmpaavtqAS1B74fc=; b=oUDpJqOGLAXzrRUWCW39fsOp3nej/8ZrTBgu9ya/Q8k8di610aEGlg1K0E7uGFqPP2 W//v/kV0RgbeFe4xfgGHNEvEbjhIVJD36N/pmTGEKwOgTs4WhTH2mYFAMJZOmJvOk9M0 lWlW6wdYI/qfg42bGPxBjZw8w7ZuBAj04BzLEIfWoWZ0DNu2z2CymdMGy2uzotfgL3n1 7LVEtVrLWksj+XnkB67Rq6JTD35OVryn77pkpGFMxCVmpRpKCS7UOhbTZfw2qgfdEsyl OEZ8s5IOfrRBTYYRtHWMx6NoxSTu35TmM56MtFvc0nCP4dCadGA1W2Zj9jojsHpIlWdF WhvA== X-Gm-Message-State: AElRT7FJ5Ezm5zOtagkrAcQsfidHdb7ZvPtFK/aBkfjMiXhQxkQ0niqR YoF4+zr5hf8crBsyEkeQVao= X-Google-Smtp-Source: AG47ELt3bbREgOZ8nuzG/+qZ2eS3HNMoHLa/Z0UFNy3E/D3ASGakugb4cEOOkuOTWnW8ZC7JbCCSwQ== X-Received: by 2002:a17:902:8302:: with SMTP id bd2-v6mr2379246plb.322.1520697096710; Sat, 10 Mar 2018 07:51:36 -0800 (PST) Received: from raspberrypi ([122.172.126.13]) by smtp.gmail.com with ESMTPSA id a65sm8620001pfg.90.2018.03.10.07.51.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 10 Mar 2018 07:51:35 -0800 (PST) Date: Sat, 10 Mar 2018 15:51:31 +0000 From: Meghana Madhyastha To: Mark Brown , Daniel Vetter , linux-spi@vger.kernel.org, Noralf =?iso-8859-1?Q?Tr=F8nnes?= , Sean Paul , dri-devel@lists.freedesktop.org Subject: [PATCH v2 1/2] spi: Split spi message into chunks of <65535 in the spi subsystem Message-ID: <26064ccd4a898549fcdecbd5d0a3f32fb0a3ba55.1520691344.git.meghana.madhyastha@gmail.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Split spi messages into chunks of <65535 in the spi subsystem and remove the message length warning in bcm2835_spi_can_dma. This is so that the messages can be transferred via dma and that the tinydrm drivers need not split it. Signed-off-by: Meghana Madhyastha --- drivers/spi/spi-bcm2835.c | 13 ------------- drivers/spi/spi.c | 8 ++++++++ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c index f35cc10772f6..0dcc45f158b8 100644 --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c @@ -365,19 +365,6 @@ static bool bcm2835_spi_can_dma(struct spi_master *master, if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH) return false; - /* BCM2835_SPI_DLEN has defined a max transfer size as - * 16 bit, so max is 65535 - * we can revisit this by using an alternative transfer - * method - ideally this would get done without any more - * interaction... - */ - if (tfr->len > 65535) { - dev_warn_once(&spi->dev, - "transfer size of %d too big for dma-transfer\n", - tfr->len); - return false; - } - /* if we run rx/tx_buf with word aligned addresses then we are OK */ if ((((size_t)tfr->rx_buf & 3) == 0) && (((size_t)tfr->tx_buf & 3) == 0)) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index b33a727a0158..e8e2c366a93b 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1242,6 +1242,14 @@ static void __spi_pump_messages(struct spi_controller *ctlr, bool in_kthread) trace_spi_message_start(ctlr->cur_msg); if (ctlr->prepare_message) { + gfp_t gfp_flags = GFP_KERNEL | GFP_DMA; + size_t max_transfer_size = 32000; + ret = spi_split_transfers_maxsize(ctlr, ctlr->cur_msg, max_transfer_size, gfp_flags); + if (ret) { + dev_err(&ctlr->dev, + "failed to split message\n"); + goto out; + } ret = ctlr->prepare_message(ctlr, ctlr->cur_msg); if (ret) { dev_err(&ctlr->dev, "failed to prepare message: %d\n",