You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							87 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							87 lines
						
					
					
						
							2.6 KiB
						
					
					
				| # --- T2-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| #  | |
| # T2 SDE: package/.../linux24/88-multiple-soundcard-fix.patch | |
| # Copyright (C) 2004 - 2006 The T2 SDE Project | |
| # Copyright (C) 1998 - 2003 Clifford Wolf | |
| #  | |
| # More information can be found in the files COPYING and README. | |
| #  | |
| # This patch file is dual-licensed. It is available under the license the | |
| # patched project is licensed under, as long as it is an OpenSource license | |
| # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | |
| # of the GNU General Public License as published by the Free Software | |
| # Foundation; either version 2 of the License, or (at your option) any later | |
| # version. | |
| # --- T2-COPYRIGHT-NOTE-END --- | |
|  | |
|  | |
| --- linux-2.4.17/drivers/sound/sound_core.c.orig	Sun Jan  6 17:31:30 2002 | |
| +++ linux/drivers/sound/sound_core.c	Sun Jan  6 17:39:43 2002 | |
| @@ -17,7 +17,7 @@ | |
|   *	plug into this. The fact they dont all go via OSS doesn't mean  | |
|   *	they don't have to implement the OSS API. There is a lot of logic | |
|   *	to keeping much of the OSS weight out of the code in a compatibility | |
| - *	module, but its up to the driver to rember to load it... | |
| + *	module, but it's up to the driver to remember to load it... | |
|   * | |
|   *	The code provides a set of functions for registration of devices | |
|   *	by type. This is done rather than providing a single call so that | |
| @@ -173,10 +173,10 @@ | |
|  		return r; | |
|  	} | |
|  	 | |
| -	if (r == low) | |
| +	if ( r < SOUND_STEP ) | |
|  		sprintf (name_buf, "%s", name); | |
|  	else | |
| -		sprintf (name_buf, "%s%d", name, (r - low) / SOUND_STEP); | |
| +		sprintf (name_buf, "%s%d", name, (r / SOUND_STEP)); | |
|  	s->de = devfs_register (devfs_handle, name_buf, | |
|  				DEVFS_FL_NONE, SOUND_MAJOR, s->unit_minor, | |
|  				S_IFCHR | mode, fops, NULL); | |
| @@ -231,17 +231,20 @@ | |
|    | |
|  int register_sound_special(struct file_operations *fops, int unit) | |
|  { | |
| -	char *name; | |
| +	const int chain = (unit & 0x0F); | |
| +	int max_unit = chain + 128; | |
| +	const char *name; | |
|   | |
| -	switch (unit) { | |
| +	switch (chain) { | |
|  	    case 0: | |
|  		name = "mixer"; | |
|  		break; | |
|  	    case 1: | |
|  		name = "sequencer"; | |
| +		max_unit = unit + 1; | |
|  		break; | |
|  	    case 2: | |
| -		name = "midi00"; | |
| +		name = "midi"; | |
|  		break; | |
|  	    case 3: | |
|  		name = "dsp"; | |
| @@ -260,6 +263,7 @@ | |
|  		break; | |
|  	    case 8: | |
|  		name = "sequencer2"; | |
| +		max_unit = unit + 1; | |
|  		break; | |
|  	    case 9: | |
|  		name = "dmmidi"; | |
| @@ -280,10 +284,10 @@ | |
|  		name = "admmidi"; | |
|  		break; | |
|  	    default: | |
| -		name = "unknown"; | |
| +		name = "unknownX"; | |
|  		break; | |
|  	} | |
| -	return sound_insert_unit(&chains[unit&15], fops, -1, unit, unit+1, | |
| +	return sound_insert_unit(&chains[chain], fops, -1, unit, max_unit, | |
|  				 name, S_IRUSR | S_IWUSR); | |
|  } | |
|   
 | |
| 
 |