From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59440) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAU-0007ja-M0 for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:09:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGMAB-00084o-PE for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:49 -0400 Received: from mail-db3on0104.outbound.protection.outlook.com ([157.55.234.104]:63951 helo=emea01-db3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAB-00083V-6A for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:31 -0400 From: Date: Fri, 24 Jun 2016 10:07:05 +0200 Message-ID: <1466755631-25201-5-git-send-email-marcin.krzeminski@nokia.com> In-Reply-To: <1466755631-25201-1-git-send-email-marcin.krzeminski@nokia.com> References: <1466755631-25201-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 v3 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