Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4703225ybv; Wed, 26 Feb 2020 01:38:32 -0800 (PST) X-Google-Smtp-Source: APXvYqx9q6wnfQ3/pzkcwrwMySWd1a39CfHPzVgc4aQnqe8uBwiHcS2+ttdKe5dUF8s8mVHzDSFD X-Received: by 2002:a9d:7757:: with SMTP id t23mr2396251otl.315.1582709912308; Wed, 26 Feb 2020 01:38:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582709912; cv=none; d=google.com; s=arc-20160816; b=Q72LcswoFFM2mMB+bJClT0JNGxaCJ1spkUsjBYORItCujCu3W38icfVrV4jmOtRbdr z4Ph2dWC6taI6/rzgpkyltY9eR4KmlbQ8wkIp7tjttc+5krs0NWnzs/babdt91scsJkX M9884yfdsajCPF9Lc8xqwlXUK6/iVBwDiaOAlOvyU2ot54PsXmIyAfhBnSyjAgf8Abwq mlz/Achk6bcjLL01AVuCDwMAXBa8lrmD0X4IzGP+EMUikqYh8NTAGhtyftMY2qOtpTA+ flIOBU4++WJI1xT6TP3QdxRz0aCPKIYVP3mmQxztoU1i1aHDHEztn3wAXpmQSF+Uu/IG Kfuw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=n523ZBNSyrlp74g4Ue51E774uonFnpFhlNalpFEKaCk=; b=oXOjnwHSsgxUCAGXf604oKtjc7szQV855wfvBFMtdvShEMI5PvB6shXOAVp8ZCz+eQ nle+15+lAvb5RyhocOzwCSoY1Zf92NSloFJ5ElEGyVW6xyOl3ws5s0Xrr147SvoDWVGJ 9PaGcJ18i2bKfDSiT3i/TY758KCcXjQlZZ/G7tkhgDg4xGKXZmDEVfDsTmSZNyQQOJPZ muknq/BDHZ+58k6uy8WNrD405db4fMIrxxHv7ToUv/tUaqplCDumNHqQz85T7h6MFbX/ YUqVimw8SurWCkZEdfZ4AwAh1upKECa3QfyXkBbu1waiBg1+EvlLXVv/LPHujxfDZ8wX QOLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=Ye0aMPvC; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r12si924957otq.156.2020.02.26.01.38.20; Wed, 26 Feb 2020 01:38:32 -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=@ti.com header.s=ti-com-17Q1 header.b=Ye0aMPvC; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728069AbgBZJiB (ORCPT + 99 others); Wed, 26 Feb 2020 04:38:01 -0500 Received: from lelv0142.ext.ti.com ([198.47.23.249]:40678 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727457AbgBZJh7 (ORCPT ); Wed, 26 Feb 2020 04:37:59 -0500 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 01Q9blW6019846; Wed, 26 Feb 2020 03:37:47 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1582709867; bh=n523ZBNSyrlp74g4Ue51E774uonFnpFhlNalpFEKaCk=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=Ye0aMPvC3N3BHNDkYq8jh+n26j6USlZt3ASaU/dy3r/fHsEmZelzrLqsNL/UFx/dW yVE1LPfyh+oJXlR3bERU4pkjiEwfiWooA/6rtmJOdQl+3agNMo3F0UUsh4odMrAFkJ 2yt6oeCovCC5Z7CL8NLxkinzjdty2HTIM74p1/T4= Received: from DFLE102.ent.ti.com (dfle102.ent.ti.com [10.64.6.23]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 01Q9bl3A119161 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 26 Feb 2020 03:37:47 -0600 Received: from DFLE110.ent.ti.com (10.64.6.31) by DFLE102.ent.ti.com (10.64.6.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3; Wed, 26 Feb 2020 03:37:47 -0600 Received: from lelv0327.itg.ti.com (10.180.67.183) by DFLE110.ent.ti.com (10.64.6.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3 via Frontend Transport; Wed, 26 Feb 2020 03:37:47 -0600 Received: from pratyush-OptiPlex-790.dhcp.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0327.itg.ti.com (8.15.2/8.15.2) with ESMTP id 01Q9b4AE110613; Wed, 26 Feb 2020 03:37:43 -0600 From: Pratyush Yadav To: Tudor Ambarus , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Mark Brown , Rob Herring , Mark Rutland CC: Pratyush Yadav , , , , , Sekhar Nori Subject: [PATCH v2 09/11] mtd: spi-nor: use dummy cycle and address width info from SFDP Date: Wed, 26 Feb 2020 15:07:01 +0530 Message-ID: <20200226093703.19765-10-p.yadav@ti.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226093703.19765-1-p.yadav@ti.com> References: <20200226093703.19765-1-p.yadav@ti.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The xSPI Profile 1.0 table specifies how many dummy cycles and address bytes are needed for the Read Status Register command in octal DTR mode. Use that information to send the correct Read SR command. Signed-off-by: Pratyush Yadav --- drivers/mtd/spi-nor/spi-nor.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 22784c403d77..06cfc525260c 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -525,6 +525,8 @@ static int spi_nor_write_disable(struct spi_nor *nor) static int spi_nor_read_sr(struct spi_nor *nor, u8 *sr) { int ret; + u8 addr_bytes = nor->params.rdsr_addr_nbytes; + u8 dummy = nor->params.rdsr_dummy; if (nor->spimem) { struct spi_mem_op op = @@ -533,10 +535,21 @@ static int spi_nor_read_sr(struct spi_nor *nor, u8 *sr) SPI_MEM_OP_NO_DUMMY, SPI_MEM_OP_DATA_IN(1, sr, 1)); + if (spi_nor_protocol_is_dtr(nor->reg_proto)) { + op.addr.nbytes = addr_bytes; + op.addr.val = 0; + op.dummy.nbytes = dummy; + } + + spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); + ret = spi_mem_exec_op(nor->spimem, &op); } else { - ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDSR, - sr, 1); + if (spi_nor_protocol_is_dtr(nor->reg_proto)) + ret = -ENOTSUPP; + else + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDSR, + sr, 1); } if (ret) -- 2.25.0