From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44101) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDr4v-00080V-2S for qemu-devel@nongnu.org; Fri, 17 Jun 2016 06:32:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDr4q-00039z-36 for qemu-devel@nongnu.org; Fri, 17 Jun 2016 06:32:44 -0400 Received: from mail-db3on0129.outbound.protection.outlook.com ([157.55.234.129]:24216 helo=emea01-db3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDr4p-00039f-KI for qemu-devel@nongnu.org; Fri, 17 Jun 2016 06:32:40 -0400 From: Date: Fri, 17 Jun 2016 12:28:28 +0200 Message-ID: <1466159314-28597-5-git-send-email-marcin.krzeminski@nokia.com> In-Reply-To: <1466159314-28597-1-git-send-email-marcin.krzeminski@nokia.com> References: <1466159314-28597-1-git-send-email-marcin.krzeminski@nokia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 04/10] m25p80: Introduce COLLECTING_VAR_LEN_DATA state. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: crosthwaitepeter@gmail.com, pawel.lenkow@itlen.com, rfsw-patches@mlist.emea.nsn-intra.net, peter.maydell@linaro.org, clg@fr.ibm.com, clg@kaod.org From: Marcin Krzeminski Some flash allows to stop read at any time. Allow framework to support this. Signed-off-by: Marcin Krzeminski Reviewed-by: C=C3=A9dric Le Goater --- hw/block/m25p80.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 6910c52..ca1f882 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -330,6 +330,7 @@ typedef enum { STATE_PAGE_PROGRAM, STATE_READ, STATE_COLLECTING_DATA, + STATE_COLLECTING_VAR_LEN_DATA, STATE_READING_DATA, } CMDState; =20 @@ -872,6 +873,9 @@ static int m25p80_cs(SSISlave *ss, bool select) Flash *s =3D M25P80(ss); =20 if (select) { + if (s->state =3D=3D STATE_COLLECTING_VAR_LEN_DATA) { + complete_collecting_data(s); + } s->len =3D 0; s->pos =3D 0; s->state =3D STATE_IDLE; @@ -905,6 +909,7 @@ static uint32_t m25p80_transfer8(SSISlave *ss, uint32_t= tx) break; =20 case STATE_COLLECTING_DATA: + case STATE_COLLECTING_VAR_LEN_DATA: s->data[s->len] =3D (uint8_t)tx; s->len++; =20 --=20 2.7.4