Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1767902ybl; Sat, 11 Jan 2020 02:25:09 -0800 (PST) X-Google-Smtp-Source: APXvYqzZ1SniXRo2T3W3hPH1VomwmK402GNBpGrlaRrBPW5maCHmoxLLkbCgKHv4oquZ4nL8zmD1 X-Received: by 2002:aca:5588:: with SMTP id j130mr5643935oib.122.1578738309082; Sat, 11 Jan 2020 02:25:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578738309; cv=none; d=google.com; s=arc-20160816; b=kfkpS5878Y5sU6N8CLUX333JoJhf45THqBmUB8p1ATlMW7yzHBDze/CVVHyXhQoRij uUGgZJ7xlOvq8oZvS5vvjSWCxkzmlyKYWTVzjFj5YZNTbdyd4b0SIsu0ihAgadkz7DVc jVL2EErKU858JqVsOKhJcNIuIZWw2+3lGEY6i6Njl9fPWLMz/Jugp/ThjaJ0RLoc8Hyk k03DH4tYThHZ4PQnI0NTYYPTHbA9E/Q1yO06blZdkV+d4tCRE5oS83m32XddSSaGgPlN 31GUOh/9R1H52zclT1B/TBeNsIethN5p/jtNNu55cWIrU2JvdM7aN2tGmWIpjuRlsVM3 nJtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=nD8pSWV4Knb4GUZEWiKCpmD9uL+efc3h4NOksO1EUb8=; b=Jmu4UC1G+m+wsNMREADjqI95W1jYkZlu4/VBwX7Jb0VLleqLwY6V9s5f1nnI7lmoBc jJ59N5XT/Hg9R8c+15SV4Y36I0pNuyP69M78BTAHl6D/Qoq5hAj+NXjt5C/l6z7+bXPY hx2c/paZ2h8qgfA9yrNWz/sRc4cNlqlgmbtLSbljk1JbLKZFALrXnmOre0UTYFGOqv50 V67bYnTfjiXlr8habKOogd+LHV+eGIh63XeOqHov7kKdmSiOYOoX7ZacaPD59/cV4UI4 bNmogc8YT3hCmJ3vkqPimsi8L1VlsGjLPdPJtPzoZD1pQ/gIBql/Tazep5BDKD8U5p89 FOWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p9K2Nnpc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k84si2805827oib.46.2020.01.11.02.24.58; Sat, 11 Jan 2020 02:25:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p9K2Nnpc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730967AbgAKKYJ (ORCPT + 99 others); Sat, 11 Jan 2020 05:24:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:52440 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730643AbgAKKYG (ORCPT ); Sat, 11 Jan 2020 05:24:06 -0500 Received: from localhost (unknown [62.119.166.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 27337205F4; Sat, 11 Jan 2020 10:24:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578738246; bh=YsvyNulDze0pM9EOznZ/h1F/BfCyg96OFeBPGK5KHc4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p9K2NnpcQCWHjAOy5JsV3eCvFBB2tU/ICyP8cd8YkJFHEbP0s7YL6ABKUAip54diM xIDyyxqh5EWGCg7W2hJrK2uMSTY4PLrCjfICgLCF18BL6BhsnGoUkZkPZpuarvuZpR iP+nonpjk4g18kUuxSGXvDc86u3ai/aNYWwiZKJc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andreas Dannenberg , Vignesh Raghavendra , Mark Brown , Sasha Levin Subject: [PATCH 5.4 058/165] spi: spi-ti-qspi: Fix a bug when accessing non default CS Date: Sat, 11 Jan 2020 10:49:37 +0100 Message-Id: <20200111094926.071778933@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200111094921.347491861@linuxfoundation.org> References: <20200111094921.347491861@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vignesh Raghavendra [ Upstream commit c52c91bb9aa6bd8c38dbf9776158e33038aedd43 ] When switching ChipSelect from default CS0 to any other CS, driver fails to update the bits in system control module register that control which CS is mapped for MMIO access. This causes reads to fail when driver tries to access QSPI flash on CS1/2/3. Fix this by updating appropriate bits whenever active CS changes. Reported-by: Andreas Dannenberg Signed-off-by: Vignesh Raghavendra Link: https://lore.kernel.org/r/20191211155216.30212-1-vigneshr@ti.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/spi/spi-ti-qspi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c index 3cb65371ae3b..66dcb6128539 100644 --- a/drivers/spi/spi-ti-qspi.c +++ b/drivers/spi/spi-ti-qspi.c @@ -62,6 +62,7 @@ struct ti_qspi { u32 dc; bool mmap_enabled; + int current_cs; }; #define QSPI_PID (0x0) @@ -487,6 +488,7 @@ static void ti_qspi_enable_memory_map(struct spi_device *spi) MEM_CS_EN(spi->chip_select)); } qspi->mmap_enabled = true; + qspi->current_cs = spi->chip_select; } static void ti_qspi_disable_memory_map(struct spi_device *spi) @@ -498,6 +500,7 @@ static void ti_qspi_disable_memory_map(struct spi_device *spi) regmap_update_bits(qspi->ctrl_base, qspi->ctrl_reg, MEM_CS_MASK, 0); qspi->mmap_enabled = false; + qspi->current_cs = -1; } static void ti_qspi_setup_mmap_read(struct spi_device *spi, u8 opcode, @@ -543,7 +546,7 @@ static int ti_qspi_exec_mem_op(struct spi_mem *mem, mutex_lock(&qspi->list_lock); - if (!qspi->mmap_enabled) + if (!qspi->mmap_enabled || qspi->current_cs != mem->spi->chip_select) ti_qspi_enable_memory_map(mem->spi); ti_qspi_setup_mmap_read(mem->spi, op->cmd.opcode, op->data.buswidth, op->addr.nbytes, op->dummy.nbytes); @@ -799,6 +802,7 @@ static int ti_qspi_probe(struct platform_device *pdev) } } qspi->mmap_enabled = false; + qspi->current_cs = -1; ret = devm_spi_register_master(&pdev->dev, master); if (!ret) -- 2.20.1