diff options
Diffstat (limited to 'drivers/input/misc/da9052_onkey.c')
| -rw-r--r-- | drivers/input/misc/da9052_onkey.c | 28 | 
1 files changed, 8 insertions, 20 deletions
| diff --git a/drivers/input/misc/da9052_onkey.c b/drivers/input/misc/da9052_onkey.c index 3c843cd725fa..020569a499f2 100644 --- a/drivers/input/misc/da9052_onkey.c +++ b/drivers/input/misc/da9052_onkey.c @@ -24,7 +24,6 @@ struct da9052_onkey {  	struct da9052 *da9052;  	struct input_dev *input;  	struct delayed_work work; -	unsigned int irq;  };  static void da9052_onkey_query(struct da9052_onkey *onkey) @@ -71,12 +70,11 @@ static irqreturn_t da9052_onkey_irq(int irq, void *data)  	return IRQ_HANDLED;  } -static int __devinit da9052_onkey_probe(struct platform_device *pdev) +static int da9052_onkey_probe(struct platform_device *pdev)  {  	struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent);  	struct da9052_onkey *onkey;  	struct input_dev *input_dev; -	int irq;  	int error;  	if (!da9052) { @@ -84,13 +82,6 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev)  		return -EINVAL;  	} -	irq = platform_get_irq_byname(pdev, "ONKEY"); -	if (irq < 0) { -		dev_err(&pdev->dev, -			"Failed to get an IRQ for input device, %d\n", irq); -		return -EINVAL; -	} -  	onkey = kzalloc(sizeof(*onkey), GFP_KERNEL);  	input_dev = input_allocate_device();  	if (!onkey || !input_dev) { @@ -101,7 +92,6 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev)  	onkey->input = input_dev;  	onkey->da9052 = da9052; -	onkey->irq = irq;  	INIT_DELAYED_WORK(&onkey->work, da9052_onkey_work);  	input_dev->name = "da9052-onkey"; @@ -111,13 +101,11 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev)  	input_dev->evbit[0] = BIT_MASK(EV_KEY);  	__set_bit(KEY_POWER, input_dev->keybit); -	error = request_threaded_irq(onkey->irq, NULL, da9052_onkey_irq, -				     IRQF_TRIGGER_LOW | IRQF_ONESHOT, -				     "ONKEY", onkey); +	error = da9052_request_irq(onkey->da9052, DA9052_IRQ_NONKEY, "ONKEY", +			    da9052_onkey_irq, onkey);  	if (error < 0) {  		dev_err(onkey->da9052->dev, -			"Failed to register ONKEY IRQ %d, error = %d\n", -			onkey->irq, error); +			"Failed to register ONKEY IRQ: %d\n", error);  		goto err_free_mem;  	} @@ -132,7 +120,7 @@ static int __devinit da9052_onkey_probe(struct platform_device *pdev)  	return 0;  err_free_irq: -	free_irq(onkey->irq, onkey); +	da9052_free_irq(onkey->da9052, DA9052_IRQ_NONKEY, onkey);  	cancel_delayed_work_sync(&onkey->work);  err_free_mem:  	input_free_device(input_dev); @@ -141,11 +129,11 @@ err_free_mem:  	return error;  } -static int __devexit da9052_onkey_remove(struct platform_device *pdev) +static int da9052_onkey_remove(struct platform_device *pdev)  {  	struct da9052_onkey *onkey = platform_get_drvdata(pdev); -	free_irq(onkey->irq, onkey); +	da9052_free_irq(onkey->da9052, DA9052_IRQ_NONKEY, onkey);  	cancel_delayed_work_sync(&onkey->work);  	input_unregister_device(onkey->input); @@ -156,7 +144,7 @@ static int __devexit da9052_onkey_remove(struct platform_device *pdev)  static struct platform_driver da9052_onkey_driver = {  	.probe	= da9052_onkey_probe, -	.remove	= __devexit_p(da9052_onkey_remove), +	.remove	= da9052_onkey_remove,  	.driver = {  		.name	= "da9052-onkey",  		.owner	= THIS_MODULE, |