From patchwork Sat Oct 1 12:21:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Yarlagadda X-Patchwork-Id: 611733 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9C87C433F5 for ; Sat, 1 Oct 2022 12:22:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229589AbiJAMWE (ORCPT ); Sat, 1 Oct 2022 08:22:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229563AbiJAMWD (ORCPT ); Sat, 1 Oct 2022 08:22:03 -0400 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2081.outbound.protection.outlook.com [40.107.212.81]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C61D7F11E; Sat, 1 Oct 2022 05:22:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=djUscCqTh/Hkw4CUXHU+MWFm9jo+6zNx504SStFUdlSLnzDTWobme8WBL3enJEiGQOlC+rt2PxWC45J6MAPpB/Vux85nFXUr5xaQxlwRAA2RITARCy3WKV6OJxzYBpHEVYqT35uAhFKO9U13qy75RKuBvymywkpnaT3xXmxOnHZqt/vG2yXZuHtn5rwSgpkiDELMK9We1UzpMUm4NyTL3HbXBjEZ3xyZ4b4vW00+lZFCGxdnXmXAxdzGjUWJkEjU03BFR5dFtQBrnTWjs1zP+MtMcMlDhowkTQi34gQQJVx52E6Bls13Kjv6eRJEzpGtSg9WYZVUI+bfr7A2eO8Aig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MbO5yj+dPGPY6BQv35O7BK5FDzLaHrR/GPL72uJJEVo=; b=U3SPHBPnLmm7GTqLJD72KyhbrSGkKuX5/+xuh/N1ahEWM4Mg1I84//NqrpOXZAYSu7jivpizkYxH9R/zYNgKyOVJwP7PXkQkZw0YqdEigOx4vF/WApjTzAfif4FRSsAwhjiN52fP+R/l4C7fQSDTdR1Rbwh4eH6nhlHOYCUNbgsVhwtS8C0/TIpMuwDdCAgaa4/83FbeaWDl+82O9bJSmPIW8x8UzcvJvoPJRLZ+2JxTm8pJ0ET45Nevay/aWEyHGNTkpbkzAxM5hljG0RQspOGshViQO7wo+tyzDHP2sh1KhR93t6AoDma7k4/cz8WsbmXymYZbEWsGjbMxmRpvXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MbO5yj+dPGPY6BQv35O7BK5FDzLaHrR/GPL72uJJEVo=; b=aqTI/x/scCzlHQxvaRFXTvRRV9THTq2jY4TpWR61RE9F+IBMdZ6SM1xhd8xM1Q8voyRlD8SkGgZETtm0kBr9OtjiuJ1ApvFkMHgA8UdLlkZEma6UlGW1s6cfMCVoEt0CY9HxImcAO8saGnVLjyqaE0Nc0/CsSv7Dvmduh0LldtRxtO4MbWAAzmh9+yh3IA+1JXSPX3OsJu3+CrkyODrLUyoWNPCZsHhPG5Wj4vdn5uHOGyTR/2rVCPK89fVwgMdGQAC36OlsW5Yp+J990hv+sIm1bUOZeajpnH7jGmB4IVlX+6/XQdEnm823/ApYhb65h07f1rm47RqvWdsM0M+G5A== Received: from BN9PR03CA0198.namprd03.prod.outlook.com (2603:10b6:408:f9::23) by DS7PR12MB6263.namprd12.prod.outlook.com (2603:10b6:8:95::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Sat, 1 Oct 2022 12:21:58 +0000 Received: from BN8NAM11FT095.eop-nam11.prod.protection.outlook.com (2603:10b6:408:f9:cafe::c8) by BN9PR03CA0198.outlook.office365.com (2603:10b6:408:f9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.20 via Frontend Transport; Sat, 1 Oct 2022 12:21:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT095.mail.protection.outlook.com (10.13.176.206) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Sat, 1 Oct 2022 12:21:58 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Sat, 1 Oct 2022 05:21:57 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 1 Oct 2022 05:21:57 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Sat, 1 Oct 2022 05:21:54 -0700 From: Krishna Yarlagadda To: , , , , CC: , , , Krishna Yarlagadda Subject: [PATCH 1/5] spi: tegra210-quad: Fix combined sequence Date: Sat, 1 Oct 2022 17:51:44 +0530 Message-ID: <20221001122148.9158-1-kyarlagadda@nvidia.com> X-Mailer: git-send-email 2.17.1 X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT095:EE_|DS7PR12MB6263:EE_ X-MS-Office365-Filtering-Correlation-Id: 14e4d427-c6b8-4e31-eb43-08daa3a7895b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EQTVoKTDeeTmnz1vdietbeGAKPkusQhdtG1xwWO++5osn8DkDcGIKvo5+Iv20uhq+no3CeUNPZLy9PNGRdpomvfzjico4IhWD4JYj/oriIVNBJ9EiJL/LeDwZRqLS9A9IukXNW1Rr+ESXYzugga9CXySbFJ3hb/tjNimBK6x4wgNJeaQ+0y8obJWkSKnp+Pt38y0C1nvj/Dv7SI+pLPc0gUqBqfp52/p9/DpZqI+I47bDz3FYDaKDIU8wODMdRwRRqmOGaGO281d0uFqpr6cBi7UMCBlBDAdnXYzZrQfQfQdPAoazEczUZeFqezIPTiFE+wUAOUEije/oJ1railMwPw2h2g3cVYRaWfl4dJsNr9HyW571Kt6brwsxdGxWoATE8Hs9AjR8/OPuR6g3axvI7rg0DDqNJ7Ky95j36BMw9awAhCIvY7EOeWS2b7xZLLUveP7ckV+kqAp2S/UYUFOt1QxeOQVpHUShSz2kkoIQnwbOJtzRJtFwaurk/yxP5DLFjxbfzXmTtjmyTNYBqGu4H4K5ef49Vojwj72Cr+MTc217/otx8tDyyGAhjBrH8p+8oR7NA1ZSW9cKKp7raFxIPXqwRg4rXQoxu8z9q+C+mchkiJ7Cwb96VJIJkMc1RpAz/mVLQc5xJ1gJ1O7TlGhYCXazhlfRd2pjtbl+2q+Mp8MhfarsPujanEcJMMid5BhqEikmeLTwLklxNQ75D55vKWwnIgYOVcvKlmVf0GaC7Mk1O6JkMCUmoGijBfrBUl6IJSJLfW9YBs79/dyhL8NOA== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(396003)(136003)(346002)(376002)(451199015)(40470700004)(36840700001)(46966006)(426003)(36756003)(336012)(2906002)(4744005)(1076003)(186003)(2616005)(8936002)(7696005)(6666004)(107886003)(41300700001)(26005)(5660300002)(356005)(82740400003)(40460700003)(86362001)(40480700001)(82310400005)(7636003)(83380400001)(47076005)(36860700001)(316002)(110136005)(70206006)(478600001)(70586007)(54906003)(4326008)(8676002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2022 12:21:58.3683 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 14e4d427-c6b8-4e31-eb43-08daa3a7895b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT095.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6263 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Return value should be updated to zero in combined sequence routine if transfer is completed successfully. Currently it holds timeout value resulting in errors. Signed-off-by: Krishna Yarlagadda --- drivers/spi/spi-tegra210-quad.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/spi/spi-tegra210-quad.c b/drivers/spi/spi-tegra210-quad.c index c89592b21ffc..904972606bd4 100644 --- a/drivers/spi/spi-tegra210-quad.c +++ b/drivers/spi/spi-tegra210-quad.c @@ -1157,6 +1157,11 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi, msg->actual_length += xfer->len; transfer_phase++; } + if (!xfer->cs_change) { + tegra_qspi_transfer_end(spi); + spi_transfer_delay_exec(xfer); + } + ret = 0; exit: msg->status = ret; From patchwork Sat Oct 1 12:21:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Yarlagadda X-Patchwork-Id: 611964 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D609BC4332F for ; Sat, 1 Oct 2022 12:22:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229611AbiJAMWH (ORCPT ); Sat, 1 Oct 2022 08:22:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229605AbiJAMWF (ORCPT ); Sat, 1 Oct 2022 08:22:05 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2087.outbound.protection.outlook.com [40.107.244.87]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FB2F7F11D; Sat, 1 Oct 2022 05:22:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j8CPf666fiEgkX3dF86gXd256pjrANRNAKbqwt7I7wYwvftNiGRvq8WHt20DsvVRrZDwA5ICMuyEAVdRe/Smsj/D5HUP9ZFJ+358tEr+FaKOnY/F06CiYv9EqU7JMIW3TsfJwC9pXPkbwNKjNFARk0EsBYcM4OguL1FcyTMMi+tNTNtL0hzH1GHsFDBgicwG/WrV6cdG7vS11HWFgBah/7OTrJMCN80DOlfFrkHZRKjbotePIsNuR/j9uXRMHOfecLqKe4Tthw4hasiVD/A2Lfzmj9sOjo9fujprqRnecYyJiXjxcPg8naypV6VLC9RF4g/GiS7tTAGMMXhbjImUrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/MSrCnvW8DGSz9k95zlCz+heJ3IDWKGDv2taoNVvEdQ=; b=Rej71zXnagQj1Y4WLhZbUC4//0Fjxgmh3LbG5q4FiP9HSKhAOLcIOU5iFhRqd420+/ZP69QUp3I3s3RX/j+l+ksJC3JbmDVUUPZiVUR/4meCNOXLPwZ5sz2h+RDewnQ1hf4LmbXjjJ5W2CgIvHHOgzrcA7zc5qRu4nOsRwhHjv3ztktXom59JSNzij/4G9zWjadwjJ1vnirK+JU17pqA9bST1JsCPcG5ECknoAZYdGhB9AoA711c5ZFsbCH6hjoDLtyi0A5btVy6HDeO2zxQKS50Uee1MRc94Xiler+N6hwq3cyGN6aYiRYKZvmad0dAgG9eKwLxCqmPKanc2cInfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/MSrCnvW8DGSz9k95zlCz+heJ3IDWKGDv2taoNVvEdQ=; b=rrYnojhbHt6P4Inwjtb6dmR127uPcIWrL2rOtPAgOSP3vjhJPnuYl5XuYrzjYrX3cRrqWqwgML0JSMwHamGkC5jCECw2EYdml0ohFxjZo8T99RPwcCOgGKKFR8CltMdhjc5t5HWpVjpevOp1dtoP6HZPWcD9B2fcQj1zNemCAjMkIpWkZwlUx/ETF8Fe4YwPV7zCNErBcPx3IpP5ILJ1LZWSWZFJtYg2cr79glOhQv8JSjQZEzsB9aI/CWIyJu9wHSYLAJ/Rxwb/90dU+A32fmzNOgG9e6QdXAVDAYO8rgmuF1DTjF6+lwQscp2ll4iaq55JZtRiTarDs7Xx46hAFA== Received: from MW2PR2101CA0018.namprd21.prod.outlook.com (2603:10b6:302:1::31) by PH8PR12MB6721.namprd12.prod.outlook.com (2603:10b6:510:1cc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.26; Sat, 1 Oct 2022 12:22:02 +0000 Received: from CO1NAM11FT092.eop-nam11.prod.protection.outlook.com (2603:10b6:302:1:cafe::cb) by MW2PR2101CA0018.outlook.office365.com (2603:10b6:302:1::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.0 via Frontend Transport; Sat, 1 Oct 2022 12:22:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT092.mail.protection.outlook.com (10.13.175.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Sat, 1 Oct 2022 12:22:02 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Sat, 1 Oct 2022 05:22:00 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 1 Oct 2022 05:22:00 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Sat, 1 Oct 2022 05:21:57 -0700 From: Krishna Yarlagadda To: , , , , CC: , , , Krishna Yarlagadda Subject: [PATCH 2/5] spi: tegra210-quad: Fix duplicate resource error Date: Sat, 1 Oct 2022 17:51:45 +0530 Message-ID: <20221001122148.9158-2-kyarlagadda@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221001122148.9158-1-kyarlagadda@nvidia.com> References: <20221001122148.9158-1-kyarlagadda@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT092:EE_|PH8PR12MB6721:EE_ X-MS-Office365-Filtering-Correlation-Id: 638e9e17-2c96-4b89-3924-08daa3a78b9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8gtCKIwlXOuDh73MTsLwaqOmu0yruaq0/1XtfwLpIiN1BczsopxpoqTtEOjndm7F63k3/5sZra9Y3aj0fekpxlwq5KZ4pqYq69j76rStcvNMi7LXSsUIB228YWZCNlJHEck8q2yi4yDqLgvEqVYFngmv0zwarDZO3KMhCloGjhYa8IPEQRcU0tRg7y9JvA/f42JyZ41UIRr41uH7j2DAps+99zyriTwoofvGV7zGKNWjUXdcY6CO0StK5H6nHG0k2/0aI0GxSMUkfVaW8eeKCt56FIxQ2lINxA4o2jpMa1VwbIoHoM3O5gILvxuHRMQs73C75X+zCjvAEGMhMBL32ARuMQrJyzgGjjQt2O/IHvn4SRjbl0DZ2KdTEaVA9L3tAxfvBeB0XRW79edda97SJ2UQ3V7fNsEg3XqCKiK2hJKEBT4mMpJ6HKopTGnnE/UsFW4NcHAfc/iBIr0NJcequaJxC6Ef4hBO9udfHSpnm8DSliI6IuC2QA/QZB5X4OsBDj++QwgcwUlX6mqZ6HPJy5o+zFUury8C+LjrJ9vPB/rriyuB5mqnesh7E9dbex1/5gngG6eY7A9gM3bZoALM16CFzU9/p/dobGQf+xAjx3CTWTuDDEliE1qiIt+qjPNCrFaB2GbwxZ6aQeRf1yF6DmX8ZqzKIlT8MS7pMmgPJzcI33So5V7y+MQXxqSmltNOociqi6rEMQNudVanmhWhSxIeX8s5XgXi4B7QfZsJ6wQGFuCIMXTvl065Uy2C1IFDlecothnqowAf52K8aDCfoA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(346002)(136003)(396003)(376002)(39860400002)(451199015)(46966006)(36840700001)(40470700004)(2906002)(70206006)(70586007)(4744005)(4326008)(36756003)(8676002)(5660300002)(8936002)(7696005)(110136005)(316002)(86362001)(478600001)(54906003)(82310400005)(6666004)(47076005)(356005)(336012)(426003)(2616005)(1076003)(186003)(82740400003)(107886003)(40480700001)(41300700001)(83380400001)(36860700001)(26005)(40460700003)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2022 12:22:02.2546 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 638e9e17-2c96-4b89-3924-08daa3a78b9c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT092.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6721 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org controller data alloc is done with client device data causing duplicate resource error. Allocate memory using controller device when using devm Signed-off-by: Krishna Yarlagadda Reviewed-by: Jon Hunter Tested-by: Jon Hunter --- drivers/spi/spi-tegra210-quad.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-tegra210-quad.c b/drivers/spi/spi-tegra210-quad.c index 904972606bd4..06bf19d0cfc1 100644 --- a/drivers/spi/spi-tegra210-quad.c +++ b/drivers/spi/spi-tegra210-quad.c @@ -918,8 +918,9 @@ static int tegra_qspi_start_transfer_one(struct spi_device *spi, static struct tegra_qspi_client_data *tegra_qspi_parse_cdata_dt(struct spi_device *spi) { struct tegra_qspi_client_data *cdata; + struct tegra_qspi *tqspi = spi_master_get_devdata(spi->master); - cdata = devm_kzalloc(&spi->dev, sizeof(*cdata), GFP_KERNEL); + cdata = devm_kzalloc(tqspi->dev, sizeof(*cdata), GFP_KERNEL); if (!cdata) return NULL; From patchwork Sat Oct 1 12:21:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Yarlagadda X-Patchwork-Id: 611732 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56F53C43217 for ; Sat, 1 Oct 2022 12:22:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229619AbiJAMWL (ORCPT ); Sat, 1 Oct 2022 08:22:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229621AbiJAMWJ (ORCPT ); Sat, 1 Oct 2022 08:22:09 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2066.outbound.protection.outlook.com [40.107.244.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BEF717F11E; Sat, 1 Oct 2022 05:22:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBJor5CpNzB9/ejDYD+HihIY95nQQsUVLYmT49FD0nVKjee9OHhrPdMuxA7Y8rhVqpmqqUb2Itz8fyUeIi6CNkT9bCMjS+VvH4I7MInOBiQJXLs3B/F/kgnBSwGpWn4W0rWk7QEQEwRr6v4R70fnHbi557V4J5WVJxjgdMzG8DmDJdR8gk6E408kInYzVvFcfQlqKUjL4U3x4hGEELAWH8rHu9pQbroY/85DpYiUv8aYCqLmf6CORXgq74xFSc3izu2AqsCkuMvBRhE/9IS1omrHzLmMBcnPcisrN+QUx8XtWfNsmxkNMhSUvP+d2LIhNqqaDAw1/kBov06djt//ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CyJQgfEl9sCZFy7qbtkVrcC8ao3gTPpdbs2pwhCgxzE=; b=a/4HLgheSli3j8hDhBq9H9WL2/I9290UC0yNuM2JQDe7pJzy05k3mQCPw88j3VSqRERHaNJrxHCF7v8KxakSGBJfmaJnhDuqWmRvo+zpn80QHslrRuKotBJ/IAfQMxCA883i9p7MZGFHCMLWXx10G916uXRObXk4ws26NNgzDacIgXQtilf7umyCfLGx5Ij2TMOKtCjWB6Ddi34AZjf1EGTjf3wddvIkLz1Xj1a7od4tqbUgYh61R4awKMItSKSbGsJXDAvb1XIX6hDr6ibyN3DzuetCH5EMqw/4jntcRHIwr1+QJLhEsGlRwSHtLV1hHStgmEMdboHJR4Nkh/3u9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CyJQgfEl9sCZFy7qbtkVrcC8ao3gTPpdbs2pwhCgxzE=; b=g2kfvmhROsEspAMaHYGQ+7UBY7evAb3vkgHsB3zP8v1qhzvUR2ZSIfZ/TBi04r1WjmWjkRgUp7fkM6rIxvBFWi6D2SvxaAGaCfEacsh2yAgy0lCAhwtzYP7uhL1Jihqz9IuFpAKNnR3N6MYHd2fQytCgn9qiqiChN1WCvOhdUKAMwZsqBS+dGvAvNdgvFacDG2R/vQHTBtvh+V4mRXxYtEOeSrBXgC9q6CJexYlTv8KI/6neTeRW3fLLy3NCUNy3k3OsV1N2BJttKhQp1OgyokrlVRoFx4yFGRbblVKlZsuxjL8QZnKwNHOBWZEjeJy7or6dYJ5u+y+0S8buuKRQfw== Received: from MW4PR04CA0383.namprd04.prod.outlook.com (2603:10b6:303:81::28) by SJ1PR12MB6148.namprd12.prod.outlook.com (2603:10b6:a03:459::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.20; Sat, 1 Oct 2022 12:22:06 +0000 Received: from CO1NAM11FT097.eop-nam11.prod.protection.outlook.com (2603:10b6:303:81:cafe::ca) by MW4PR04CA0383.outlook.office365.com (2603:10b6:303:81::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23 via Frontend Transport; Sat, 1 Oct 2022 12:22:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT097.mail.protection.outlook.com (10.13.175.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Sat, 1 Oct 2022 12:22:05 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Sat, 1 Oct 2022 05:22:03 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 1 Oct 2022 05:22:03 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Sat, 1 Oct 2022 05:22:00 -0700 From: Krishna Yarlagadda To: , , , , CC: , , , Krishna Yarlagadda Subject: [PATCH 3/5] spi: tegra210-quad: Use nbits in combined seq Date: Sat, 1 Oct 2022 17:51:46 +0530 Message-ID: <20221001122148.9158-3-kyarlagadda@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221001122148.9158-1-kyarlagadda@nvidia.com> References: <20221001122148.9158-1-kyarlagadda@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT097:EE_|SJ1PR12MB6148:EE_ X-MS-Office365-Filtering-Correlation-Id: d60b9fa4-c6f5-4783-e824-08daa3a78dbf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8hX80AZh+5kKQfD7HtcBt5HyVv3xon4cmbDLgrNpLNU7gRZuPn7feilj1e4W5nn8O//eZbBgRCWjK0dw2w2/YSD4jRcaLf4BQXQ9pG/HieJexHa1t3OgXKd41pPvnTILX02tXDlFLZYNkTu5TS21SF9WQW+z9RBLENURLI/9k5VYgLNX2ZPEjifcyGS/2YASzq543vS5RDRk1KJMAAvXh+jDeJQIGIHORsdB1g0ZEGQiDyT5Z2NxQVlZc4fJ9MocaWeYx8vcD4pVa4aL5hHs98uD0nrzqT/Q9zfuIJaUZpuLR63dE0vX4+/P9dP9kefx+WH1bBJyzxXy5+ACE0MZU0mH/gSSSingc0qfXLkobsx+aWo831T9TnTFDuHixoaxT3M+Lc/ZMSjqIKpoywBiA4MOg9FU863ddJAoF/Txr/z2uU2S3A2uR0GfpH6bAK1QLA64xllu7mBKo5hmx1B61Soa8LXpkSdMGwq0HQ9/PKx/66IWntJf90W35zRH41Hnh/cvlfIIeJdhhSKiWOI6DYLpdmDS1yecYz26nvKjq5W36P7b/NIB2Mr9CxG/WvERksOMR0kALf3wFXHeBvMhTcrlk7JbHifMN53FGAzwDMXephssVVuKtj9+CV9lmG2lwjjH2SbE8j8yZU0dHQh+4aOwKnGn6oIWu+2iuG0it6cAXH/x8XPdAWfoL3ovpF1CfADVTbM6tg/8b3PIMkmig9RDbovtVISWkBhfqKjcWOCI9Z8lYgmeJpbz7Io2dKfgldGe1RX8D6nYvPknj/3R7A== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(376002)(136003)(346002)(396003)(39860400002)(451199015)(36840700001)(46966006)(40470700004)(82740400003)(82310400005)(8936002)(356005)(41300700001)(5660300002)(186003)(426003)(47076005)(36756003)(83380400001)(2616005)(107886003)(26005)(7636003)(6666004)(7696005)(336012)(1076003)(36860700001)(2906002)(316002)(86362001)(54906003)(110136005)(40480700001)(70586007)(478600001)(8676002)(70206006)(4326008)(40460700003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2022 12:22:05.8439 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d60b9fa4-c6f5-4783-e824-08daa3a78dbf X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT097.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6148 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Combined sequence currently forces cmd and addr transfers in X1. Check nbits for CMD and ADDR xfers and update config registers. Signed-off-by: Krishna Yarlagadda --- drivers/spi/spi-tegra210-quad.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-tegra210-quad.c b/drivers/spi/spi-tegra210-quad.c index 06bf19d0cfc1..be11daafb7d4 100644 --- a/drivers/spi/spi-tegra210-quad.c +++ b/drivers/spi/spi-tegra210-quad.c @@ -135,7 +135,7 @@ #define QSPI_COMMAND_VALUE_SET(X) (((x) & 0xFF) << 0) #define QSPI_CMB_SEQ_CMD_CFG 0x1a0 -#define QSPI_COMMAND_X1_X2_X4(x) (((x) & 0x3) << 13) +#define QSPI_COMMAND_X1_X2_X4(x) ((((x) >> 1) & 0x3) << 13) #define QSPI_COMMAND_X1_X2_X4_MASK (0x03 << 13) #define QSPI_COMMAND_SDR_DDR BIT(12) #define QSPI_COMMAND_SIZE_SET(x) (((x) & 0xFF) << 0) @@ -147,7 +147,7 @@ #define QSPI_ADDRESS_VALUE_SET(X) (((x) & 0xFFFF) << 0) #define QSPI_CMB_SEQ_ADDR_CFG 0x1ac -#define QSPI_ADDRESS_X1_X2_X4(x) (((x) & 0x3) << 13) +#define QSPI_ADDRESS_X1_X2_X4(x) ((((x) >> 1) & 0x3) << 13) #define QSPI_ADDRESS_X1_X2_X4_MASK (0x03 << 13) #define QSPI_ADDRESS_SDR_DDR BIT(12) #define QSPI_ADDRESS_SIZE_SET(x) (((x) & 0xFF) << 0) @@ -1029,10 +1029,6 @@ static u32 tegra_qspi_addr_config(bool is_ddr, u8 bus_width, u8 len) { u32 addr_config = 0; - /* Extract Address configuration and value */ - is_ddr = 0; //Only SDR mode supported - bus_width = 0; //X1 mode - if (is_ddr) addr_config |= QSPI_ADDRESS_SDR_DDR; else @@ -1066,13 +1062,13 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi, switch (transfer_phase) { case CMD_TRANSFER: /* X1 SDR mode */ - cmd_config = tegra_qspi_cmd_config(false, 0, + cmd_config = tegra_qspi_cmd_config(false, xfer->tx_nbits, xfer->len); cmd_value = *((const u8 *)(xfer->tx_buf)); break; case ADDR_TRANSFER: /* X1 SDR mode */ - addr_config = tegra_qspi_addr_config(false, 0, + addr_config = tegra_qspi_addr_config(false, xfer->tx_nbits, xfer->len); address_value = *((const u32 *)(xfer->tx_buf)); break; From patchwork Sat Oct 1 12:21:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Yarlagadda X-Patchwork-Id: 611963 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27E7CC433F5 for ; Sat, 1 Oct 2022 12:22:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229646AbiJAMWX (ORCPT ); Sat, 1 Oct 2022 08:22:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229629AbiJAMWM (ORCPT ); Sat, 1 Oct 2022 08:22:12 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2063.outbound.protection.outlook.com [40.107.93.63]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D04E7F26B; Sat, 1 Oct 2022 05:22:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IMHnISlN9XlIqXlAKr2c/P4CpdtiNpzz2jiWK6XZIoJq+LT3z9VC8h0QSJ7RrMEvVskTIRn+0AXKVYmgj1I9u/728XSG/9pD6CGOWXc8od4dkNbH62vf3JcbGZFmlqYwFdfMqCuxBlVE69c5cbw1eTU9OodpsnEVhJhPyxGIogIQWLjI0iAj69Fl4DeiAhiuKAD5M3nZbfEm3TmjvpfkFGayxo0ERaHaWJJ0Zb7LiWlXSVbsmmjEs1sPPMCwCVJ9pV8fTOWm92W713LcJGl9YSsFBSZzkw4GkCYFdd/v7TtFl1t1JlOqTDmVitUp5nt2Gv2c10Yxw3WpGJG8UPxMsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/0eZZhQtvstzy2F+fCPqsyoHZyxPL7oAvmzOWAVavLk=; b=eh7+AaAbnC0BJ6HEyZ3MkpvsguFG/G7NVBeAWuPymRBRDMEqN9VyGyNFrFulnHI7mLzrsw00wFxSRtNbh7JPRW6CGyiIWnfKV088itajyOSFxVoXbwNzuDw8Ha1njonAgHrK6dl3K8U85VUiNXEs7D0a4jjE/ukIkESspkPSTpntXYi/0RNEvXb4rTIlm9B/YjwSEGCVGaJ2xs9BZLUYfIRG/QWlNsZVmeNPtcMVIBEMGgQlYJj4ETZPpoQIlb03XstQgPT2hnElMjZkrOXmPf4Etf9LojIhLXz6s8XBrHcgfv0qDjaNNPie6L2UB88nNxC6mrlmBKYLLZ4+BX6k7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/0eZZhQtvstzy2F+fCPqsyoHZyxPL7oAvmzOWAVavLk=; b=BSg5ufd5ENYknO2GQDePAtRMhR1SfVdrbXzgF3Hpnfoe6wtc26GJSAwMgMryNpSVnjfK3buo+IR36x5IYjnU5BGwQ1EmVo9HFtOiIWYi5l7XybwrTqA60vFdUs8e2aFi8sY5TzLg79tFriRgmd2Jdpmeg3K30PiO8NmeAia5AzbRC+DoWbvb9PunPVnrKpnfth5JZrUTzeaIUXsTgficA+kKGDU03axF9Jn9jHBBn7LJSgrGl1u+M0cxL5vJLCad2cojryBKrps48R1eL0BQbwAef4kg05hdXjedLEq0NLCJ9Fhmvx5JaHOZnzuhdQxnxy87f4jzXfGdPr/S5J5y4w== Received: from MW4PR04CA0387.namprd04.prod.outlook.com (2603:10b6:303:81::32) by BL1PR12MB5174.namprd12.prod.outlook.com (2603:10b6:208:31c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Sat, 1 Oct 2022 12:22:10 +0000 Received: from CO1NAM11FT097.eop-nam11.prod.protection.outlook.com (2603:10b6:303:81:cafe::99) by MW4PR04CA0387.outlook.office365.com (2603:10b6:303:81::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24 via Frontend Transport; Sat, 1 Oct 2022 12:22:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT097.mail.protection.outlook.com (10.13.175.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Sat, 1 Oct 2022 12:22:10 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Sat, 1 Oct 2022 05:22:06 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 1 Oct 2022 05:22:06 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Sat, 1 Oct 2022 05:22:04 -0700 From: Krishna Yarlagadda To: , , , , CC: , , , Krishna Yarlagadda Subject: [PATCH 4/5] spi: tegra210-quad: combined seq for 4READ Date: Sat, 1 Oct 2022 17:51:47 +0530 Message-ID: <20221001122148.9158-4-kyarlagadda@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221001122148.9158-1-kyarlagadda@nvidia.com> References: <20221001122148.9158-1-kyarlagadda@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT097:EE_|BL1PR12MB5174:EE_ X-MS-Office365-Filtering-Correlation-Id: 946e657f-01bc-4129-96d4-08daa3a79043 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dmovqLBqorsNAFtW68OeoHaF+toJlS8N/C/4KA6D30pplpCqFPUe2tnKGmAkeGUwIynv+30rfXG8qVqq1iyI5QHf50nExjN71NbjKhCSNleCEkqWRnNkkeQxrRKo5XpscFkkIMED/S+GfdIn4H9A4M4s5RtpGl2E7i+LNtO7zcZqHi5YHu8EU+UbYVK/lQACFsPUXZGYvhYlgFH7oRekqMBuwUDO+uePpDL82uc4wA+4LfDLTYoet0HSz3zMuCLxyoLOv0TrBeqCTxwxlmRMM23ryup1UR9mDPsNa/+vFFOZyGs9F8Fkj3rXXmH+VrUQoKnuhK2H/AdWa09OvjxhwioBV7PQQciFCOrlv2PgDyL9uXTYFfODeF1AnmVXprqeVnY6nP8j9e9OdzADjJ3oEwM7cn10IuOqlVJ396ieW+t65atxP+IxJ/YYuBU0vgV5lX1CmHKMTt1KBcQrsGSi92M4o+Ib3peUe/yfeAhR8I6e4WjKbxL+8Er69PuvQsHI0dD/wufOD0oZPLU0et0jAy6FrTPElVE4CIpFJCpdib0Nzn1D/nVdnwpVOlXJ+CQNkkP6SOV6JkmvrVMJ70uCugA9EZi2jT9jdJou3/PIfEyJGUoWUHnBZqeoBlkL04e7xHAqQ9GU78NILidvgxAaBaw/oYSXxjBW2AnKA+lr82/ir7gw22AdZReNWavoStRnT6QHg5U0XD5y1SwOTDXryM8haUIdxgu5YS26rMugU0MFdNljD17AIATbTBqcbqiLS6aM0hBFqAzK4ateW75zKA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(396003)(346002)(376002)(39860400002)(136003)(451199015)(36840700001)(40470700004)(46966006)(86362001)(107886003)(41300700001)(6666004)(4326008)(8676002)(70206006)(70586007)(186003)(2906002)(1076003)(426003)(8936002)(47076005)(2616005)(336012)(40460700003)(83380400001)(7696005)(36756003)(36860700001)(5660300002)(40480700001)(26005)(7636003)(54906003)(82310400005)(478600001)(356005)(110136005)(82740400003)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2022 12:22:10.0467 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 946e657f-01bc-4129-96d4-08daa3a79043 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT097.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5174 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X2 and X4 reads require dummy cycles. Use hardware dummy clock cycles programming to use combined sequence for X2, X4 transfers as well. Signed-off-by: Krishna Yarlagadda --- drivers/spi/spi-tegra210-quad.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-tegra210-quad.c b/drivers/spi/spi-tegra210-quad.c index be11daafb7d4..99811509dafa 100644 --- a/drivers/spi/spi-tegra210-quad.c +++ b/drivers/spi/spi-tegra210-quad.c @@ -159,7 +159,8 @@ #define DEFAULT_QSPI_DMA_BUF_LEN (64 * 1024) #define CMD_TRANSFER 0 #define ADDR_TRANSFER 1 -#define DATA_TRANSFER 2 +#define DUMMY_TRANSFER 2 +#define DATA_TRANSFER 3 struct tegra_qspi_soc_data { bool has_dma; @@ -1072,7 +1073,12 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi, xfer->len); address_value = *((const u32 *)(xfer->tx_buf)); break; + case DUMMY_TRANSFER: case DATA_TRANSFER: + if (xfer->dummy_data) { + tqspi->dummy_cycles = xfer->len * 8 / xfer->tx_nbits; + break; + } /* Program Command, Address value in register */ tegra_qspi_writel(tqspi, cmd_value, QSPI_CMB_SEQ_CMD); tegra_qspi_writel(tqspi, address_value, @@ -1277,7 +1283,9 @@ static bool tegra_qspi_validate_cmb_seq(struct tegra_qspi *tqspi, list_for_each_entry(xfer, &msg->transfers, transfer_list) { transfer_count++; } - if (!tqspi->soc_data->cmb_xfer_capable || transfer_count != 3) + if (!tqspi->soc_data->cmb_xfer_capable) + return false; + if (transfer_count > 4 || transfer_count < 3) return false; xfer = list_first_entry(&msg->transfers, typeof(*xfer), transfer_list); @@ -1287,7 +1295,15 @@ static bool tegra_qspi_validate_cmb_seq(struct tegra_qspi *tqspi, if (xfer->len > 4 || xfer->len < 3) return false; xfer = list_next_entry(xfer, transfer_list); - if (!tqspi->soc_data->has_dma || xfer->len > (QSPI_FIFO_DEPTH << 2)) + if (transfer_count == 4) { + if (xfer->dummy_data != 1) + return false; + if ((xfer->len * 8 / xfer->tx_nbits) > + QSPI_DUMMY_CYCLES_MAX) + return false; + xfer = list_next_entry(xfer, transfer_list); + } + if (!tqspi->soc_data->has_dma && xfer->len > (QSPI_FIFO_DEPTH << 2)) return false; return true; From patchwork Sat Oct 1 12:21:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Yarlagadda X-Patchwork-Id: 611731 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6829CC433F5 for ; Sat, 1 Oct 2022 12:22:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229675AbiJAMWl (ORCPT ); Sat, 1 Oct 2022 08:22:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229657AbiJAMWb (ORCPT ); Sat, 1 Oct 2022 08:22:31 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2059.outbound.protection.outlook.com [40.107.94.59]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A34798261B; Sat, 1 Oct 2022 05:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KEsZ7y+FJL5WRiH8JqhIl85TrV5+IErz9Ou0j1h5uX3enZzbm7YVR5d9C2sCv3TuHCiDe8Y4LT00bft69U5yrxMWf3zZ8UYqP+jT7T5aZO0Zzm6qSf2HQPxaxGLDZJimiKJIuNOMo6rkSbnXSNj6RFIpDUg5L+YKg4DXgK+7T92QR93h1dHffV9jab1P3EG/obXjp2LTiNGgTdeEExNBHeBorq+m/ZDA24/jkv6m4d8/syWgx2FH62il4mI2bEmgKSRLrVDiH7SYfLfHmIzb8mYZwsAtbNL2YAbMkKC1RhPqIpt3s0W3EYGl4+QfzwS2J4hYuVP4f19ofnX9JQxzNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nYneFldGyERSULklzguxk8pqj7OenUpAAElEEjg7zLY=; b=IRd1qPnH9Qma2rXNAIojV4VGd5KrRp2cTf45XgUnaYLZzG4w0v1rqWZKXOLnuzPEB05Y3bKqqyM8Fo3nyfOnnc9Tm89/uRl5t0AUsQT4OC+j+Y+njARpR5ub1BS2j+EcYFv7UCHr5lx0wZ3zNMjpX5cm2OHxomiFKPTu4q8f6vtsKBYf+IlgnMp0QxLVSM61lnv9tV/ip3ME0JuCXPKN19q2wm5IsiT6RCUsSHDnw03h7NEWCbUQ4yMLcCd6fRCgwp++1lvq7p/FJe4FDjeUN+vpVZw4NuUlRRWPqamp8EzywM8Cv1r6/eVtIOHGazrhGYel+P6+GbJZIo8Pumpkfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nYneFldGyERSULklzguxk8pqj7OenUpAAElEEjg7zLY=; b=YWYxST96XDLAzctYY8Gtmx9gUuyYGhyhDRRkkFGiR0m7fMn9KSqa9lguQ2s2YHMsw9e3nlLN1YTipbPuOYatIRqF/BIeKvrIsZHXYQtInz67RP8xV/A1Xz2GQfVLoQPJucP7XUK2nRwqh+kMBsdqIJCP5T7SHazVzXkAZqfJ6MDIK8OpAkAQkDfZbeVLvaiME1OJXm3E2+j9f7dAPUvyXlJtc8omB3K4nHsGY4cumtuyaZBlIi8f4h6H9e7m2itx2dBhstXYwaCv3oqiQ4gKgcHQ/J1zxQL+Ho7DchBnamjdSqr8BDiwXd1QEzhSbyOP8xu9IR73v7P5WhUg4zKXmA== Received: from BN9PR03CA0123.namprd03.prod.outlook.com (2603:10b6:408:fe::8) by MN2PR12MB4288.namprd12.prod.outlook.com (2603:10b6:208:1d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Sat, 1 Oct 2022 12:22:20 +0000 Received: from BN8NAM11FT034.eop-nam11.prod.protection.outlook.com (2603:10b6:408:fe:cafe::bf) by BN9PR03CA0123.outlook.office365.com (2603:10b6:408:fe::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.20 via Frontend Transport; Sat, 1 Oct 2022 12:22:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT034.mail.protection.outlook.com (10.13.176.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Sat, 1 Oct 2022 12:22:19 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Sat, 1 Oct 2022 05:22:09 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sat, 1 Oct 2022 05:22:09 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Sat, 1 Oct 2022 05:22:07 -0700 From: Krishna Yarlagadda To: , , , , CC: , , , Krishna Yarlagadda Subject: [PATCH 5/5] spi: tegra210-quad: native dma support Date: Sat, 1 Oct 2022 17:51:48 +0530 Message-ID: <20221001122148.9158-5-kyarlagadda@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221001122148.9158-1-kyarlagadda@nvidia.com> References: <20221001122148.9158-1-kyarlagadda@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT034:EE_|MN2PR12MB4288:EE_ X-MS-Office365-Filtering-Correlation-Id: 137f52ce-a893-4f8e-8774-08daa3a7960f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1KE4961YMY0eftrKLI+KP3CFlwC6B2J/mFFqRwKSVFqXuVQRMVuNBJonFOlNEuGRzuYITc/cxvzk+bUosPwhc07rsqftQOkUXrR6bfQTmbgO38tYgutP+aI6+7FHfa1LRaggGJqnOEIq1Y/UHkAOcXdlR7Re1GXxwJ+08onYo8o+XVrtA+8f0XVb/oIpbHpjVxDreYFL0M/wk4yCHI7aHxxIFIJHPaPapfLCxku49uTMGZIid4PhgRx1KpVt9FeRDrJDdkEXqubBtGa6WYy41D5dz7HsT4Bf9L1FywdB2fcZXC4aqFoznix7HySHxx33nWJOZHCFBUMOs3gljAF5X9be2u/4MIcdFshe32ey2BTGeeR775RBw0qPKRaD9WSXdBALIJUeMF4AONgjYFHsJ5jvuT341fb9+eKoypP3lierqO9qrStfmMsssh1i5kh4vJvK5zTBx+XBCdfGO5SAyNBBphSukhTHNdQhOttuXeVGSeNanbE4xd4sDDtRCQfExpX3qtrMGVZLMmg9A6/Da1G4QHIbHcXNsyDPGYmhYQvGZ/+DOhUdBmBaCwCoxXtkj4CJwHCIPlnNbYuxneSNeS0fPlCBKpW63BIXHhukB4EPUeIikTS6mmvMna1N3sgWUFZP2N6cI1ej2eK75kErelq96OD+mh2msRmn6AEYimPJ5t9bSZ7tVn7eJx8ObLSTVeZQfIWEdfHEWItgniJ6VGYfxMoLLg8fxSofFSrpIE0zbrNK76neK6brnF3KjTmQ95r+YIVYIcfw52q6vaV7vQ== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(376002)(396003)(39860400002)(346002)(136003)(451199015)(40470700004)(46966006)(36840700001)(478600001)(110136005)(54906003)(4326008)(8676002)(70206006)(70586007)(26005)(5660300002)(107886003)(6666004)(36756003)(82740400003)(186003)(1076003)(426003)(336012)(8936002)(41300700001)(2906002)(2616005)(7696005)(47076005)(36860700001)(86362001)(40460700003)(316002)(83380400001)(82310400005)(40480700001)(356005)(7636003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2022 12:22:19.6781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 137f52ce-a893-4f8e-8774-08daa3a7960f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT034.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4288 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Enable Native DMA support for Tegra23 & Tegra24 Signed-off-by: Krishna Yarlagadda --- drivers/spi/spi-tegra210-quad.c | 136 +++++++++++++++++++++++--------- 1 file changed, 97 insertions(+), 39 deletions(-) diff --git a/drivers/spi/spi-tegra210-quad.c b/drivers/spi/spi-tegra210-quad.c index 99811509dafa..edecb999a614 100644 --- a/drivers/spi/spi-tegra210-quad.c +++ b/drivers/spi/spi-tegra210-quad.c @@ -111,6 +111,9 @@ #define QSPI_DMA_BLK 0x024 #define QSPI_DMA_BLK_SET(x) (((x) & 0xffff) << 0) +#define QSPI_DMA_MEM_ADDRESS_REG 0x028 +#define QSPI_DMA_HI_ADDRESS_REG 0x02c + #define QSPI_TX_FIFO 0x108 #define QSPI_RX_FIFO 0x188 @@ -155,6 +158,9 @@ #define DATA_DIR_TX BIT(0) #define DATA_DIR_RX BIT(1) +#define QSPI_DMA_EXT BIT(0) +#define QSPI_DMA_INT BIT(1) + #define QSPI_DMA_TIMEOUT (msecs_to_jiffies(1000)) #define DEFAULT_QSPI_DMA_BUF_LEN (64 * 1024) #define CMD_TRANSFER 0 @@ -163,7 +169,7 @@ #define DATA_TRANSFER 3 struct tegra_qspi_soc_data { - bool has_dma; + int has_dma; bool cmb_xfer_capable; unsigned int cs_count; }; @@ -600,17 +606,22 @@ static void tegra_qspi_dma_unmap_xfer(struct tegra_qspi *tqspi, struct spi_trans len = DIV_ROUND_UP(tqspi->curr_dma_words * tqspi->bytes_per_word, 4) * 4; - dma_unmap_single(tqspi->dev, t->tx_dma, len, DMA_TO_DEVICE); - dma_unmap_single(tqspi->dev, t->rx_dma, len, DMA_FROM_DEVICE); + if (t->tx_buf) + dma_unmap_single(tqspi->dev, t->tx_dma, len, DMA_TO_DEVICE); + if (t->rx_buf) + dma_unmap_single(tqspi->dev, t->rx_dma, len, DMA_FROM_DEVICE); } static int tegra_qspi_start_dma_based_transfer(struct tegra_qspi *tqspi, struct spi_transfer *t) { struct dma_slave_config dma_sconfig = { 0 }; + dma_addr_t rx_dma_phys, tx_dma_phys; unsigned int len; u8 dma_burst; int ret = 0; u32 val; + bool has_ext_dma = (tqspi->soc_data->has_dma & + QSPI_DMA_EXT) ? true : false; if (tqspi->is_packed) { ret = tegra_qspi_dma_map_xfer(tqspi, t); @@ -629,23 +640,35 @@ static int tegra_qspi_start_dma_based_transfer(struct tegra_qspi *tqspi, struct len = tqspi->curr_dma_words * 4; /* set attention level based on length of transfer */ - val = 0; - if (len & 0xf) { - val |= QSPI_TX_TRIG_1 | QSPI_RX_TRIG_1; - dma_burst = 1; - } else if (((len) >> 4) & 0x1) { - val |= QSPI_TX_TRIG_4 | QSPI_RX_TRIG_4; - dma_burst = 4; - } else { - val |= QSPI_TX_TRIG_8 | QSPI_RX_TRIG_8; - dma_burst = 8; + if (has_ext_dma) { + val = 0; + if (len & 0xf) { + val |= QSPI_TX_TRIG_1 | QSPI_RX_TRIG_1; + dma_burst = 1; + } else if (((len) >> 4) & 0x1) { + val |= QSPI_TX_TRIG_4 | QSPI_RX_TRIG_4; + dma_burst = 4; + } else { + val |= QSPI_TX_TRIG_8 | QSPI_RX_TRIG_8; + dma_burst = 8; + } } tegra_qspi_writel(tqspi, val, QSPI_DMA_CTL); tqspi->dma_control_reg = val; dma_sconfig.device_fc = true; - if (tqspi->cur_direction & DATA_DIR_TX) { + if ((tqspi->cur_direction & DATA_DIR_TX) && !has_ext_dma) { + if (tqspi->is_packed) + tx_dma_phys = t->tx_dma; + else + tx_dma_phys = tqspi->tx_dma_phys; + tegra_qspi_copy_client_txbuf_to_qspi_txbuf(tqspi, t); + tegra_qspi_writel(tqspi, (tx_dma_phys & 0xffffffff), + QSPI_DMA_MEM_ADDRESS_REG); + tegra_qspi_writel(tqspi, ((tx_dma_phys >> 32) & 0xff), + QSPI_DMA_HI_ADDRESS_REG); + } else if ((tqspi->cur_direction & DATA_DIR_TX) && has_ext_dma) { dma_sconfig.dst_addr = tqspi->phys + QSPI_TX_FIFO; dma_sconfig.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; dma_sconfig.dst_maxburst = dma_burst; @@ -663,7 +686,16 @@ static int tegra_qspi_start_dma_based_transfer(struct tegra_qspi *tqspi, struct } } - if (tqspi->cur_direction & DATA_DIR_RX) { + if ((tqspi->cur_direction & DATA_DIR_RX) && !has_ext_dma) { + if (tqspi->is_packed) + rx_dma_phys = t->rx_dma; + else + rx_dma_phys = tqspi->rx_dma_phys; + tegra_qspi_writel(tqspi, (rx_dma_phys & 0xffffffff), + QSPI_DMA_MEM_ADDRESS_REG); + tegra_qspi_writel(tqspi, ((rx_dma_phys >> 32) & 0xff), + QSPI_DMA_HI_ADDRESS_REG); + } else if ((tqspi->cur_direction & DATA_DIR_RX) && has_ext_dma) { dma_sconfig.src_addr = tqspi->phys + QSPI_RX_FIFO; dma_sconfig.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; dma_sconfig.src_maxburst = dma_burst; @@ -751,13 +783,29 @@ static int tegra_qspi_init_dma(struct tegra_qspi *tqspi) u32 *dma_buf; int err; - dma_chan = dma_request_chan(tqspi->dev, "rx"); - if (IS_ERR(dma_chan)) { - err = PTR_ERR(dma_chan); - goto err_out; - } + if (!tqspi->soc_data->has_dma) + return -ENODEV; + + if (tqspi->soc_data->has_dma & QSPI_DMA_EXT) { + dma_chan = dma_request_chan(tqspi->dev, "rx"); + if (IS_ERR(dma_chan)) { + err = PTR_ERR(dma_chan); + goto err_out; + } - tqspi->rx_dma_chan = dma_chan; + tqspi->rx_dma_chan = dma_chan; + + dma_chan = dma_request_chan(tqspi->dev, "tx"); + if (IS_ERR(dma_chan)) { + err = PTR_ERR(dma_chan); + goto err_out; + } + + tqspi->tx_dma_chan = dma_chan; + } else { + tqspi->rx_dma_chan = NULL; + tqspi->tx_dma_chan = NULL; + } dma_buf = dma_alloc_coherent(tqspi->dev, tqspi->dma_buf_size, &dma_phys, GFP_KERNEL); if (!dma_buf) { @@ -768,14 +816,6 @@ static int tegra_qspi_init_dma(struct tegra_qspi *tqspi) tqspi->rx_dma_buf = dma_buf; tqspi->rx_dma_phys = dma_phys; - dma_chan = dma_request_chan(tqspi->dev, "tx"); - if (IS_ERR(dma_chan)) { - err = PTR_ERR(dma_chan); - goto err_out; - } - - tqspi->tx_dma_chan = dma_chan; - dma_buf = dma_alloc_coherent(tqspi->dev, tqspi->dma_buf_size, &dma_phys, GFP_KERNEL); if (!dma_buf) { err = -ENOMEM; @@ -1045,6 +1085,8 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi, struct spi_message *msg) { bool is_first_msg = true; + bool has_ext_dma = (tqspi->soc_data->has_dma & + QSPI_DMA_EXT) ? true : false; struct spi_transfer *xfer; struct spi_device *spi = msg->spi; u8 transfer_phase = 0; @@ -1109,12 +1151,12 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi, if (WARN_ON(ret == 0)) { dev_err(tqspi->dev, "QSPI Transfer failed with timeout: %d\n", ret); - if (tqspi->is_curr_dma_xfer && + if (tqspi->is_curr_dma_xfer && has_ext_dma && (tqspi->cur_direction & DATA_DIR_TX)) dmaengine_terminate_all (tqspi->tx_dma_chan); - if (tqspi->is_curr_dma_xfer && + if (tqspi->is_curr_dma_xfer && has_ext_dma && (tqspi->cur_direction & DATA_DIR_RX)) dmaengine_terminate_all (tqspi->rx_dma_chan); @@ -1178,6 +1220,8 @@ static int tegra_qspi_non_combined_seq_xfer(struct tegra_qspi *tqspi, struct spi_device *spi = msg->spi; struct spi_transfer *transfer; bool is_first_msg = true; + bool has_ext_dma = (tqspi->soc_data->has_dma & + QSPI_DMA_EXT) ? true : false; int ret = 0, val = 0; msg->status = 0; @@ -1230,9 +1274,11 @@ static int tegra_qspi_non_combined_seq_xfer(struct tegra_qspi *tqspi, QSPI_DMA_TIMEOUT); if (WARN_ON(ret == 0)) { dev_err(tqspi->dev, "transfer timeout\n"); - if (tqspi->is_curr_dma_xfer && (tqspi->cur_direction & DATA_DIR_TX)) + if (tqspi->is_curr_dma_xfer && has_ext_dma && + (tqspi->cur_direction & DATA_DIR_TX)) dmaengine_terminate_all(tqspi->tx_dma_chan); - if (tqspi->is_curr_dma_xfer && (tqspi->cur_direction & DATA_DIR_RX)) + if (tqspi->is_curr_dma_xfer && has_ext_dma && + (tqspi->cur_direction & DATA_DIR_RX)) dmaengine_terminate_all(tqspi->rx_dma_chan); tegra_qspi_handle_error(tqspi); ret = -EIO; @@ -1365,8 +1411,20 @@ static irqreturn_t handle_dma_based_xfer(struct tegra_qspi *tqspi) unsigned long flags; long wait_status; int err = 0; + bool has_ext_dma = (tqspi->soc_data->has_dma & + QSPI_DMA_EXT) ? true : false; + + if (tqspi->cur_direction & DATA_DIR_TX && !has_ext_dma) { + if (tqspi->tx_status) + err += 1; + } + + if (tqspi->cur_direction & DATA_DIR_RX && !has_ext_dma) { + if (tqspi->rx_status) + err += 2; + } - if (tqspi->cur_direction & DATA_DIR_TX) { + if (tqspi->cur_direction & DATA_DIR_TX && has_ext_dma) { if (tqspi->tx_status) { dmaengine_terminate_all(tqspi->tx_dma_chan); err += 1; @@ -1381,7 +1439,7 @@ static irqreturn_t handle_dma_based_xfer(struct tegra_qspi *tqspi) } } - if (tqspi->cur_direction & DATA_DIR_RX) { + if (tqspi->cur_direction & DATA_DIR_RX && has_ext_dma) { if (tqspi->rx_status) { dmaengine_terminate_all(tqspi->rx_dma_chan); err += 2; @@ -1454,25 +1512,25 @@ static irqreturn_t tegra_qspi_isr_thread(int irq, void *context_data) } static struct tegra_qspi_soc_data tegra210_qspi_soc_data = { - .has_dma = true, + .has_dma = QSPI_DMA_EXT, .cmb_xfer_capable = false, .cs_count = 1, }; static struct tegra_qspi_soc_data tegra186_qspi_soc_data = { - .has_dma = true, + .has_dma = QSPI_DMA_EXT, .cmb_xfer_capable = true, .cs_count = 1, }; static struct tegra_qspi_soc_data tegra234_qspi_soc_data = { - .has_dma = false, + .has_dma = QSPI_DMA_INT, .cmb_xfer_capable = true, .cs_count = 1, }; static struct tegra_qspi_soc_data tegra241_qspi_soc_data = { - .has_dma = false, + .has_dma = QSPI_DMA_INT, .cmb_xfer_capable = true, .cs_count = 4, };