Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752078AbbHTDGi (ORCPT ); Wed, 19 Aug 2015 23:06:38 -0400 Received: from mail-by2on0124.outbound.protection.outlook.com ([207.46.100.124]:31280 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751426AbbHTDGg (ORCPT ); Wed, 19 Aug 2015 23:06:36 -0400 From: Hou Zhiqiang To: Jagan Teki CC: "linux-mtd@lists.infradead.org" , "Hu Vincent" , Brian Norris , David Woodhouse , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH 3/3] mtd: spi-nor: sf: Add clear flag status register support Thread-Topic: [PATCH 3/3] mtd: spi-nor: sf: Add clear flag status register support Thread-Index: AQHQ2mVu+Ryhtelg0kmPXBqow87Pvp4TOZMAgABgXoCAAJVXIA== Date: Thu, 20 Aug 2015 03:06:31 +0000 Message-ID: References: <1439978205-6092-1-git-send-email-jteki@openedev.com> <1439978205-6092-3-git-send-email-jteki@openedev.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=B48286@freescale.com; x-originating-ip: [192.158.241.86] x-microsoft-exchange-diagnostics: 1;CY1PR0301MB1258;5:JY+kIqzUjXAtiQI/mJo3eeI84mNBBeYkDrStrve5uLq5bbHpkX7Pf5Gf9ZOPdpcUxiFTVRfWOByTYu58K8Zdi/sVdznpEzSH+MUomDNcG3fOW6+05GpY4mF7vDK4kRPdo9iL7YSKZYDeSDjDkQl1vw==;24:OMm5JBItOZgoPIKdgCYXsdVSJi7F77mVAIN/sE5YamJ80D9gX4dwuJLq07yeXnaIRP6C7bx7y8t6cP0lf8M2kot++o8WaOCTYaKrvXg8JKo=;20:Cp5zO/4X8LRlDS/5P4zw+E6557QtfyA6C61WfbJWMU7QNbykpR0d2Z9VGB+CHkMs0lF3EloXWWPm0V4gkwlJzw== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1258; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(8121501046)(5005006)(3002001);SRVR:CY1PR0301MB1258;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1258; x-forefront-prvs: 0674DC6DD3 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(979002)(6009001)(164054003)(24454002)(13464003)(199003)(189002)(64706001)(33656002)(5001960100002)(68736005)(101416001)(76576001)(40100003)(2900100001)(105586002)(74316001)(102836002)(77096005)(2950100001)(10400500002)(92566002)(50986999)(5003600100002)(54356999)(5001830100001)(5002640100001)(122556002)(93886004)(76176999)(19580405001)(81156007)(110136002)(5001920100001)(97736004)(5001860100001)(19580395003)(87936001)(189998001)(99286002)(46102003)(62966003)(106116001)(86362001)(66066001)(4001540100001)(2656002)(77156002)(106356001)(5007970100001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0301MB1258;H:CY1PR0301MB0780.namprd03.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2015 03:06:31.3988 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1258 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t7K36g5r025132 Content-Length: 3340 Lines: 88 Hello Jagan, > -----Original Message----- > From: Jagan Teki [mailto:jteki@openedev.com] > Sent: 2015年8月20日 1:49 > To: Hou Zhiqiang-B48286 > Cc: linux-mtd@lists.infradead.org; Hu Mingkai-B21284; Brian Norris; David > Woodhouse; linux-kernel@vger.kernel.org > Subject: Re: [PATCH 3/3] mtd: spi-nor: sf: Add clear flag status register > support > > Hi Zhiqiang, > > On 19 August 2015 at 17:42, Hou Zhiqiang wrote: > > Hi Jagan, > > > >> -----Original Message----- > >> From: Jagan Teki [mailto:jteki@openedev.com] > >> Sent: 2015年8月19日 17:57 > >> To: linux-mtd@lists.infradead.org > >> Cc: linux-kernel@vger.kernel.org; Jagan Teki; Hou Zhiqiang-B48286; Hu > >> Mingkai-B21284; David Woodhouse; Brian Norris > >> Subject: [PATCH 3/3] mtd: spi-nor: sf: Add clear flag status register > >> support > >> > >> The clear flag status register operation was required by Micron > >> SPI-NOR chips, which support FSR. And if an error bit of FSR have > >> been set like protection, voltage, erase, and program, it must be > >> cleared by the clear FSR operation. > >> > >> Signed-off-by: Jagan Teki > >> Cc: Hou Zhiqiang > >> Cc: Mingkai.Hu > >> Cc: David Woodhouse > >> Cc: Brian Norris > >> --- > >> drivers/mtd/spi-nor/spi-nor.c | 35 +++++++++++++++++++++++++++++++--- > - > >> include/linux/mtd/spi-nor.h | 9 +++++++++ > >> 2 files changed, 40 insertions(+), 4 deletions(-) > >> > >> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi- > >> nor.c index f954d03..c5c472d5 100644 > >> --- a/drivers/mtd/spi-nor/spi-nor.c > >> +++ b/drivers/mtd/spi-nor/spi-nor.c > >> @@ -100,6 +100,28 @@ static int read_fsr(struct spi_nor *nor) } > >> > >> /* > >> + * Read the clear flag status register. > >> + * The clear flag status register operation was required by Micron > >> + * SPI-NOR chips, which support FSR. And if an error bit of FSR > >> + * have been set like protection, voltage, erase, and program, > >> + * it must be cleared by the clear FSR operation. > >> + * Returns zero for FSR bits cleared and negative if error occurred. > >> + */ > >> +static int read_cfsr(struct spi_nor *nor) { > >> + int ret; > >> + u8 val; > >> + > >> + ret = nor->read_reg(nor, SPINOR_OP_RDCFSR, &val, 1); > > > > There should be a write_reg instead of read_reg. > > There isn’t a register named CFSR, and the command SPINOR_OP_RDCFSR is > > used to clear the FSR, another words reset FSR to default value. > > Yes, SPINOR_OP_RDCFSR is clear flag status register, for clearing errors > bits on fsr we need to read cfsr once. > Sorry, I'm not clear for this operation. Please correct me if I'm wrong. As far as I understand, this command is used to reset the FSR. Does a value Will be read back? And there is not the register CFSR, so I don't know which register will be read by SPINOR_OP_RDCFSR? > > > >> + if (ret < 0) { > >> + pr_err("error %d reading CFSR\n", ret); > >> + return ret; > >> + } > >> + > >> + return val; > >> +} > >> + > >> +/* Thanks, Zhiqiang ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?