diff options
Diffstat (limited to 'drivers/char/sonypi.c')
| -rw-r--r-- | drivers/char/sonypi.c | 45 | 
1 files changed, 20 insertions, 25 deletions
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 73f66d03624..7cc1fe2241f 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c @@ -54,7 +54,6 @@  #include <asm/uaccess.h>  #include <asm/io.h> -#include <asm/system.h>  #include <linux/sonypi.h> @@ -877,11 +876,6 @@ found:  	if (useinput)  		sonypi_report_input_event(event); -#ifdef CONFIG_ACPI -	if (sonypi_acpi_device) -		acpi_bus_generate_proc_event(sonypi_acpi_device, 1, event); -#endif -  	kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event,  			sizeof(event), &sonypi_device.fifo_lock);  	kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN); @@ -939,7 +933,7 @@ static ssize_t sonypi_misc_read(struct file *file, char __user *buf,  	}  	if (ret > 0) { -		struct inode *inode = file->f_path.dentry->d_inode; +		struct inode *inode = file_inode(file);  		inode->i_atime = current_fs_time(inode->i_sb);  	} @@ -1143,7 +1137,7 @@ static int sonypi_acpi_add(struct acpi_device *device)  	return 0;  } -static int sonypi_acpi_remove(struct acpi_device *device, int type) +static int sonypi_acpi_remove(struct acpi_device *device)  {  	sonypi_acpi_device = NULL;  	return 0; @@ -1165,7 +1159,7 @@ static struct acpi_driver sonypi_acpi_driver = {  };  #endif -static int __devinit sonypi_create_input_devices(struct platform_device *pdev) +static int sonypi_create_input_devices(struct platform_device *pdev)  {  	struct input_dev *jog_dev;  	struct input_dev *key_dev; @@ -1226,7 +1220,7 @@ static int __devinit sonypi_create_input_devices(struct platform_device *pdev)  	return error;  } -static int __devinit sonypi_setup_ioports(struct sonypi_device *dev, +static int sonypi_setup_ioports(struct sonypi_device *dev,  				const struct sonypi_ioport_list *ioport_list)  {  	/* try to detect if sony-laptop is being used and thus @@ -1241,7 +1235,7 @@ static int __devinit sonypi_setup_ioports(struct sonypi_device *dev,  	while (check_ioport && check->port1) {  		if (!request_region(check->port1,  				   sonypi_device.region_size, -				   "Sony Programable I/O Device Check")) { +				   "Sony Programmable I/O Device Check")) {  			printk(KERN_ERR "sonypi: ioport 0x%.4x busy, using sony-laptop? "  					"if not use check_ioport=0\n",  					check->port1); @@ -1255,7 +1249,7 @@ static int __devinit sonypi_setup_ioports(struct sonypi_device *dev,  		if (request_region(ioport_list->port1,  				   sonypi_device.region_size, -				   "Sony Programable I/O Device")) { +				   "Sony Programmable I/O Device")) {  			dev->ioport1 = ioport_list->port1;  			dev->ioport2 = ioport_list->port2;  			return 0; @@ -1266,7 +1260,7 @@ static int __devinit sonypi_setup_ioports(struct sonypi_device *dev,  	return -EBUSY;  } -static int __devinit sonypi_setup_irq(struct sonypi_device *dev, +static int sonypi_setup_irq(struct sonypi_device *dev,  				      const struct sonypi_irq_list *irq_list)  {  	while (irq_list->irq) { @@ -1283,7 +1277,7 @@ static int __devinit sonypi_setup_irq(struct sonypi_device *dev,  	return -EBUSY;  } -static void __devinit sonypi_display_info(void) +static void sonypi_display_info(void)  {  	printk(KERN_INFO "sonypi: detected type%d model, "  	       "verbose = %d, fnkeyinit = %s, camera = %s, " @@ -1305,7 +1299,7 @@ static void __devinit sonypi_display_info(void)  		       sonypi_misc_device.minor);  } -static int __devinit sonypi_probe(struct platform_device *dev) +static int sonypi_probe(struct platform_device *dev)  {  	const struct sonypi_ioport_list *ioport_list;  	const struct sonypi_irq_list *irq_list; @@ -1429,12 +1423,12 @@ static int __devinit sonypi_probe(struct platform_device *dev)  	return error;  } -static int __devexit sonypi_remove(struct platform_device *dev) +static int sonypi_remove(struct platform_device *dev)  {  	sonypi_disable();  	synchronize_irq(sonypi_device.irq); -	flush_scheduled_work(); +	flush_work(&sonypi_device.input_work);  	if (useinput) {  		input_unregister_device(sonypi_device.input_key_dev); @@ -1457,10 +1451,10 @@ static int __devexit sonypi_remove(struct platform_device *dev)  	return 0;  } -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP  static int old_camera_power; -static int sonypi_suspend(struct platform_device *dev, pm_message_t state) +static int sonypi_suspend(struct device *dev)  {  	old_camera_power = sonypi_device.camera_power;  	sonypi_disable(); @@ -1468,14 +1462,16 @@ static int sonypi_suspend(struct platform_device *dev, pm_message_t state)  	return 0;  } -static int sonypi_resume(struct platform_device *dev) +static int sonypi_resume(struct device *dev)  {  	sonypi_enable(old_camera_power);  	return 0;  } + +static SIMPLE_DEV_PM_OPS(sonypi_pm, sonypi_suspend, sonypi_resume); +#define SONYPI_PM	(&sonypi_pm)  #else -#define sonypi_suspend	NULL -#define sonypi_resume	NULL +#define SONYPI_PM	NULL  #endif  static void sonypi_shutdown(struct platform_device *dev) @@ -1487,12 +1483,11 @@ static struct platform_driver sonypi_driver = {  	.driver		= {  		.name	= "sonypi",  		.owner	= THIS_MODULE, +		.pm	= SONYPI_PM,  	},  	.probe		= sonypi_probe, -	.remove		= __devexit_p(sonypi_remove), +	.remove		= sonypi_remove,  	.shutdown	= sonypi_shutdown, -	.suspend	= sonypi_suspend, -	.resume		= sonypi_resume,  };  static struct platform_device *sonypi_platform_device;  | 
