aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorSimon Wood <simon@mungewell.org>2013-11-06 14:30:43 -0500
committerJiri Kosina <jkosina@suse.cz>2013-11-08 08:12:08 -0500
commit114a55cf9dd1576e7ac56189832cd4d7dc56c218 (patch)
tree99ae63d059fb884478cc237adba6b4cbd1b73ca1 /drivers/hid
parent56930e7ab86f9f453399cfaa4d78525c1e028a8f (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>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-lg4ff.c22
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)