diff options
Diffstat (limited to 'sound/oss/pss.c')
| -rw-r--r-- | sound/oss/pss.c | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/sound/oss/pss.c b/sound/oss/pss.c index e19dd5dcc2d..145e36b2cfd 100644 --- a/sound/oss/pss.c +++ b/sound/oss/pss.c @@ -117,9 +117,9 @@  /* If compiled into kernel, it enable or disable pss mixer */  #ifdef CONFIG_PSS_MIXER -static int pss_mixer = 1; +static bool pss_mixer = 1;  #else -static int pss_mixer; +static bool pss_mixer;  #endif @@ -147,7 +147,7 @@ static DEFINE_SPINLOCK(lock);  static int      pss_initialized;  static int      nonstandard_microcode;  static int	pss_cdrom_port = -1;	/* Parameter for the PSS cdrom port */ -static int	pss_enable_joystick;    /* Parameter for enabling the joystick */ +static bool	pss_enable_joystick;    /* Parameter for enabling the joystick */  static coproc_operations pss_coproc_operations;  static void pss_write(pss_confdata *devc, int data) @@ -359,7 +359,7 @@ static int pss_download_boot(pss_confdata * devc, unsigned char *block, int size  		{  			/*_____ Send the next byte */  			outw (*block++, REG (PSS_DATA)); -		}; +		}  		count++;  	} @@ -673,7 +673,8 @@ static void configure_nonsound_components(void)  	if (pss_cdrom_port == -1) {	/* If cdrom port enablation wasn't requested */  		printk(KERN_INFO "PSS: CDROM port not enabled.\n"); -	} else if (check_region(pss_cdrom_port, 2)) { +	} else if (!request_region(pss_cdrom_port, 2, "PSS CDROM")) { +		pss_cdrom_port = -1;  		printk(KERN_ERR "PSS: CDROM I/O port conflict.\n");  	} else {  		set_io_base(devc, CONF_CDROM, pss_cdrom_port); @@ -859,7 +860,7 @@ static int pss_coproc_ioctl(void *dev_info, unsigned int cmd, void __user *arg,  			return 0;  		case SNDCTL_COPR_LOAD: -			buf = (copr_buffer *) vmalloc(sizeof(copr_buffer)); +			buf = vmalloc(sizeof(copr_buffer));  			if (buf == NULL)  				return -ENOSPC;  			if (copy_from_user(buf, arg, sizeof(copr_buffer))) { @@ -871,7 +872,7 @@ static int pss_coproc_ioctl(void *dev_info, unsigned int cmd, void __user *arg,  			return err;  		case SNDCTL_COPR_SENDMSG: -			mbuf = (copr_msg *)vmalloc(sizeof(copr_msg)); +			mbuf = vmalloc(sizeof(copr_msg));  			if (mbuf == NULL)  				return -ENOSPC;  			if (copy_from_user(mbuf, arg, sizeof(copr_msg))) { @@ -895,7 +896,7 @@ static int pss_coproc_ioctl(void *dev_info, unsigned int cmd, void __user *arg,  		case SNDCTL_COPR_RCVMSG:  			err = 0; -			mbuf = (copr_msg *)vmalloc(sizeof(copr_msg)); +			mbuf = vmalloc(sizeof(copr_msg));  			if (mbuf == NULL)  				return -ENOSPC;  			data = (unsigned short *)mbuf->data; @@ -1132,8 +1133,8 @@ static int mss_irq __initdata	= -1;  static int mss_dma __initdata	= -1;  static int mpu_io __initdata	= -1;  static int mpu_irq __initdata	= -1; -static int pss_no_sound = 0;	/* Just configure non-sound components */ -static int pss_keep_settings  = 1;	/* Keep hardware settings at module exit */ +static bool pss_no_sound = 0;	/* Just configure non-sound components */ +static bool pss_keep_settings  = 1;	/* Keep hardware settings at module exit */  static char *pss_firmware = "/etc/sound/pss_synth";  module_param(pss_io, int, 0); @@ -1232,7 +1233,8 @@ static void __exit cleanup_pss(void)  		if(pssmpu)  			unload_pss_mpu(&cfg_mpu);  		unload_pss(&cfg); -	} +	} else if (pss_cdrom_port != -1) +		release_region(pss_cdrom_port, 2);  	if(!pss_keep_settings)	/* Keep hardware settings if asked */  	{  | 
