Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 260695
b: refs/heads/master
c: 625cbe4
h: refs/heads/master
i:
  260693: 7e67f04
  260691: fbe97d6
  260687: 6a96eda
v: v3
  • Loading branch information
Peter Ujfalusi committed Jul 7, 2011
1 parent dbf85d4 commit 5064553
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0f962ae2dd8655f0800ff3c4b02d5f5a2ff3899e
refs/heads/master: 625cbe46bc97a82dcd9254b5bc01c8520d78b227
17 changes: 12 additions & 5 deletions trunk/drivers/input/misc/twl6040-vibra.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ struct vibra_info {
struct workqueue_struct *workqueue;
struct work_struct play_work;
struct mutex mutex;
int irq;

bool enabled;
int weak_speed;
Expand Down Expand Up @@ -277,6 +278,13 @@ static int __devinit twl6040_vibra_probe(struct platform_device *pdev)
goto err_kzalloc;
}

info->irq = platform_get_irq(pdev, 0);
if (info->irq < 0) {
dev_err(info->dev, "invalid irq\n");
ret = -EINVAL;
goto err_kzalloc;
}

mutex_init(&info->mutex);

info->input_dev = input_allocate_device();
Expand Down Expand Up @@ -308,9 +316,8 @@ static int __devinit twl6040_vibra_probe(struct platform_device *pdev)

platform_set_drvdata(pdev, info);

ret = twl6040_request_irq(info->twl6040, TWL6040_IRQ_VIB,
twl6040_vib_irq_handler, 0,
"twl6040_irq_vib", info);
ret = request_threaded_irq(info->irq, NULL, twl6040_vib_irq_handler, 0,
"twl6040_irq_vib", info);
if (ret) {
dev_err(info->dev, "VIB IRQ request failed: %d\n", ret);
goto err_irq;
Expand Down Expand Up @@ -360,7 +367,7 @@ static int __devinit twl6040_vibra_probe(struct platform_device *pdev)
err_voltage:
regulator_bulk_free(ARRAY_SIZE(info->supplies), info->supplies);
err_regulator:
twl6040_free_irq(info->twl6040, TWL6040_IRQ_VIB, info);
free_irq(info->irq, info);
err_irq:
input_unregister_device(info->input_dev);
info->input_dev = NULL;
Expand All @@ -379,7 +386,7 @@ static int __devexit twl6040_vibra_remove(struct platform_device *pdev)
struct vibra_info *info = platform_get_drvdata(pdev);

input_unregister_device(info->input_dev);
twl6040_free_irq(info->twl6040, TWL6040_IRQ_VIB, info);
free_irq(info->irq, info);
regulator_bulk_free(ARRAY_SIZE(info->supplies), info->supplies);
destroy_workqueue(info->workqueue);
kfree(info);
Expand Down

0 comments on commit 5064553

Please sign in to comment.