Re: [PATCH 3.12 183/212] HID:hid-lg4ff: Initialize device properties before we touch autocentering.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 02 of December 2013 11:16:14 you wrote:
Hi,

I don't think that fixing this makes any sense in kernels older than 3.13. 
Prior to changes introduced in 3.13 the autocentering command function was 
common for all supported wheels except FFEX so it didn't need to read device 
properties. The patch is only needed since 3.13 to ensure that autocentering 
is set properly during device initialization.

Michal Malý

> 3.12-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Simon Wood <simon@xxxxxxxxxxxxx>
> 
> commit 114a55cf9dd1576e7ac56189832cd4d7dc56c218 upstream.
> 
> Re-arrange code slightly to ensure that device properties are configured
> before calling auto-center command.
> 
> Reported-by: Michal Malý <madcatxster@xxxxxxxxx>
> Signed-off-by: Simon Wood <simon@xxxxxxxxxxxxx>
> Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 
> ---
>  drivers/hid/hid-lg4ff.c |   22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> --- a/drivers/hid/hid-lg4ff.c
> +++ b/drivers/hid/hid-lg4ff.c
> @@ -574,17 +574,6 @@ int lg4ff_init(struct hid_device *hid)
>  	if (error)
>  		return error;
> 
> -	/* Check if autocentering is available and
> -	 * set the centering force to zero by default */
> -	if (test_bit(FF_AUTOCENTER, dev->ffbit)) {
> -		if (rev_maj == FFEX_REV_MAJ && rev_min == FFEX_REV_MIN)	/* Formula 
Force
> EX expects different autocentering command */ -			dev->ff-
>set_autocenter =
> hid_lg4ff_set_autocenter_ffex;
> -		else
> -			dev->ff->set_autocenter = hid_lg4ff_set_autocenter_default;
> -
> -		dev->ff->set_autocenter(dev, 0);
> -	}
> -
>  	/* Get private driver data */
>  	drv_data = hid_get_drvdata(hid);
>  	if (!drv_data) {
> @@ -605,6 +594,17 @@ int lg4ff_init(struct hid_device *hid)
>  	entry->max_range = lg4ff_devices[i].max_range;
>  	entry->set_range = lg4ff_devices[i].set_range;
> 
> +	/* Check if autocentering is available and
> +	 * set the centering force to zero by default */
> +	if (test_bit(FF_AUTOCENTER, dev->ffbit)) {
> +		if (rev_maj == FFEX_REV_MAJ && rev_min == FFEX_REV_MIN)	/* Formula 
Force
> EX expects different autocentering command */ +			dev->ff-
>set_autocenter =
> hid_lg4ff_set_autocenter_ffex;
> +		else
> +			dev->ff->set_autocenter = hid_lg4ff_set_autocenter_default;
> +
> +		dev->ff->set_autocenter(dev, 0);
> +	}
> +
>  	/* Create sysfs interface */
>  	error = device_create_file(&hid->dev, &dev_attr_range);
>  	if (error)
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]