diff options
| author | Simon Wood <simon@mungewell.org> | 2013-11-06 14:30:43 -0500 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2013-11-08 08:12:08 -0500 |
| commit | 114a55cf9dd1576e7ac56189832cd4d7dc56c218 (patch) | |
| tree | 99ae63d059fb884478cc237adba6b4cbd1b73ca1 | |
| parent | 56930e7ab86f9f453399cfaa4d78525c1e028a8f (diff) | |
HID:hid-lg4ff: Initialize device properties before we touch autocentering.
Re-arrange code slightly to ensure that device properties are configured
before calling auto-center command.
Reported-by: Michal MalĂ˝ <madcatxster@prifuk.cz>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
| -rw-r--r-- | drivers/hid/hid-lg4ff.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c index 5d140b7a450a..5492809a579f 100644 --- a/drivers/hid/hid-lg4ff.c +++ b/drivers/hid/hid-lg4ff.c | |||
| @@ -589,17 +589,6 @@ int lg4ff_init(struct hid_device *hid) | |||
| 589 | if (error) | 589 | if (error) |
| 590 | return error; | 590 | return error; |
| 591 | 591 | ||
| 592 | /* Check if autocentering is available and | ||
| 593 | * set the centering force to zero by default */ | ||
| 594 | if (test_bit(FF_AUTOCENTER, dev->ffbit)) { | ||
| 595 | if (rev_maj == FFEX_REV_MAJ && rev_min == FFEX_REV_MIN) /* Formula Force EX expects different autocentering command */ | ||
| 596 | dev->ff->set_autocenter = hid_lg4ff_set_autocenter_ffex; | ||
| 597 | else | ||
| 598 | dev->ff->set_autocenter = hid_lg4ff_set_autocenter_default; | ||
| 599 | |||
| 600 | dev->ff->set_autocenter(dev, 0); | ||
| 601 | } | ||
| 602 | |||
| 603 | /* Get private driver data */ | 592 | /* Get private driver data */ |
| 604 | drv_data = hid_get_drvdata(hid); | 593 | drv_data = hid_get_drvdata(hid); |
| 605 | if (!drv_data) { | 594 | if (!drv_data) { |
| @@ -620,6 +609,17 @@ int lg4ff_init(struct hid_device *hid) | |||
| 620 | entry->max_range = lg4ff_devices[i].max_range; | 609 | entry->max_range = lg4ff_devices[i].max_range; |
| 621 | entry->set_range = lg4ff_devices[i].set_range; | 610 | entry->set_range = lg4ff_devices[i].set_range; |
| 622 | 611 | ||
| 612 | /* Check if autocentering is available and | ||
| 613 | * set the centering force to zero by default */ | ||
| 614 | if (test_bit(FF_AUTOCENTER, dev->ffbit)) { | ||
| 615 | if (rev_maj == FFEX_REV_MAJ && rev_min == FFEX_REV_MIN) /* Formula Force EX expects different autocentering command */ | ||
| 616 | dev->ff->set_autocenter = hid_lg4ff_set_autocenter_ffex; | ||
| 617 | else | ||
| 618 | dev->ff->set_autocenter = hid_lg4ff_set_autocenter_default; | ||
| 619 | |||
| 620 | dev->ff->set_autocenter(dev, 0); | ||
| 621 | } | ||
| 622 | |||
| 623 | /* Create sysfs interface */ | 623 | /* Create sysfs interface */ |
| 624 | error = device_create_file(&hid->dev, &dev_attr_range); | 624 | error = device_create_file(&hid->dev, &dev_attr_range); |
| 625 | if (error) | 625 | if (error) |
