• Tudor Ambarus's avatar
    mtd: spi-nor: Fix clearing of QE bit on lock()/unlock() · 39d1e334
    Tudor Ambarus authored
    Make sure that when doing a lock() or an unlock() operation we don't clear
    the QE bit from Status Register 2.
    
    JESD216 revB or later offers information about the *default* Status
    Register commands to use (see BFPT DWORDS[15], bits 22:20). In this
    standard, Status Register 1 refers to the first data byte transferred on a
    Read Status (05h) or Write Status (01h) command. Status register 2 refers
    to the byte read using instruction 35h. Status register 2 is the second
    byte transferred in a Write Status (01h) command.
    
    Industry naming and definitions of these Status Registers may differ.
    The definitions are described in JESD216B, BFPT DWORDS[15], bits 22:20.
    There are cases in which writing only one byte to the Status Register 1
    has the side-effect of clearing Status Register 2 and implicitly the Quad
    Enable bit. This side-effect is hit just by the
    BFPT_DWORD15_QER_SR2_BIT1_BUGGY and BFPT_DWORD15_QER_SR2_BIT1 cases.
    Suggested-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
    Signed-off-by: default avatarTudor Ambarus <tudor.ambarus@microchip.com>
    Reviewed-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
    39d1e334
spi-nor.c 154 KB