From patchwork Tue Aug 3 21:50:58 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: tlb1144@gmx.net X-Patchwork-Id: 60800 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 B410EB70A6 for ; Wed, 4 Aug 2010 07:51:59 +1000 (EST) Received: from localhost ([127.0.0.1]:54948 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OgPOr-000211-Gq for incoming@patchwork.ozlabs.org; Tue, 03 Aug 2010 17:51:53 -0400 Received: from [140.186.70.92] (port=47377 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OgPO4-0001uv-1D for qemu-devel@nongnu.org; Tue, 03 Aug 2010 17:51:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OgPO2-0003jD-TD for qemu-devel@nongnu.org; Tue, 03 Aug 2010 17:51:03 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:36610 helo=mail.gmx.net) by eggs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1OgPO2-0003j2-FX for qemu-devel@nongnu.org; Tue, 03 Aug 2010 17:51:02 -0400 Received: (qmail 10657 invoked by uid 0); 3 Aug 2010 21:51:00 -0000 Received: from 87.180.2.35 by www136.gmx.net with HTTP; Tue, 03 Aug 2010 23:50:57 +0200 (CEST) Date: Tue, 03 Aug 2010 23:50:58 +0200 From: tlb1144@gmx.net Message-ID: <20100803215058.157270@gmx.net> MIME-Version: 1.0 To: qemu-devel@nongnu.org X-Authenticated: #19058524 X-Flags: 0001 X-Mailer: WWW-Mail 6100 (Global Message Exchange) X-Priority: 3 X-Provags-ID: V01U2FsdGVkX1+S9Q0q1CySHXT9CicLpbdLy2OmBU+TcS6Zn730a9 lQVJyKpPdI+tuXu6Qhsm7CaWL5xznAykPUCA== X-GMX-UID: cLltfRpVbUk7GGr8EGknBgFsZ2hlNwp3 X-FuHaFi: 0.54000000000000004 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Subject: [Qemu-devel] [Patch] Cirrus_vgabios: New mode 1024x1536 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 If "[Patch] Cirrus_vga: More than 1024 lines" for hw/cirrus_vga.c is used, CRTC Mode Control (CR17) bit 2 can be set to double the number of scanlines to 2048. In vgabios-0.6c the 1024x768 modes can simply be transformed into additonal 1024x1536 modes. It is only necessary to set CR17 bit 2. For testing, I added non-standard VESA/video modes 0x1a0..0x1a3/0xa0..0xa3 with 1024x1536 pixels. patch for vgabios-0.6c: diff -r -u a/clext.c b/clext.c --- a/clext.c 2009-01-24 11:02:00.000000000 +0100 +++ b/clext.c 2010-07-31 22:07:31.000000000 +0200 @@ -254,6 +254,52 @@ 0xffff }; +/* 1024x1536x8 */ +unsigned short cseq_1024x1536x8[] = { +0x0300,0x2101,0x0f02,0x0003,0x0e04,0x1107, +0x760b,0x760c,0x760d,0x760e, +0x0412,0x0013,0x2017, +0x341b,0x341c,0x341d,0x341e, +0xffff +}; +unsigned short ccrtc_1024x1536x8[] = { +0x2911,0xa300,0x7f01,0x7f02,0x8603,0x8304,0x9405,0x2406,0xf507, +0x6009,0x000c,0x000d, +0x0310,0xff12,0x8013,0x4014,0xff15,0x2416,0xc717,0xff18, +0x001a,0x221b,0x001d, +0xffff +}; +/* 1024x1536x16 */ +unsigned short cseq_1024x1536x16[] = { +0x0300,0x2101,0x0f02,0x0003,0x0e04,0x1707, +0x760b,0x760c,0x760d,0x760e, +0x0412,0x0013,0x2017, +0x341b,0x341c,0x341d,0x341e, +0xffff +}; +unsigned short ccrtc_1024x1536x16[] = { +0x2911,0xa300,0x7f01,0x7f02,0x8603,0x8304,0x9405,0x2406,0xf507, +0x6009,0x000c,0x000d, +0x0310,0xff12,0x0013,0x4014,0xff15,0x2416,0xc717,0xff18, +0x001a,0x321b,0x001d, +0xffff +}; +/* 1024x768x24 */ +unsigned short cseq_1024x1536x24[] = { +0x0300,0x2101,0x0f02,0x0003,0x0e04,0x1507, +0x760b,0x760c,0x760d,0x760e, +0x0412,0x0013,0x2017, +0x341b,0x341c,0x341d,0x341e, +0xffff +}; +unsigned short ccrtc_1024x1536x24[] = { +0x2911,0xa300,0x7f01,0x7f02,0x8603,0x8304,0x9405,0x2406,0xf507, +0x6009,0x000c,0x000d, +0x0310,0xff12,0x8013,0x4014,0xff15,0x2416,0xc717,0xff18, +0x001a,0x321b,0x001d, +0xffff +}; + cirrus_mode_t cirrus_modes[] = { {0x5f,640,480,8,0x00, @@ -310,6 +356,19 @@ cseq_1600x1200x8,cgraph_svgacolor,ccrtc_1600x1200x8,8, 4,0,0,0,0,0,0,0,0}, + {0xA0,1024,1536,8,0x00, + cseq_1024x1536x8,cgraph_svgacolor,ccrtc_1024x1536x8,8, + 4,0,0,0,0,0,0,0,0}, + {0xA2,1024,1536,16,0xe1, + cseq_1024x1536x16,cgraph_svgacolor,ccrtc_1024x1536x16,16, + 6,5,11,6,5,5,0,0,0}, + {0xA1,1024,1536,15,0xf0, + cseq_1024x1536x16,cgraph_svgacolor,ccrtc_1024x1536x16,16, + 6,5,10,5,5,5,0,1,15}, + {0xA3,1024,1536,24,0xe5, + cseq_1024x1536x24,cgraph_svgacolor,ccrtc_1024x1536x24,24, + 6,8,16,8,8,8,0,0,0}, + {0xfe,0,0,0,0,cseq_vga,cgraph_vga,ccrtc_vga,0, 0xff,0,0,0,0,0,0,0,0}, {0xff,0,0,0,0,0,0,0,0, @@ -357,6 +416,14 @@ 0x119, 0x69, // 1280x1024x16 0x11a, 0x75, +// 1024x1536x8 + 0x1a0, 0xA0, +// 1024x1536x15 + 0x1a1, 0xA1, +// 1024x1536x16 + 0x1a2, 0xA2, +// 1024x1536x24 + 0x1a3, 0xA3, // invalid 0xffff,0xffff }; diff -r -u a/vbetables-gen.c b/vbetables-gen.c --- a/vbetables-gen.c 2009-01-25 16:46:08.000000000 +0100 +++ b/vbetables-gen.c 2010-07-31 22:02:37.000000000 +0200 @@ -76,6 +76,14 @@ { 2560, 1600, 16 , 0x18a}, { 2560, 1600, 24 , 0x18b}, { 2560, 1600, 32 , 0x18c}, + + /* Portrait mode for testing > 1024 lines */ +{ 1024, 1536, 8 , 0x1a0}, +{ 1024, 1536, 15 , 0x1a1}, +{ 1024, 1536, 16 , 0x1a2}, +{ 1024, 1536, 24 , 0x1a3}, +{ 1024, 1536, 32 , 0x1a4}, + { 0, }, };