From patchwork Mon Oct 26 20:51:41 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Weil X-Patchwork-Id: 36935 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 157F6B7B88 for ; Tue, 27 Oct 2009 07:52:26 +1100 (EST) Received: from localhost ([127.0.0.1]:41177 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N2WYB-0001Kz-SB for incoming@patchwork.ozlabs.org; Mon, 26 Oct 2009 16:52:23 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N2WXf-0001KX-1r for qemu-devel@nongnu.org; Mon, 26 Oct 2009 16:51:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N2WXa-0001IS-Et for qemu-devel@nongnu.org; Mon, 26 Oct 2009 16:51:50 -0400 Received: from [199.232.76.173] (port=59332 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N2WXa-0001IP-9D for qemu-devel@nongnu.org; Mon, 26 Oct 2009 16:51:46 -0400 Received: from moutng.kundenserver.de ([212.227.126.188]:50708) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N2WXZ-0007YA-5I for qemu-devel@nongnu.org; Mon, 26 Oct 2009 16:51:46 -0400 Received: from flocke.weilnetz.de (p54ADED8F.dip.t-dialin.net [84.173.237.143]) by mrelayeu.kundenserver.de (node=mreu1) with ESMTP (Nemesis) id 0M36xf-1MAYht3Ehz-00sSf2; Mon, 26 Oct 2009 21:51:44 +0100 Received: from stefan by flocke.weilnetz.de with local (Exim 4.69) (envelope-from ) id 1N2WXV-0004oc-Ts; Mon, 26 Oct 2009 21:51:41 +0100 From: Stefan Weil To: qemu-devel@nongnu.org Date: Mon, 26 Oct 2009 21:51:41 +0100 Message-Id: <1256590301-18483-1-git-send-email-weil@mail.berlios.de> X-Mailer: git-send-email 1.5.6.5 X-Provags-ID: V01U2FsdGVkX1+PM5Q+pPTOBYcqE8TQKN3diBNEhSqriD2KvoO 8Jt9/GEnzuysOm2jbrulWZVInn/st0ssJipiqSUY/AGaEDekZq 2CrJj0IMu3VJyTew29Sqg0/uczrIpGjYby/lFVSmZEoY+8fmH5 21Q== X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Cc: Subject: [Qemu-devel] [PATCH] serial: Add missing bit X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Serial frames always start with a start bit. This bit was missing in frame size calculation. Signed-off-by: Stefan Weil --- hw/serial.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/serial.c b/hw/serial.c index eb14f11..7552fee 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -231,15 +231,17 @@ static void serial_update_parameters(SerialState *s) if (s->divider == 0) return; + /* Start bit. */ frame_size = 1; if (s->lcr & 0x08) { + /* Parity bit. */ + frame_size++; if (s->lcr & 0x10) parity = 'E'; else parity = 'O'; } else { parity = 'N'; - frame_size = 0; } if (s->lcr & 0x04) stop_bits = 2; @@ -696,12 +698,12 @@ static void serial_reset(void *opaque) s->lcr = 0; s->lsr = UART_LSR_TEMT | UART_LSR_THRE; s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS; - /* Default to 9600 baud, no parity, one stop bit */ + /* Default to 9600 baud, 1 start bit, 8 data bits, 1 stop bit, no parity. */ s->divider = 0x0C; s->mcr = UART_MCR_OUT2; s->scr = 0; s->tsr_retry = 0; - s->char_transmit_time = (get_ticks_per_sec() / 9600) * 9; + s->char_transmit_time = (get_ticks_per_sec() / 9600) * 10; s->poll_msl = 0; fifo_clear(s,RECV_FIFO);