From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L9T0u-00045J-7T for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:12 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L9T0t-00044u-GX for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:11 -0500 Received: from [199.232.76.173] (port=39314 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L9T0t-00044o-CA for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:11 -0500 Received: from savannah.gnu.org ([199.232.41.3]:56953 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L9T0t-0006Iy-4H for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:11 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1L9T0s-0001ik-0q for qemu-devel@nongnu.org; Sun, 07 Dec 2008 23:26:10 +0000 Received: from aurel32 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1L9T0r-0001if-Lj for qemu-devel@nongnu.org; Sun, 07 Dec 2008 23:26:09 +0000 MIME-Version: 1.0 Errors-To: aurel32 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Aurelien Jarno Message-Id: Date: Sun, 07 Dec 2008 23:26:09 +0000 Subject: [Qemu-devel] [5942] Parallel port reset Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5942 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5942 Author: aurel32 Date: 2008-12-07 23:26:09 +0000 (Sun, 07 Dec 2008) Log Message: ----------- Parallel port reset Attached patch adds a reset handler to parallel port, so it gets correct register values after a reset. (Herv?\195?\169 Poussineau) Modified Paths: -------------- trunk/hw/parallel.c Modified: trunk/hw/parallel.c =================================================================== --- trunk/hw/parallel.c 2008-12-07 23:00:00 UTC (rev 5941) +++ trunk/hw/parallel.c 2008-12-07 23:26:09 UTC (rev 5942) @@ -418,8 +418,10 @@ return ret; } -static void parallel_reset(ParallelState *s, qemu_irq irq, CharDriverState *chr) +static void parallel_reset(void *opaque) { + ParallelState *s = opaque; + s->datar = ~0; s->dataw = ~0; s->status = PARA_STS_BUSY; @@ -430,9 +432,7 @@ s->control = PARA_CTR_SELECT; s->control |= PARA_CTR_INIT; s->control |= 0xc0; - s->irq = irq; s->irq_pending = 0; - s->chr = chr; s->hw_driver = 0; s->epp_timeout = 0; s->last_read_offset = ~0U; @@ -447,7 +447,10 @@ s = qemu_mallocz(sizeof(ParallelState)); if (!s) return NULL; - parallel_reset(s, irq, chr); + s->irq = irq; + s->chr = chr; + parallel_reset(s); + qemu_register_reset(parallel_reset, s); if (qemu_chr_ioctl(chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) { s->hw_driver = 1; @@ -538,8 +541,11 @@ s = qemu_mallocz(sizeof(ParallelState)); if (!s) return NULL; - parallel_reset(s, irq, chr); + s->irq = irq; + s->chr = chr; s->it_shift = it_shift; + parallel_reset(s); + qemu_register_reset(parallel_reset, s); io_sw = cpu_register_io_memory(0, parallel_mm_read_sw, parallel_mm_write_sw, s); cpu_register_physical_memory(base, 8 << it_shift, io_sw);