This list is closed, nobody may subscribe to it.
2004 |
Jan
(53) |
Feb
(78) |
Mar
(34) |
Apr
(26) |
May
(25) |
Jun
(34) |
Jul
(16) |
Aug
(16) |
Sep
(2) |
Oct
(58) |
Nov
(13) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(62) |
Feb
(4) |
Mar
(40) |
Apr
(9) |
May
(13) |
Jun
(26) |
Jul
(32) |
Aug
(24) |
Sep
(18) |
Oct
(18) |
Nov
(14) |
Dec
|
2006 |
Jan
(15) |
Feb
(2) |
Mar
(23) |
Apr
(2) |
May
(2) |
Jun
(13) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2007 |
Jan
(1) |
Feb
(45) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(31) |
Dec
(5) |
2008 |
Jan
(6) |
Feb
(34) |
Mar
(113) |
Apr
(40) |
May
(19) |
Jun
(5) |
Jul
(41) |
Aug
(13) |
Sep
(53) |
Oct
(4) |
Nov
(53) |
Dec
|
2009 |
Jan
(1) |
Feb
(29) |
Mar
(66) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(163) |
Nov
|
Dec
(91) |
From: <he...@us...> - 2004-12-06 13:37:47
|
Update of /cvsroot/gc-linux/htdocs/xml/en In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16239 Modified Files: yagcd.xml Log Message: Added yagcd files to cvs. Index: yagcd.xml =================================================================== RCS file: /cvsroot/gc-linux/htdocs/xml/en/yagcd.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- yagcd.xml 3 Mar 2004 12:25:17 -0000 1.9 +++ yagcd.xml 6 Dec 2004 13:37:38 -0000 1.10 @@ -2,7 +2,7 @@ <?xml-stylesheet type="text/xsl" href="iparticle.xsl"?> <iparticle><info><title>Yet Another Gamecube Documentation</title></info> -<small><b>last modified: Sat, 28 Feb 2004 14:43:36 </b></small><br /><br />for your convinience this document is available for offline-viewing in the following formats:<br /> +<small><b>last modified: Mon, 13 Sep 2004 06:35:57 </b></small><br /><br />for your convinience this document is available for offline-viewing in the following formats:<br /> <br /><li /><a href="../../down/yet_another_gamecube_doc.pdf.tar.gz">pdf</a> (primary document, recommended for printing)<br /> @@ -15,6 +15,13 @@ <br />and last not least the online version is <li /><a href="yagcd/index.html">here</a><br /> +<br />for the curious there is now a +<a href="../../down/yagcd_changelog.txt">changelog</a> -<hr /></iparticle> + and also a +<a href="../../down/yagcd_missing.txt">list of things that are still missing</a> + + that you can check if you want to help to make this thing more complete. + +</iparticle> |
From: <he...@us...> - 2004-12-06 13:35:13
|
Update of /cvsroot/gc-linux/htdocs/xml/en/yagcd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15856/yagcd Log Message: Directory /cvsroot/gc-linux/htdocs/xml/en/yagcd added to the repository |
Update of /cvsroot/gc-linux/htdocs/pic In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13825 Added Files: boot1.jpg boot2.jpg boot3.jpg gx_overview.png hellogamecube.jpg irc.jpg kde.fbdump kde.jpg kde_fixed.jpg marilyn.jpg prealpha.gif small-boot1.jpg small-boot2.jpg small-boot3.jpg small-prealpha.gif small-website.jpg website.jpg x-window.jpg yagcd_logo.png Log Message: Added missing pictures. --- NEW FILE: boot1.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: boot2.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: boot3.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: gx_overview.png --- (This appears to be a binary file; contents omitted.) --- NEW FILE: hellogamecube.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: irc.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: kde.fbdump --- (This appears to be a binary file; contents omitted.) --- NEW FILE: kde.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: kde_fixed.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: marilyn.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: prealpha.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: small-boot1.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: small-boot2.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: small-boot3.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: small-prealpha.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: small-website.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: website.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: x-window.jpg --- (This appears to be a binary file; contents omitted.) --- NEW FILE: yagcd_logo.png --- (This appears to be a binary file; contents omitted.) |
From: <he...@us...> - 2004-12-06 13:20:08
|
Update of /cvsroot/gc-linux/htdocs/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11934 Modified Files: news.php Log Message: Modified code to not depend on external php_libxslt.so. (This fixes the web site after the move to the new web servers) Indentation changes. Index: news.php =================================================================== RCS file: /cvsroot/gc-linux/htdocs/include/news.php,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- news.php 23 Jan 2004 11:50:39 -0000 1.1.1.1 +++ news.php 6 Dec 2004 13:20:00 -0000 1.2 @@ -1,23 +1,20 @@ <? -dl("../../../../../home/groups/g/gc/gc-linux/php/php_libxslt.so"); -if (file_exists("./xml/{$lang}/news.xml")) - { - $xml = file_get_contents("./xml/{$lang}/news.xml"); - } - else - { - $xml = file_get_contents("./xml/en/news.xml"); - } - -$xsl = file_get_contents('./xml/en/news.xsl'); -print libxslt_transform($xml, $xsl); +// 20041206 Albert Herranz -function file_get_contents($filename) { - $fd = fopen("$filename", "rb"); - $content = fread($fd, filesize($filename)); - fclose($fd); - return $content; +if (file_exists("./xml/{$lang}/news.xml")) { + $xml_file = "./xml/{$lang}/news.xml"; +} else { + $xml_file = "./xml/en/news.xml"; } + +$xsl_file = './xml/en/news.xsl'; + +$xml = domxml_open_file($xml_file); +$xsl = domxml_xslt_stylesheet_file($xsl_file); + +$result = $xsl->process($xml); +print $result->dump_mem(); + ?> |
From: <he...@us...> - 2004-12-06 13:16:52
|
Update of /cvsroot/gc-linux/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11204 Modified Files: news_archive.php Log Message: Modified code to not depend on external php_libxslt.so. (This fixes the web site after the move to the new web servers) Indentation changes. Index: news_archive.php =================================================================== RCS file: /cvsroot/gc-linux/htdocs/news_archive.php,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- news_archive.php 23 Jan 2004 11:50:35 -0000 1.1.1.1 +++ news_archive.php 6 Dec 2004 13:16:44 -0000 1.2 @@ -1,8 +1,7 @@ <? -if (!isset($lang)) - { - $lang = "en"; - } +if (!isset($lang)) { + $lang = "en"; +} ?> <html> <head> @@ -24,25 +23,20 @@ <h1>News Archive</h1> <p> <? -dl("../../../../../home/groups/g/gc/gc-linux/php/php_libxslt.so"); -if (file_exists("./xml/{$lang}/news.xml")) - { - $xml = file_get_contents("./xml/{$lang}/news.xml"); - } - else - { - $xml = file_get_contents("./xml/en/news.xml"); - } +if (file_exists("./xml/{$lang}/news.xml")) { + $xml_file = "./xml/{$lang}/news.xml"; +} else { + $xml_file = "./xml/en/news.xml"; +} -$xsl = file_get_contents('./xml/en/news_archive.xsl'); -print libxslt_transform($xml, $xsl); +$xsl_file = './xml/en/news_archive.xsl'; + +$xml = domxml_open_file($xml_file); +$xsl = domxml_xslt_stylesheet_file($xsl_file); + +$result = $xsl->process($xml); +print $result->dump_mem(); -function file_get_contents($filename) { - $fd = fopen("$filename", "rb"); - $content = fread($fd, filesize($filename)); - fclose($fd); - return $content; -} ?> </p> </td> |
From: <he...@us...> - 2004-12-06 13:12:58
|
Update of /cvsroot/gc-linux/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9869 Modified Files: docs Log Message: Modified code to not depend on external php_libxslt.so. (This fixes the web site after the move to the new web servers) Indentation changes. Index: docs =================================================================== RCS file: /cvsroot/gc-linux/htdocs/docs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- docs 3 Mar 2004 12:25:16 -0000 1.2 +++ docs 6 Dec 2004 13:12:47 -0000 1.3 @@ -1,110 +1,93 @@ <? -if(!preg_match("/(\.[^\/]*?|\/)(\?.*)?$/", $_SERVER["REQUEST_URI"])) -{ - $new_uri = $_SERVER["REQUEST_URI"]; - $new_uri = preg_replace("/^([^\?]*?)(\?.*)?$/", - "\\1/\\2", - $new_uri); - header("Status: 301 Moved"); - header("Location: $new_uri"); - exit; +// 20041206 Albert Herranz + +if(!preg_match("/(\.[^\/]*?|\/)(\?.*)?$/", $_SERVER["REQUEST_URI"])) { + $new_uri = $_SERVER["REQUEST_URI"]; + $new_uri = preg_replace("/^([^\?]*?)(\?.*)?$/", + "\\1/\\2", + $new_uri); + header("Status: 301 Moved"); + header("Location: $new_uri"); + exit; } $lang_list = array ("en","de","es","fi","fr","it","nl","pl","se"); $doc_lang = array(); -if (!isset($lang)) - { - $lang = "en"; - } +if (!isset($lang)) { + $lang = "en"; +} $script_url = preg_replace("/^([^\?]*?)(\?.*)?$/", - "\\1", - $_SERVER["REQUEST_URI"]); + "\\1", + $_SERVER["REQUEST_URI"]); $script_name = $_SERVER["SCRIPT_NAME"]; - $pathinfo = preg_replace("'$script_name'", "", "$script_url",1); - $path = preg_split("/\//", "".$pathinfo); - $pathlen = count($path)-1; if (strlen($path[$pathlen])<2) { $path[$pathlen] ="index.xml"; } - -if ($pathlen > 0) -{ - if (strpos($path[$pathlen],"-")===false) - { +if ($pathlen > 0) { + if (strpos($path[$pathlen],"-")===false) { + $language = $lang; + $filename = $path[$pathlen]; + } else { + $start = strpos($path[$pathlen],"-")+1; + $language = substr($path[$pathlen],0,2); + $filename = substr($path[$pathlen],$start); + } +} else { + $filename = "index.xml"; $language = $lang; - $filename = $path[$pathlen]; - } - else - { - $start = strpos($path[$pathlen],"-")+1; - $language = substr($path[$pathlen],0,2); - $filename = substr($path[$pathlen],$start); - } - -} -else -{ - $filename = "index.xml"; - $language = $lang; } -for ($index=1;$index<$pathlen;$index++) -{ +for ($index=1;$index<$pathlen;$index++) { $filepath .= "/".$path[$index]; } $doc = $filename; $filename = ereg_replace(".html",".xml",$filename); + //echo "[language: $language]"; //echo "[filename: $filename]"; //echo "[path: $filepath]"; $root = "./xml"; -for ($index=0;$index<count($lang_list);$index++) - { - if (file_exists($root."/".$lang_list[$index].$filepath."/".$filename)) - { - array_push($doc_lang,$lang_list[$index]); - } - } +for ($index=0;$index<count($lang_list);$index++) { + if (file_exists($root."/".$lang_list[$index].$filepath."/".$filename)) { + array_push($doc_lang,$lang_list[$index]); + } +} reset($path); reset($doc_lang); $file .= $root; -if (!in_array($language,$doc_lang) && (count($doc_lang)!=0)) - { - $file .= "/en".$filepath."/".$filename; - } -else - { - $file .= "/".$language.$filepath."/".$filename; - } +if (!in_array($language,$doc_lang) && (count($doc_lang)!=0)) { + $file .= "/en".$filepath."/".$filename; +} else { + $file .= "/".$language.$filepath."/".$filename; +} //echo "[file to load: $file]"; -if (count($doc_lang)==0) { header("HTTP/1.0 404 Not Found"); exit(); } +if (count($doc_lang)==0) { + header("HTTP/1.0 404 Not Found"); + exit(); +} reset($path); -//dl("php_libxslt.so"); -dl("../../../../../home/groups/g/gc/gc-linux/php/php_libxslt.so"); -$xml = file_get_contents($file); -if (strstr($doc,"faq.html")===false) - { - $xsl = file_get_contents('./xml/en/iparticle.xsl'); - $title = get_title($xml); - } -else - { - $xsl = file_get_contents('./xml/en/faq.xsl'); - $title = "FAQ"; - } +$xml_file = $file; +$xml = file_get_contents($xml_file); +if (strstr($doc,"faq.html")===false) { + $xsl_file = './xml/en/iparticle.xsl'; + $title = get_title($xml); +} else { + $xsl_file = './xml/en/faq.xsl'; + $title = "FAQ"; +} ?> <html> @@ -148,14 +131,11 @@ exit(); } -print libxslt_transform($xml, $xsl); - -function file_get_contents($filename) { - $fd = fopen("$filename", "rb"); - $content = fread($fd, filesize($filename)); - fclose($fd); - return $content; -} +$xml = domxml_open_file($xml_file); +$xsl = domxml_xslt_stylesheet_file($xsl_file); + +$result = $xsl->process($xml); +print $result->dump_mem(); function get_title($str) { |
From: <he...@us...> - 2004-12-06 13:09:57
|
Update of /cvsroot/gc-linux/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8928 Modified Files: com2org.php Log Message: Synced cvs with reality. Index: com2org.php =================================================================== RCS file: /cvsroot/gc-linux/htdocs/com2org.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- com2org.php 1 Feb 2004 22:13:20 -0000 1.1 +++ com2org.php 6 Dec 2004 13:09:36 -0000 1.2 @@ -1,4 +1,4 @@ -<?php +<?php $host = $_SERVER['HTTP_HOST']; if (strcasecmp($host, "www.gc-linux.org") != 0) { @@ -6,4 +6,3 @@ exit; } ?> - |
From: <he...@us...> - 2004-12-03 21:33:53
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2391/drivers/input Modified Files: gcn-si.c Log Message: Added HACK_FORCE_KEYBOARD_PORT hack. Enabling it allows one to specify a port that will be considered a keyboard port when something is detected on it without being correctly identified. Use the "force_keyboard_port=n" where n=1..4 as a kernel command-line parameter when the driver is compiled built-in. Use it as a module parameter when the driver is compiled as a module. Used the driver name to associate resources to. Fixed io accesses to use the __iomem anotations, like needed in 2.6.10. Fixed a misusage of the |= operator. Removed broken uncompilable debugging output. Changed output to show ports from 1 to 4 instead of 0 to 3. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/gcn-si.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gcn-si.c 16 Nov 2004 21:37:54 -0000 1.6 +++ gcn-si.c 3 Dec 2004 21:33:45 -0000 1.7 @@ -30,6 +30,14 @@ # define DPRINTK(fmt, args...) #endif +/* + * Defining HACK_FORCE_KEYBOARD_PORT allows one to specify a port that + * will be identified as a keyboard port in case the port gets incorrectly + * identified. + */ +#define HACK_FORCE_KEYBOARD_PORT + + #define DRV_MODULE_NAME "gcn-si" #define DRV_DESCRIPTION "Nintendo GameCube Serial Interface driver" #define DRV_AUTHOR "Steven Looman <st...@kr...>" @@ -42,21 +50,23 @@ #define si_printk(level, format, arg...) \ printk(level PFX format , ## arg) + /* * This keymap is for a datel adapter + normal US keyboard. */ #include "gcn-keymap.h" + #define REFRESH_TIME HZ/100 -#define SICOUTBUF(x) (0xcc006400 + x * 12) -#define SICINBUFH(x) (0xcc006404 + x * 12) -#define SICINBUFL(x) (0xcc006408 + x * 12) +#define SICOUTBUF(x) ((void __iomem *)(0xcc006400 + (x)*12)) +#define SICINBUFH(x) ((void __iomem *)(0xcc006404 + (x)*12)) +#define SICINBUFL(x) ((void __iomem *)(0xcc006408 + (x)*12)) -#define SIPOLL 0xcc006430 -#define SICOMCSR 0xcc006434 -#define SISR 0xcc006438 -#define SIEXILK 0xcc00643c +#define SIPOLL ((void __iomem *)0xcc006430) +#define SICOMCSR ((void __iomem *)0xcc006434) +#define SISR ((void __iomem *)0xcc006438) +#define SIEXILK ((void __iomem *)0xcc00643c) #define ID_PAD 0x0900 #define ID_KEYBOARD 0x0820 @@ -76,8 +86,9 @@ #define PAD_RIGHT (1 << 17) #define PAD_LEFT (1 << 16) + static struct resource gcn_si_resources = { - "GCN SI", + DRV_MODULE_NAME, 0xcc006400, 0xcc006500, IORESOURCE_MEM | IORESOURCE_BUSY @@ -110,6 +121,28 @@ /* char phys[32]; */ } port[4]; + +#ifdef HACK_FORCE_KEYBOARD_PORT + +static int gcn_si_force_keyboard_port = -1; + +#ifdef MODULE +module_param_named(force_keyboard_port, gcn_si_force_keyboard_port, int, 0644); +MODULE_PARM_DESC(force_keyboard_port, "port n becomes a keyboard port if" + " automatic identification fails"); +#else +static int __init gcn_si_force_keyboard_port_setup(char *line) +{ + if (sscanf(line, "%d", &gcn_si_force_keyboard_port) != 1) { + gcn_si_force_keyboard_port = -1; + } + return 1; +} +__setup("force_keyboard_port=", gcn_si_force_keyboard_port_setup); +#endif /* MODULE */ + +#endif /* HACK_FORCE_KEYBOARD_PORT */ + /** * */ @@ -135,20 +168,20 @@ writel(0, SICOMCSR); writel(0, SISR); - writel(0, 0xcc006480); - writel(0, 0xcc006484); - writel(0, 0xcc006488); - writel(0, 0xcc00648c); + writel(0, (void __iomem *)0xcc006480); + writel(0, (void __iomem *)0xcc006484); + writel(0, (void __iomem *)0xcc006488); + writel(0, (void __iomem *)0xcc00648c); - writel(0, 0xcc006490); - writel(0, 0xcc006494); - writel(0, 0xcc006498); - writel(0, 0xcc00649c); + writel(0, (void __iomem *)0xcc006490); + writel(0, (void __iomem *)0xcc006494); + writel(0, (void __iomem *)0xcc006498); + writel(0, (void __iomem *)0xcc00649c); - writel(0, 0xcc0064a0); - writel(0, 0xcc0064a4); - writel(0, 0xcc0064a8); - writel(0, 0xcc0064ac); + writel(0, (void __iomem *)0xcc0064a0); + writel(0, (void __iomem *)0xcc0064a4); + writel(0, (void __iomem *)0xcc0064a8); + writel(0, (void __iomem *)0xcc0064ac); } /** @@ -162,7 +195,7 @@ transfer_done = readl(SICOMCSR) & (1 << 31); } while (!transfer_done); - writel(readl(SICOMCSR) |= (1 << 31), SICOMCSR); /* ack IRQ */ + writel(readl(SICOMCSR) | (1 << 31), SICOMCSR); /* ack IRQ */ } /** @@ -179,7 +212,7 @@ gcn_si_wait_transfer_done(); - return readl(0xcc006480); + return readl((void __iomem *)0xcc006480); } /** @@ -398,15 +431,25 @@ strcpy(port[i].name, "Keyboard"); } else { port[i].id = CTL_UNKNOWN; - if (port[i].si_id) + if (port[i].si_id) { sprintf(port[i].name, "Unknown (%x)", port[i].si_id); - else +#ifdef HACK_FORCE_KEYBOARD_PORT + if (i+1 == gcn_si_force_keyboard_port) { + si_printk(KERN_WARNING, + "port %d forced to" + " keyboard mode\n", i+1); + port[i].si_id = ID_KEYBOARD; + port[i].id = CTL_KEYBOARD; + strcpy(port[i].name, "Keyboard" + " (forced)"); + } +#endif /* HACK_FORCE_KEYBOARD_PORT */ + } else { strcpy(port[i].name, "Not Present"); + } } - DPRINTK("port[%d] = 0x%x\n", i, id); - init_input_dev(&port[i].idev); port[i].idev.open = gcn_si_open; @@ -502,7 +545,7 @@ /* this is here to avoid compiler warnings */ break; } - si_printk(KERN_INFO, "Port %d: %s\n", i, port[i].name); + si_printk(KERN_INFO, "Port %d: %s\n", i+1, port[i].name); } gcn_si_set_polling(); |
From: <pal...@us...> - 2004-12-02 19:56:54
|
Update of /cvsroot/gc-linux/libgx/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16316/src Modified Files: gu_asm.S gx.c Log Message: Fixed problem in ps_guMtxTrans and changed efbHeight to 480 for PAL users Index: gu_asm.S =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gu_asm.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- gu_asm.S 22 Oct 2004 20:13:53 -0000 1.1.1.1 +++ gu_asm.S 2 Dec 2004 19:56:37 -0000 1.2 @@ -312,13 +312,14 @@ lfs f5,4(r9) stfs f1,12(r3) stfs f2,28(r3) + stfs f3,44(r3) psqst f4,4(r3),0,0 psqst f4,32(r3),0,0 + stfs f5,0(r3) stfs f5,20(r3) - stfs f4,24(r3) stfs f5,40(r3) - stfs f3,44(r3) - stfs f5,0(r3) + stfs f4,16(r3) + stfs f4,24(r3) blr _GLOBAL(ps_guMtxTransApply) Index: gx.c =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gx.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gx.c 1 Nov 2004 02:58:24 -0000 1.5 +++ gx.c 2 Dec 2004 19:56:37 -0000 1.6 @@ -687,7 +687,7 @@ { /* pal 50 */ pInit->vType = PAL50; - pInit->efbHeight = 528; + pInit->efbHeight = 480; pInit->xfbHeight = 576; } else @@ -2240,6 +2240,7 @@ break; case GX_TF_RGB565: case GX_TF_RGB5A3: + case GX_TF_IA8: res = 2; break; default: |
From: <pal...@us...> - 2004-12-02 15:56:05
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19178 Added Files: Makefile Log Message: Initial checkin of GQR driver --- NEW FILE: Makefile --- # # Makefile for misc devices that really don't fit anywhere else. # obj- := misc.o # Dummy rule to force built-in.o to be made obj-$(CONFIG_IBM_ASM) += ibmasm/ obj-$(CONFIG_GCN_GQR) += gcn-gqr.o |
From: <pal...@us...> - 2004-12-02 15:52:50
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18413 Added Files: Kconfig gcn-gqr.c Log Message: Initial checkin of the GQR driver --- NEW FILE: Kconfig --- # # Misc strange devices # menu "Misc devices" config GCN_GQR tristate "Device driver for Gamecube Gekko GQR" depends on GAMECUBE default m ---help--- This option enables device driver support for the Gekko processor's Graphic Quantization Registers. These registers are used with the psql and psqst instrutions. The registers will appear in /proc/sys/gqr. config IBM_ASM tristate "Device driver for IBM RSA service processor" depends on X86 && EXPERIMENTAL default n ---help--- This option enables device driver support for in-band access to the IBM RSA (Condor) service processor in eServer xSeries systems. The ibmasm device driver allows user space application to access ASM (Advanced Systems Management) functions on the service processor. The driver is meant to be used in conjunction with a user space API. The ibmasm driver also enables the OS to use the UART on the service processor board as a regular serial port. To make use of this feature serial driver support (CONFIG_SERIAL_8250) must be enabled. WARNING: This software may not be supported or function correctly on your IBM server. Please consult the IBM ServerProven website http://www.pc.ibm/ww/eserver/xseries/serverproven for information on the specific driver level and support statement for your IBM server. If unsure, say N. endmenu --- NEW FILE: gcn-gqr.c --- /* * drivers/misc/gcn-gqr.c * * Nintendo GameCube GQR driver * Copyright (C) 2004 Todd Jeffreys <to...@vo...> * Copyright (C) 2004 The GameCube Linux Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> #include <linux/fs.h> #include <linux/ctype.h> #include <linux/sysctl.h> #include <linux/types.h> #include <asm/uaccess.h> static u32 gqr_values[8]; static struct ctl_table_header *gqr_table_header = NULL; enum { CTL_GQRDIR = 1, CTL_GQR0, CTL_GQR1, CTL_GQR2, CTL_GQR3, CTL_GQR4, CTL_GQR5, CTL_GQR6, CTL_GQR7, }; #define SPR_GQR0 912 #define SPR_GQR1 913 #define SPR_GQR2 914 #define SPR_GQR3 915 #define SPR_GQR4 916 #define SPR_GQR5 917 #define SPR_GQR6 918 #define SPR_GQR7 919 #define MFSPR_CASE(i) case CTL_GQR##i: *((u32*)table->data) = mfspr(SPR_GQR##i) #define MTSPR_CASE(i) case CTL_GQR##i: mtspr(SPR_GQR##i,*((u32*)table->data)) static int proc_dogqr(ctl_table *table,int write,struct file *file, void __user *buffer,size_t *lenp,loff_t *ppos) { int r; if (!write) { /* if they are reading, update the variable */ switch (table->ctl_name) { MFSPR_CASE(0); break; MFSPR_CASE(1); break; MFSPR_CASE(2); break; MFSPR_CASE(3); break; MFSPR_CASE(4); break; MFSPR_CASE(5); break; MFSPR_CASE(6); break; MFSPR_CASE(7); break; default: return -EFAULT; /* shouldn't happen */ } } r = proc_dointvec(table,write,file,buffer,lenp,ppos); if ((r == 0) && write) { /* if they are writing, update the reg */ switch (table->ctl_name) { MTSPR_CASE(0); break; MTSPR_CASE(1); break; MTSPR_CASE(2); break; MTSPR_CASE(3); break; MTSPR_CASE(4); break; MTSPR_CASE(5); break; MTSPR_CASE(6); break; MTSPR_CASE(7); break; default: return -EFAULT; /* shouldn't happen */ } } return r; } #define DECLARE_GQR(i) { \ .ctl_name = CTL_GQR##i, \ .procname = "gqr" #i, \ .data = gqr_values + i, \ .maxlen = sizeof(int), \ .mode = 0644, \ .proc_handler = &proc_dogqr \ } static ctl_table gqr_members[] = { DECLARE_GQR(0), DECLARE_GQR(1), DECLARE_GQR(2), DECLARE_GQR(3), DECLARE_GQR(4), DECLARE_GQR(5), DECLARE_GQR(6), DECLARE_GQR(7), { .ctl_name = 0 } }; static ctl_table gqr_table[] = { { .ctl_name = CTL_GQRDIR, .procname = "gqr", .mode = 0555, .child = gqr_members }, { .ctl_name = 0 } }; int __init gcngqr_init(void) { if (!(gqr_table_header = register_sysctl_table(gqr_table,1))) { printk(KERN_ERR "Unable to register GQR sysctl table\n"); return -ENOMEM; } return 0; } void __exit gcngqr_exit(void) { unregister_sysctl_table(gqr_table_header); } MODULE_LICENSE("GPL"); MODULE_AUTHOR("Todd Jeffreys <to...@vo...>"); module_init(gcngqr_init); module_exit(gcngqr_exit); |
From: <pal...@us...> - 2004-12-02 15:52:16
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18294/misc Log Message: Directory /cvsroot/gc-linux/linux/drivers/misc added to the repository |
From: <he...@us...> - 2004-11-23 21:00:08
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25322 Modified Files: gcn-bba.c Log Message: Reordered copyright notice according to last agreement. Use "GPL" not GPL for the module license. Fixed a subtle (non-affecting) bug in bba_start_xmit thanks to tmbinc. Improved 16 (and 12) bit transfers from/to bba through exi. Documented usage of EXI channels in the BroadBand Adapter. Documented observed behaviour when playing with registers 5b, 5c and 5e. Index: gcn-bba.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/gcn-bba.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gcn-bba.c 20 Oct 2004 00:01:17 -0000 1.1 +++ gcn-bba.c 23 Nov 2004 20:59:52 -0000 1.2 @@ -2,8 +2,8 @@ * drivers/net/gcn-bba.c * * Nintendo GameCube Broadband Adapter driver - * Copyright (C) 2004 Albert Herranz * Copyright (C) 2004 The GameCube Linux Team + * Copyright (C) 2004 Albert Herranz * * Based on previous work by Stefan Esser, Franz Lehner, Costis and tmbinc. * @@ -165,9 +165,10 @@ */ #define BBA_EXI_ID 0x04020200 -#define BBA_EXI_CHANNEL 0 -#define BBA_EXI_DEVICE 2 -#define BBA_EXI_FREQ 5 +#define BBA_EXI_CHANNEL_IRQ 2 /* INT line uses EXI2INTB */ +#define BBA_EXI_CHANNEL 0 /* rest of lines use EXI0xxx */ +#define BBA_EXI_DEVICE 2 /* chip select, EXI0CSB2 */ +#define BBA_EXI_FREQ 5 /* 32MHz */ #define BBA_CMD_IR_MASKALL 0x00 #define BBA_CMD_IR_MASKNONE 0xf8 @@ -244,9 +245,21 @@ bba_outs(reg, &val, sizeof(val)); } -#define bba_in12(reg) ((bba_in8(reg)&0xff)|((bba_in8((reg)+1)&0x0f)<<8)) -#define bba_out12(reg,val) do { bba_out8((reg),(val)&0xff); \ - bba_out8((reg)+1,((val)&0x0f00)>>8); } while(0) +static inline u16 bba_in16(int reg) +{ + u16 val; + bba_ins(reg, &val, sizeof(val)); + return le16_to_cpup(&val); +} + +static inline void bba_out16(int reg, u16 val) +{ + cpu_to_le16s(&val); + bba_outs(reg, &val, sizeof(val)); +} + +#define bba_in12(reg) (bba_in16(reg) & 0x0fff) +#define bba_out12(reg,val) do { bba_out16((reg),(val)&0x0fff); } while(0) static inline void bba_ins_nosel(int reg, void *val, int len) { @@ -271,6 +284,11 @@ exi_write(BBA_EXI_CHANNEL, val, len); } +static inline void bba_outs_more(void *val, int len) +{ + exi_write(BBA_EXI_CHANNEL, val, len); +} + static void bba_outs(int reg, void *val, int len) { bba_select(); @@ -289,12 +307,12 @@ char bba_driver_name[] = DRV_MODULE_NAME; char bba_driver_string[] = DRV_DESCRIPTION; -char bba_driver_version[] = "0.2-isobel"; +char bba_driver_version[] = "0.3-isobel"; char bba_copyright[] = "Copyright (C) 2004 " DRV_AUTHOR; MODULE_AUTHOR(DRV_AUTHOR); MODULE_DESCRIPTION(DRV_DESCRIPTION); -MODULE_LICENSE(GPL); +MODULE_LICENSE("GPL"); #define PFX DRV_MODULE_NAME ": " @@ -370,10 +388,9 @@ unsigned long flags; int ret; - /* XXX seems that interrupts come from EXI Channel 2, but driver - * XXX operation is accomplished through EXI Channel 0 ... - */ - ret = exi_register_event(2, EXI_EVENT_IRQ, bba_event_handler, dev); + /* according to patents, INTs will be triggered on EXI channel 2 */ + ret = exi_register_event(BBA_EXI_CHANNEL_IRQ , EXI_EVENT_IRQ, + bba_event_handler, dev); if (ret < 0) { bba_printk(KERN_ERR, "unable to register EXI event %d\n", EXI_EVENT_IRQ); @@ -461,7 +478,7 @@ u8 pad[ETH_ZLEN]; int pad_len = ETH_ZLEN - skb->len; memset(pad, 0, pad_len); - bba_outs_nosel(BBA_WRTXFIFOD, pad, pad_len); + bba_outs_more(pad, pad_len); } bba_deselect(); @@ -770,11 +787,17 @@ bba_cmd_outs(0x04, priv->__0x04_init, 2); bba_cmd_out8(0x05, priv->__0x05_init); + /* + * These initializations seem to limit the final port speed to 10Mbps + * half duplex. Bypassing them, allows one to set other port speeds. + * But, remember that the bba spi-like bus clock operates at 32MHz. + * ---Albert Herranz + */ + /* unknown, mx registers 0x5b, 0x5c, 0x5e */ bba_out8(0x5b, bba_in8(0x5b) & ~(1 << 7)); - bba_out8(0x5e, 1); + bba_out8(0x5e, 1); /* without this the BBA goes at half the speed */ bba_out8(0x5c, bba_in8(0x5c) | 4); - udelay(1000); /* accept broadcast, assert int for every two packets received */ |
From: <aot...@us...> - 2004-11-19 01:11:10
|
Update of /cvsroot/gc-linux/linux/arch/ppc/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5582/arch/ppc/kernel Modified Files: cputable.c Log Message: Remove "Gekko" moniker and stick with "750CXe". Should make luserspace that parses /proc/cpuinfo happier (eg. dnetc) Index: cputable.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/kernel/cputable.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- cputable.c 19 Oct 2004 09:46:08 -0000 1.4 +++ cputable.c 19 Nov 2004 01:10:59 -0000 1.5 @@ -174,8 +174,8 @@ 32, 32, __setup_cpu_750cx }, - { /* 750CXe (83214) */ - 0xffffffff, 0x00083214, "750CXe (Gekko)", + { /* 750CXe "Gekko" (83214) */ + 0xffffffff, 0x00083214, "750CXe", CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU | CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP, |
From: <he...@us...> - 2004-11-16 22:42:42
|
Update of /cvsroot/gc-linux/htdocs/xml/en In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23924 Modified Files: news.xml Log Message: 16 Nov 2004, Latest kernel build, now targetted for nbd-root too Index: news.xml =================================================================== RCS file: /cvsroot/gc-linux/htdocs/xml/en/news.xml,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- news.xml 31 Oct 2004 03:15:49 -0000 1.26 +++ news.xml 16 Nov 2004 22:42:31 -0000 1.27 @@ -2,6 +2,11 @@ <?xml-stylesheet href="news.xsl" type="text/xsl"?> <news> <item> + <date>16 November 2004</date> + <title>Latest kernel build, now targetted for nbd-root too</title> + <text>As the recently released nbd-root concept seems to make it easy for users to try gc-linux (specially Windows users), from now on the <a href="docs/download.html">Latest Kernel Build</a> for nbd-root will be available too on the download page.</text> + </item> + <item> <date>30 October 2004</date> <title>KDE run on a GameCube</title> <text>Diffuse/Skaida, in a completely geek driven act, started KDE on his GameCube. Of course, it was not useable and had crappy colors. But he has finally been the first geek in having a GameKube. You can see <a href="pic/kde.jpg">here</a> how his desktop looked like, and <a href="pic/kde_fixed.jpg">here</a> how would have looked with right colors. His original framebuffer dump (dd if=/dev/fb0 of=./kde.fbdump) is <a href="pic/kde.fbdump">here</a> in case the Guiness Book people need it.</text> |
From: <he...@us...> - 2004-11-16 22:42:01
|
Update of /cvsroot/gc-linux/htdocs/xml/en In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23739 Modified Files: download.xml Log Message: Now the Latest Kernel Build includes both nfs-root and nbd-root images. Index: download.xml =================================================================== RCS file: /cvsroot/gc-linux/htdocs/xml/en/download.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- download.xml 30 Sep 2004 18:42:19 -0000 1.9 +++ download.xml 16 Nov 2004 22:41:52 -0000 1.10 @@ -15,8 +15,11 @@ <h2>Latest Kernel Build</h2> - <p>This build always has the latest features, but might not work reliably. (Requires a NFS-served <a href="http://www.tldp.org/HOWTO/NFS-Root.html">root</a> filesystem, like vaguely described <a href="../down/old/zImage-nfs.isobel.txt">here</a>).</p> - <p><a href="../down/zImage.dol">zImage.dol</a> (~1 MB)</p> + <p>This build always has the latest features, but might not work reliably. You may choose between two different kernel images.</p> + + <p>The <a href="../down/isobel/zImage.nfs.dol">zImage.nfs.dol (~1 MB)</a> requires a NFS-served <a href="http://www.tldp.org/HOWTO/NFS-Root.html">root</a> filesystem, like vaguely described <a href="../down/old/zImage-nfs.isobel.txt">here</a>. If you are on Linux, and have already played with NFS, try this image.</p> + + <p>The <a href="../down/isobel/zImage.nbdc.dol">zImage.nbdc.dol (~1.7 MB)</a> requires a nbd-root, like described <a href="../down/isobel/nbd-root/readme.txt">here</a>. If your PC runs Windows, or you are new to Linux, use this image.</p> <h2>GameCube Linux Alpha</h2> |
From: <he...@us...> - 2004-11-16 21:38:04
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8234 Modified Files: gcn-si.c Log Message: Fix retrieval of analog joystick y position. (It was broken but didn't show up until a Thrustmaster joystick reporting values in range 0x00-0xff was used) Use same coding style for retrieval of x position. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/gcn-si.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gcn-si.c 15 Nov 2004 04:11:40 -0000 1.5 +++ gcn-si.c 16 Nov 2004 21:37:54 -0000 1.6 @@ -256,9 +256,9 @@ /* axis */ /* a stick */ input_report_abs(&port[portno].idev, ABS_X, - (raw[0] >> 8) & 0xFF); + raw[0] >> 8 & 0xFF); input_report_abs(&port[portno].idev, ABS_Y, - -(raw[0] >> 0) & 0xFF); + 0xFF - (raw[0] >> 0 & 0xFF)); /* b pad */ if (raw[0] & PAD_RIGHT) |
From: <pal...@us...> - 2004-11-15 04:11:52
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24232/drivers/input Modified Files: gcn-si.c Log Message: Moved the order of setting the idev.name variable so that it is set before the call to input_register_device. Added a default handler in one of the switch statements to remove a compiler warning. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/gcn-si.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gcn-si.c 15 Nov 2004 01:19:59 -0000 1.4 +++ gcn-si.c 15 Nov 2004 04:11:40 -0000 1.5 @@ -412,7 +412,8 @@ port[i].idev.open = gcn_si_open; port[i].idev.close = gcn_si_close; port[i].idev.private = (unsigned int *)i; - + port[i].idev.name = port[i].name; + switch (port[i].id) { case CTL_PAD: set_bit(EV_KEY, port[i].idev.evbit); @@ -497,8 +498,10 @@ input_register_device(&port[i].idev); break; + default: + /* this is here to avoid compiler warnings */ + break; } - port[i].idev.name = port[i].name; si_printk(KERN_INFO, "Port %d: %s\n", i, port[i].name); } |
From: <he...@us...> - 2004-11-15 01:20:23
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22455 Modified Files: gcn-si.c Log Message: (Just cosmetic changes). Whitespace damage. Move all port.name building to the same place. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/gcn-si.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gcn-si.c 14 Nov 2004 18:07:20 -0000 1.3 +++ gcn-si.c 15 Nov 2004 01:19:59 -0000 1.4 @@ -2,8 +2,8 @@ * drivers/input/gcn-si.c * * Nintendo GameCube Serial Interface driver - * Copyright (C) 2004 Steven Looman * Copyright (C) 2004 The GameCube Linux Team + * Copyright (C) 2004 Steven Looman * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -309,18 +309,16 @@ if (key[i]) input_report_key(&port[portno].idev, gamecube_keymap[key[i]], 1); - port[portno].keyboard.old[i] = key[i]; } - break; - + default: break; } - + input_sync(&port[portno].idev); - + mod_timer(&port[portno].timer, jiffies + REFRESH_TIME); } @@ -357,7 +355,7 @@ unsigned int code, int value) { int portno = (int)dev->private; - + if (type == EV_FF) { if (code == FF_RUMBLE) { gcn_si_set_rumbling(portno, value); @@ -380,31 +378,31 @@ printk(KERN_WARNING PFX "resource busy\n"); return -EBUSY; } - + for (i = 0; i < 4; ++i) { memset(&port[i], 0, sizeof(port[i])); - + /* probe ports */ port[i].si_id = gcn_si_get_controller_id(i) >> 16; + /* convert si_id to id */ - if (port[i].si_id == ID_PAD) - { + if (port[i].si_id == ID_PAD) { port[i].id = CTL_PAD; strcpy(port[i].name,"Standard Pad"); - } - else if (port[i].si_id & ID_WIRELESS_BIT) - { + } else if (port[i].si_id & ID_WIRELESS_BIT) { port[i].id = CTL_PAD; strcpy(port[i].name,(port[i].si_id & ID_WAVEBIRD_BIT) ? "Nintendo Wavebird" : "Wireless Pad"); - } - else if (port[i].si_id == ID_KEYBOARD) - { + } else if (port[i].si_id == ID_KEYBOARD) { port[i].id = CTL_KEYBOARD; - } - else - { + strcpy(port[i].name, "Keyboard"); + } else { port[i].id = CTL_UNKNOWN; + if (port[i].si_id) + sprintf(port[i].name, "Unknown (%x)", + port[i].si_id); + else + strcpy(port[i].name, "Not Present"); } DPRINTK("port[%d] = 0x%x\n", i, id); @@ -417,9 +415,6 @@ switch (port[i].id) { case CTL_PAD: - /* sprintf (port[i].phys, "gcsi/port%d", i); */ - /* port[i].idev.phys = port[i].phys; */ - set_bit(EV_KEY, port[i].idev.evbit); set_bit(EV_ABS, port[i].idev.evbit); set_bit(EV_FF, port[i].idev.evbit); @@ -492,8 +487,6 @@ break; case CTL_KEYBOARD: - strcpy(port[i].name, "keyboard"); - set_bit(EV_KEY, port[i].idev.evbit); set_bit(EV_REP, port[i].idev.evbit); @@ -504,15 +497,6 @@ input_register_device(&port[i].idev); break; - - default: - /* unknown device */ - if (port[i].si_id) - sprintf(port[i].name, "Unknown (%x)", - port[i].si_id); - else - strcpy(port[i].name, "Not Present"); - break; } port[i].idev.name = port[i].name; si_printk(KERN_INFO, "Port %d: %s\n", i, port[i].name); @@ -529,15 +513,14 @@ static void __exit gcn_si_exit(void) { int i; - + si_printk(KERN_INFO, "exit\n"); - + for (i = 0; i < 4; ++i) { if (port[i].id != CTL_UNKNOWN) { input_unregister_device(&port[i].idev); } } - release_resource(&gcn_si_resources); } |
From: <he...@us...> - 2004-11-15 01:16:39
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21634 Modified Files: gcnfb.c Log Message: Display "NTSC/PAL60" when in NTSC mode or PAL60. (both modes seem to use the same hardware register values) Do not allow y to be bigger than the video mode height, but let it be smaller. Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gcnfb.c 14 Nov 2004 20:59:34 -0000 1.7 +++ gcnfb.c 15 Nov 2004 01:16:29 -0000 1.8 @@ -104,7 +104,7 @@ static struct vi_video_mode gcnfb_video_modes[] = { { - .name = "NTSC 480i", + .name = "NTSC/PAL60 480i", .regs = VIDEO_Mode640X480NtscYUV16, .width = 640, .height = 480, @@ -125,6 +125,7 @@ .lines = 625, }, { + /* this seems to be actually the same as NTSC 480i */ .name = "PAL60 480i", .regs = VIDEO_Mode640X480Pal60YUV16, .width = 640, @@ -422,8 +423,8 @@ var->xres_virtual != gcnfb_current_video_mode->width || var->xres != gcnfb_current_video_mode->width || /* XXX isobel, do not break old sdl */ - /* var->yres_virtual != gcnfb_info.var.yres || *//* check for y */ - /* var->yres != gcnfb_info.var.yres || */ + var->yres_virtual > gcnfb_current_video_mode->height || + var->yres > gcnfb_current_video_mode->height || (gcnfb_is_progressive(var->vmode) && !gcnfb_can_do_progressive())) { /* trying to set progressive? */ return -EINVAL; } @@ -578,9 +579,11 @@ if (gcnfb_current_video_mode == NULL) { /* auto detection */ if (vi_regs[1] == 0x4B6A01B0) { + /* PAL50 */ gcnfb_current_video_mode = gcnfb_video_modes + GCNFB_VM_PAL50; } else { + /* NTSC/PAL60 */ mode = (((u16*)vi_regs)[1] >> 8) & 3; switch (mode) { @@ -592,6 +595,7 @@ GCNFB_VM_NTSC_PROGRESSIVE : GCNFB_VM_NTSC); break; + /* XXX this code is never reached */ case 1: /* PAL60 */ gcnfb_current_video_mode = gcnfb_video_modes + GCNFB_VM_PAL60; @@ -779,14 +783,6 @@ /* setup the framebuffer address */ gcnfb_restorefb(&gcnfb_info); - /* XXX isobel */ -#if 0 - /* fill framebuffer memory with black color */ - for (i = 0; i < (gcnfb_info.var.xres * gcnfb_info.var.yres / 2); ++i) { - writel(0x00800080, ((u32 *) gcnfb_info.screen_base) + i); - } -#endif - /* now register us */ if (register_framebuffer(&gcnfb_info) < 0) { err = -EINVAL; @@ -807,14 +803,14 @@ return 0; - err_gcngx_init: +err_gcngx_init: free_irq(VI_IRQ, 0); unregister_framebuffer(&gcnfb_info); - err_register_framebuffer: +err_register_framebuffer: fb_dealloc_cmap(&gcnfb_info.cmap); - err_alloc_cmap: +err_alloc_cmap: iounmap(gcnfb_info.screen_base); - err_ioremap: +err_ioremap: release_mem_region(gcnfb_info.fix.smem_start, gcnfb_info.fix.smem_len); return err; } |
From: <pal...@us...> - 2004-11-14 20:59:43
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28263/drivers/video Modified Files: gcnfb.c Log Message: Fixed erroneous NTSC detection Index: gcnfb.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/gcnfb.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gcnfb.c 30 Oct 2004 00:09:36 -0000 1.6 +++ gcnfb.c 14 Nov 2004 20:59:34 -0000 1.7 @@ -47,17 +47,10 @@ * Video mode handling */ -#define VI_FMT_NTSC_480i 0x00000000 -#define VI_FMT_NTSC_480p 0x00000100 -#define VI_FMT_PAL50_576i 0x00000011 -#define VI_FMT_PAL60_480i 0x00000001 -#define VI_FMT_MPAL_480i 0x00000002 - -#define VI_FMT_IS_NTSC(a) (((a)&0x001) == 0) -#define VI_FMT_IS_PAL(a) (((a)&0x003) != 0) +#define VI_FMT_IS_NTSC(a) (((((u16*)vi_regs)[1] >> 8) & 3) == 0) +#define VI_FMT_IS_PAL(a) (((((u16*)vi_regs)[1] >> 8) & 3) == 1) struct vi_video_mode { - int format; char *name; const u32 *regs; int width; @@ -111,7 +104,6 @@ static struct vi_video_mode gcnfb_video_modes[] = { { - .format = VI_FMT_NTSC_480i, .name = "NTSC 480i", .regs = VIDEO_Mode640X480NtscYUV16, .width = 640, @@ -119,7 +111,6 @@ .lines = 525, }, { - .format = VI_FMT_NTSC_480p, .name = "NTSC 480p", .regs = VIDEO_Mode640x480NtscProgressiveYUV16, .width = 640, @@ -127,7 +118,6 @@ .lines = 525, }, { - .format = VI_FMT_PAL50_576i, .name = "PAL50 576i", .regs = VIDEO_Mode640X576Pal50YUV16, .width = 640, @@ -135,17 +125,20 @@ .lines = 625, }, { - .format = VI_FMT_PAL60_480i, .name = "PAL60 480i", .regs = VIDEO_Mode640X480Pal60YUV16, .width = 640, .height = 480, .lines = 525, }, - { .format = -1 } }; -static struct vi_video_mode *gcnfb_video_mode = NULL; +#define GCNFB_VM_NTSC 0 +#define GCNFB_VM_NTSC_PROGRESSIVE 1 +#define GCNFB_VM_PAL50 2 +#define GCNFB_VM_PAL60 3 + +static struct vi_video_mode *gcnfb_current_video_mode = NULL; #define VI_IRQ 8 @@ -426,8 +419,8 @@ { /* check bpp */ if (var->bits_per_pixel != 16 || /* check bpp */ - var->xres_virtual != gcnfb_video_mode->width || - var->xres != gcnfb_video_mode->width || + var->xres_virtual != gcnfb_current_video_mode->width || + var->xres != gcnfb_current_video_mode->width || /* XXX isobel, do not break old sdl */ /* var->yres_virtual != gcnfb_info.var.yres || *//* check for y */ /* var->yres != gcnfb_info.var.yres || */ @@ -495,8 +488,8 @@ if (enable) { /* XXX should we incorporate this in the video mode struct ? */ - vtrap = gcnfb_video_mode->lines / 2; - htrap = VI_FMT_IS_NTSC(gcnfb_video_mode->format) ? 430 : 433; + vtrap = gcnfb_current_video_mode->lines / 2; + htrap = VI_FMT_IS_NTSC() ? 430 : 433; /* progressive interrupts at 526 */ if (gcnfb_is_progressive(gcnfb_info.var.vmode) @@ -542,18 +535,18 @@ { int i; - printk(KERN_INFO "Setting mode %s\n", gcnfb_video_mode->name); + printk(KERN_INFO "Setting mode %s\n", gcnfb_current_video_mode->name); gcnfb_set_framebuffer(info->fix.smem_start); /* initialize video registers */ for (i = 0; i < 7; i++) { - vi_regs[i] = gcnfb_video_mode->regs[i]; + vi_regs[i] = gcnfb_current_video_mode->regs[i]; } - vi_regs[8] = gcnfb_video_mode->regs[8]; - vi_regs[10] = gcnfb_video_mode->regs[10]; - vi_regs[11] = gcnfb_video_mode->regs[11]; + vi_regs[8] = gcnfb_current_video_mode->regs[8]; + vi_regs[10] = gcnfb_current_video_mode->regs[10]; + vi_regs[11] = gcnfb_current_video_mode->regs[11]; for (i = 16; i < 32; i++) { - vi_regs[i] = gcnfb_video_mode->regs[i]; + vi_regs[i] = gcnfb_current_video_mode->regs[i]; } gcnfb_enable_interrupts(1); return 0; @@ -578,37 +571,41 @@ /** * */ -struct vi_video_mode *gcnfb_lookup_video_mode(int format) -{ - struct vi_video_mode *mode = &gcnfb_video_modes[0]; - - while (mode->format != -1) { - if (mode->format == format) - break; - mode++; - } - return (mode->format == -1) ? NULL : mode; -} - -/** - * - */ void gcnfb_video_mode_select(void) { - if (gcnfb_video_mode == NULL) { + u16 mode; + + if (gcnfb_current_video_mode == NULL) { + /* auto detection */ if (vi_regs[1] == 0x4B6A01B0) { - gcnfb_video_mode = - gcnfb_lookup_video_mode(VI_FMT_PAL50_576i); + gcnfb_current_video_mode = + gcnfb_video_modes + GCNFB_VM_PAL50; } else { - gcnfb_video_mode = - gcnfb_lookup_video_mode(*(((u16*)vi_regs) + 2) & 3); + mode = (((u16*)vi_regs)[1] >> 8) & 3; + switch (mode) + { + case 0: /* NTSC */ + /* check if we can support progressive */ + gcnfb_current_video_mode = + gcnfb_video_modes + + (gcnfb_can_do_progressive() ? + GCNFB_VM_NTSC_PROGRESSIVE : + GCNFB_VM_NTSC); + break; + case 1: /* PAL60 */ + gcnfb_current_video_mode = + gcnfb_video_modes + GCNFB_VM_PAL60; + break; + default: /* MPAL or DEBUG, we don't support */ + break; + } } } - + /* if we get here something wrong happened */ - if (gcnfb_video_mode == NULL) { + if (gcnfb_current_video_mode == NULL) { printk(KERN_DEBUG "HEY! SOMETHING WEIRD HERE!\n"); - gcnfb_video_mode = &gcnfb_video_modes[0]; + gcnfb_current_video_mode = gcnfb_video_modes + GCNFB_VM_NTSC; } } @@ -621,6 +618,7 @@ if (!options || !*options) return 0; + printk("gcnfb: options = %s\n", options); while ((this_opt = strsep(&options, ",")) != NULL) { @@ -638,11 +636,11 @@ printk("detected \"tv=\"\n"); printk("cmd line: %s\n", this_opt); if (!strncmp(this_opt + 3, "PAL", 3)) - gcnfb_video_mode = - gcnfb_lookup_video_mode(VI_FMT_PAL50_576i); + gcnfb_current_video_mode = + gcnfb_video_modes + GCNFB_VM_PAL50; else if (!strncmp(this_opt + 3, "NTSC", 4)) - gcnfb_video_mode = - gcnfb_lookup_video_mode(VI_FMT_NTSC_480i); + gcnfb_current_video_mode = + gcnfb_video_modes + GCNFB_VM_NTSC; } } return 0; @@ -651,7 +649,7 @@ /** * */ -int __init gcnfb_init(void) +static int __init gcnfb_init(void) { int video_cmap_len; int err = -EINVAL; @@ -678,8 +676,8 @@ gcnfb_video_mode_select(); gcnfb_info.var.bits_per_pixel = 16; - gcnfb_info.var.xres = gcnfb_video_mode->width; - gcnfb_info.var.yres = gcnfb_video_mode->height; + gcnfb_info.var.xres = gcnfb_current_video_mode->width; + gcnfb_info.var.yres = gcnfb_current_video_mode->height; /* enable non-interlaced if it supports progressive */ if (gcnfb_can_do_progressive()) { gcnfb_info.var.vmode = FB_VMODE_NONINTERLACED; |
From: <pal...@us...> - 2004-11-14 18:07:29
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19763/drivers/input Modified Files: gcn-si.c Log Message: Modified the Wavebird detection routine. Should detect all wireless controllers correctly now. Index: gcn-si.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/gcn-si.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gcn-si.c 22 Oct 2004 19:42:04 -0000 1.2 +++ gcn-si.c 14 Nov 2004 18:07:20 -0000 1.3 @@ -60,12 +60,8 @@ #define ID_PAD 0x0900 #define ID_KEYBOARD 0x0820 -#define ID_GBA 0x0004 -#define ID_GBA_NA 0x0800 -#define ID_WAVEBIRD1 0xA800 -#define ID_WAVEBIRD2 0xEBB0 -#define ID_WAVEBIRD3 0xE9A0 -#define ID_WAVEBIRD_RCV 0xE960 +#define ID_WIRELESS_BIT (1 << 15) +#define ID_WAVEBIRD_BIT (1 << 8) #define PAD_START (1 << 28) #define PAD_Y (1 << 27) @@ -91,8 +87,11 @@ unsigned char old[3]; } keyboard_status; +typedef enum {CTL_PAD,CTL_KEYBOARD,CTL_UNKNOWN} control_type; + struct { - unsigned int id; + control_type id; + int si_id; unsigned int raw[2]; #if 0 @@ -193,16 +192,14 @@ for (i = 0; i < 4; ++i) { switch (port[i].id) { - case ID_PAD: - case ID_WAVEBIRD1: - case ID_WAVEBIRD2: - case ID_WAVEBIRD3: + case CTL_PAD: writel(0x00400300, SICOUTBUF(i)); break; - - case ID_KEYBOARD: + case CTL_KEYBOARD: writel(0x00540000, SICOUTBUF(i)); break; + default: + continue; } pad_bits |= 1 << (7 - i); } @@ -242,10 +239,7 @@ raw[1] = readl(SICINBUFL(portno)); switch (port[portno].id) { - case ID_PAD: - case ID_WAVEBIRD1: - case ID_WAVEBIRD2: - case ID_WAVEBIRD3: + case CTL_PAD: /* buttons */ input_report_key(&port[portno].idev, BTN_A, raw[0] & PAD_A); input_report_key(&port[portno].idev, BTN_B, raw[0] & PAD_B); @@ -294,8 +288,8 @@ raw[1] >> 0 & 0xFF); break; - - case ID_KEYBOARD: + + case CTL_KEYBOARD: key[0] = (raw[0] >> 12) & 0xFF; key[1] = (raw[0] >> 4) & 0xFF; key[2] = (raw[0] << 4) & 0xFF; @@ -315,18 +309,18 @@ if (key[i]) input_report_key(&port[portno].idev, gamecube_keymap[key[i]], 1); - + port[portno].keyboard.old[i] = key[i]; } - + break; - + default: break; } - + input_sync(&port[portno].idev); - + mod_timer(&port[portno].timer, jiffies + REFRESH_TIME); } @@ -363,7 +357,7 @@ unsigned int code, int value) { int portno = (int)dev->private; - + if (type == EV_FF) { if (code == FF_RUMBLE) { gcn_si_set_rumbling(portno, value); @@ -379,23 +373,42 @@ static int __init gcn_si_init(void) { int i; - + int j; si_printk(KERN_INFO, "%s\n", DRV_DESCRIPTION); if (request_resource(&iomem_resource, &gcn_si_resources) < 0) { printk(KERN_WARNING PFX "resource busy\n"); return -EBUSY; } - + for (i = 0; i < 4; ++i) { - int j; - memset(&port[i], 0, sizeof(port[i])); - + /* probe ports */ - port[i].id = gcn_si_get_controller_id(i) >> 16; - DPRINTK("port[%d] = 0x%x\n", i, port[i].id); - + port[i].si_id = gcn_si_get_controller_id(i) >> 16; + /* convert si_id to id */ + if (port[i].si_id == ID_PAD) + { + port[i].id = CTL_PAD; + strcpy(port[i].name,"Standard Pad"); + } + else if (port[i].si_id & ID_WIRELESS_BIT) + { + port[i].id = CTL_PAD; + strcpy(port[i].name,(port[i].si_id & ID_WAVEBIRD_BIT) ? + "Nintendo Wavebird" : "Wireless Pad"); + } + else if (port[i].si_id == ID_KEYBOARD) + { + port[i].id = CTL_KEYBOARD; + } + else + { + port[i].id = CTL_UNKNOWN; + } + + DPRINTK("port[%d] = 0x%x\n", i, id); + init_input_dev(&port[i].idev); port[i].idev.open = gcn_si_open; @@ -403,14 +416,7 @@ port[i].idev.private = (unsigned int *)i; switch (port[i].id) { - case ID_PAD: - case ID_WAVEBIRD1: - case ID_WAVEBIRD2: - case ID_WAVEBIRD3: - sprintf(port[i].name, - port[i].id == ID_PAD ? - "standard pad" : "Wavebird"); - + case CTL_PAD: /* sprintf (port[i].phys, "gcsi/port%d", i); */ /* port[i].idev.phys = port[i].phys; */ @@ -485,9 +491,9 @@ break; - case ID_KEYBOARD: - sprintf(port[i].name, "keyboard"); - + case CTL_KEYBOARD: + strcpy(port[i].name, "keyboard"); + set_bit(EV_KEY, port[i].idev.evbit); set_bit(EV_REP, port[i].idev.evbit); @@ -501,10 +507,11 @@ default: /* unknown device */ - if (port[i].id) - sprintf(port[i].name, "unknown (%x)", port[i].id); + if (port[i].si_id) + sprintf(port[i].name, "Unknown (%x)", + port[i].si_id); else - sprintf(port[i].name, "not present"); + strcpy(port[i].name, "Not Present"); break; } port[i].idev.name = port[i].name; @@ -522,15 +529,11 @@ static void __exit gcn_si_exit(void) { int i; - + si_printk(KERN_INFO, "exit\n"); - + for (i = 0; i < 4; ++i) { - if (port[i].id == ID_PAD || - port[i].id == ID_WAVEBIRD1 || - port[i].id == ID_WAVEBIRD2 || - port[i].id == ID_WAVEBIRD3 || - port[i].id == ID_KEYBOARD) { + if (port[i].id != CTL_UNKNOWN) { input_unregister_device(&port[i].idev); } } |
From: <pal...@us...> - 2004-11-01 02:58:34
|
Update of /cvsroot/gc-linux/libgx/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18341/src Modified Files: gx.c Log Message: Changed CopyDst to use xfbHeight and not efbHeight Index: gx.c =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gx.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gx.c 1 Nov 2004 02:32:45 -0000 1.4 +++ gx.c 1 Nov 2004 02:58:24 -0000 1.5 @@ -383,7 +383,7 @@ GX_SetCopyClear((GXColor)GX_DEFAULT_BG,0x00ffffff); GX_SetDispCopySrc(0,0,640,pgxi->efbHeight); - GX_SetDispCopyDst(640,pgxi->efbHeight); + GX_SetDispCopyDst(640,pgxi->xfbHeight); GX_SetDispCopyYScale((f32)pgxi->xfbHeight / (f32)pgxi->efbHeight); GX_SetCopyClamp(GX_CLAMP_TOP|GX_CLAMP_BOTTOM); GX_SetCopyFilter(GX_FALSE,NULL,GX_FALSE,NULL); |
From: <pal...@us...> - 2004-11-01 02:32:56
|
Update of /cvsroot/gc-linux/libgx/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14584/include Modified Files: gx.h Log Message: Included PAL50 changes based on 528 row efb Index: gx.h =================================================================== RCS file: /cvsroot/gc-linux/libgx/include/gx.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- gx.h 22 Oct 2004 20:13:53 -0000 1.1.1.1 +++ gx.h 1 Nov 2004 02:32:44 -0000 1.2 @@ -914,13 +914,14 @@ typedef GXTexRegion* (*GXTexRegionCallback)(GXTexObj *obj,u8 mapid); typedef GXTlutRegion* (*GXTlutRegionCallback)(u32 tlut_name); -typedef enum {NTSC,PAL50,PAL60} VIDEO_TYPE; +typedef enum {NTSC,PAL50} VIDEO_TYPE; typedef struct _tagGXINIT { VIDEO_TYPE vType; int bInterlaced; unsigned int width; - unsigned int height; + unsigned int efbHeight; + unsigned int xfbHeight; } GXINIT,*LPGXINIT; GXFifoObj* GX_Init(int fd,LPGXINIT pInit); |
From: <pal...@us...> - 2004-11-01 02:32:56
|
Update of /cvsroot/gc-linux/libgx/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14584/src Modified Files: gx.c Log Message: Included PAL50 changes based on 528 row efb Index: gx.c =================================================================== RCS file: /cvsroot/gc-linux/libgx/src/gx.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gx.c 31 Oct 2004 22:35:00 -0000 1.3 +++ gx.c 1 Nov 2004 02:32:45 -0000 1.4 @@ -304,12 +304,12 @@ GX_LoadTexMtxImm(identity_matrix,GX_IDENTITY,GX_MTX3x4); GX_LoadTexMtxImm(identity_matrix,GX_DTTIDENTITY,GX_MTX3x4); - GX_SetViewport(0.0,0.0,640.0,(f32)pgxi->height,0.0,1.0); + GX_SetViewport(0.0,0.0,640.0,(f32)pgxi->efbHeight,0.0,1.0); GX_SetCoPlanar(GX_DISABLE); GX_SetCullMode(GX_CULL_BACK); GX_SetClipMode(GX_CLIP_DISABLE); - GX_SetScissor(0,0,640,pgxi->height); + GX_SetScissor(0,0,640,pgxi->efbHeight); GX_SetScissorBoxOffset(0,0); GX_SetNumChans(0); @@ -382,9 +382,9 @@ GX_SetFieldMode(GX_FALSE,GX_DISABLE); GX_SetCopyClear((GXColor)GX_DEFAULT_BG,0x00ffffff); - GX_SetDispCopySrc(0,0,640,pgxi->height); - GX_SetDispCopyDst(640,pgxi->height); - GX_SetDispCopyYScale(1.0); + GX_SetDispCopySrc(0,0,640,pgxi->efbHeight); + GX_SetDispCopyDst(640,pgxi->efbHeight); + GX_SetDispCopyYScale((f32)pgxi->xfbHeight / (f32)pgxi->efbHeight); GX_SetCopyClamp(GX_CLAMP_TOP|GX_CLAMP_BOTTOM); GX_SetCopyFilter(GX_FALSE,NULL,GX_FALSE,NULL); GX_SetDispCopyGamma(GX_GM_1_0); @@ -685,14 +685,17 @@ /* if pal mode */ if (_viReg[1] & 0x0100) { - /* check horizontal timing to see if pal50/60 */ - pInit->vType = ( *((u32*)(_viReg+2)) == 0x476901AD ) ? PAL60 : PAL50; - pInit->height = ((pInit->vType == PAL50) ? 576 : 480); + /* pal 50 */ + pInit->vType = PAL50; + pInit->efbHeight = 528; + pInit->xfbHeight = 576; } else { + /* NTSC / PAL60 */ pInit->vType = NTSC; - pInit->height = 480; + pInit->efbHeight = 480; + pInit->xfbHeight = 480; } _gx[0x01] = 0; |