You can subscribe to this list here.
2001 |
Jan
|
Feb
(4) |
Mar
(47) |
Apr
(27) |
May
(113) |
Jun
|
Jul
|
Aug
(1) |
Sep
(15) |
Oct
(25) |
Nov
|
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(17) |
Feb
(5) |
Mar
(5) |
Apr
(2) |
May
(16) |
Jun
|
Jul
|
Aug
(15) |
Sep
(28) |
Oct
(78) |
Nov
(39) |
Dec
|
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: M. R. B. <mr...@us...> - 2002-10-29 15:48:50
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv27061 Added Files: Tag: 1.3 main.c Log Message: Moved. --- NEW FILE: main.c --- /* Streaming sound driver * * (c)2000 Dan Potter * * This slightly more complicated version allows for sound effect channels, * and full sampling rate, panning, and volume control for each. The two * streaming channels are still always first and always occur at 0x11000 and * 0x21000. All other sample data can begin at 0x31000. "pos" only works for * input on the two streaming channels (which will always have the same * "pos" value). * * $Id: main.c,v 1.3 2002/10/29 15:48:47 mrbrown Exp $ */ #include "aica.h" #include "aica_cmd_iface.h" static int buffer_index; static int active; /****************** Timer *******************************************/ extern volatile int timer; void timer_wait(int jiffies) { int fin = timer + jiffies; while (timer <= fin) ; } /****************** Main Program ************************************/ /* Set channel id at 0x80280d (byte), read position at 0x802814 (long) */ volatile uint32 *cmd = (volatile uint32 *)0x10000; volatile aica_channel *chans = (volatile aica_channel *)0x10004; void start_channel(int chn) { int samplesize = 1; int stereo = (chans[chn].flags & 1); if (chans[chn].sfmt == SM_16BIT) samplesize = 2; if (stereo) { aica_play(0, 0x11000 , chans[chn].sfmt, 0, 0x8000/samplesize, chans[chn].freq, chans[chn].vol, 0, 1); aica_play(1, 0x21000, chans[chn].sfmt, 0, 0x8000/samplesize, chans[chn].freq, chans[chn].vol, 0xff, 1); } else { aica_play(chn, 0x11000, chans[chn].sfmt, 0, 0x8000/samplesize, chans[chn].freq, chans[chn].vol, chans[chn].pan, 1); } } void stop_channel(int chn) { if (chn == 0) { aica_stop(0); aica_stop(1); } else { aica_stop(chn); } } void vol_channel(int chn) { if (chn == 0) { aica_vol(0, chans[chn].vol); aica_vol(1, chans[chn].vol); } else { aica_vol(chn, chans[chn].vol); } } void process_cmd(uint32 cmd) { /* cmd is channel to look at +1 */ cmd--; switch(chans[cmd].cmd) { case AICA_CMD_NONE: break; case AICA_CMD_START: start_channel(cmd); active = 0; break; case AICA_CMD_STOP: stop_channel(cmd); active = 0; break; case AICA_CMD_VOL: vol_channel(cmd); break; } } int arm_main() { int cmdl; int flags, shift_buffer, pass; /* Initialize the AICA part of the SPU */ aica_init(); /* Observe channel 0 */ SNDREG8(0x280d) = 0; /* Wait for a command */ while(1) { /* Check for a command */ cmdl = *cmd; if (cmdl & AICA_CMD_KICK) { *cmd = 0; process_cmd(cmdl & ~AICA_CMD_KICK); } /* Update position counters */ chans[0].pos = SNDREG32(0x2814); /* Little delay to prevent memory lock */ timer_wait(10); } } |
From: M. R. B. <mr...@us...> - 2002-10-29 15:45:52
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv25255 Added Files: Tag: 1.3 crt0.s Log Message: Moved. --- NEW FILE: crt0.s --- # Adapted from Marcus' AICA example among a few other sources =) # # $Id: crt0.s,v 1.3 2002/10/29 15:45:49 mrbrown Exp $ .text .globl arm_main .globl timer .globl jps # Exception vectors b start b undef b softint b pref_abort b data_abort b rsrvd b irq # FIQ code adapted from the Marcus AICA example fiq: # Save regs #stmdb sp!, {r0-r14} # Grab interrupt type (store as parameter) ldr r8,intreq ldr r9,[r8] and r9,r9,#7 cmp r9,#2 bne fiq_done # Type 2 is timer interrupt. Increment timer variable. adr r8,timer ldr r9,[r8] add r9,r9,#1 str r9,[r8] # Request a new timer interrupt. We'll calculate the number # put in here based on the "jps" (jiffies per second). ldr r8, timer_control mov r9,#256-(44100/4410) # ldr r9,jps str r9,[r8,#0x10] mov r9,#0x40 str r9,[r8,#0x24] b fiq_done # Return from interrupt fiq_done: # Clear interrupt ldr r8,intclr mov r9,#1 str r9,[r8] str r9,[r8] str r9,[r8] str r9,[r8] # Restore regs and return #ldmdb sp!, {r0-r14} subs pc,r14,#4 intreq: .long 0x00802d00 intclr: .long 0x00802d04 timer_control: .long 0x00802880 timer: .long 0 jps: .long 256-(44100/1000) start: # Setup a basic stack, disable IRQ, enable FIQ mov sp,#0xb000 mrs r10,CPSR orr r10,r10,#0x80 bic r10,r10,#0x40 msr CPSR_all,r10 # Call the main for the SPU bl arm_main # Loop infinitely if we get here here: b here # Handlers we don't bother to catch undef: softint: mov pc,r14 pref_abort: data_abort: irq: rsrvd: sub pc,r14,#4 |
From: M. R. B. <mr...@us...> - 2002-10-29 15:45:36
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv25099 Added Files: Tag: 1.3 bin2hex.pl Log Message: Moved. --- NEW FILE: bin2hex.pl --- # # bin2hex.pl by Chami.com # http://www.chami.com/tips/ # # $Id: bin2hex.pl,v 1.3 2002/10/29 15:45:34 mrbrown Exp $ # number of characters per line $chars_per_line = 15; # ------------------------------------- # language id # # 0 = Perl (default) # 1 = C / C++ # 2 = Pascal / Delphi # $lang = $ARGV[1]; $rem_begin = "begin binary data:"; $rem_end = "end binary data."; # initialize for Perl strings # by default $_var = "# $rem_begin\n". "\$bin_data = # %d\n"; $_begin = "\""; $_end = "\";\n"; $_break = "\".\n\""; $_format = "\\x%02X"; $_separator = ""; $_comment = "# $rem_end ". "size = %d bytes"; # C / C++ if(1 == $lang) { $_var = "/* $rem_begin */\n". "char bin_arm7[] = ". "/* %d */\n"; $_begin = "{"; $_end = "};\n"; $_break = "\n"; $_format = "0x%02X"; $_separator = ","; $_comment = "/* $rem_end ". "size = %d bytes */"; } elsif(2 == $lang) { $_var = "{ $rem_begin }\n". "const bin_data : ". "array [1..%d] of ". "byte = \n"; $_begin = "("; $_end = ");\n"; $_break = "\n"; $_format = "\$%02X"; $_separator = ","; $_comment = "{ $rem_end ". "size = %d bytes }"; } if(open(F, "<".$ARGV[0])) { binmode(F); $s = ''; $i = 0; $count = 0; $first = 1; $s .= $_begin; while(!eof(F)) { if($i >= $chars_per_line) { $s .= $_break; $i = 0; } if(!$first) { $s .= $_separator; } $s .= sprintf( $_format, ord(getc(F))); ++$i; ++$count; $first = 0; } $s .= $_end; $s .= sprintf $_comment, $count; $s .= "\n\n"; $s = "\n".sprintf($_var, $count).$s; print $s; close( F ); } else { print "bin2hex.pl by Chami.com\n". "\n". "usage:\n". " perl bin2hex.pl ". " \n". "\n". " : path to the ". "binary file\n". " : 0 = Perl, ". "1 = C/C++/Java, ". "2 = Pascal/Delphi\n". "\n"; } |
From: M. R. B. <mr...@us...> - 2002-10-29 15:45:13
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv24884 Modified Files: Tag: 1 aica_cmd_iface.h Log Message: Remove spurious $ keyword Index: aica_cmd_iface.h =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware/aica_cmd_iface.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- aica_cmd_iface.h 29 Oct 2002 15:44:14 -0000 1.1 +++ aica_cmd_iface.h 29 Oct 2002 15:45:10 -0000 1.2 @@ -3,8 +3,6 @@ #ifndef __ARM_AICA_CMD_IFACE_H #define __ARM_AICA_CMD_IFACE_H -/* $Id$ */ - #ifndef __ARCH_TYPES_H typedef unsigned long uint32; #endif |
From: M. R. B. <mr...@us...> - 2002-10-29 15:44:16
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv24145 Added Files: Tag: 1 aica_cmd_iface.h Log Message: Moved. --- NEW FILE: aica_cmd_iface.h --- /* $Id: aica_cmd_iface.h,v 1.1 2002/10/29 15:44:14 mrbrown Exp $ */ #ifndef __ARM_AICA_CMD_IFACE_H #define __ARM_AICA_CMD_IFACE_H /* $Id: aica_cmd_iface.h,v 1.1 2002/10/29 15:44:14 mrbrown Exp $ */ #ifndef __ARCH_TYPES_H typedef unsigned long uint32; #endif /* Make this 8 dwords long for one aica bus queue */ typedef struct { uint32 cmd; /* Command ID */ uint32 pos; /* Sample position */ uint32 length; /* Sample length */ uint32 freq; /* Frequency */ uint32 vol; /* Volume 0-255 */ uint32 pan; /* Pan 0-255 */ uint32 sfmt; /* Sound format */ uint32 flags; /* flags */ } aica_channel; /* Command values */ #define AICA_CMD_KICK 0x80000000 #define AICA_CMD_NONE 0 #define AICA_CMD_START 1 #define AICA_CMD_STOP 2 #define AICA_CMD_VOL 3 #endif /* __ARM_AICA_CMD_IFACE_H */ |
From: M. R. B. <mr...@us...> - 2002-10-29 15:43:54
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv23680 Added Files: Tag: 1.3 aica.h Log Message: Moved. --- NEW FILE: aica.h --- /* $Id: aica.h,v 1.3 2002/10/29 15:43:51 mrbrown Exp $ */ #ifndef __AICA_H #define __AICA_H /* volatile unsigned char *dc_snd_base = (unsigned char *)0x00800000; */ #define dc_snd_base ((volatile unsigned char *)0x00800000) /* Some convienence macros */ #define SNDREG32A(x) ((volatile unsigned long *)(dc_snd_base + (x))) #define SNDREG32(x) (*SNDREG32A(x)) #define SNDREG8A(x) (dc_snd_base + (x)) #define SNDREG8(x) (*SNDREG8A(x)) #define CHNREG32A(chn, x) SNDREG32A(0x80*(chn) + (x)) #define CHNREG32(chn, x) (*CHNREG32A(chn, x)) #define CHNREG8A(chn, x) SNDREG8A(0x80*(chn) + (x)) #define CHNREG8(chn, x) (*CHNREG8A(chn, x)) /* Sound modes */ #define SM_8BIT 1 #define SM_16BIT 0 #define SM_ADPCM 2 #endif /* __AICA_H */ |
From: M. R. B. <mr...@us...> - 2002-10-29 15:43:41
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv23408 Added Files: Tag: 1.3 aica.c Log Message: Moved. --- NEW FILE: aica.c --- /* This file is part of the Dreamcast function library. * Please see libdream.c for further details. * * (c)2000 Dan Potter * * $Id: aica.c,v 1.3 2002/10/29 15:43:38 mrbrown Exp $ */ #include "aica.h" void aica_init() { int i, j; /* Initialize AICA channels */ SNDREG32(0x2800) = 0x0000; for (i=0; i<64; i++) { for (j=0; j<0x80; j+=4) CHNREG32(i, j) = 0; CHNREG32(i,0) = 0x8000; CHNREG32(i,20) = 0x1f; } SNDREG32(0x2800) = 0x000f; } /* Translates a volume from linear form to logarithmic form (required by the AICA chip */ /* int logs[] = { 0, 40, 50, 58, 63, 68, 73, 77, 80, 83, 86, 89, 92, 94, 97, 99, 101, 103, 105, 107, 109, 111, 112, 114, 116, 117, 119, 120, 122, 123, 125, 126, 127, 129, 130, 131, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 156, 157, 158, 159, 160, 161, 162, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 170, 171, 172, 172, 173, 174, 175, 175, 176, 177, 177, 178, 179, 180, 180, 181, 182, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 188, 189, 190, 190, 191, 191, 192, 193, 193, 194, 194, 195, 196, 196, 197, 197, 198, 198, 199, 199, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 226, 226, 227, 227, 228, 228, 228, 229, 229, 230, 230, 230, 231, 231, 232, 232, 232, 233, 233, 234, 234, 234, 235, 235, 236, 236, 236, 237, 237, 238, 238, 238, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255 }; */ int logs[] = { 0, 15, 22, 27, 31, 35, 39, 42, 45, 47, 50, 52, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 74, 76, 78, 79, 81, 82, 84, 85, 87, 88, 90, 91, 92, 94, 95, 96, 98, 99, 100, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 138, 139, 140, 141, 142, 143, 144, 145, 146, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 156, 157, 158, 159, 160, 160, 161, 162, 163, 164, 164, 165, 166, 167, 167, 168, 169, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 178, 179, 180, 181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 205, 206, 207, 207, 208, 209, 209, 210, 210, 211, 212, 212, 213, 213, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222, 223, 223, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 254, 255 }; int vol_to_log(int vol) { /* vol = 0xff - (vol & 0xff); */ /* vol = 0xff - logs[vol & 0xff]; */ /* vol = 128 - ((vol & 0xff) / 2); */ vol = 0xff - logs[128 + ((vol & 0xff) / 2)]; return vol; } /* Sets up a sound channel completely. This is generally good if you want a quick and dirty way to play notes. If you want a more comprehensive set of routines (more like PC wavetable cards) see below. ch is the channel to play on (0 - 63) smpptr is the pointer to the sound data; if you're running off the SH4, then this ought to be (ptr - 0xa0800000); otherwise it's just ptr. Basically, it's an offset into sound ram. mode is one of the mode constants (16 bit, 8 bit, ADPCM) nsamp is the number of samples to play (not number of bytes!) freq is the sampling rate of the sound vol is the volume, 0 to 0xff (0xff is louder) pan is a panning constant -- 0 is left, 128 is center, 255 is right. This routine (and the similar ones) owe a lot to Marcus' sound example -- I hadn't gotten quite this far into dissecting the individual regs yet. */ void aica_play(int ch, unsigned long smpptr, int mode, int loopst, int loopend, int freq, int vol, int pan, int loopflag) { unsigned long freq_lo, freq_base = 5644800; int freq_hi = 7; int i, j; /* Stop the channel (if it's already playing) */ /*for (i=CHNREG8(ch, 41); i<=0xff; i++) { CHNREG8(ch, 41) = i; } */ aica_stop(ch); for (i=0; i<256; i++) { asm("nop"); asm("nop"); asm("nop"); asm("nop"); } /* Convert the incoming volume and pan into hardware values */ vol = vol_to_log(vol); /* For the moment this is going to have to suffice, until we really figure out what these mean. */ if (pan == 0x80) pan = 0; else if (pan < 0x80) pan = 0x1f; else pan = 0xf; /* Envelope setup. The first of these is the loop point, e.g., where the sample starts over when it loops. The second is the loop end. This is the full length of the sample when you are not looping, or the loop end point when you are (though storing more than that is a waste of memory if you're not doing volume enveloping). */ CHNREG32(ch, 8) = loopst & 0xffff; CHNREG32(ch, 12) = loopend & 0xffff; /* Need to convert frequency to floating point format (freq_hi is exponent, freq_lo is mantissa) Formula is ferq = 44100*2^freq_hi*(1+freq_lo/1024) */ while (freq < freq_base && freq_hi > -8) { freq_base >>= 1; --freq_hi; } freq_lo = (freq<<10) / freq_base; /* Write resulting values */ CHNREG32(ch, 24) = (freq_hi << 11) | (freq_lo & 1023); /* Set volume, pan, and some other things that we don't know what they do =) */ CHNREG8(ch, 36) = pan; CHNREG8(ch, 37) = 0xf; CHNREG8(ch, 40) = 0x24; CHNREG8(ch, 41) = vol; /* Vol starts at zero so we can ramp */ /* If we supported volume envelopes (which we don't yet) then this value would set that up. The top 4 bits determine the envelope speed. f is the fastest, 1 is the slowest, and 0 seems to be an invalid value and does weird things). The default (below) sets it into normal mode (play and terminate/loop). CHNREG32(ch, 16) = 0xf010; */ CHNREG32(ch, 16) = 0x1f; /* No volume envelope */ /* Set sample format, buffer address, and looping control. If 0x0200 mask is set on reg 0, the sample loops infinitely. If it's not set, the sample plays once and terminates. We'll also set the bits to start playback here. */ CHNREG32(ch, 4) = smpptr & 0xffff; if (loopflag) CHNREG32(ch, 0) = 0xc000 | 0x0200 | (mode<<7) | (smpptr >> 16); /* Loops */ else CHNREG32(ch, 0) = 0xc000 | 0x0000 | (mode<<7) | (smpptr >> 16); /* No loop */ /* Enable playback */ /* CHNREG32(ch, 0) |= 0xc000; */ /*for (i=0xff; i>=vol; i--) CHNREG8(ch, 41) = i; */ } /* Stop the sound on a given channel */ void aica_stop(int ch) { CHNREG32(ch, 0) = (CHNREG32(ch, 0) & ~0x4000) | 0x8000; } /* The rest of these routines can change the channel in mid-stride so you can do things like vibrato and panning effects. */ /* Set channel volume */ void aica_vol(int ch, int vol) { vol = vol_to_log(vol); CHNREG8(ch, 41) = vol; } /* Set channel pan */ void aica_pan(int ch, int pan) { if (pan == 0x80) pan = 0; else if (pan < 0x80) pan = 0x1f; else pan = 0xf; CHNREG8(ch, 36) = pan; } /* Set channel frequency */ void aica_freq(int ch, int freq) { unsigned long freq_lo, freq_base = 5644800; int freq_hi = 7; while (freq < freq_base && freq_hi > -8) { freq_base >>= 1; freq_hi--; } freq_lo = (freq<<10) / freq_base; CHNREG32(ch, 24) = (freq_hi << 11) | (freq_lo & 1023); } |
From: M. R. B. <mr...@us...> - 2002-10-29 15:43:21
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv23013 Added Files: Tag: 1.3 Makefile Log Message: Moved. --- NEW FILE: Makefile --- # $Id: Makefile,v 1.3 2002/10/29 15:43:18 mrbrown Exp $ #define cross compiler location etc CROSS_COMPILE=arm-elf- #change the next variable to fit your set up! PATH_TO_X=/home/Adrian/ARM/build/H-i686-pc-linux-gnu/bin/ DC_ARM7AS = $(PATH_TO_X)$(CROSS_COMPILE)as DC_ARM7LD = $(PATH_TO_X)$(CROSS_COMPILE)ld DC_ARM7CC = $(PATH_TO_X)$(CROSS_COMPILE)gcc DC_ARM7CPP = $(PATH_TO_X)$(CC) -E DC_ARM7AR = $(PATH_TO_X)$(CROSS_COMPILE)ar DC_ARM7NM = $(PATH_TO_X)$(CROSS_COMPILE)nm DC_ARM7STRIP = $(PATH_TO_X)$(CROSS_COMPILE)strip DC_ARM7OBJCOPY = $(PATH_TO_X)$(CROSS_COMPILE)objcopy DC_ARM7OBJDUMP = $(PATH_TO_X)$(CROSS_COMPILE)objdump all: stream.drv #aica_fw.h: stream.drv # ../../../utils/bin2c/bin2c stream.drv aica_fw.h.tmp # echo 'unsigned char aica_fw[] = {' > aica_fw.h # cat aica_fw.h.tmp >> aica_fw.h # echo '};' >> aica_fw.h # -rm aica_fw.h.tmp stream.drv: prog.elf $(DC_ARM7OBJCOPY) -O binary prog.elf stream.drv prog.elf: crt0.o main.o aica.o $(DC_ARM7CC) -Wl,-Ttext,0x00000000 -nostartfiles -nostdlib -e reset -o prog.elf crt0.o main.o aica.o -lgcc %.o: %.c $(DC_ARM7CC) -O2 $(DC_ARM7INCS) -c $< -o $@ %.o: %.s $(DC_ARM7AS) $< -o $@ clean: -rm -f *.o *.srec *.elf 1ST_READ.BIN prog.bin *.bck |
From: M. R. B. <mr...@us...> - 2002-10-29 15:42:42
|
Update of /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv22293 Modified Files: Makefile aica.c aica.h aica_cmd_iface.h bin2hex.pl crt0.s main.c Log Message: Added $ keywords to all source files Index: Makefile =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 9 Jan 2002 11:13:57 -0000 1.1 +++ Makefile 29 Oct 2002 15:42:39 -0000 1.2 @@ -1,4 +1,4 @@ - +# $Id$ #define cross compiler location etc CROSS_COMPILE=arm-elf- Index: aica.c =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/aica.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- aica.c 9 Jan 2002 11:13:57 -0000 1.1 +++ aica.c 29 Oct 2002 15:42:39 -0000 1.2 @@ -2,6 +2,8 @@ * Please see libdream.c for further details. * * (c)2000 Dan Potter + * + * $Id$ */ #include "aica.h" Index: aica.h =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/aica.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- aica.h 9 Jan 2002 11:13:57 -0000 1.1 +++ aica.h 29 Oct 2002 15:42:39 -0000 1.2 @@ -1,3 +1,5 @@ +/* $Id$ */ + #ifndef __AICA_H #define __AICA_H Index: aica_cmd_iface.h =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/aica_cmd_iface.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- aica_cmd_iface.h 9 Jan 2002 11:13:57 -0000 1.1 +++ aica_cmd_iface.h 29 Oct 2002 15:42:39 -0000 1.2 @@ -1,3 +1,5 @@ +/* $Id$ */ + #ifndef __ARM_AICA_CMD_IFACE_H #define __ARM_AICA_CMD_IFACE_H Index: bin2hex.pl =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/bin2hex.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- bin2hex.pl 9 Jan 2002 11:13:57 -0000 1.1 +++ bin2hex.pl 29 Oct 2002 15:42:39 -0000 1.2 @@ -2,6 +2,7 @@ # bin2hex.pl by Chami.com # http://www.chami.com/tips/ # +# $Id$ # number of characters per line $chars_per_line = 15; Index: crt0.s =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/crt0.s,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- crt0.s 9 Jan 2002 11:13:57 -0000 1.1 +++ crt0.s 29 Oct 2002 15:42:39 -0000 1.2 @@ -1,4 +1,6 @@ # Adapted from Marcus' AICA example among a few other sources =) +# +# $Id$ .text .globl arm_main Index: main.c =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/firmware/main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- main.c 9 Jan 2002 11:13:57 -0000 1.1 +++ main.c 29 Oct 2002 15:42:39 -0000 1.2 @@ -9,6 +9,7 @@ * input on the two streaming channels (which will always have the same * "pos" value). * + * $Id$ */ #include "aica.h" |
From: M. R. B. <mr...@us...> - 2002-10-29 15:40:18
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware In directory usw-pr-cvs1:/tmp/cvs-serv20743/firmware Log Message: Directory /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica/firmware added to the repository |
From: M. R. B. <mr...@us...> - 2002-10-29 15:39:12
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica In directory usw-pr-cvs1:/tmp/cvs-serv20099 Added Files: Tag: 1.9 main.c Log Message: Moved. --- NEW FILE: main.c --- /*======================================================= == OSS compliant sound driver for Dreamcast Linux == == New coding is == == Copyright (C) Adrian McMenamin 2001, 2002 == == ad...@mc... == == == == Substantially based on Dan Potter's Kallistios code == == Copyright Dan Potter and others, 2000, 2001 == == == == == == Licencsed under FSF's General Public Licence v2 == == http://www.gnu.org == == Absolutely no warranty is offered == ========================================================= == == == This drives the SH4 end of the sound driver ========================================================= ======================================================= $Id: main.c,v 1.9 2002/10/29 15:39:09 mrbrown Exp $ */ #include <linux/init.h> #include <linux/config.h> #include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/kmod.h> #include <linux/mm.h> #include <linux/wait.h> #include <linux/sched.h> #include <linux/ioport.h> #include <linux/errno.h> #include <linux/ioctl.h> #include <asm/semaphore.h> #include <asm/dc_sysasic.h> #include "../sound_config.h" #include "arm7.h" /* Command values */ #define AICA_CMD_KICK 0x80000000 #define AICA_CMD_NONE 0 #define AICA_CMD_START 1 #define AICA_CMD_STOP 2 #define AICA_CMD_VOL 3 /* Sound modes */ #define SM_8BIT 1 #define SM_16BIT 0 #define SM_ADPCM 2 #ifdef _BUILD_DEBUG_ #define DEBGM(fmt, args...) (printk(KERN_ERR fmt, ##args)) #else #define DEBGM(fmt, args...) ((void) 0) #endif static char *BUFFER; static char *BUFFER2; static char *BUFFERL; static char *BUFFERR; static int buffer_size = 0x2000; static int total_count; static int samplelength; static int stereo; static int left_volume = 0xa0; static int right_volume = 0xa0; static int currentpoint; static struct semaphore dsp_mutex; static int sleeps = 0; /* default is not to sleep for hi-sample rate sounds */ MODULE_PARM(sleeps, "i"); typedef struct { uint32_t cmd; /* Command ID */ uint32_t pos; /* Sample position */ uint32_t length; /* Sample length */ uint32_t freq; /* Frequency */ uint32_t vol; /* Volume 0-255 */ uint32_t pan; /* Pan 0-255 */ uint32_t sfmt; /* Sound format */ uint32_t flags; /* Bit flags */ } aica_channel; /* Flags * 15 } * 14 } * 13 } * 12 } Right channel volume * 11 } in stereo * 10 } * 9 } * 8 } * 7 * 6 * 5 * 4 * 3 * 2 } Current active * 1 } buffer * 0 ->Stereo when set */ aica_channel *chanh; void *convert_u8tos8(void *buffer, int count) { int i; char *curpos = (char *) buffer; for (i = 0; i < count; i++) { char x = *curpos; x ^= 0x80; *curpos++ = x; } return buffer; } /* Waits for the sound FIFO to empty */ inline void spu_write_wait() { while (1) { if (!(readl(0xa05f688c) & 0x11)) break; } } void spu_memload(uint32_t toi, uint8_t * from, int length) { uint32_t *froml = (uint32_t *) from; uint32_t *to = (uint32_t *) (0xa0800000 + toi); int i, val; if (length % 4) length = (length / 4) + 1; else length = length / 4; for (i = 0; i < length; i++) { val = *froml; writel(val, to); froml++; to++; if (i && !(i % 8)) spu_write_wait(); } } void spu_memset(uint32_t toi, unsigned long what, int length) { uint32_t *to = (uint32_t *) (0xa0800000 + toi); int i; if (length % 4) length = (length / 4) + 1; else length = length / 4; for (i = 0; i < length; i++) { writel(what, to); to++; if (i && !(i % 8)) spu_write_wait(); } } /* Enable/disable the SPU; note that disable implies reset of the ARM CPU core. */ void spu_enable() { uint32_t regval = readl(0xa0702c00); regval &= ~1; spu_write_wait(); writel(regval, 0xa0702c00); } /* Stop the ARM7 processor and clear registers for all channels */ void spu_disable() { int i; spu_write_wait(); uint32_t regval = readl(0xa0702c00); regval |= 1; spu_write_wait(); writel(regval, 0xa0702c00); for (i = 0; i < 64; i++) { spu_write_wait(); regval = readl(0xa0700000 + (i * 0x80)); regval = (regval & ~0x4000) | 0x8000; spu_write_wait(); writel(regval, 0xa0700000 + (i * 0x80)); } } /* Halt the sound processor, clear the memory, load some default ARM7 code, and then restart ARM7 */ int spu_init() { spu_disable(); spu_memset(0, 0, 0x200000 / 4); *(uint32_t *) 0xa0800000 = 0xea000002; spu_enable(); schedule(); return 0; } /* Shutdown SPU */ int spu_shutdown() { spu_disable(); spu_memset(0, 0, 0x200000 / 4); return 0; } inline static void chn_halt() { spu_write_wait(); writel(AICA_CMD_KICK | AICA_CMD_STOP, (uint32_t *) 0xa0810000); } inline static void chn_start() { spu_write_wait(); writel(AICA_CMD_KICK | AICA_CMD_START, (uint32_t *) 0xa0810000); } typedef struct aica_dev { struct aica_dev *next_dev; int channel; /* which one are we using here? */ int audio_minor; /* device number */ int mixer_minor; /* device number */ wait_queue_head_t open_wait; /* wait queue */ int last_write_length; /* length of data last written to device */ int sformat; /* format of data being written */ } aica_dev_t; /* List of all open devices */ static aica_dev_t *aica_dev_list; /* open the device file, locking AICA registers as we go */ static int aica_audio_open(struct inode *inode, struct file *file) { aica_dev_t *devc; dev_t minor = MINOR(inode->i_rdev); MOD_INC_USE_COUNT; devc = aica_dev_list; if (down_interruptible(&dsp_mutex)) return -ERESTARTSYS; request_mem_region(0xa0700000, 0x100, "AICA Channels"); chanh = kmalloc(sizeof(aica_channel), GFP_KERNEL); if (chanh == NULL) return -ENOMEM; chanh->flags = 0; if ((minor & 0xF) == SND_DEV_DSP) { chanh->sfmt = SM_8BIT; devc->sformat = AFMT_U8; } else if ((minor & 0xF) == SND_DEV_DSP16) { chanh->sfmt = SM_16BIT; devc->sformat = AFMT_S16_LE; } else { DEBGM("Attempting to open an unsupported device file\n"); release_mem_region(0xa0700000, 0x100); up(&dsp_mutex); MOD_DEC_USE_COUNT; return -EINVAL; } devc->last_write_length = 0; file->private_data = devc; spu_disable(); spu_memset(0, 0, 0x31000); spu_memload(0, bin_arm7, sizeof(bin_arm7)); spu_enable(); /* Load default channel values */ chanh->cmd = AICA_CMD_START; chanh->vol = left_volume; chanh->pan = 0x80; chanh->pos = 0; chanh->freq = 8000; total_count = 0; currentpoint = 0; return 0; } /* Release device, waiting for queued audio to play out */ static int aica_audio_release(struct inode *inode, struct file *file) { aica_dev_t *devc = (aica_dev_t *) (file->private_data); int playpoint, i; if (chanh->freq < 23000) { interruptible_sleep_on_timeout(&(devc->open_wait), HZ / 5); } if (devc->last_write_length > 0) { spu_write_wait(); playpoint = readl(0xa0810004 + 4); if ((playpoint * samplelength) > currentpoint) { for (i = 0; i < (HZ * 2); i++) { interruptible_sleep_on_timeout(& (devc-> open_wait), 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); if ((playpoint * samplelength) < currentpoint) break; } } for (i = 0; i < (HZ * 2); i++) { if ((chanh->freq < 23000) || (sleeps > 0)) interruptible_sleep_on_timeout(& (devc-> open_wait), 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); if ((playpoint * samplelength) > currentpoint) break; } } spu_disable(); if (BUFFER) kfree(BUFFER); if (BUFFER2) kfree(BUFFER2); if (BUFFERL) kfree(BUFFERL); if (BUFFERR) kfree(BUFFERR); BUFFER = NULL; BUFFER2 = NULL; BUFFERL = NULL; BUFFERR = NULL; kfree(chanh); release_mem_region(0xa0700000, 0x100); MOD_DEC_USE_COUNT; total_count = 0; up(&dsp_mutex); return 0; } /* Perform stereo seperation for 16- and 8-bit samples */ static int aica_audio_process_stereo(int *count_out, int *count) { int z, y, x, w; *count_out = *count / 2; y = *count_out; BUFFER2 = kmalloc(y, GFP_KERNEL); if (BUFFER2 == NULL) return -1; char *BUFFER3 = kmalloc(y, GFP_KERNEL); if (BUFFER3 == NULL) return -1; if (samplelength == 1) { for (z = 0; z < y; z++) { x = z * 2; BUFFER3[z] = BUFFER[x]; BUFFER2[z] = BUFFER[x + 1]; } } else { y = y / samplelength; for (z = 0; z < y; z++) { x = z * 2; w = z * 4; BUFFER3[x] = BUFFER[w]; BUFFER3[x + 1] = BUFFER[w + 1]; BUFFER2[x] = BUFFER[w + 2]; BUFFER2[x + 1] = BUFFER[w + 3]; } } kfree(BUFFER); BUFFER = BUFFER3; return 0; } /* Block if buffer full until playing has freed up necessary space. Sleep while waiting for low sample freq samples to play, but lock processor for demanding samples */ inline static int aica_audio_tidy_buffers(aica_dev_t * devc) { int playpoint; do { if (chanh->freq < 23000) interruptible_sleep_on_timeout(&(devc->open_wait), 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); } while (((playpoint * samplelength) > currentpoint) && ((playpoint * samplelength) < (currentpoint + total_count))); if ((currentpoint + total_count) > 0x8000) { currentpoint = 0; do { if ((chanh->freq < 23000) || (sleeps > 0)) interruptible_sleep_on_timeout(& (devc-> open_wait), 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); } while ((playpoint * samplelength) <= total_count); } return 0; } static ssize_t aica_audio_write(struct file *file, const char *buffer, size_t count, loff_t * ppos) { aica_dev_t *devc = (aica_dev_t *) (file->private_data); stereo = chanh->flags & 1; BUFFER = kmalloc(count, GFP_KERNEL); copy_from_user(BUFFER, buffer, count); int count_out = count; samplelength = 1; if (chanh->sfmt == SM_16BIT) samplelength = 2; else if (devc->sformat == AFMT_U8) convert_u8tos8(BUFFER, count); if (stereo) { if (aica_audio_process_stereo(&count_out, &count) != 0) return -1; BUFFERR = BUFFER2; } total_count = count_out; BUFFERL = BUFFER; BUFFER = NULL; BUFFER2 = NULL; if (devc->last_write_length > 0) { aica_audio_tidy_buffers(devc); } spu_memload(0x11000 + currentpoint, BUFFERL, total_count); if (stereo) spu_memload(0x21000 + currentpoint, BUFFERR, total_count); if (BUFFERR) kfree(BUFFERR); kfree(BUFFERL); BUFFERL = NULL; BUFFERR = NULL; currentpoint += total_count; if (devc->last_write_length == 0) { chanh->pos = 0; spu_memload(0x10004, (uint8_t *) chanh, sizeof(aica_channel)); chn_start(); } devc->last_write_length = total_count; total_count = 0; return count; } static int aica_audio_ioctl(struct inode *inode, struct file *filip, unsigned int cmd, unsigned long arg) { aica_dev_t *devc = (aica_dev_t *) (filip->private_data); int newdata, left, right, s, m; audio_buf_info info; switch (cmd) { case SNDCTL_DSP_GETCAPS: put_user(DSP_CAP_TRIGGER | DSP_CAP_REALTIME, (int *) arg); return 0; case SNDCTL_DSP_SETFMT: get_user(newdata, (int *) arg); switch (newdata) { case AFMT_U8: devc->sformat = AFMT_U8; chanh->sfmt = SM_8BIT; break; case AFMT_S16_LE: devc->sformat = AFMT_S16_LE; chanh->sfmt = SM_16BIT; break; case AFMT_S8: devc->sformat = AFMT_S8; chanh->sfmt = SM_8BIT; break; case AFMT_IMA_ADPCM: devc->sformat = AFMT_IMA_ADPCM; chanh->sfmt = SM_ADPCM; break; default: devc->sformat = AFMT_U8; chanh->sfmt = SM_8BIT; /* have set a default format but should return an error */ return -ENOTTY; } put_user(devc->sformat, (int *) arg); return 0; case SNDCTL_DSP_GETFMTS: newdata = AFMT_S8 | AFMT_S16_LE | AFMT_IMA_ADPCM; put_user(newdata, (int *) arg); return 0; case SNDCTL_DSP_SPEED: get_user(newdata, (int *) arg); if (newdata < 10000) { chanh->freq = 8000; } else if (newdata < 11750) { chanh->freq = 11025; } else if (newdata < 15000) { chanh->freq = 12000; } else if (newdata < 20000) { chanh->freq = 16000; } else if (newdata < 23000) { chanh->freq = 22050; } else if (newdata < 30000) { chanh->freq = 24000; } else if (newdata < 41000) { chanh->freq = 32000; } else chanh->freq = 44100; put_user(chanh->freq, (int *) arg); return 0; case SNDCTL_DSP_RESET: chn_halt(); spu_memset(0x21000, 0, 0x8000); spu_memset(0x11000, 0, 0x8000); currentpoint = 0; return 0; case SNDCTL_DSP_GETBLKSIZE: put_user(buffer_size, (int *) arg); return 0; case SNDCTL_DSP_SETFRAGMENT: get_user(newdata, (int *) arg); s = newdata & 0xffff; if (s > 14) s = 14; else if (s < 4) s = 4; buffer_size = 1 << s; m = 0x7fff; arg = (m << 16) | s; put_user(0x010f, (int *) arg); return 0; /* bytes left to play */ case SNDCTL_DSP_GETODELAY: spu_write_wait(); s = readl(0xa0810004 + 4); if ((s * samplelength) > currentpoint) { newdata = currentpoint + 0x8000 - (s * samplelength); } else newdata = currentpoint - (s * samplelength); put_user(newdata, (int *) arg); return 0; /* How many fragments till writing blocks? */ case SNDCTL_DSP_GETOSPACE: spu_write_wait(); s = readl(0xa0810004 + 4); if ((s * samplelength) > currentpoint) { info.fragments = ((s * samplelength) - currentpoint) / buffer_size; } else info.fragments = ((0x8000 - currentpoint) + (s * samplelength)) / buffer_size; info.fragstotal = 0x8000 / buffer_size; info.fragsize = buffer_size; info.bytes = info.fragments * buffer_size; copy_to_user((audio_buf_info *) arg, &info, sizeof(info)); return 0; case SNDCTL_DSP_SYNC: case SNDCTL_DSP_POST: spu_write_wait(); s = readl(0xa0810004 + 4); if ((s * samplelength) > currentpoint) { newdata = currentpoint + 0x8000 - (s * samplelength); } else newdata = currentpoint - (s * samplelength); newdata = newdata / samplelength; /* delay in milliseconds */ newdata = (newdata * 1000) / chanh->freq; newdata = (newdata * HZ) / 1000; interruptible_sleep_on_timeout(&(devc->open_wait), newdata); chn_halt(); spu_memset(0x21000, 0, 0x8000); spu_memset(0x11000, 0, 0x8000); currentpoint = 0; return 0; case SNDCTL_DSP_STEREO: get_user(newdata, (int *) arg); if (newdata == 1) { chanh->flags |= 0x01; } else newdata = 0; put_user(newdata, (int *) arg); return 0; case SNDCTL_DSP_CHANNELS: get_user(newdata, (int *) arg); if (newdata >= 2) { newdata = 2; chanh->flags |= 0x01; } else newdata = 1; put_user(newdata, (int *) arg); return 0; /* Supported Mixer ioctls */ case SOUND_MIXER_READ_DEVMASK: newdata = SOUND_MASK_PCM | SOUND_MASK_VOLUME; put_user(newdata, (int *) arg); return 0; case SOUND_MIXER_WRITE_VOLUME: case SOUND_MIXER_WRITE_PCM: get_user(newdata, (int *) arg); left = newdata & 0xff; right = (newdata & 0xff00) >> 8; left_volume = left; right_volume = right; chanh->vol = (left * 255) / 100; newdata = ((right * 255) / 100) << 8; newdata = newdata | 0xff; chanh->flags &= newdata; right = right << 8; newdata = left | right; put_user(newdata, (int *) arg); return 0; default: return -ENOTTY; } } static struct file_operations aica_audio_fops = { owner:THIS_MODULE, open:aica_audio_open, release:aica_audio_release, write:aica_audio_write, ioctl:aica_audio_ioctl, }; /* Mixer code very basic currently */ static int aica_mixer_open(struct inode *inode, struct file *file) { MOD_INC_USE_COUNT; return 0; } static int aica_mixer_release(struct inode *inode, struct file *file) { MOD_DEC_USE_COUNT; return 0; } static int aica_mixer_ioctl(struct inode *inode, struct file *filip, unsigned int cmd, unsigned long arg) { aica_dev_t *devc = aica_dev_list; if (devc == NULL) return -1; int newdata, left, right; switch (cmd) { case SOUND_MIXER_READ_DEVMASK: newdata = SOUND_MASK_PCM | SOUND_MASK_VOLUME; put_user(newdata, (int *) arg); return 0; case SOUND_MIXER_WRITE_VOLUME: case SOUND_MIXER_WRITE_PCM: get_user(newdata, (int *) arg); left = newdata & 0xff; right = (newdata & 0xff00) >> 8; left_volume = left; right_volume = right; chanh->vol = (left * 255) / 100; newdata = ((right * 255) / 100) << 8; newdata = newdata | 0xff; chanh->flags &= newdata; right = right << 8; newdata = left | right; put_user(newdata, (int *) arg); return 0; default: return -ENOTTY; } } static struct file_operations aica_mixer_fops = { owner:THIS_MODULE, open:aica_mixer_open, release:aica_mixer_release, ioctl:aica_mixer_ioctl, }; /* Create holder for device, together with wait queue and then register device with underlying OSS code */ static int __init attach_aica(void) { printk ("AICA audio device driver for Dreamcast Linux - ver 0.1-pre15\n"); aica_dev_t *devc = NULL; sema_init(&dsp_mutex, 1); int err = -ENOMEM; devc = kmalloc(sizeof(aica_dev_t), GFP_KERNEL); if (devc == NULL) goto fail0; init_waitqueue_head(&devc->open_wait); devc->audio_minor = register_sound_dsp(&aica_audio_fops, -1); if (devc->audio_minor < 0) { DEBGM("attach_aica: register_sound_dsp error %d\n", err); err = devc->audio_minor; goto faildsp; } devc->mixer_minor = register_sound_mixer(&aica_mixer_fops, -1); if (devc->mixer_minor < 0) { DEBGM("attach_aica: register_sound_mixer error %d\n", err); err = devc->mixer_minor; goto failmixer; } devc->next_dev = NULL; devc->channel = 0; aica_dev_list = devc; return 0; failmixer: unregister_sound_dsp(devc->audio_minor); faildsp: kfree(devc); devc = NULL; fail0: DEBGM("AICA load failed\n"); return err; return 0; } static int __exit unload_aica(void) { aica_dev_t *devc; aica_dev_t *devcp; devcp = aica_dev_list; if (!devcp) return -ENODEV; while (1) { devc = devcp; unregister_sound_mixer(devc->mixer_minor); unregister_sound_dsp(devc->audio_minor); devcp = devc->next_dev; kfree(devc); if (!devcp) break; } return 0; } /* Lock iomem and initialise ARM7 processor */ static int __init init_aica(void) { BUFFER = NULL; BUFFER2 = NULL; BUFFERL = NULL; BUFFERR = NULL; if (request_mem_region(0xa0702c00, 4, "AICA ARM control") == NULL) { DEBGM ("Could not take ownership of SPU control register\n"); return -ENODEV; } if (request_mem_region(0xa0800000, 0x200000, "AICA Sound RAM") == NULL) { DEBGM("Could not take ownership of sound RAM\n"); return -ENOMEM; } spu_init(); if (attach_aica()) { DEBGM("Failed to initialise AICA sound driver\n"); return -EINVAL; } DEBGM("AICA sound driver has been initialised\n"); return 0; } static void __exit exit_aica(void) { DEBGM("AICA sound driver being unloaded...\n"); if (unload_aica()) DEBGM("Error in unloading AICA\n"); spu_init(); release_mem_region(0xa0702c00, 4); release_mem_region(0xa0800000, 0x200000); } module_init(init_aica); module_exit(exit_aica); MODULE_AUTHOR("Adrian McMenamin"); MODULE_DESCRIPTION("Basic OSS sound driver for Linux/DC"); |
From: M. R. B. <mr...@us...> - 2002-10-29 15:38:19
|
Update of /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica In directory usw-pr-cvs1:/tmp/cvs-serv19306 Modified Files: main.c Log Message: Added $ keyword - properly this time Index: main.c =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/main.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- main.c 29 Oct 2002 15:37:09 -0000 1.7 +++ main.c 29 Oct 2002 15:38:16 -0000 1.8 @@ -17,7 +17,7 @@ == This drives the SH4 end of the sound driver ========================================================= ======================================================= - $Id + $Id$ */ #include <linux/init.h> |
From: M. R. B. <mr...@us...> - 2002-10-29 15:37:11
|
Update of /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica In directory usw-pr-cvs1:/tmp/cvs-serv18474 Modified Files: main.c Log Message: Added keyword Index: main.c =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/sound/aica/main.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- main.c 18 Oct 2002 22:19:28 -0000 1.6 +++ main.c 29 Oct 2002 15:37:09 -0000 1.7 @@ -16,7 +16,9 @@ == == This drives the SH4 end of the sound driver ========================================================= -=======================================================*/ +======================================================= + $Id + */ #include <linux/init.h> #include <linux/config.h> |
From: M. R. B. <mr...@us...> - 2002-10-29 15:35:57
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica In directory usw-pr-cvs1:/tmp/cvs-serv17809 Added Files: Tag: 1.1 arm7.h Log Message: Moved. --- NEW FILE: arm7.h --- /* begin binary data: */ char bin_arm7[] = /* 3396 */ { 0x20, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x23, 0x00, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0x50, 0x80, 0x9F, 0xE5, 0x00, 0x90, 0x98, 0xE5, 0x07, 0x90, 0x09, 0xE2, 0x02, 0x00, 0x59, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0x48, 0x80, 0x8F, 0xE2, 0x00, 0x90, 0x98, 0xE5, 0x01, 0x90, 0x89, 0xE2, 0x00, 0x90, 0x88, 0xE5, 0x34, 0x80, 0x9F, 0xE5, 0xF6, 0x90, 0xA0, 0xE3, 0x10, 0x90, 0x88, 0xE5, 0x40, 0x90, 0xA0, 0xE3, 0x24, 0x90, 0x88, 0xE5, 0xFF, 0xFF, 0xFF, 0xEA, 0x18, 0x80, 0x9F, 0xE5, 0x01, 0x90, 0xA0, 0xE3, 0x00, 0x90, 0x88, 0xE5, 0x00, 0x90, 0x88, 0xE5, 0x00, 0x90, 0x88, 0xE5, 0x00, 0x90, 0x88, 0xE5, 0x04, 0xF0, 0x5E, 0xE2, 0x00, 0x2D, 0x80, 0x00, 0x04, 0x2D, 0x80, 0x00, 0x80, 0x28, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0x0B, 0xDA, 0xA0, 0xE3, 0x00, 0xA0, 0x0F, 0xE1, 0x80, 0xA0, 0x8A, 0xE3, 0x40, 0xA0, 0xCA, 0xE3, 0x0A, 0xF0, 0x29, 0xE1, 0xA1, 0x00, 0x00, 0xEB, 0xFE, 0xFF, 0xFF, 0xEA, 0x0E, 0xF0, 0xA0, 0xE1, 0x04, 0xF0, 0x4E, 0xE2, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0x1C, 0x30, 0x9F, 0xE5, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0x20, 0x93, 0xE5, 0x03, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0x82, 0xE0, 0x00, 0x30, 0x91, 0xE5, 0x02, 0x00, 0x53, 0xE1, 0xFC, 0xFF, 0xFF, 0xDA, 0x00, 0xA8, 0x1B, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0xA0, 0xE1, 0xF0, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x1C, 0x20, 0xA0, 0xE3, 0xD8, 0x80, 0x9F, 0xE5, 0x14, 0xD0, 0x4D, 0xE2, 0x00, 0x30, 0x98, 0xE5, 0x84, 0x92, 0xA0, 0xE1, 0x03, 0xC0, 0x89, 0xE0, 0x02, 0x10, 0x9C, 0xE7, 0x18, 0x30, 0xA0, 0xE3, 0x03, 0x20, 0x9C, 0xE7, 0x00, 0x00, 0x52, 0xE3, 0x01, 0xA0, 0xA0, 0x13, 0x02, 0xA0, 0xA0, 0x03, 0x01, 0x60, 0x11, 0xE2, 0x2B, 0x00, 0x00, 0x0A, 0x02, 0x09, 0xA0, 0xE3, 0x0A, 0x10, 0xA0, 0xE1, 0x18, 0x60, 0x9C, 0xE5, 0x6E, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x50, 0xA0, 0xE3, 0x00, 0x30, 0x98, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x03, 0x30, 0x89, 0xE0, 0x0C, 0x20, 0x93, 0xE5, 0x11, 0x1A, 0xA0, 0xE3, 0x04, 0x20, 0x8D, 0xE5, 0x10, 0x70, 0xA0, 0xE3, 0x07, 0xC0, 0x93, 0xE7, 0x01, 0x40, 0xA0, 0xE3, 0x0C, 0x50, 0x8D, 0xE5, 0x06, 0x20, 0xA0, 0xE1, 0x10, 0x40, 0x8D, 0xE5, 0x05, 0x30, 0xA0, 0xE1, 0x08, 0xC0, 0x8D, 0xE5, 0xB5, 0x00, 0x00, 0xEB, 0x02, 0x09, 0xA0, 0xE3, 0x00, 0x30, 0x98, 0xE5, 0x0A, 0x10, 0xA0, 0xE1, 0x03, 0x30, 0x89, 0xE0, 0x18, 0x60, 0x93, 0xE5, 0x57, 0x01, 0x00, 0xEB, 0x00, 0x20, 0x98, 0xE5, 0x00, 0x00, 0x8D, 0xE5, 0x02, 0x20, 0x89, 0xE0, 0x0C, 0x30, 0x92, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x30, 0x8D, 0xE5, 0x21, 0x1A, 0xA0, 0xE3, 0x07, 0xC0, 0x92, 0xE7, 0xFF, 0x30, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE5, 0x05, 0x30, 0xA0, 0xE1, 0x10, 0x40, 0x8D, 0xE5, 0x06, 0x20, 0xA0, 0xE1, 0x08, 0xC0, 0x8D, 0xE5, 0xA0, 0x00, 0x00, 0xEB, 0x17, 0x00, 0x00, 0xEA, 0x40, 0x09, 0x00, 0x00, 0x02, 0x09, 0xA0, 0xE3, 0x0A, 0x10, 0xA0, 0xE1, 0x18, 0x50, 0x9C, 0xE5, 0x42, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0xE0, 0x98, 0xE5, 0x0C, 0x30, 0xA0, 0xE3, 0x0E, 0xE0, 0x89, 0xE0, 0x03, 0x20, 0x9E, 0xE7, 0x11, 0x1A, 0xA0, 0xE3, 0x04, 0x20, 0x8D, 0xE5, 0x04, 0x30, 0x83, 0xE2, 0x03, 0xC0, 0x9E, 0xE7, 0x14, 0x20, 0xA0, 0xE3, 0x08, 0xC0, 0x8D, 0xE5, 0x06, 0x30, 0xA0, 0xE1, 0x02, 0x40, 0x9E, 0xE7, 0x01, 0xC0, 0xA0, 0xE3, 0x10, 0xC0, 0x8D, 0xE5, 0x05, 0x20, 0xA0, 0xE1, 0x0C, 0x40, 0x8D, 0xE5, 0x87, 0x00, 0x00, 0xEB, 0xF0, 0xAF, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xEC, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xEA, 0x00, 0x00, 0xEB, 0x00, 0xA8, 0x1B, 0xE9, 0xE8, 0x00, 0x00, 0xEB, 0x00, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x30, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0xC0, 0x50, 0xE2, 0x0A, 0x00, 0x00, 0x1A, 0x44, 0x50, 0x9F, 0xE5, 0x00, 0x30, 0x95, 0xE5, 0x10, 0x40, 0xA0, 0xE3, 0x04, 0x10, 0x93, 0xE7, 0x0C, 0x00, 0xA0, 0xE1, 0xE5, 0x00, 0x00, 0xEB, 0x00, 0x30, 0x95, 0xE5, 0x04, 0x10, 0x93, 0xE7, 0x01, 0x00, 0xA0, 0xE3, 0xE1, 0x00, 0x00, 0xEB, 0x30, 0xA8, 0x1B, 0xE9, 0x18, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0x10, 0x00, 0xA0, 0xE3, 0x8C, 0x32, 0x83, 0xE0, 0x00, 0x10, 0x93, 0xE7, 0x0C, 0x00, 0xA0, 0xE1, 0xD9, 0x00, 0x00, 0xEB, 0x30, 0xA8, 0x1B, 0xE9, 0x40, 0x09, 0x00, 0x00, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0x4C, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0x93, 0xE5, 0x01, 0x00, 0x40, 0xE2, 0x80, 0x32, 0x92, 0xE7, 0x04, 0xB0, 0x4C, 0xE2, 0x03, 0x00, 0x53, 0xE3, 0x03, 0xF1, 0x9F, 0x97, 0x0B, 0x00, 0x00, 0xEA, 0x1C, 0x03, 0x00, 0x00, 0xFC, 0x02, 0x00, 0x00, 0x10, 0x03, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x76, 0xFF, 0xFF, 0xEB, 0x1C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0xA8, 0x1B, 0xE9, 0xC7, 0xFF, 0xFF, 0xEB, 0xF9, 0xFF, 0xFF, 0xEA, 0xD0, 0xFF, 0xFF, 0xEB, 0x00, 0xA8, 0x1B, 0xE9, 0x40, 0x09, 0x00, 0x00, 0x48, 0x0D, 0x00, 0x00, 0x0D, 0xC0, 0xA0, 0xE1, 0x30, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x1A, 0x00, 0x00, 0xEB, 0x0A, 0x3B, 0xA0, 0xE3, 0x0D, 0x30, 0x83, 0xE2, 0x02, 0x35, 0x83, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0xC3, 0xE5, 0x44, 0x50, 0x9F, 0xE5, 0x44, 0x40, 0x9F, 0xE5, 0x00, 0x20, 0x95, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xAA, 0x02, 0x01, 0xC0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0xD3, 0xFF, 0xFF, 0xEB, 0x0A, 0x3B, 0xA0, 0xE3, 0x14, 0x30, 0x83, 0xE2, 0x00, 0x10, 0x94, 0xE5, 0x02, 0x35, 0x83, 0xE2, 0x00, 0x20, 0x93, 0xE5, 0x0A, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x81, 0xE5, 0x45, 0xFF, 0xFF, 0xEB, 0xEE, 0xFF, 0xFF, 0xEA, 0x3C, 0x09, 0x00, 0x00, 0x40, 0x09, 0x00, 0x00, 0x30, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0xF0, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE1, 0x02, 0x35, 0xA0, 0xE3, 0x03, 0x40, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE1, 0x02, 0x79, 0xA0, 0xE3, 0x14, 0xE0, 0xA0, 0xE3, 0x03, 0xE0, 0x8E, 0xE0, 0x1F, 0x60, 0xA0, 0xE3, 0x0A, 0x3B, 0x83, 0xE2, 0x00, 0x20, 0x83, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0xC0, 0x80, 0xE2, 0x80, 0x13, 0xA0, 0xE1, 0x02, 0x30, 0x81, 0xE0, 0x04, 0x20, 0x82, 0xE2, 0x7F, 0x00, 0x52, 0xE3, 0x04, 0x50, 0x83, 0xE7, 0xFA, 0xFF, 0xFF, 0xDA, 0x80, 0x73, 0x84, 0xE7, 0x80, 0x63, 0x8E, 0xE7, 0x0C, 0x00, 0xA0, 0xE1, 0x3F, 0x00, 0x50, 0xE3, 0xF2, 0xFF, 0xFF, 0xDA, 0x02, 0x35, 0xA0, 0xE3, 0x0A, 0x3B, 0x83, 0xE2, 0x0F, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x83, 0xE5, 0xF0, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0xA0, 0x00, 0xA0, 0xE1, 0x7F, 0x00, 0x00, 0xE2, 0x10, 0x30, 0x9F, 0xE5, 0x80, 0x00, 0x80, 0xE2, 0x00, 0x01, 0x93, 0xE7, 0x04, 0xB0, 0x4C, 0xE2, 0xFF, 0x00, 0x60, 0xE2, 0x00, 0xA8, 0x1B, 0xE9, 0x44, 0x09, 0x00, 0x00, 0x0D, 0xC0, 0xA0, 0xE1, 0xF0, 0xDF, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x56, 0x48, 0xA0, 0xE3, 0x22, 0x4C, 0x84, 0xE2, 0x10, 0xD0, 0x4D, 0xE2, 0x0C, 0x90, 0x9B, 0xE5, 0x07, 0x80, 0xA0, 0xE3, 0x10, 0xA0, 0x9B, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x2C, 0x10, 0x0B, 0xE5, 0x30, 0x20, 0x0B, 0xE5, 0x03, 0x60, 0xA0, 0xE1, 0x08, 0x50, 0x9B, 0xE5, 0x5C, 0x00, 0x00, 0xEB, 0xFF, 0x30, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE1, 0x01, 0x30, 0x53, 0xE2, 0xF9, 0xFF, 0xFF, 0x5A, 0x09, 0x00, 0xA0, 0xE1, 0xDC, 0xFF, 0xFF, 0xEB, 0x00, 0x90, 0xA0, 0xE1, 0x80, 0x00, 0x5A, 0xE3, 0x00, 0xA0, 0xA0, 0x03, 0x02, 0x00, 0x00, 0x0A, 0x7F, 0x00, 0x5A, 0xE3, 0x0F, 0xA0, 0xA0, 0xC3, 0x1F, 0xA0, 0xA0, 0xD3, 0x08, 0xC0, 0xA0, 0xE3, 0x02, 0xC5, 0x8C, 0xE2, 0xFF, 0x1C, 0xA0, 0xE3, 0xFF, 0x10, 0x81, 0xE2, 0x0C, 0x00, 0xA0, 0xE3, 0x07, 0x00, 0x78, 0xE3, 0x00, 0x30, 0xA0, 0xB3, 0x01, 0x30, 0xA0, 0xA3, 0x04, 0x00, 0x55, 0xE1, 0x00, 0x30, 0xA0, 0x23, 0x01, 0x20, 0x06, 0xE0, 0x87, 0x23, 0x8C, 0xE7, 0x00, 0x00, 0x53, 0xE3, 0x04, 0x30, 0x9B, 0xE5, 0x02, 0x05, 0x80, 0xE2, 0x01, 0x30, 0x03, 0xE0, 0x87, 0x33, 0x80, 0xE7, 0x30, 0x10, 0x1B, 0xE5, 0x05, 0x05, 0xA0, 0xE1, 0x2C, 0x30, 0x1B, 0xE5, 0x81, 0x13, 0xA0, 0xE1, 0x34, 0x10, 0x0B, 0xE5, 0x23, 0x38, 0xA0, 0xE1, 0x38, 0x30, 0x0B, 0xE5, 0x08, 0x00, 0x00, 0x0A, 0xA4, 0x40, 0xA0, 0xE1, 0x01, 0x80, 0x48, 0xE2, 0x07, 0x00, 0x78, 0xE3, 0x00, 0x30, 0xA0, 0xB3, 0x01, 0x30, 0xA0, 0xA3, 0x04, 0x00, 0x55, 0xE1, 0x00, 0x30, 0xA0, 0x23, 0x00, 0x00, 0x53, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x04, 0x10, 0xA0, 0xE1, 0x91, 0x00, 0x00, 0xEB, 0x18, 0x30, 0xA0, 0xE3, 0x02, 0x35, 0x83, 0xE2, 0x00, 0x0B, 0xA0, 0xE1, 0x20, 0x0B, 0xA0, 0xE1, 0x25, 0xC0, 0xA0, 0xE3, 0x02, 0xC5, 0x8C, 0xE2, 0x28, 0xE0, 0xA0, 0xE3, 0x02, 0xE5, 0x8E, 0xE2, 0x29, 0x40, 0xA0, 0xE3, 0x02, 0x45, 0x84, 0xE2, 0x10, 0x50, 0xA0, 0xE3, 0x88, 0x05, 0x80, 0xE1, 0x87, 0x03, 0x83, 0xE7, 0x24, 0x00, 0xA0, 0xE3, 0x02, 0x35, 0x80, 0xE2, 0x87, 0xA3, 0xC3, 0xE7, 0x0F, 0x20, 0xA0, 0xE3, 0x87, 0x23, 0xCC, 0xE7, 0x02, 0x55, 0x85, 0xE2, 0x87, 0x03, 0xCE, 0xE7, 0x04, 0x60, 0xA0, 0xE3, 0x14, 0x30, 0x9B, 0xE5, 0x02, 0x65, 0x86, 0xE2, 0x87, 0x93, 0xC4, 0xE7, 0x00, 0x00, 0x53, 0xE3, 0x1F, 0x30, 0xA0, 0xE3, 0x87, 0x33, 0x85, 0xE7, 0xFF, 0x1C, 0xA0, 0xE3, 0x2C, 0x30, 0x1B, 0xE5, 0xFF, 0x10, 0x81, 0xE2, 0x01, 0x10, 0x03, 0xE0, 0x87, 0x13, 0x86, 0xE7, 0x38, 0x10, 0x1B, 0x15, 0xC2, 0x3C, 0x81, 0x13, 0x38, 0x10, 0x1B, 0x05, 0x03, 0x39, 0x81, 0x03, 0x34, 0x10, 0x1B, 0xE5, 0x02, 0x25, 0xA0, 0xE3, 0x03, 0x30, 0x81, 0xE1, 0x87, 0x33, 0x82, 0xE7, 0xF0, 0xAF, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0x02, 0x25, 0xA0, 0xE3, 0x80, 0x33, 0x92, 0xE7, 0x04, 0xB0, 0x4C, 0xE2, 0x01, 0x39, 0xC3, 0xE3, 0x02, 0x39, 0x83, 0xE3, 0x80, 0x33, 0x82, 0xE7, 0x00, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x10, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE1, 0x79, 0xFF, 0xFF, 0xEB, 0x29, 0x30, 0xA0, 0xE3, 0x02, 0x35, 0x83, 0xE2, 0x84, 0x03, 0xC3, 0xE7, 0x10, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x00, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x80, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0x02, 0x00, 0x00, 0x0A, 0x7F, 0x00, 0x51, 0xE3, 0x0F, 0x10, 0xA0, 0xC3, 0x1F, 0x10, 0xA0, 0xD3, 0x24, 0x30, 0xA0, 0xE3, 0x02, 0x35, 0x83, 0xE2, 0x80, 0x13, 0xC3, 0xE7, 0x00, 0xA8, 0x1B, 0xE9, 0x0D, 0xC0, 0xA0, 0xE1, 0x30, 0xD8, 0x2D, 0xE9, 0x04, 0xB0, 0x4C, 0xE2, 0x56, 0x28, 0xA0, 0xE3, 0x22, 0x2C, 0x82, 0xE2, 0x07, 0x40, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x00, 0x50, 0xA0, 0xE1, 0x08, 0x00, 0x00, 0x2A, 0xA2, 0x20, 0xA0, 0xE1, 0x01, 0x40, 0x44, 0xE2, 0x07, 0x00, 0x74, 0xE3, 0x00, 0x30, 0xA0, 0xB3, 0x01, 0x30, 0xA0, 0xA3, 0x02, 0x00, 0x51, 0xE1, 0x00, 0x30, 0xA0, 0x23, 0x00, 0x00, 0x53, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x01, 0x05, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE1, 0x33, 0x00, 0x00, 0xEB, 0x18, 0x30, 0xA0, 0xE3, 0x02, 0x35, 0x83, 0xE2, 0x00, 0x0B, 0xA0, 0xE1, 0x20, 0x0B, 0xA0, 0xE1, 0x84, 0x05, 0x80, 0xE1, 0x85, 0x03, 0x83, 0xE7, 0x30, 0xA8, 0x1B, 0xE9, 0x01, 0xC0, 0x20, 0xE0, 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0x61, 0x42, 0x21, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x60, 0x42, 0x01, 0x00, 0x50, 0xE1, 0x19, 0x00, 0x00, 0x3A, 0x01, 0x02, 0x51, 0xE3, 0x00, 0x00, 0x51, 0x31, 0x01, 0x12, 0xA0, 0x31, 0x03, 0x32, 0xA0, 0x31, 0xFA, 0xFF, 0xFF, 0x3A, 0x02, 0x01, 0x51, 0xE3, 0x00, 0x00, 0x51, 0x31, 0x81, 0x10, 0xA0, 0x31, 0x83, 0x30, 0xA0, 0x31, 0xFA, 0xFF, 0xFF, 0x3A, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x40, 0x20, 0x03, 0x20, 0x82, 0x21, 0xA1, 0x00, 0x50, 0xE1, 0xA1, 0x00, 0x40, 0x20, 0xA3, 0x20, 0x82, 0x21, 0x21, 0x01, 0x50, 0xE1, 0x21, 0x01, 0x40, 0x20, 0x23, 0x21, 0x82, 0x21, 0xA1, 0x01, 0x50, 0xE1, 0xA1, 0x01, 0x40, 0x20, 0xA3, 0x21, 0x82, 0x21, 0x00, 0x00, 0x50, 0xE3, 0x23, 0x32, 0xB0, 0x11, 0x21, 0x12, 0xA0, 0x11, 0xEF, 0xFF, 0xFF, 0x1A, 0x02, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x5C, 0xE3, 0x00, 0x00, 0x60, 0x42, 0x0E, 0xF0, 0xA0, 0xE1, 0x04, 0xE0, 0x2D, 0xE5, 0x01, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x80, 0xBD, 0xE8, 0x0E, 0xF0, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x1F, 0x00, 0x00, 0x0A, 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x19, 0x00, 0x00, 0x3A, 0x01, 0x02, 0x51, 0xE3, 0x00, 0x00, 0x51, 0x31, 0x01, 0x12, 0xA0, 0x31, 0x03, 0x32, 0xA0, 0x31, 0xFA, 0xFF, 0xFF, 0x3A, 0x02, 0x01, 0x51, 0xE3, 0x00, 0x00, 0x51, 0x31, 0x81, 0x10, 0xA0, 0x31, 0x83, 0x30, 0xA0, 0x31, 0xFA, 0xFF, 0xFF, 0x3A, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x40, 0x20, 0x03, 0x20, 0x82, 0x21, 0xA1, 0x00, 0x50, 0xE1, 0xA1, 0x00, 0x40, 0x20, 0xA3, 0x20, 0x82, 0x21, 0x21, 0x01, 0x50, 0xE1, 0x21, 0x01, 0x40, 0x20, 0x23, 0x21, 0x82, 0x21, 0xA1, 0x01, 0x50, 0xE1, 0xA1, 0x01, 0x40, 0x20, 0xA3, 0x21, 0x82, 0x21, 0x00, 0x00, 0x50, 0xE3, 0x23, 0x32, 0xB0, 0x11, 0x21, 0x12, 0xA0, 0x11, 0xEF, 0xFF, 0xFF, 0x1A, 0x02, 0x00, 0xA0, 0xE1, 0x0E, 0xF0, 0xA0, 0xE1, 0x04, 0xE0, 0x2D, 0xE5, 0xDA, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 }; /* end binary data. size = 3396 bytes */ |
From: M. R. B. <mr...@us...> - 2002-10-29 15:33:20
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica In directory usw-pr-cvs1:/tmp/cvs-serv16199 Added Files: Tag: 1.1 Makefile Log Message: Moved. --- NEW FILE: Makefile --- O_TARGET := aica.o obj-y := main.o obj-m := $(O_TARGET) include $(TOPDIR)/Rules.make clean: rm -f core *.o *.a *.s |
From: M. R. B. <mr...@us...> - 2002-10-29 15:30:43
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica In directory usw-pr-cvs1:/tmp/cvs-serv14709/aica Log Message: Directory /cvsroot/linuxdc/linux-sh-dc/sound/oss/aica added to the repository |
From: M. R. B. <mr...@us...> - 2002-10-29 15:29:37
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound/oss In directory usw-pr-cvs1:/tmp/cvs-serv14093/oss Log Message: Directory /cvsroot/linuxdc/linux-sh-dc/sound/oss added to the repository |
From: M. R. B. <mr...@us...> - 2002-10-29 15:29:15
|
Update of /cvsroot/linuxdc/linux-sh-dc/sound In directory usw-pr-cvs1:/tmp/cvs-serv13842/sound Log Message: Directory /cvsroot/linuxdc/linux-sh-dc/sound added to the repository |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:52
|
Update of /cvsroot/linuxdc/linux-sh-dc/arch/sh/mm In directory usw-pr-cvs1:/tmp/cvs-serv9028/arch/sh/mm Modified Files: Makefile Log Message: Linux-SH 2.5.44 switchover Index: Makefile =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/arch/sh/mm/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 1 May 2002 10:00:20 -0000 1.2 +++ Makefile 29 Oct 2002 15:20:20 -0000 1.3 @@ -1,18 +1,10 @@ # # Makefile for the Linux SuperH-specific parts of the memory manager. # -# Note! Dependencies are done automagically by 'make dep', which also -# removes any old dependencies. DON'T put your own dependencies here -# unless it's something special (ie not a .c file). -# -# Note 2! The CFLAGS definition is now in the main makefile... -O_TARGET := mm.o obj-y := init.o fault.o extable.o clear_page.o copy_page.o obj-$(CONFIG_CPU_SH3) += cache-sh3.o -obj-$(CONFIG_CPU_SH4) += cache-sh4.o ioremap.o sq.o - -USE_STANDARD_AS_RULE := true +obj-$(CONFIG_CPU_SH4) += cache-sh4.o ioremap.o include $(TOPDIR)/Rules.make |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:52
|
Update of /cvsroot/linuxdc/linux-sh-dc/arch/sh In directory usw-pr-cvs1:/tmp/cvs-serv9028/arch/sh Modified Files: config.in Log Message: Linux-SH 2.5.44 switchover Index: config.in =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/arch/sh/config.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- config.in 23 Jan 2002 06:56:48 -0000 1.5 +++ config.in 29 Oct 2002 15:20:19 -0000 1.6 @@ -9,26 +9,16 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y +define_bool CONFIG_VARIABLE_CLOCK_TICK_RATE y -mainmenu_option next_comment -comment 'Code maturity level options' -bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL -endmenu +source init/Config.in mainmenu_option next_comment -comment 'Loadable module support' -bool 'Enable loadable module support' CONFIG_MODULES -if [ "$CONFIG_MODULES" = "y" ]; then - bool ' Set version information on all module symbols' CONFIG_MODVERSIONS - bool ' Kernel module loader' CONFIG_KMOD -fi -endmenu +comment 'System type' -mainmenu_option next_comment -comment 'Processor type and features' choice 'SuperH system type' \ - "Generic CONFIG_SH_GENERIC \ - SolutionEngine CONFIG_SH_SOLUTION_ENGINE \ + "SolutionEngine CONFIG_SH_SOLUTION_ENGINE \ SolutionEngine7751 CONFIG_SH_7751_SOLUTION_ENGINE \ STB1_Harp CONFIG_SH_STB1_HARP \ STB1_Overdrive CONFIG_SH_STB1_OVERDRIVE \ @@ -43,53 +33,29 @@ BigSur CONFIG_SH_BIGSUR \ SH2000 CONFIG_SH_SH2000 \ ADX CONFIG_SH_ADX \ - BareCPU CONFIG_SH_UNKNOWN" Generic - -# The SH7750 RTC module is disabled in the Dreamcast -if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then - define_bool CONFIG_SH_RTC n -else - define_bool CONFIG_SH_RTC y -fi + BareCPU CONFIG_SH_UNKNOWN" BareCPU -if [ "$CONFIG_SH_HP620" = "y" -o "$CONFIG_SH_HP680" = "y" -o \ - "$CONFIG_SH_HP690" = "y" ]; then - define_bool CONFIG_SH_HP600 y -fi +# Board-specific config.in's go here - restructure +# source arch/sh/boards/adx/Config.in +# source arch/sh/boards/bigsur/Config.in +# source arch/sh/boards/cat68701/Config.in +# source arch/sh/boards/cqreek/Config.in +# source arch/sh/boards/dmida/Config.in +# source arch/sh/boards/dreamcast/Config.in +# source arch/sh/boards/ec3104/Config.in +# source arch/sh/boards/harp/Config.in +# source arch/sh/boards/hp6xx/hp620/Config.in +# source arch/sh/boards/hp6xx/hp680/Config.in +# source arch/sh/boards/hp6xx/hp690/Config.in +# source arch/sh/boards/overdrive/Config.in +# source arch/sh/boards/se/770x/Config.in +# source arch/sh/boards/se/7751/Config.in +# source arch/sh/boards/sh2000/Config.in +# source arch/sh/boards/unknown/Config.in -choice 'Processor type' \ - "SH7707 CONFIG_CPU_SUBTYPE_SH7707 \ - SH7708 CONFIG_CPU_SUBTYPE_SH7708 \ - SH7709 CONFIG_CPU_SUBTYPE_SH7709 \ - SH7750 CONFIG_CPU_SUBTYPE_SH7750 \ - SH7751 CONFIG_CPU_SUBTYPE_SH7751 \ - ST40STB1 CONFIG_CPU_SUBTYPE_ST40STB1" SH7708 -if [ "$CONFIG_CPU_SUBTYPE_SH7707" = "y" ]; then - define_bool CONFIG_CPU_SH3 y - define_bool CONFIG_CPU_SH4 n -fi -if [ "$CONFIG_CPU_SUBTYPE_SH7708" = "y" ]; then - define_bool CONFIG_CPU_SH3 y - define_bool CONFIG_CPU_SH4 n -fi -if [ "$CONFIG_CPU_SUBTYPE_SH7709" = "y" ]; then - define_bool CONFIG_CPU_SH3 y - define_bool CONFIG_CPU_SH4 n -fi -if [ "$CONFIG_CPU_SUBTYPE_SH7750" = "y" ]; then - define_bool CONFIG_CPU_SH3 n - define_bool CONFIG_CPU_SH4 y -fi -if [ "$CONFIG_CPU_SUBTYPE_SH7751" = "y" ]; then - define_bool CONFIG_CPU_SH3 n - define_bool CONFIG_CPU_SH4 y -fi -if [ "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then - define_bool CONFIG_CPU_SH3 n - define_bool CONFIG_CPU_SH4 y -fi -bool 'Little Endian' CONFIG_CPU_LITTLE_ENDIAN # Platform-specific memory start and size definitions +# XXX: break these out into the board-specific configs above +if [ "$CONFIG_MEMORY_OVERRIDE" != "y" ]; then if [ "$CONFIG_SH_SOLUTION_ENGINE" = "y" ]; then define_hex CONFIG_MEMORY_START 0c000000 define_hex CONFIG_MEMORY_SIZE 02000000 @@ -106,53 +72,26 @@ define_hex CONFIG_MEMORY_SIZE 00400000 define_bool CONFIG_MEMORY_SET y fi -if [ "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then - bool 'Memory on LMI' CONFIG_ST40_LMI_MEMORY - if [ "$CONFIG_ST40_LMI_MEMORY" = "y" ] ; then - define_hex CONFIG_MEMORY_START 08000000 - define_hex CONFIG_MEMORY_SIZE 00400000 +if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then + define_hex CONFIG_MEMORY_START 0c000000 + define_hex CONFIG_MEMORY_SIZE 01000000 define_bool CONFIG_MEMORY_SET y - fi fi if [ "$CONFIG_SH_ADX" = "y" ]; then define_hex CONFIG_MEMORY_START 08000000 define_hex CONFIG_MEMORY_SIZE 00400000 define_bool CONFIG_MEMORY_SET y fi -if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then - define_hex CONFIG_MEMORY_START 0c000000 - define_hex CONFIG_MEMORY_SIZE 01000000 - define_bool CONFIG_MEMORY_SET y fi # If none of the above have set memory start/size, ask the user. -if [ "$CONFIG_MEMORY_SET" != "y" ]; then +bool 'Override default load address and memory size' CONFIG_MEMORY_OVERRIDE +if [ "$CONFIG_MEMORY_SET" != "y" -o "$CONFIG_MEMORY_OVERRIDE" = "y" ]; then hex 'Physical memory start address' CONFIG_MEMORY_START 08000000 hex 'Physical memory size' CONFIG_MEMORY_SIZE 00400000 fi -endmenu - -if [ "$CONFIG_SH_HP690" = "y" ]; then - define_bool CONFIG_DISCONTIGMEM y -else - define_bool CONFIG_DISCONTIGMEM n -fi -mainmenu_option next_comment -comment 'General setup' - -# Even on SuperH devices which don't have an ISA bus, -# this variable helps the PCMCIA modules handle -# IRQ requesting properly -- Greg Banks. -define_bool CONFIG_ISA y -define_bool CONFIG_EISA n -define_bool CONFIG_MCA n -define_bool CONFIG_SBUS n - -bool 'Networking support' CONFIG_NET - -if [ "$CONFIG_SH_GENERIC" = "y" -o "$CONFIG_SH_SOLUTION_ENGINE" = "y" -o \ - "$CONFIG_SH_UNKNOWN" = "y" -o "$CONFIG_SH_CAT68701" = "y" -o \ - "$CONFIG_SH_ADX" = "y" ]; then +if [ "$CONFIG_SH_ADX" = "y" -o "$CONFIG_SH_SOLUTION_ENGINE" = "y" -o \ + "$CONFIG_SH_UNKNOWN" = "y" -o "$CONFIG_SH_CAT68701" = "y" ]; then bool 'Compact Flash Enabler support' CONFIG_CF_ENABLER fi @@ -168,19 +107,102 @@ fi fi -bool 'Hitachi HD64461 companion chip support' CONFIG_HD64461 -if [ "$CONFIG_HD64461" = "y" ]; then +endmenu + +# The SH7750 RTC module is disabled in the Dreamcast +if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then + define_bool CONFIG_SH_RTC n + define_bool CONFIG_PCI_AUTO n +else + define_bool CONFIG_SH_RTC y +fi + +if [ "$CONFIG_SH_HP620" = "y" -o "$CONFIG_SH_HP680" = "y" -o \ + "$CONFIG_SH_HP690" = "y" ]; then + define_bool CONFIG_SH_HP600 y +fi + +if [ "$CONFIG_SH_HP690" = "y" ]; then + define_bool CONFIG_DISCONTIGMEM y +else + define_bool CONFIG_DISCONTIGMEM n +fi + +mainmenu_option next_comment +comment 'Processor type and features' + +choice 'Processor type' \ + "SH7707 CONFIG_CPU_SUBTYPE_SH7707 \ + SH7708 CONFIG_CPU_SUBTYPE_SH7708 \ + SH7709 CONFIG_CPU_SUBTYPE_SH7709 \ + SH7750 CONFIG_CPU_SUBTYPE_SH7750 \ + SH7751 CONFIG_CPU_SUBTYPE_SH7751 \ + ST40STB1 CONFIG_CPU_SUBTYPE_ST40STB1" SH7708 + +if [ "$CONFIG_CPU_SUBTYPE_SH7707" = "y" -o "$CONFIG_CPU_SUBTYPE_SH7708" = "y" -o \ + "$CONFIG_CPU_SUBTYPE_SH7709" = "y" ]; then + define_bool CONFIG_CPU_SH3 y + define_bool CONFIG_CPU_SH4 n +else + if [ "$CONFIG_CPU_SUBTYPE_SH7750" = "y" -o "$CONFIG_CPU_SUBTYPE_SH7751" = "y" -o \ + "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then + define_bool CONFIG_CPU_SH3 n + define_bool CONFIG_CPU_SH4 y + fi +fi + +# XXX: needs to lose subtype for system type +if [ "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then + bool 'Memory on LMI' CONFIG_ST40_LMI_MEMORY + if [ "$CONFIG_ST40_LMI_MEMORY" = "y" ] ; then + define_hex CONFIG_MEMORY_START 08000000 + define_hex CONFIG_MEMORY_SIZE 00400000 + define_bool CONFIG_MEMORY_SET y + fi +fi + +# We can also split out companion chip Config.in's +# source arch/sh/cchips/hd6446x/hd64461/Config.in +# source arch/sh/cchips/hd6446x/hd64465/Config.in + +if [ "$CONFIG_CPU_SUBTYPE_SH7709" = "y" ]; then + bool 'Hitachi HD64461 companion chip support' CONFIG_HD64461 + if [ "$CONFIG_HD64461" = "y" ]; then int 'HD64461 IRQ' CONFIG_HD64461_IRQ 36 bool 'HD64461 PCMCIA enabler' CONFIG_HD64461_ENABLER + fi fi -bool 'Hitachi HD64465 companion chip support' CONFIG_HD64465 -if [ "$CONFIG_HD64465" = "y" ]; then +if [ "$CONFIG_CPU_SUBTYPE_SH7750" = "y" ]; then + bool 'Hitachi HD64465 companion chip support' CONFIG_HD64465 + if [ "$CONFIG_HD64465" = "y" ]; then hex 'HD64465 start address' CONFIG_HD64465_IOBASE b0000000 int 'HD64465 IRQ' CONFIG_HD64465_IRQ 5 + fi fi +bool 'Little Endian' CONFIG_CPU_LITTLE_ENDIAN +dep_bool 'Preemptible Kernel (EXPERIMENTAL)' CONFIG_PREEMPT $CONFIG_EXPERIMENTAL +bool 'Wakeup UBC on startup' CONFIG_UBC_WAKEUP bool 'DMA controller (DMAC) support' CONFIG_SH_DMA +bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL +if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then + string 'Initial kernel command string' CONFIG_CMDLINE "console=ttySC1,115200" +fi + +endmenu + + +mainmenu_option next_comment +comment 'Bus options (PCI, PCMCIA, EISA, MCA, ISA)' + +# Even on SuperH devices which don't have an ISA bus, +# this variable helps the PCMCIA modules handle +# IRQ requesting properly -- Greg Banks. +define_bool CONFIG_ISA y +define_bool CONFIG_EISA n +define_bool CONFIG_MCA n +define_bool CONFIG_SBUS n bool 'PCI support' CONFIG_PCI if [ "$CONFIG_PCI" = "y" ]; then @@ -194,7 +216,7 @@ if [ "$CONFIG_PCI_GODIRECT" = "y" -o "$CONFIG_PCI_GOANY" = "y" ]; then define_bool CONFIG_PCI_DIRECT y fi - bool 'Cache and PCI noncoherent' CONFIG_SH_PCIDMA_NONCOHERENT n + bool 'Cache and PCI noncoherent' CONFIG_SH_PCIDMA_NONCOHERENT fi source drivers/pci/Config.in @@ -203,13 +225,18 @@ if [ "$CONFIG_HOTPLUG" = "y" ] ; then source drivers/pcmcia/Config.in + source drivers/hotplug/Config.in else define_bool CONFIG_PCMCIA n + define_bool CONFIG_HOTPLUG_PCI n fi -bool 'System V IPC' CONFIG_SYSVIPC -bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT -bool 'Sysctl support' CONFIG_SYSCTL +endmenu + + +mainmenu_option next_comment +comment 'Executable file formats' + if [ "$CONFIG_PROC_FS" = "y" ]; then choice 'Kernel core (/proc/kcore) format' \ "ELF CONFIG_KCORE_ELF \ @@ -218,46 +245,52 @@ tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC -source drivers/parport/Config.in - endmenu source drivers/mtd/Config.in -source drivers/block/Config.in - -source drivers/md/Config.in +source drivers/parport/Config.in -if [ "$CONFIG_NET" = "y" ]; then - source net/Config.in -fi +source drivers/block/Config.in mainmenu_option next_comment -comment 'ATA/IDE/MFM/RLL support' +comment 'ATA/ATAPI/MFM/RLL support' -tristate 'ATA/IDE/MFM/RLL support' CONFIG_IDE +tristate 'ATA/ATAPI/MFM/RLL support' CONFIG_IDE if [ "$CONFIG_IDE" != "n" ]; then source drivers/ide/Config.in else - define_bool CONFIG_BLK_DEV_IDE_MODES n define_bool CONFIG_BLK_DEV_HD n fi endmenu mainmenu_option next_comment -comment 'SCSI support' +comment 'SCSI device support' -tristate 'SCSI support' CONFIG_SCSI +tristate 'SCSI device support' CONFIG_SCSI if [ "$CONFIG_SCSI" != "n" ]; then source drivers/scsi/Config.in fi endmenu +mainmenu_option next_comment +comment 'Old CD-ROM drivers (not SCSI, not IDE)' + +bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI +if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then + source drivers/cdrom/Config.in +fi +endmenu + +source drivers/md/Config.in + source drivers/ieee1394/Config.in if [ "$CONFIG_NET" = "y" ]; then + source net/Config.in + mainmenu_option next_comment comment 'Network device support' @@ -271,17 +304,16 @@ endmenu fi -mainmenu_option next_comment -comment 'Old CD-ROM drivers (not SCSI, not IDE)' +source net/ax25/Config.in -bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI -if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then - source drivers/cdrom/Config.in -fi -endmenu +source net/irda/Config.in + +source drivers/isdn/Config.in + +source drivers/telephony/Config.in # -# input before char - char/joystick depends on it. As does USB. +# input - input/joystick depends on it. As does USB. # source drivers/input/Config.in @@ -308,8 +340,7 @@ int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256 fi -if [ "$CONFIG_SH_GENERIC" = "y" -o \ - "$CONFIG_SH_CAT68701" = "y" -o \ +if [ "$CONFIG_SH_CAT68701" = "y" -o \ "$CONFIG_SH_STB1_HARP" = "y" -o \ "$CONFIG_SH_STB1_OVERDRIVE" = "y" -o \ "$CONFIG_SH_BIGSUR" = "y" -o \ @@ -324,15 +355,12 @@ if [ "$CONFIG_INPUT" != "n" ]; then dep_tristate ' Maple Bus keyboard support' CONFIG_MAPLE_KEYBOARD $CONFIG_INPUT dep_tristate ' Maple Bus mouse support' CONFIG_MAPLE_MOUSE $CONFIG_INPUT - dep_tristate ' Maple Light Gun support' CONFIG_MAPLE_LIGHTGUN $CONFIG_INPUT else comment 'Input core support is required for Maple input peripherals' fi endmenu fi -source drivers/char/joystick/Config.in - if [ "$CONFIG_PARPORT" != "n" ]; then dep_tristate 'Parallel printer support' CONFIG_PRINTER $CONFIG_PARPORT if [ "$CONFIG_PRINTER" != "n" ]; then @@ -347,7 +375,7 @@ bool 'Watchdog Timer Support' CONFIG_WATCHDOG if [ "$CONFIG_WATCHDOG" != "n" ]; then bool ' Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT - dep_tristate ' SH 3/4 Watchdog' CONFIG_SH_WDT $CONFIG_SUPERH + tristate ' SH 3/4 Watchdog' CONFIG_SH_WDT fi endmenu @@ -373,16 +401,19 @@ endmenu fi - mainmenu_option next_comment comment 'Sound' tristate 'Sound card support' CONFIG_SOUND if [ "$CONFIG_SOUND" != "n" ]; then - source drivers/sound/Config.in + source sound/Config.in fi endmenu +source drivers/usb/Config.in + +source net/bluetooth/Config.in + mainmenu_option next_comment comment 'Kernel hacking' @@ -392,3 +423,6 @@ bool 'Early printk support' CONFIG_SH_EARLY_PRINTK fi endmenu + +source security/Config.in +source lib/Config.in |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:49
|
Update of /cvsroot/linuxdc/linux-sh-dc In directory usw-pr-cvs1:/tmp/cvs-serv9028 Modified Files: ChangeLog.dc Makefile Log Message: Linux-SH 2.5.44 switchover Index: ChangeLog.dc =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/ChangeLog.dc,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- ChangeLog.dc 19 Oct 2002 10:58:37 -0000 1.56 +++ ChangeLog.dc 29 Oct 2002 15:20:16 -0000 1.57 @@ -1,3 +1,21 @@ +2002-10-29 M. R. Brown <mr...@li...> + + Linux-SH 2.5.44 switchover. + + * Documentation/Configure.help, arch/sh/config.in, + arch/sh/kernel/pci-dc.c, arch/sh/kernel/setup_dc.c, + drivers/char/joystick/Config.in, drivers/char/joystick/Makefile, + drivers/char/joystick/maplecontrol.c, + drivers/char/joystick/purupuru.c, include/asm-sh/dc_sysasic.h: Remove. + + * Makefile, arch/sh/config.in, arch/sh/mm/Makefile, + drivers/cdrom/gdrom.c, drivers/char/Makefile, + drivers/char/maple_keyb.c, drivers/char/maplemouse.c, + drivers/maple/Makefile, drivers/maple/maple.c, + drivers/mtd/maps/Config.in, drivers/video/pvr2fb.c, + include/linux/maple.h: Merge in changes from Linux-SH-restructure + 2.5.44, and break everything in the process. + 2002-10-18 Adrian McMenamin <ad...@mc...> * drivers/sound/aica/main.c: Parameterised Index: Makefile =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 1 May 2002 16:32:27 -0000 1.2 +++ Makefile 29 Oct 2002 15:20:16 -0000 1.3 @@ -1,29 +1,137 @@ VERSION = 2 -PATCHLEVEL = 4 -SUBLEVEL = 18 +PATCHLEVEL = 5 +SUBLEVEL = 44 EXTRAVERSION = -sh-dc +# *DOCUMENTATION* +# To see a list of typical targets execute "make help" +# More info can be located in ./Documentation/kbuild +# Comments in this file are targeted only to the developer, do not [...1203 lines suppressed...] + +define update-if-changed + if [ -r $@ ] && cmp -s $@ $@.tmp; then \ + echo ' (unchanged)'; \ + rm -f $@.tmp; \ + else \ + echo ' (updated)'; \ + mv -f $@.tmp $@; \ + fi +endef + +# $(call descend,<dir>,<target>) +# Recursively call a sub-make in <dir> with target <target> + +ifeq ($(KBUILD_VERBOSE),1) +descend = echo '$(MAKE) -f $(1)/Makefile $(2)'; +endif +descend += $(MAKE) -f $(1)/Makefile obj=$(1) $(2) + +FORCE: |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:25
|
Update of /cvsroot/linuxdc/linux-sh-dc/include/asm-sh In directory usw-pr-cvs1:/tmp/cvs-serv9028/include/asm-sh Modified Files: ide.h Removed Files: dc_sysasic.h Log Message: Linux-SH 2.5.44 switchover Index: ide.h =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/include/asm-sh/ide.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ide.h 1 May 2002 18:36:23 -0000 1.1 +++ ide.h 29 Oct 2002 15:20:22 -0000 1.2 @@ -17,15 +17,11 @@ #include <linux/config.h> #include <asm/machvec.h> -#include <asm/dc_sysasic.h> - #ifndef MAX_HWIFS /* Should never have less than 2, ide-pci.c(ide_match_hwif) requires it */ #define MAX_HWIFS 2 #endif -#define ide__sti() __sti() - static __inline__ int ide_default_irq_hp600(ide_ioreg_t base) { switch (base) { @@ -36,26 +32,11 @@ } } -static __inline__ int ide_default_irq_dreamcast(ide_ioreg_t base) -{ - switch (base) { - case 0x1f0: - return HW_EVENT_EXT0; - case 0x170: - return HW_EVENT_EXT1; - default: - return 0; - } -} - static __inline__ int ide_default_irq(ide_ioreg_t base) { if (MACH_HP600) { return ide_default_irq_hp600(base); } - if (MACH_DREAMCAST) { - return ide_default_irq_dreamcast(base); - } switch (base) { case 0x01f0: return 14; case 0x0170: return 15; @@ -112,7 +93,7 @@ static __inline__ void ide_init_default_hwifs(void) { -#ifndef CONFIG_BLK_DEV_IDEPCI +#ifndef CONFIG_PCI hw_regs_t hw; int index; @@ -121,33 +102,8 @@ hw.irq = ide_default_irq(ide_default_io_base(index)); ide_register_hw(&hw, NULL); } -#endif /* CONFIG_BLK_DEV_IDEPCI */ +#endif /* CONFIG_PCI */ } - -typedef union { - unsigned all : 8; /* all of the bits together */ - struct { - unsigned head : 4; /* always zeros here */ - unsigned unit : 1; /* drive select number, 0 or 1 */ - unsigned bit5 : 1; /* always 1 */ - unsigned lba : 1; /* using LBA instead of CHS */ - unsigned bit7 : 1; /* always 1 */ - } b; - } select_t; - -#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id)) -#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id)) -#define ide_check_region(from,extent) check_region((from), (extent)) -#define ide_request_region(from,extent,name) request_region((from), (extent), (name)) -#define ide_release_region(from,extent) release_region((from), (extent)) - -/* - * The following are not needed for the non-m68k ports - */ -#define ide_ack_intr(hwif) (1) -#define ide_fix_driveid(id) do {} while (0) -#define ide_release_lock(lock) do {} while (0) -#define ide_get_lock(lock, hdlr, data) do {} while (0) #endif /* __KERNEL__ */ --- dc_sysasic.h DELETED --- |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:25
|
Update of /cvsroot/linuxdc/linux-sh-dc/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv9028/include/linux Modified Files: maple.h Log Message: Linux-SH 2.5.44 switchover Index: maple.h =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/include/linux/maple.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- maple.h 23 Jan 2002 06:56:48 -0000 1.2 +++ maple.h 29 Oct 2002 15:20:22 -0000 1.3 @@ -64,6 +64,7 @@ #define MAPLE_FUNC_PURUPURU 0x100 #define MAPLE_FUNC_MOUSE 0x200 + struct maple_devinfo { unsigned long function; /* big endian! */ unsigned long function_data[3]; /* big endian! */ @@ -79,81 +80,48 @@ struct maple_driver; struct maple_device; - -#define MAPLEQ_LENGTH_GUN (1<<9) - struct mapleq { struct list_head list; - void *mq_privdata; - void *sendbuf; - char *recvbuf; /* points to ->buf, but 32-byte aligned */ - - unsigned char port, unit; - unsigned char command; - unsigned char done; - int length; - - void (*callback)(struct mapleq *mq); + struct maple_device *dev; + void *sendbuf, *recvbuf; + unsigned char command, length; unsigned char buf[1024+32]; }; struct maple_device { - unsigned char port; - unsigned char unit; - short lock; - - unsigned long function; /* Little endian */ + struct list_head list; + struct maple_driver *driver; + struct mapleq *mq; + void *private_data; + void (*callback)(struct mapleq *mq); + unsigned long when, interval, function; + int event; struct maple_devinfo devinfo; - + unsigned char port, unit; char product_name[32]; char product_license[64]; }; -/* Max devices per port */ -#define MAPLE_MAX_UNITS 6 - -struct maple_port { - unsigned char port; - unsigned char known_units; /* connected units */ - unsigned char units; /* units to connect/disconnect */ - void (*gunmode)(void *,int,int); - void *gunmode_data; - struct maple_device *dev[MAPLE_MAX_UNITS]; -}; - -struct maple_driver_data { - struct list_head list; - struct maple_driver *driver; - struct maple_device *dev; - void *private_data; - unsigned long function_data; - struct mapleq mq; -}; struct maple_driver { struct list_head list; - unsigned long function; /* One or more bits */ + unsigned long function; const char *name; - - void (*vblank)(struct maple_driver_data *dev); - void (*reply)(struct maple_driver_data *dev); - int (*connect)(struct maple_driver_data *dev); - void (*disconnect)(struct maple_driver_data *dev); + int (*connect)(struct maple_device *dev); + void (*disconnect)(struct maple_device *dev); }; -/* Prototypes begin here */ -void maple_send(void); int maple_add_packet(struct mapleq *mq); int maple_del_packet(struct mapleq *mq); + void maple_register_driver(struct maple_driver *driver); void maple_unregister_driver(struct maple_driver *driver); -void maple_getcond_vblank_callback(struct maple_driver_data *data); -void maple_set_gunmode(int, void (*)(void *,int,int), void *); -void maple_init_mq(struct mapleq *mq); -/* Prototypes end here */ +void maple_getcond_callback(struct maple_device *dev, + void (*callback)(struct mapleq *mq), + unsigned long interval, unsigned long function); /* * Local variables: |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:24
|
Update of /cvsroot/linuxdc/linux-sh-dc/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv9028/drivers/video Modified Files: pvr2fb.c Log Message: Linux-SH 2.5.44 switchover Index: pvr2fb.c =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/video/pvr2fb.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- pvr2fb.c 23 Jan 2002 06:56:48 -0000 1.6 +++ pvr2fb.c 29 Oct 2002 15:20:21 -0000 1.7 @@ -4,7 +4,7 @@ * Dreamcast. * * Copyright (c) 2001 M. R. Brown <mr...@0x...> - * Copyright (c) 2001 Paul Mundt <le...@ch...> + * Copyright (c) 2001, 2002 Paul Mundt <le...@li...> * * This file is part of the LinuxDC project (linuxdc.sourceforge.net). * @@ -12,14 +12,15 @@ /* * This driver is mostly based on the excellent amifb and vfb sources. It uses - * an odd scheme for converting hardware values to/from framebuffer values, here are - * some hacked-up formulas: + * an odd scheme for converting hardware values to/from framebuffer values, + * here are some hacked-up formulas: * - * The Dreamcast has screen offsets from each side of it's four borders and the start - * offsets of the display window. I used these values to calculate 'pseudo' values - * (think of them as placeholders) for the fb video mode, so that when it came time - * to convert these values back into their hardware values, I could just add mode- - * specific offsets to get the correct mode settings: + * The Dreamcast has screen offsets from each side of it's four borders and + * the start offsets of the display window. I used these values to calculate + * 'pseudo' values (think of them as placeholders) for the fb video mode, so + * that when it came time to convert these values back into their hardware + * values, I could just add mode- specific offsets to get the correct mode + * settings: * * left_margin = diwstart_h - borderstart_h; * right_margin = borderstop_h - (diwstart_h + xres); @@ -29,9 +30,9 @@ * hsync_len = borderstart_h + (hsync_total - borderstop_h); * vsync_len = borderstart_v + (vsync_total - borderstop_v); * - * Then, when it's time to convert back to hardware settings, the only constants - * are the borderstart_* offsets, all other values are derived from the fb video - * mode: + * Then, when it's time to convert back to hardware settings, the only + * constants are the borderstart_* offsets, all other values are derived from + * the fb video mode: * * // PAL * borderstart_h = 116; @@ -157,10 +158,8 @@ } currentpar; -static int currcon = 0; static int currbpp; -static struct display disp; -static struct fb_info fb_info; +static struct fb_info *fb_info; static int pvr2fb_inverse = 0; static struct { u_short red, green, blue, alpha; } palette[256]; @@ -176,7 +175,29 @@ #endif } fbcon_cmap; -static char pvr2fb_name[16] = "NEC PowerVR2"; +static struct fb_fix_screeninfo pvr2_fix __initdata = { + .id = "NEC PowerVR2", + .type = FB_TYPE_PACKED_PIXELS, + .visual = FB_VISUAL_TRUECOLOR, + .ypanstep = 1, + .ywrapstep = 1, + .accel = FB_ACCEL_NONE, +}; + +static struct fb_var_screeninfo pvr2_var __initdata = { + .xres = 640, + .yres = 480, + .xres_virtual = 640, + .yres_virtual = 480, + .bits_per_pixel =16, + .red = { 11, 5, 0 }, + .green = { 5, 6, 0 }, + .blue = { 0, 5, 0 }, + .activate = FB_ACTIVATE_NOW, + .height = -1, + .width = -1, + .vmode = FB_VMODE_NONINTERLACED, +}; #define VIDEOMEMSIZE (8*1024*1024) static u_long videomemory = 0xa5000000, videomemorysize = VIDEOMEMSIZE; @@ -188,6 +209,9 @@ static int mtrr_handle; #endif +static int nopan = 0; +static int nowrap = 1; + /* * We do all updating, blanking, etc. during the vertical retrace period */ @@ -202,49 +226,13 @@ int pvr2fb_setup(char*); -static int pvr2fb_get_fix(struct fb_fix_screeninfo *fix, int con, - struct fb_info *info); -static int pvr2fb_get_var(struct fb_var_screeninfo *var, int con, - struct fb_info *info); -static int pvr2fb_set_var(struct fb_var_screeninfo *var, int con, - struct fb_info *info); -static int pvr2fb_pan_display(struct fb_var_screeninfo *var, int con, - struct fb_info *info); -static int pvr2fb_get_cmap(struct fb_cmap *cmap, int kspc, int con, - struct fb_info *info); -static int pvr2fb_set_cmap(struct fb_cmap *cmap, int kspc, int con, - struct fb_info *info); - - /* - * Interface to the low level console driver - */ - -static int pvr2fbcon_switch(int con, struct fb_info *info); -static int pvr2fbcon_updatevar(int con, struct fb_info *info); -static void pvr2fbcon_blank(int blank, struct fb_info *info); - - /* - * Internal/hardware-specific routines - */ - -static void do_install_cmap(int con, struct fb_info *info); +static int pvr2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, + u_int transp, struct fb_info *info); +static int pvr2fb_blank(int blank, struct fb_info *info); static u_long get_line_length(int xres_virtual, int bpp); static void set_color_bitfields(struct fb_var_screeninfo *var); -static int pvr2_getcolreg(u_int regno, u_int *red, u_int *green, u_int *blue, - u_int *transp, struct fb_info *info); -static int pvr2_setcolreg(u_int regno, u_int red, u_int green, u_int blue, - u_int transp, struct fb_info *info); - -static int pvr2_encode_fix(struct fb_fix_screeninfo *fix, - struct pvr2fb_par *par); -static int pvr2_decode_var(struct fb_var_screeninfo *var, - struct pvr2fb_par *par); -static int pvr2_encode_var(struct fb_var_screeninfo *var, - struct pvr2fb_par *par); -static void pvr2_get_par(struct pvr2fb_par *par); -static void pvr2_set_var(struct fb_var_screeninfo *var); -static void pvr2_pan_var(struct fb_var_screeninfo *var); -static int pvr2_update_par(void); +static int pvr2fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info); +static int pvr2fb_set_par(struct fb_info *info); static void pvr2_update_display(void); static void pvr2_init_display(void); static void pvr2_do_blank(void); @@ -254,17 +242,14 @@ int val, int size); static struct fb_ops pvr2fb_ops = { - owner: THIS_MODULE, - fb_get_fix: pvr2fb_get_fix, - fb_get_var: pvr2fb_get_var, - fb_set_var: pvr2fb_set_var, - fb_get_cmap: pvr2fb_get_cmap, - fb_set_cmap: pvr2fb_set_cmap, - fb_pan_display: pvr2fb_pan_display, + .owner = THIS_MODULE, + .fb_setcolreg = pvr2fb_setcolreg, + .fb_blank = pvr2fb_blank, + .fb_check_var = pvr2fb_check_var, + .fb_set_par = pvr2fb_set_par, }; static struct fb_videomode pvr2_modedb[] __initdata = { - /* * Broadcast video modes (PAL and NTSC). I'm unfamiliar with * PAL-M and PAL-N, but from what I've read both modes parallel PAL and @@ -275,21 +260,16 @@ /* 640x480 @ 60Hz interlaced (NTSC) */ "ntsc_640x480i", 60, 640, 480, TV_CLK, 38, 33, 0, 18, 146, 26, FB_SYNC_BROADCAST, FB_VMODE_INTERLACED | FB_VMODE_YWRAP - }, - - { + }, { /* 640x240 @ 60Hz (NTSC) */ /* XXX: Broken! Don't use... */ "ntsc_640x240", 60, 640, 240, TV_CLK, 38, 33, 0, 0, 146, 22, FB_SYNC_BROADCAST, FB_VMODE_YWRAP - }, - - { + }, { /* 640x480 @ 60hz (VGA) */ "vga_640x480", 60, 640, 480, VGA_CLK, 38, 33, 0, 18, 146, 26, 0, FB_VMODE_YWRAP }, - }; #define NUM_TOTAL_MODES ARRAY_SIZE(pvr2_modedb) @@ -301,236 +281,11 @@ static int defmode = DEFMODE_NTSC; static char *mode_option __initdata = NULL; -/* Get the fixed part of the display */ - -static int pvr2fb_get_fix(struct fb_fix_screeninfo *fix, int con, - struct fb_info *info) -{ - struct pvr2fb_par par; - - if (con == -1) - pvr2_get_par(&par); - else { - int err; - - if ((err = pvr2_decode_var(&fb_display[con].var, &par))) - return err; - } - return pvr2_encode_fix(fix, &par); -} - -/* Get the user-defined part of the display */ - -static int pvr2fb_get_var(struct fb_var_screeninfo *var, int con, - struct fb_info *info) -{ - int err = 0; - - if (con == -1) { - struct pvr2fb_par par; - - pvr2_get_par(&par); - err = pvr2_encode_var(var, &par); - } else - *var = fb_display[con].var; - - return err; -} - -/* Set the user-defined part of the display */ - -static int pvr2fb_set_var(struct fb_var_screeninfo *var, int con, - struct fb_info *info) -{ - int err, activate = var->activate; - int oldxres, oldyres, oldvxres, oldvyres, oldbpp; - struct pvr2fb_par par; - - struct display *display; - if (con >= 0) - display = &fb_display[con]; - else - display = &disp; /* used during initialization */ - - /* - * FB_VMODE_CONUPDATE and FB_VMODE_SMOOTH_XPAN are equal! - * as FB_VMODE_SMOOTH_XPAN is only used internally - */ - - if (var->vmode & FB_VMODE_CONUPDATE) { - var->vmode |= FB_VMODE_YWRAP; - var->xoffset = display->var.xoffset; - var->yoffset = display->var.yoffset; - } - if ((err = pvr2_decode_var(var, &par))) - return err; - pvr2_encode_var(var, &par); - - /* Do memory check and bitfield set here?? */ - - if ((activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) { - oldxres = display->var.xres; - oldyres = display->var.yres; - oldvxres = display->var.xres_virtual; - oldvyres = display->var.yres_virtual; - oldbpp = display->var.bits_per_pixel; - display->var = *var; - if (oldxres != var->xres || oldyres != var->yres || - oldvxres != var->xres_virtual || oldvyres != var->yres_virtual || - oldbpp != var->bits_per_pixel) { - struct fb_fix_screeninfo fix; - - pvr2_encode_fix(&fix, &par); - display->screen_base = (char *)fix.smem_start; - display->scrollmode = SCROLL_YREDRAW; - display->visual = fix.visual; - display->type = fix.type; - display->type_aux = fix.type_aux; - display->ypanstep = fix.ypanstep; - display->ywrapstep = fix.ywrapstep; - display->line_length = fix.line_length; - display->can_soft_blank = 1; - display->inverse = pvr2fb_inverse; - switch (var->bits_per_pixel) { -#ifdef FBCON_HAS_CFB16 - case 16: - display->dispsw = &fbcon_cfb16; - display->dispsw_data = fbcon_cmap.cfb16; - break; -#endif -#ifdef FBCON_HAS_CFB24 - case 24: - display->dispsw = &fbcon_cfb24; - display->dispsw_data = fbcon_cmap.cfb24; - break; -#endif -#ifdef FBCON_HAS_CFB32 - case 32: - display->dispsw = &fbcon_cfb32; - display->dispsw_data = fbcon_cmap.cfb32; - break; -#endif - default: - display->dispsw = &fbcon_dummy; - break; - } - if (fb_info.changevar) - (*fb_info.changevar)(con); - } - if (oldbpp != var->bits_per_pixel) { - if ((err = fb_alloc_cmap(&display->cmap, 0, 0))) - return err; - do_install_cmap(con, info); - } - if (con == currcon) - pvr2_set_var(&display->var); - } - - return 0; -} - -/* - * Pan or wrap the display. - * This call looks only at xoffset, yoffset and the FB_VMODE_YRAP flag - */ - -static int pvr2fb_pan_display(struct fb_var_screeninfo *var, int con, - struct fb_info *info) -{ - if (var->vmode & FB_VMODE_YWRAP) { - if (var->yoffset<0 || var->yoffset >= - fb_display[con].var.yres_virtual || var->xoffset) - return -EINVAL; - } else { - if (var->xoffset+fb_display[con].var.xres > - fb_display[con].var.xres_virtual || - var->yoffset+fb_display[con].var.yres > - fb_display[con].var.yres_virtual) - return -EINVAL; - } - if (con == currcon) - pvr2_pan_var(var); - fb_display[con].var.xoffset = var->xoffset; - fb_display[con].var.yoffset = var->yoffset; - if (var->vmode & FB_VMODE_YWRAP) - fb_display[con].var.vmode |= FB_VMODE_YWRAP; - else - fb_display[con].var.vmode &= ~FB_VMODE_YWRAP; - - return 0; -} - -/* Get the colormap */ - -static int pvr2fb_get_cmap(struct fb_cmap *cmap, int kspc, int con, - struct fb_info *info) -{ - if (con == currcon) /* current console? */ - return fb_get_cmap(cmap, kspc, pvr2_getcolreg, info); - else if (fb_display[con].cmap.len) /* non default colormap? */ - fb_copy_cmap(&fb_display[con].cmap, cmap, kspc ? 0 : 2); - else - fb_copy_cmap(fb_default_cmap(1<<fb_display[con].var.bits_per_pixel), - cmap, kspc ? 0 : 2); - return 0; -} - -/* Set the colormap */ - -static int pvr2fb_set_cmap(struct fb_cmap *cmap, int kspc, int con, - struct fb_info *info) -{ - int err; - - if (!fb_display[con].cmap.len) { /* no colormap allocated? */ - if ((err = fb_alloc_cmap(&fb_display[con].cmap, - 1<<fb_display[con].var.bits_per_pixel, - 0))) - return err; - } - if (con == currcon) /* current console? */ - return fb_set_cmap(cmap, kspc, pvr2_setcolreg, info); - else - fb_copy_cmap(cmap, &fb_display[con].cmap, kspc ? 0 : 1); - - return 0; -} - -static int pvr2fbcon_switch(int con, struct fb_info *info) -{ - /* Do we have to save the colormap? */ - if (fb_display[currcon].cmap.len) - fb_get_cmap(&fb_display[currcon].cmap, 1, pvr2_getcolreg, info); - - currcon = con; - pvr2_set_var(&fb_display[con].var); - /* Install new colormap */ - do_install_cmap(con, info); - return 0; -} - -static int pvr2fbcon_updatevar(int con, struct fb_info *info) -{ - pvr2_pan_var(&fb_display[con].var); - return 0; -} - -static void pvr2fbcon_blank(int blank, struct fb_info *info) +static int pvr2fb_blank(int blank, struct fb_info *info) { do_blank = blank ? blank : -1; -} - -/* Setup the colormap */ -static void do_install_cmap(int con, struct fb_info *info) -{ - if (con != currcon) - return; - if (fb_display[con].cmap.len) - fb_set_cmap(&fb_display[con].cmap, 1, pvr2_setcolreg, info); - else - fb_set_cmap(fb_default_cmap(1<<fb_display[con].var.bits_per_pixel), - 1, pvr2_setcolreg, info); + return 0; } static inline u_long get_line_length(int xres_virtual, int bpp) @@ -562,20 +317,7 @@ } } -static int pvr2_getcolreg(u_int regno, u_int *red, u_int *green, u_int *blue, - u_int *transp, struct fb_info *info) -{ - if (regno > 255) - return 1; - - *red = palette[regno].red; - *green = palette[regno].green; - *blue = palette[regno].blue; - *transp = 0; - return 0; -} - -static int pvr2_setcolreg(u_int regno, u_int red, u_int green, u_int blue, +static int pvr2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info) { if (regno > 255) @@ -615,39 +357,10 @@ return 0; } - -static int pvr2_encode_fix(struct fb_fix_screeninfo *fix, - struct pvr2fb_par *par) -{ - memset(fix, 0, sizeof(struct fb_fix_screeninfo)); - strcpy(fix->id, pvr2fb_name); - fix->smem_start = videomemory; - fix->smem_len = videomemorysize; - fix->type = FB_TYPE_PACKED_PIXELS; - fix->type_aux = 0; - fix->visual = FB_VISUAL_TRUECOLOR; - - if (par->vmode & FB_VMODE_YWRAP) { - fix->ywrapstep = 1; - fix->xpanstep = fix->ypanstep = 0; - } else { - fix->ywrapstep = 0; - fix->xpanstep = 1; - fix->ypanstep = 1; - } - fix->line_length = par->next_line; - - return 0; -} - -/* - * Create a hardware video mode using the framebuffer values. If a value needs - * to be clipped or constrained it's done here. This routine needs a bit more - * work to make sure we're doing the right tests at the right time. - */ -static int pvr2_decode_var(struct fb_var_screeninfo *var, - struct pvr2fb_par *par) +static int pvr2fb_set_par(struct fb_info *info) { + struct pvr2fb_par *par = (struct pvr2fb_par *)info->par; + struct fb_var_screeninfo *var = &info->var; u_long line_length; u_short vtotal; @@ -677,10 +390,10 @@ /* * XXX: It's possible that a user could use a VGA box, change the cable - * type in hardware (i.e. switch from VGA<->composite), then change modes - * (i.e. switching to another VT). If that happens we should automagically - * change the output format to cope, but currently I don't have a VGA box - * to make sure this works properly. + * type in hardware (i.e. switch from VGA<->composite), then change + * modes (i.e. switching to another VT). If that happens we should + * automagically change the output format to cope, but currently I + * don't have a VGA box to make sure this works properly. */ cable_type = pvr2_init_cable(); if (cable_type == CT_VGA && video_output != VO_VGA) @@ -728,8 +441,8 @@ /* VGA mode */ /* XXX: What else needs to be checked? */ /* - * XXX: We have a little freedom in VGA modes, what ranges should - * be here (i.e. hsync/vsync totals, etc.)? + * XXX: We have a little freedom in VGA modes, what ranges + * should be here (i.e. hsync/vsync totals, etc.)? */ par->borderstart_h = 126; par->borderstart_v = 40; @@ -742,9 +455,9 @@ var->vsync_len; par->diwstart_h = par->borderstart_h + var->left_margin; par->diwstart_v = par->borderstart_v + var->upper_margin; + if (!par->is_interlaced) par->borderstop_v /= 2; - if (par->xres < 640) par->is_lowres = 1; @@ -775,10 +488,9 @@ return 0; } -static int pvr2_encode_var(struct fb_var_screeninfo *var, - struct pvr2fb_par *par) +static int pvr2fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) { - memset(var, 0, sizeof(struct fb_var_screeninfo)); + struct pvr2fb_par *par = (struct pvr2fb_par *)info->par; var->xres = par->xres; var->yres = par->yres; @@ -791,8 +503,6 @@ set_color_bitfields(var); var->activate = FB_ACTIVATE_NOW; - var->height = -1; - var->width = -1; var->pixclock = par->pixclock; @@ -819,56 +529,6 @@ return 0; } -static void pvr2_get_par(struct pvr2fb_par *par) -{ - *par = currentpar; -} - -/* Setup the new videomode in hardware */ - -static void pvr2_set_var(struct fb_var_screeninfo *var) -{ - do_vmode_pan = 0; - do_vmode_full = 0; - pvr2_decode_var(var, ¤tpar); - - do_vmode_full = 1; -} - -/* - * Pan or wrap the display - * This call looks only at xoffset, yoffset and the FB_VMODE_YWRAP flag in `var'. - */ -static void pvr2_pan_var(struct fb_var_screeninfo *var) -{ - struct pvr2fb_par *par = ¤tpar; - - par->xoffset = var->xoffset; - par->yoffset = var->yoffset; - if (var->vmode & FB_VMODE_YWRAP) - par->vmode |= FB_VMODE_YWRAP; - else - par->vmode &= ~FB_VMODE_YWRAP; - - do_vmode_pan = 0; - pvr2_update_par(); - do_vmode_pan = 1; -} - -static int pvr2_update_par(void) -{ - struct pvr2fb_par *par = ¤tpar; - u_long move; - - move = get_line_length(par->xoffset, par->bpp); - if (par->yoffset) { - par->disp_start += (par->next_line * par->yoffset) + move; - } else - par->disp_start += move; - - return 0; -} - static void pvr2_update_display(void) { struct pvr2fb_par *par = ¤tpar; @@ -933,7 +593,6 @@ /* video enable, color sync, interlace, * hsync and vsync polarity (currently unused) */ ctrl_outl(0x100 | ((par->is_interlaced /*|4*/) << 4), DISP_SYNCCONF); - } /* Simulate blanking by making the border cover the entire screen */ @@ -957,21 +616,16 @@ { if (do_vmode_pan || do_vmode_full) pvr2_update_display(); - if (do_vmode_full) pvr2_init_display(); - if (do_vmode_pan) do_vmode_pan = 0; - + if (do_vmode_full) + do_vmode_full = 0; if (do_blank) { pvr2_do_blank(); do_blank = 0; } - - if (do_vmode_full) { - do_vmode_full = 0; - } } /* @@ -1010,50 +664,88 @@ if (!MACH_DREAMCAST) return -ENXIO; + fb_info = kmalloc(sizeof(struct fb_info) + sizeof(struct display) + + sizeof(u32) * 16, GFP_KERNEL); + + if (!fb_info) { + printk(KERN_ERR "Failed to allocate memory for fb_info\n"); + return -ENOMEM; + } + + memset(fb_info, 0, sizeof(fb_info) + sizeof(struct display) + sizeof(u32) * 16); + /* Make a guess at the monitor based on the attached cable */ if (pvr2_init_cable() == CT_VGA) { - fb_info.monspecs.hfmin = 30000; - fb_info.monspecs.hfmax = 70000; - fb_info.monspecs.vfmin = 60; - fb_info.monspecs.vfmax = 60; - } - else { /* Not VGA, using a TV (taken from acornfb) */ - fb_info.monspecs.hfmin = 15469; - fb_info.monspecs.hfmax = 15781; - fb_info.monspecs.vfmin = 49; - fb_info.monspecs.vfmax = 51; + fb_info->monspecs.hfmin = 30000; + fb_info->monspecs.hfmax = 70000; + fb_info->monspecs.vfmin = 60; + fb_info->monspecs.vfmax = 60; + } else { + /* Not VGA, using a TV (taken from acornfb) */ + fb_info->monspecs.hfmin = 15469; + fb_info->monspecs.hfmax = 15781; + fb_info->monspecs.vfmin = 49; + fb_info->monspecs.vfmax = 51; } - /* XXX: This needs to pull default video output via BIOS or other means */ + /* + * XXX: This needs to pull default video output via BIOS or other means + */ if (video_output < 0) { - if (cable_type == CT_VGA) + if (cable_type == CT_VGA) { video_output = VO_VGA; - else + } else { video_output = VO_NTSC; } + } + + pvr2_fix.smem_start = videomemory; + pvr2_fix.smem_len = videomemorysize; + + fb_info->screen_base = ioremap_nocache(pvr2_fix.smem_start, + pvr2_fix.smem_len); + + if (!fb_info->screen_base) { + printk("Failed to remap MMIO space\n"); + kfree(fb_info); + return -ENXIO; + } + + memset_io((unsigned long)fb_info->screen_base, 0, pvr2_fix.smem_len); + + pvr2_fix.ypanstep = nopan ? 0 : 1; + pvr2_fix.ywrapstep = nowrap ? 0 : 1; + + strcpy(fb_info->modename, fb_info->fix.id); + + fb_info->node = NODEV; + fb_info->fbops = &pvr2fb_ops; + fb_info->fix = pvr2_fix; + fb_info->par = ¤tpar; + fb_info->disp = (struct display *)(fb_info + 1); + fb_info->pseudo_palette = (void *)(fb_info->disp + 1); + fb_info->flags = FBINFO_FLAG_DEFAULT; + + fb_info->currcon = -1; + fb_info->switch_con = gen_switch; + fb_info->updatevar = gen_update_var; - strcpy(fb_info.modename, pvr2fb_name); - fb_info.changevar = NULL; - fb_info.node = -1; - fb_info.fbops = &pvr2fb_ops; - fb_info.disp = &disp; - fb_info.switch_con = &pvr2fbcon_switch; - fb_info.updatevar = &pvr2fbcon_updatevar; - fb_info.blank = &pvr2fbcon_blank; - fb_info.flags = FBINFO_FLAG_DEFAULT; memset(&var, 0, sizeof(var)); if (video_output == VO_VGA) defmode = DEFMODE_VGA; - if (!fb_find_mode(&var, &fb_info, mode_option, pvr2_modedb, - NUM_TOTAL_MODES, &pvr2_modedb[defmode], 16)) { - return -EINVAL; - } + if (!mode_option) + mode_option = "640x480@60"; - if (request_irq(HW_EVENT_VSYNC, pvr2fb_interrupt, SA_SHIRQ, + if (!fb_find_mode(&fb_info->var, fb_info, mode_option, pvr2_modedb, + NUM_TOTAL_MODES, &pvr2_modedb[defmode], 16)) + fb_info->var = pvr2_var; + + if (request_irq(HW_EVENT_VSYNC, pvr2fb_interrupt, 0, "pvr2 VBL handler", ¤tpar)) { DPRINTK("couldn't register VBL int\n"); + kfree(fb_info); return -EBUSY; } @@ -1064,18 +756,20 @@ } #endif - pvr2fb_set_var(&var, -1, &fb_info); + gen_set_var(&fb_info->var, -1, fb_info); - if (register_framebuffer(&fb_info) < 0) + if (register_framebuffer(fb_info) < 0) { + kfree(fb_info); return -EINVAL; + } modememused = get_line_length(var.xres_virtual, var.bits_per_pixel); modememused *= var.yres_virtual; printk("fb%d: %s frame buffer device, using %ldk/%ldk of video memory\n", - GET_FB_IDX(fb_info.node), fb_info.modename, modememused>>10, + GET_FB_IDX(fb_info->node), fb_info->modename, modememused>>10, videomemorysize>>10); printk("fb%d: Mode %dx%d-%d pitch = %ld cable: %s video output: %s\n", - GET_FB_IDX(fb_info.node), var.xres, var.yres, var.bits_per_pixel, + GET_FB_IDX(fb_info->node), var.xres, var.yres, var.bits_per_pixel, get_line_length(var.xres, var.bits_per_pixel), (char *)pvr2_get_param(cables, NULL, cable_type, 3), (char *)pvr2_get_param(outputs, NULL, video_output, 3)); @@ -1091,7 +785,8 @@ printk("pvr2fb: MTRR turned off\n"); } #endif - unregister_framebuffer(&fb_info); + unregister_framebuffer(fb_info); + kfree(fb_info); } static int __init pvr2_get_param(const struct pvr2_params *p, const char *s, @@ -1115,7 +810,6 @@ * Parse command arguments. Supported arguments are: * inverse Use inverse color maps * nomtrr Disable MTRR usage - * font:<fontname> Specify console font * cable:composite|rgb|vga Override the video cable type * output:NTSC|PAL|VGA Override the video output format * @@ -1130,8 +824,6 @@ char cable_arg[80]; char output_arg[80]; - fb_info.fontname[0] = '\0'; - if (!options || !*options) return 0; @@ -1141,23 +833,25 @@ if (!strcmp(this_opt, "inverse")) { pvr2fb_inverse = 1; fb_invert_cmaps(); - } else if (!strncmp(this_opt, "font:", 5)) - strcpy(fb_info.fontname, this_opt + 5); - else if (!strncmp(this_opt, "cable:", 6)) + } else if (!strncmp(this_opt, "cable:", 6)) { strcpy(cable_arg, this_opt + 6); - else if (!strncmp(this_opt, "output:", 7)) + } else if (!strncmp(this_opt, "output:", 7)) { strcpy(output_arg, this_opt + 7); + } else if (!strncmp(this_opt, "nopan", 5)) { + nopan = 1; + } else if (!strncmp(this_opt, "nowrap", 6)) { + nowrap = 1; #ifdef CONFIG_MTRR - else if (!strncmp(this_opt, "nomtrr", 6)) + } else if (!strncmp(this_opt, "nomtrr", 6)) { enable_mtrr = 0; #endif - else + } else { mode_option = this_opt; } + } if (*cable_arg) cable_type = pvr2_get_param(cables, cable_arg, 0, 3); - if (*output_arg) video_output = pvr2_get_param(outputs, output_arg, 0, 3); |
From: M. R. B. <mr...@us...> - 2002-10-29 15:20:24
|
Update of /cvsroot/linuxdc/linux-sh-dc/drivers/mtd/maps In directory usw-pr-cvs1:/tmp/cvs-serv9028/drivers/mtd/maps Modified Files: Config.in Log Message: Linux-SH 2.5.44 switchover Index: Config.in =================================================================== RCS file: /cvsroot/linuxdc/linux-sh-dc/drivers/mtd/maps/Config.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Config.in 17 Dec 2001 04:43:48 -0000 1.3 +++ Config.in 29 Oct 2002 15:20:21 -0000 1.4 @@ -14,7 +14,7 @@ int ' Bus width in octets' CONFIG_MTD_PHYSMAP_BUSWIDTH 2 fi -if [ "$CONFIG_SPARC" = "y" -o "$CONFIG_SPARC64" = "y" ]; then +if [ "$CONFIG_SPARC32" = "y" -o "$CONFIG_SPARC64" = "y" ]; then dep_tristate ' Sun Microsystems userflash support' CONFIG_MTD_SUN_UFLASH $CONFIG_MTD_CFI fi @@ -27,7 +27,8 @@ dep_tristate ' JEDEC Flash device mapped on Mixcom piggyback card' CONFIG_MTD_MIXMEM $CONFIG_MTD_JEDEC dep_tristate ' JEDEC Flash device mapped on Octagon 5066 SBC' CONFIG_MTD_OCTAGON $CONFIG_MTD_JEDEC dep_tristate ' JEDEC Flash device mapped on Tempustech VMAX SBC301' CONFIG_MTD_VMAX $CONFIG_MTD_JEDEC - dep_tristate ' BIOS flash chip on Intel L440GX boards' CONFIG_MTD_L440GX $CONFIG_I386 $CONFIG_MTD_JEDEC + dep_tristate ' Flash device mapped with DOCCS on NatSemi SCx200' CONFIG_MTD_SCx200_DOCFLASH $CONFIG_MTD_CFI + dep_tristate ' BIOS flash chip on Intel L440GX boards' CONFIG_MTD_L440GX $CONFIG_MTD_JEDEC fi if [ "$CONFIG_PPC" = "y" ]; then @@ -53,7 +54,6 @@ if [ "$CONFIG_MTD_SOLUTIONENGINE" != "n" ]; then hex ' Default reserved Flash size' CONFIG_MTD_SUPERH_RESERVE 0x00010000 fi - dep_tristate ' Flash device mapping on Sega Dreamcast VMU' CONFIG_MTD_VMU $CONFIG_SH_DREAMCAST fi if [ "$CONFIG_ARM" = "y" ]; then @@ -61,8 +61,18 @@ dep_tristate ' CFI Flash device mapped on ARM Integrator/P720T' CONFIG_MTD_ARM_INTEGRATOR $CONFIG_MTD_CFI dep_tristate ' Cirrus CDB89712 evaluation board mappings' CONFIG_MTD_CDB89712 $CONFIG_MTD_CFI $CONFIG_ARCH_CDB89712 dep_tristate ' CFI Flash device mapped on StrongARM SA11x0' CONFIG_MTD_SA1100 $CONFIG_MTD_CFI $CONFIG_ARCH_SA1100 $CONFIG_MTD_PARTITIONS - dep_tristate ' CFI Flash device mapped on DC21285 Footbridge' CONFIG_MTD_DC21285 $CONFIG_MTD_CFI $CONFIG_ARCH_FOOTBRIDGE $CONFIG_MTD_PARTITIONS + dep_tristate ' CFI Flash device mapped on DC21285 Footbridge' CONFIG_MTD_DC21285 $CONFIG_MTD_CFI $CONFIG_ARCH_FOOTBRIDGE dep_tristate ' CFI Flash device mapped on the XScale IQ80310 board' CONFIG_MTD_IQ80310 $CONFIG_MTD_CFI $CONFIG_ARCH_IQ80310 + dep_tristate ' CFI Flash device mapped on Epxa10db' CONFIG_MTD_EPXA10DB $CONFIG_MTD_CFI $CONFIG_MTD_PARTITIONS $CONFIG_ARCH_CAMELOT + dep_tristate ' CFI Flash device mapped on the FortuNet board' CONFIG_MTD_FORTUNET $CONFIG_MTD_CFI $CONFIG_MTD_PARTITIONS $CONFIG_SA1100_FORTUNET + dep_tristate ' NV-RAM mapping AUTCPU12 board' CONFIG_MTD_AUTCPU12 $CONFIG_ARCH_AUTCPU12 + dep_tristate ' CFI Flash device mapped on EDB7312' CONFIG_MTD_EDB7312 $CONFIG_MTD_CFI + dep_tristate ' JEDEC Flash device mapped on impA7' CONFIG_MTD_IMPA7 $CONFIG_MTD_JEDECPROBE + dep_tristate ' JEDEC Flash device mapped on Ceiva/Polaroid PhotoMax Digital Picture Frame' CONFIG_MTD_CEIVA $CONFIG_MTD_JEDECPROBE $CONFIG_ARCH_CEIVA fi + +# This needs CFI or JEDEC, depending on the cards found. +dep_tristate ' PCI MTD driver' CONFIG_MTD_PCI $CONFIG_MTD $CONFIG_PCI +dep_tristate ' PCMCIA MTD driver' CONFIG_MTD_PCMCIA $CONFIG_MTD $CONFIG_PCMCIA endmenu |