From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753526AbdBNKfO (ORCPT ); Tue, 14 Feb 2017 05:35:14 -0500 Received: from smtpout.microchip.com ([198.175.253.82]:31079 "EHLO email.microchip.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752657AbdBNKfM (ORCPT ); Tue, 14 Feb 2017 05:35:12 -0500 Subject: Re: [PATCH] mtd: spi-nor: add support for GD25Q256 To: Andy Yan , References: <1487032584-3990-1-git-send-email-andy.yan@rock-chips.com> CC: , , , , , From: Cyrille Pitchen Message-ID: Date: Tue, 14 Feb 2017 11:35:03 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1487032584-3990-1-git-send-email-andy.yan@rock-chips.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: =?Windows-1252?Q?H4sIAAAAAAAAC+NgFnrIKsWRWlGSWpSXmKPExsXCxeXDoht5d1GEQe/S?= =?Windows-1252?Q?wy/5LfrP32S0OPBiIYvFkQtrmS0mrpzMbHF51xw2i91Ny9gtju65x2wx?= =?Windows-1252?Q?eecbRgcOjyebLjJ67Jx1l91j8wotj81L6j1uziv0+DtrP4vH501yAexR?= =?Windows-1252?Q?rJl5SfkVCawZLauOMBesE6hYsf00WwPjV54uRi4OIYEVjBLte1awdDFy?= =?Windows-1252?Q?cggLWEu079/I3sXIwSEiYCux6Ho8SFhIwE2iY0U7O4jNLLCSUWJJdySI?= =?Windows-1252?Q?zSZgKPH2wVFWEJtXwEZi6ZdmsDEsAqoS3c8eM4PYogIREvOfrmKCqBGU?= =?Windows-1252?Q?ODnzCVgNp4C7xJVF36FmGkgcWTSHFcKWl2jeOpsZYq+axMKWFWC2hECg?= =?Windows-1252?Q?xOOnK9khbCeJ5+tuskHYdhKHp1+EijtIdC34zQxT8/TxRShbW2L7q32s?= =?Windows-1252?Q?ELaOxLaD/SwQtq3EnhkTmSBsd4kHj5ZD2b4Ssx42QNVESbQt2cw2gVFy?= =?Windows-1252?Q?FpIXZiE5exaSsxcwMq9ilHb28NMNDtN1jXD2MDDXy03OKNDNTczM00vO?= =?Windows-1252?Q?z93ECInsnB2MaxZHHGKU5GBSEuWN3bQwQogvKT+lMiOxOCO+qDQntfgQ?= =?Windows-1252?Q?owwHh5IEr8LtRRFCgkWp6akVaZk5wBQDk2bi4DzEKMHBoyTCOwGkhre4?= =?Windows-1252?Q?IDG3ODMdIn+KUVJKnJcNJCEAksgozYPrvcQoKiXMe/MWUI6nILUoN7ME?= =?Windows-1252?Q?In6LUYzjIRPHYyYhlrz8vFQpoFMZgMCA8RWjOAejkjBvLMg4nsy8Erg1?= =?Windows-1252?Q?r4AuYAK6gDVuIcgFJYkIKakGxk279G5N2d359sAJv945T5wz92xUnzrV?= =?Windows-1252?Q?93He9a/OGVvuVLLemeKavH9qnMBVsVMr4+8pytlpiAk38JpsvbZLwpnn?= =?Windows-1252?Q?kmFf8o3p+zf+ODNL0OrLGoNVC9QmL+H1mLRAe3X1/dn9DS4cOv89XY5O?= =?Windows-1252?Q?dnRWzT64+qfm4Rplt/Vn9md3beDxD4l+uoLH544SS3FGoqEWc1FxIgDA?= =?Windows-1252?Q?tq07dAMAAA=3D=3D?= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andy, Le 14/02/2017 à 01:36, Andy Yan a écrit : > GD25Q256 is a 32MiB SPI Nor flash from Gigadevice. > > Signed-off-by: Andy Yan > --- > drivers/mtd/spi-nor/spi-nor.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > mode change 100644 => 100755 drivers/mtd/spi-nor/spi-nor.c > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > old mode 100644 > new mode 100755 > index da7cd69..0917dd3 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -852,6 +852,10 @@ static const struct flash_info spi_nor_ids[] = { > SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | > SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) > }, > + { > + "gd25q256", INFO(0xc84019, 0, 64 * 1024, 512, > + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) > + }, > > /* Intel/Numonyx -- xxxs33b */ > { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) }, > @@ -1483,7 +1487,8 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) > else if (mtd->size > 0x1000000) { > /* enable 4-byte addressing if the device exceeds 16MiB */ > nor->addr_width = 4; > - if (JEDEC_MFR(info) == SNOR_MFR_SPANSION) { > + if (JEDEC_MFR(info) == SNOR_MFR_SPANSION || > + JEDEC_MFR(info) == SNOR_MFR_GIGADEVICE) { > /* Dedicated 4-byte command set */ > switch (nor->flash_read) { > case SPI_NOR_QUAD: This doesn't apply to the spi-nor tree and also, please use the SPI_NOR_4B_OPCODES info->flags instead of adding a "JEDEC_MFR(info) == SNOR_MFR_GIGADEVICE" line. I think setting flags at the memory part level is safer than applying a global policy per manufacturer. Best regards, Cyrille > @@ -1519,7 +1524,6 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) > > dev_info(dev, "%s (%lld Kbytes)\n", info->name, > (long long)mtd->size >> 10); > - > dev_dbg(dev, > "mtd .name = %s, .size = 0x%llx (%lldMiB), " > ".erasesize = 0x%.8x (%uKiB) .numeraseregions = %d\n", >