Linux Input/HID development
 help / color / mirror / Atom feed
* Re: [PATCH] mc13xxx-ts: use zero as default value if no pdata was defined
From: Samuel Ortiz @ 2013-08-20  9:50 UTC (permalink / raw)
  To: Michael Grzeschik
  Cc: Michael Grzeschik, linux-input, linux-kernel, kernel,
	Dmitry Torokhov, Lee Jones
In-Reply-To: <20130820093432.GC26693@pengutronix.de>

Hi Michael,

On Tue, Aug 20, 2013 at 11:34:32AM +0200, Michael Grzeschik wrote:
> On Tue, Aug 20, 2013 at 03:34:33AM +0200, Samuel Ortiz wrote:
> > On Tue, Aug 13, 2013 at 02:14:30PM +0200, Michael Grzeschik wrote:
> > > In case of devicetree, we currently don't have a way to append pdata for
> > > the touchscreen. The current approach is to bail out in that case.
> > > This patch makes it possible to probe the touchscreen without pdata
> > > and use zero as default values for the atox and ato adc conversion.
> > Would that still make the touchscreen somehow functional ?
> 
> Yes, it still works. It just defaults to zero values in no pdata case.
> 
> > If that's the case, and if Dmitry is fine with the ts part of this
> > patch, could you please separate the mfd part of this patch into a
> > separate one ?
> 
> Why?
To avoid cross tree commits as much as possible.


> The purpose of this patch is to have both cases working, pdata and no
> pdata. 
I understood that part. But you can still split the patch in 2 as the ts
driver will not be probed without pdata until the mfd patch is merged
upstream.

> This patch is actually fixing the patch of Michael Thalmeier.
> There we changed the mfd and touch in one patch as well.
There was a build time dependency between the ts driver and the MFD
changes, so the patch had to be merged atomically.
That is not the case with your patch.

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

^ permalink raw reply

* Re: [PATCH] mc13xxx-ts: use zero as default value if no pdata was defined
From: Michael Grzeschik @ 2013-08-20  9:34 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: Michael Grzeschik, linux-input, linux-kernel, kernel,
	Dmitry Torokhov
In-Reply-To: <20130820013433.GE13324@zurbaran>

On Tue, Aug 20, 2013 at 03:34:33AM +0200, Samuel Ortiz wrote:
> Hi Michael,
> 
> On Tue, Aug 13, 2013 at 02:14:30PM +0200, Michael Grzeschik wrote:
> > In case of devicetree, we currently don't have a way to append pdata for
> > the touchscreen. The current approach is to bail out in that case.
> > This patch makes it possible to probe the touchscreen without pdata
> > and use zero as default values for the atox and ato adc conversion.
> Would that still make the touchscreen somehow functional ?

Yes, it still works. It just defaults to zero values in no pdata case.

> If that's the case, and if Dmitry is fine with the ts part of this
> patch, could you please separate the mfd part of this patch into a
> separate one ?

Why?

The purpose of this patch is to have both cases working, pdata and no
pdata. This patch is actually fixing the patch of Michael Thalmeier.
There we changed the mfd and touch in one patch as well.

http://lkml.indiana.edu/hypermail/linux/kernel/1201.1/01364.html

Thanks,
Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply

* Re: [PATCH V3 1/2] tps6507x-ts: Add DT support
From: Manish Badarkhe @ 2013-08-20  6:55 UTC (permalink / raw)
  To: Prabhakar Lad
  Cc: Vishwanathrao Badarkhe, Manish, dlos, LDOC, device-tree,
	Dmitry Torokhov, LKML, Rob Herring, Grant Likely, Rob Landley,
	linux-input@vger.kernel.org
In-Reply-To: <CA+V-a8u1BEXMHHso80NdP4FX_au2mnUEtzqYyJXg_vA9JvSJbA@mail.gmail.com>

Hi Prabhakar,

On Tue, Aug 20, 2013 at 11:44 AM, Prabhakar Lad
<prabhakar.csengg@gmail.com> wrote:
> Hi Manish,
>
> Thanks for the patch.
>
> On Tue, May 21, 2013 at 2:24 PM, Vishwanathrao Badarkhe, Manish
> <manishv.b@ti.com> wrote:
>> Add device tree based support for TI's tps6507x touchscreen.
>>
>> Tested on da850-evm.
>>
>> Signed-off-by: Vishwanathrao Badarkhe, Manish <manishv.b@ti.com>
>> ---
>> Changes since V2:
>>  - Removed unnecessary code.
>>  - Updated Documentation to provide proper names of
>>    devicetree properties.
>>
>> Changes since V1:
>>  - Updated documentation to specify tps6507x as multifunctional
>>    device.
>>  - return proper error value in absence of platform and DT
>>    data for touchscreen.
>>  - Updated commit message.
>>
>> :100755 100755 8fffa3c... 65ee2cd... M  Documentation/devicetree/bindings/mfd/tps6507x.txt
>> :100644 100644 65e0f9a... 89232ee... M  drivers/input/touchscreen/tps6507x-ts.c
>>  Documentation/devicetree/bindings/mfd/tps6507x.txt |   28 ++++++-
>>  drivers/input/touchscreen/tps6507x-ts.c            |   98 ++++++++++++++------
>>  2 files changed, 95 insertions(+), 31 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/tps6507x.txt b/Documentation/devicetree/bindings/mfd/tps6507x.txt
>> index 8fffa3c..65ee2cd 100755
>> --- a/Documentation/devicetree/bindings/mfd/tps6507x.txt
>> +++ b/Documentation/devicetree/bindings/mfd/tps6507x.txt
>> @@ -1,4 +1,8 @@
>> -TPS6507x Power Management Integrated Circuit
>> +TPS6507x Multifunctional Device.
>> +
>> +Features provided by TPS6507x:
>> +        1.Power Management Integrated Circuit.
>> +        2.Touch-Screen.
>>
>>  Required properties:
>>  - compatible: "ti,tps6507x"
>> @@ -23,6 +27,12 @@ Required properties:
>>         vindcdc1_2-supply: VDCDC1 and VDCDC2 input.
>>         vindcdc3-supply  : VDCDC3 input.
>>         vldo1_2-supply   : VLDO1 and VLDO2 input.
>> +- tsc: This node specifies touch screen data.
>> +       ti,poll-period : Time at which touch input is getting sampled in ms.
>> +       ti,min-pressure: Minimum pressure value to trigger touch.
>> +       ti,vref        : voltage reference for ADC.
>> +                     0: Reference voltage for ADC is disabled.
>> +                     1: Reference voltage for ADC is enabled.
>>
>>  Regulator Optional properties:
>>  - defdcdc_default: It's property of DCDC2 and DCDC3 regulators.
>> @@ -30,6 +40,14 @@ Regulator Optional properties:
>>                         1: If defdcdc pin of DCDC2/DCDC3 is driven HIGH.
>>    If this property is not defined, it defaults to 0 (not enabled).
>>
>> +Touchscreen Optional properties:
>> +- ti,vendor : Touchscreen vendor id to populate
>> +             in sysclass interface.
>> +- ti,product: Touchscreen product id to populate
>> +             in sysclass interface.
>> +- ti,version: Touchscreen version id to populate
>> +             in sysclass interface.
>> +
>>  Example:
>>
>>         pmu: tps6507x@48 {
>> @@ -88,4 +106,12 @@ Example:
>>                         };
>>                 };
>>
>> +               tsc {
>> +                       ti,poll-period = <30>;
>> +                       ti,min-pressure = <0x30>;
>> +                       ti,vref = <0>;
>> +                       ti,vendor = <0>;
>> +                       ti,product = <65070>;
>> +                       ti,version = <0x100>;
>> +               };
>>         };
>> diff --git a/drivers/input/touchscreen/tps6507x-ts.c b/drivers/input/touchscreen/tps6507x-ts.c
>> index 65e0f9a..89232ee 100644
>> --- a/drivers/input/touchscreen/tps6507x-ts.c
>> +++ b/drivers/input/touchscreen/tps6507x-ts.c
>> @@ -21,6 +21,8 @@
>>  #include <linux/mfd/tps6507x.h>
>>  #include <linux/input/tps6507x-ts.h>
>>  #include <linux/delay.h>
>> +#include <linux/of.h>
>> +#include <linux/of_device.h>
>>
>>  #define TSC_DEFAULT_POLL_PERIOD 30 /* ms */
>>  #define TPS_DEFAULT_MIN_PRESSURE 0x30
>> @@ -231,36 +233,76 @@ done:
>>         ret = tps6507x_adc_standby(tsc);
>>  }
>>
>> +static int tsc_init_data(struct tps6507x_dev *tps6507x_dev,
>> +               struct input_dev *input_dev)
>> +{
>> +       struct device_node *node = tps6507x_dev->dev->of_node;
>> +       struct tps6507x_board *tps_board =
>> +               (struct tps6507x_board *)tps6507x_dev->dev->platform_data;
>> +       struct touchscreen_init_data *init_data = NULL;
>> +       int err;
>> +
>> +       if (node)
>> +               node = of_find_node_by_name(node, "tsc");
>> +       if (tps_board)
>> +               init_data = tps_board->tps6507x_ts_init_data;
>> +
>> +       if (node == NULL || init_data == NULL) {
>> +               err = -EINVAL;
>> +               goto error_ret;
>> +       } else if (init_data) {
>> +               tps6507x_dev->ts->poll_period = init_data->poll_period;
>> +               tps6507x_dev->ts->min_pressure = init_data->min_pressure;
>> +               tps6507x_dev->ts->vref = init_data->vref;
>> +               input_dev->id.vendor = init_data->vendor;
>> +               input_dev->id.product = init_data->product;
>> +               input_dev->id.version = init_data->version;
>> +       } else if (node) {
>> +               err = of_property_read_u32(node, "ti,poll-period",
>> +                                       (u32 *)&tps6507x_dev->ts->poll_period);
>> +               if (err < 0)
>> +                       goto error_ret;
>> +
>> +               err = of_property_read_u16(node, "ti,min-pressure",
>> +                                       &tps6507x_dev->ts->min_pressure);
>> +               if (err < 0)
>> +                       goto error_ret;
>> +
>> +               err = of_property_read_u32(node, "ti,vref",
>> +                                       &tps6507x_dev->ts->vref);
>> +               if (err < 0)
>> +                       goto error_ret;
>> +
>> +               err = of_property_read_u16(node, "ti,vendor",
>> +                                       &input_dev->id.vendor);
>> +               if (err < 0)
>> +                       goto error_ret;
>> +
>> +               err = of_property_read_u16(node, "ti,product",
>> +                                       &input_dev->id.product);
>> +               if (err < 0)
>> +                       goto error_ret;
>> +
>> +               err = of_property_read_u16(node, "ti,version",
>> +                                       &input_dev->id.version);
>> +               if (err < 0)
>> +                       goto error_ret;
>
> All the three above properties as per the documentation  above
> are optional, but the code here makes them required property.
> May be what you can do is if property is not defined make it as
> zero as per documentation.

I already taken care of this as per Dmitry's comment but not yet
posted patch series as
there is discussion going on populating child node's properties.


Regards
Manish Badarkhe

^ permalink raw reply

* Re: [PATCH V3 1/2] tps6507x-ts: Add DT support
From: Prabhakar Lad @ 2013-08-20  6:14 UTC (permalink / raw)
  To: Vishwanathrao Badarkhe, Manish
  Cc: device-tree, linux-input, LDOC, LKML, dlos, Grant Likely,
	Dmitry Torokhov, Rob Landley, Rob Herring
In-Reply-To: <1369126458-24872-2-git-send-email-manishv.b@ti.com>

Hi Manish,

Thanks for the patch.

On Tue, May 21, 2013 at 2:24 PM, Vishwanathrao Badarkhe, Manish
<manishv.b@ti.com> wrote:
> Add device tree based support for TI's tps6507x touchscreen.
>
> Tested on da850-evm.
>
> Signed-off-by: Vishwanathrao Badarkhe, Manish <manishv.b@ti.com>
> ---
> Changes since V2:
>  - Removed unnecessary code.
>  - Updated Documentation to provide proper names of
>    devicetree properties.
>
> Changes since V1:
>  - Updated documentation to specify tps6507x as multifunctional
>    device.
>  - return proper error value in absence of platform and DT
>    data for touchscreen.
>  - Updated commit message.
>
> :100755 100755 8fffa3c... 65ee2cd... M  Documentation/devicetree/bindings/mfd/tps6507x.txt
> :100644 100644 65e0f9a... 89232ee... M  drivers/input/touchscreen/tps6507x-ts.c
>  Documentation/devicetree/bindings/mfd/tps6507x.txt |   28 ++++++-
>  drivers/input/touchscreen/tps6507x-ts.c            |   98 ++++++++++++++------
>  2 files changed, 95 insertions(+), 31 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mfd/tps6507x.txt b/Documentation/devicetree/bindings/mfd/tps6507x.txt
> index 8fffa3c..65ee2cd 100755
> --- a/Documentation/devicetree/bindings/mfd/tps6507x.txt
> +++ b/Documentation/devicetree/bindings/mfd/tps6507x.txt
> @@ -1,4 +1,8 @@
> -TPS6507x Power Management Integrated Circuit
> +TPS6507x Multifunctional Device.
> +
> +Features provided by TPS6507x:
> +        1.Power Management Integrated Circuit.
> +        2.Touch-Screen.
>
>  Required properties:
>  - compatible: "ti,tps6507x"
> @@ -23,6 +27,12 @@ Required properties:
>         vindcdc1_2-supply: VDCDC1 and VDCDC2 input.
>         vindcdc3-supply  : VDCDC3 input.
>         vldo1_2-supply   : VLDO1 and VLDO2 input.
> +- tsc: This node specifies touch screen data.
> +       ti,poll-period : Time at which touch input is getting sampled in ms.
> +       ti,min-pressure: Minimum pressure value to trigger touch.
> +       ti,vref        : voltage reference for ADC.
> +                     0: Reference voltage for ADC is disabled.
> +                     1: Reference voltage for ADC is enabled.
>
>  Regulator Optional properties:
>  - defdcdc_default: It's property of DCDC2 and DCDC3 regulators.
> @@ -30,6 +40,14 @@ Regulator Optional properties:
>                         1: If defdcdc pin of DCDC2/DCDC3 is driven HIGH.
>    If this property is not defined, it defaults to 0 (not enabled).
>
> +Touchscreen Optional properties:
> +- ti,vendor : Touchscreen vendor id to populate
> +             in sysclass interface.
> +- ti,product: Touchscreen product id to populate
> +             in sysclass interface.
> +- ti,version: Touchscreen version id to populate
> +             in sysclass interface.
> +
>  Example:
>
>         pmu: tps6507x@48 {
> @@ -88,4 +106,12 @@ Example:
>                         };
>                 };
>
> +               tsc {
> +                       ti,poll-period = <30>;
> +                       ti,min-pressure = <0x30>;
> +                       ti,vref = <0>;
> +                       ti,vendor = <0>;
> +                       ti,product = <65070>;
> +                       ti,version = <0x100>;
> +               };
>         };
> diff --git a/drivers/input/touchscreen/tps6507x-ts.c b/drivers/input/touchscreen/tps6507x-ts.c
> index 65e0f9a..89232ee 100644
> --- a/drivers/input/touchscreen/tps6507x-ts.c
> +++ b/drivers/input/touchscreen/tps6507x-ts.c
> @@ -21,6 +21,8 @@
>  #include <linux/mfd/tps6507x.h>
>  #include <linux/input/tps6507x-ts.h>
>  #include <linux/delay.h>
> +#include <linux/of.h>
> +#include <linux/of_device.h>
>
>  #define TSC_DEFAULT_POLL_PERIOD 30 /* ms */
>  #define TPS_DEFAULT_MIN_PRESSURE 0x30
> @@ -231,36 +233,76 @@ done:
>         ret = tps6507x_adc_standby(tsc);
>  }
>
> +static int tsc_init_data(struct tps6507x_dev *tps6507x_dev,
> +               struct input_dev *input_dev)
> +{
> +       struct device_node *node = tps6507x_dev->dev->of_node;
> +       struct tps6507x_board *tps_board =
> +               (struct tps6507x_board *)tps6507x_dev->dev->platform_data;
> +       struct touchscreen_init_data *init_data = NULL;
> +       int err;
> +
> +       if (node)
> +               node = of_find_node_by_name(node, "tsc");
> +       if (tps_board)
> +               init_data = tps_board->tps6507x_ts_init_data;
> +
> +       if (node == NULL || init_data == NULL) {
> +               err = -EINVAL;
> +               goto error_ret;
> +       } else if (init_data) {
> +               tps6507x_dev->ts->poll_period = init_data->poll_period;
> +               tps6507x_dev->ts->min_pressure = init_data->min_pressure;
> +               tps6507x_dev->ts->vref = init_data->vref;
> +               input_dev->id.vendor = init_data->vendor;
> +               input_dev->id.product = init_data->product;
> +               input_dev->id.version = init_data->version;
> +       } else if (node) {
> +               err = of_property_read_u32(node, "ti,poll-period",
> +                                       (u32 *)&tps6507x_dev->ts->poll_period);
> +               if (err < 0)
> +                       goto error_ret;
> +
> +               err = of_property_read_u16(node, "ti,min-pressure",
> +                                       &tps6507x_dev->ts->min_pressure);
> +               if (err < 0)
> +                       goto error_ret;
> +
> +               err = of_property_read_u32(node, "ti,vref",
> +                                       &tps6507x_dev->ts->vref);
> +               if (err < 0)
> +                       goto error_ret;
> +
> +               err = of_property_read_u16(node, "ti,vendor",
> +                                       &input_dev->id.vendor);
> +               if (err < 0)
> +                       goto error_ret;
> +
> +               err = of_property_read_u16(node, "ti,product",
> +                                       &input_dev->id.product);
> +               if (err < 0)
> +                       goto error_ret;
> +
> +               err = of_property_read_u16(node, "ti,version",
> +                                       &input_dev->id.version);
> +               if (err < 0)
> +                       goto error_ret;

All the three above properties as per the documentation  above
are optional, but the code here makes them required property.
May be what you can do is if property is not defined make it as
zero as per documentation.

Regards,
--Prabhakar Lad

^ permalink raw reply

* Re: [PATCH V3 1/2] tps6507x-ts: Add DT support
From: Manish Badarkhe @ 2013-08-20  5:56 UTC (permalink / raw)
  To: Vishwanathrao Badarkhe, Manish
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org,
	linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Dmitry Torokhov,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org,
	grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org,
	rob-VoJi6FS/r0vR7s880joybQ@public.gmane.org,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <CAKDJKT500ewMEv-f-vZBkMELkFkNBXLrv0oS_qUivbq0T-Y6yA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 3266 bytes --]

Hi Dmitry,

On Mon, Jul 29, 2013 at 11:47 AM, Manish Badarkhe <badarkhe.manish-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
> wrote:

> Hi Dmitry
>
> On Mon, Jul 1, 2013 at 4:40 PM, Manish Badarkhe
> <badarkhe.manish-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >
> > Hi Dmitry
> >
> >
> > On Wed, Jun 12, 2013 at 12:23 PM, Vishwanathrao Badarkhe, Manish
> > <manishv.b-l0cyMroinI0@public.gmane.org> wrote:
> > > Hi Dmitry,
> > >
> > > On Mon, Jun 10, 2013 at 23:33:11, Dmitry Torokhov wrote:
> > >> Manish,
> > >>
> > >> On Mon, Jun 10, 2013 at 10:23:16AM +0000, Vishwanathrao Badarkhe,
> > >> Manish wrote:
> > >> > Hi Dmitry,
> > >> >
> > >> > On Mon, Jun 10, 2013 at 11:34:42, Dmitry Torokhov wrote:
> > >> > > Hi Manish,
> > >> > >
> > >> > > On Tue, May 21, 2013 at 02:24:17PM +0530, Vishwanathrao Badarkhe,
> > >> > > Manish wrote:
> > >> > >
> > >> > > > +       struct touchscreen_init_data *init_data = NULL;
> > >> > > > +       int err;
> > >> > > > +
> > >> > > > +       if (node)
> > >> > > > +               node = of_find_node_by_name(node, "tsc");
> > >> > >
> > >> > > Why do you have to locate OF node manually instead of already
> > >> > > having it attached to the device stucture?
> > >> >
> > >> > As TPS6507x is mfd device containing two nodes, regulator and
> > >> > touchscreen.
> > >> > It is necessary to use "of_find_node_by_name" to find child "tsc"
> > >> > node
> > >> > of TPS6507x MFD device.
> > >>
> > >> I understand that TPS6507x is a MFD device, However, I still do not
> > >> understand why you do not attach OF data to the child platform device
> > >> representing touch screen when you create it.
> > >
> > > I gone through most of MFD devices in mainline kernel where
> > > "of_find_node_by_name"
> > > function is used in order to populate child node properties.
> > > See below example of max8925 MFD device.
> > >
> > > Max8025 MFD device has following modules
> > > 1. Touch screen
> > > 2. Charger
> > > 3. Backlight
> > > 4. regulator
> > >
> > > In DT case, device node for max8925 MFD device is in
> > > "arch/arm/boot/dts/mmp2-brownstone.dts"
> > > file having child nodes as regulator, backlight and charger.
> > > Respective drivers (regulator, backlight and charger) of max8925 MFD
> > > device used
> > > "of_find_node_by_name" function in order to populate child node
> > > properties.
> > >
> > > Here, also same case for TPS6507x MFD device
> > >
> > > TPS6507x MFD device has two childs:
> > > 1. regulator
> > > 2. touch screen.
> > >
> > > Regulator driver for TPS6507x is already in mainline and using function
> > > "of_find_node_by_name" to populate device tree properties for
> > > regulators.
> > > On similar lines I used "of_find_node_by_name" to populate device
> > > tree properties for touch screen.
> > >
> > > Still, I agreed that it is possible to attach OF data to child platform
> > > device
> > > but it requires changes in MFD driver of TPS6507x.
> > >
> > > Please let me know your opinion about this.
> >
> > Please let me know so accordingly I will make changes in code.
> >
>
> Please provide your comments so accordingly will make changes in code.
>
>    Please let me know your comments so I will do necessary modifications
   and post this series again.

Regards
Manish Badarkhe

[-- Attachment #1.2: Type: text/html, Size: 4853 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply

* Aw: Re: [PATCH 35/36] hid: roccat: convert class code to use bin_attrs in groups
From: screamingfist @ 2013-08-20  5:28 UTC (permalink / raw)
  To: gregkh, erazor_de; +Cc: jkosina, linux-input, linux-kernel
In-Reply-To: <20130815164024.GB15688@kroah.com>

----- Original Nachricht ----
Von:     Greg Kroah-Hartman <gregkh@linuxfoundation.org>
An:      Stefan Achatz <erazor_de@users.sourceforge.net>
Datum:   15.08.2013 18:40
Betreff: Re: [PATCH 35/36] hid: roccat: convert class code to use bin_attrs
 in groups

> On Thu, Aug 15, 2013 at 06:03:46PM +0200, Stefan Achatz wrote:
> > Hello Greg,
> > looking through the patch I found the following:
> > 
> > 
> > 
> > In hid-roccat-kone.c, PROFILE_ATTR macro:
> > The line
> >  .private = &profile_numbers[number],
> > should read
> >  .private = &profile_numbers[number-1],
> 
> Ah, ok, thanks, will fix up.
> 
> > Regarding the compiler warning about unused pyra_sysfs_write_settings:
> > The attribute is indeed readwrite, but the code to write is not standard
> > code. The read function was created with the PYRA_SYSFS_R macro and the
> > write function was written manually. Used were both by
> > PYRA_BIN_ATTRIBUTE_RW.
> > In this case I would keep the PYRA_SYSFS_* macros standalone so that the
> > calling code looks like this:
> > 
> > PYRA_SYSFS_W(control, CONTROL);
> > PYRA_SYSFS_RW(info, INFO);
> > PYRA_SYSFS_RW(profile_settings, PROFILE_SETTINGS);
> > PYRA_SYSFS_RW(profile_buttons, PROFILE_BUTTONS);
> > PYRA_SYSFS_R(settings, SETTINGS);
> > 
> > PYRA_BIN_ATTRIBUTE_W(control, CONTROL);
> > PYRA_BIN_ATTRIBUTE_RW(info, INFO);
> > PYRA_BIN_ATTRIBUTE_RW(profile_settings, PROFILE_SETTINGS);
> > PYRA_BIN_ATTRIBUTE_RW(profile_buttons, PROFILE_BUTTONS);
> > PYRA_BIN_ATTRIBUTE_RW(settings, SETTINGS);
> 
> Hm, I'll look this over again and see if I can make it better.
> 
> But why are you using a "non standard" write function?  What is special
> here about this?

The module stores the written value, so that events from the device can be
written to chardev with this extra information.
I made the mistake to put too many functionality in the early kernel modules
and I'm not getting fully rid of it now.

> > Another thing: Why does nobody (besides me) use the get_maintainer.pl
> > script, so I have to search manually for patches regarding my code?
> 
> I did use it:
> 
> $ ./scripts/get_maintainer.pl --file drivers/hid/hid-roccat-kone.c 
> Jiri Kosina <jkosina@suse.cz> (maintainer:HID CORE LAYER)
> linux-input@vger.kernel.org (open list:HID CORE LAYER)
> linux-kernel@vger.kernel.org (open list)
> 
> You aren't listed there, perhaps a MAINTAINERS entry needs to be added?

I thought get_maintainer spits out my name when doing my own patches...
I'll add myself to this list then.

> thanks,
> 
> greg k-h

Have a nice day
Stefan

^ permalink raw reply

* Re: [PATCH] mc13xxx-ts: use zero as default value if no pdata was defined
From: Samuel Ortiz @ 2013-08-20  1:34 UTC (permalink / raw)
  To: Michael Grzeschik; +Cc: linux-input, linux-kernel, kernel, Dmitry Torokhov
In-Reply-To: <1376396070-24507-1-git-send-email-m.grzeschik@pengutronix.de>

Hi Michael,

On Tue, Aug 13, 2013 at 02:14:30PM +0200, Michael Grzeschik wrote:
> In case of devicetree, we currently don't have a way to append pdata for
> the touchscreen. The current approach is to bail out in that case.
> This patch makes it possible to probe the touchscreen without pdata
> and use zero as default values for the atox and ato adc conversion.
Would that still make the touchscreen somehow functional ?
If that's the case, and if Dmitry is fine with the ts part of this
patch, could you please separate the mfd part of this patch into a
separate one ?

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

^ permalink raw reply

* Re: [PATCH 1/2] include: dt-binding: input: create a DT header defining key codes.
From: Rob Herring @ 2013-08-19 22:35 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Laxman Dewangan, Rob Herring, Dmitry Torokhov, Stephen Warren,
	linux@arm.linux.org.uk, linux-arm-kernel@lists.infradead.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org, devicetree@vger.kernel.org,
	Ian Campbell, Pawel Moll, Mark Rutland
In-Reply-To: <521246D8.9040506@wwwdotorg.org>

On Mon, Aug 19, 2013 at 11:24 AM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 08/19/2013 08:53 AM, Laxman Dewangan wrote:
>> On Monday 12 August 2013 11:29 PM, Stephen Warren wrote:
>>> On 08/12/2013 11:15 AM, Dmitry Torokhov wrote:
>>>>>
>>>>> Device tree files can only include headers in include/dt-bindings.
>>>>> Eventually/soon, all the DT files and the headers in the dt-bindings/
>>>>> directory will be split out into a separate git tree, which does not
>>>>> have access to include/uapi, or indeed any other Linux kernel header
>>>>> files.
>>>> OK, that makes it easier for me - please merge through whatever tree
>>>> that owns include/dt-bindings.
>>> Are there any objections to my taking both patches through the Tegra
>>> tree? Patch 2/2 depends on 1/2 and is Tegra-specific. This should work
>>> out fine unless anyone else wants to use the new header this kernel
>>> cycle; if they do, this should go into a topic branch in the DT tree
>>> that I can pull into the Tegra tree.
>>
>> Hi Stephen,
>> Just wanted to check if you are taking this on Tegra tree. I want to
>> post some more cleanups on other dts file  to use dt-binding include for
>> key code otherwise I will defer for next kernel version.
>
> At this time, I assume this will go through the DT repo/branch. Rob?

Applied.

It is available here:
git://sources.calxeda.com/kernel/linux.git for-grant

Rob

^ permalink raw reply

* Re: [PATCH 4/4] iio: ti_am335x_adc: Add continuous sampling and trigger support
From: Sebastian Andrzej Siewior @ 2013-08-19 17:12 UTC (permalink / raw)
  To: Zubair Lutfullah
  Cc: jic23, dmitry.torokhov, linux-iio, linux-input, linux-kernel,
	gregkh, Russ.Dill
In-Reply-To: <1376424303-22740-5-git-send-email-zubair.lutfullah@gmail.com>

* Zubair Lutfullah | 2013-08-13 21:05:03 [+0100]:

>diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c
>index 3ceac3e..0d7e313 100644
>--- a/drivers/iio/adc/ti_am335x_adc.c
>+++ b/drivers/iio/adc/ti_am335x_adc.c
>+static irqreturn_t tiadc_irq(int irq, void *private)
>+{
>+		wake_up_interruptible(&adc_dev->wq_data_avail);
>+}
>+static irqreturn_t tiadc_trigger_h(int irq, void *p)
>+{
>+	schedule_work(&adc_dev->poll_work);
>+}
>+static void tiadc_adc_work(struct work_struct *work_s)
>+{
>+		wait_event_interruptible(adc_dev->wq_data_avail,
>+					(adc_dev->data_avail == 1));
>+}

This is not very nice. The problem is that you might sleep in a
workqueue and so the other jobs will wait until you are done. I'm think
it is better if you create your own worker here instead using the
system's.
I'm looking into DMA support for this so once your code is working it
should be possible to switch to DMA instead reading byte wise from the
fifo.
How did you test the whole thing? Do you have a test program which
selects a few sources and reads them in continuous mode?

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 1/2] include: dt-binding: input: create a DT header defining key codes.
From: Stephen Warren @ 2013-08-19 16:24 UTC (permalink / raw)
  To: Laxman Dewangan, Rob Herring
  Cc: Dmitry Torokhov, Stephen Warren,
	linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ian Campbell,
	Pawel Moll, Mark Rutland
In-Reply-To: <52123152.9070408-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

On 08/19/2013 08:53 AM, Laxman Dewangan wrote:
> On Monday 12 August 2013 11:29 PM, Stephen Warren wrote:
>> On 08/12/2013 11:15 AM, Dmitry Torokhov wrote:
>>>>
>>>> Device tree files can only include headers in include/dt-bindings.
>>>> Eventually/soon, all the DT files and the headers in the dt-bindings/
>>>> directory will be split out into a separate git tree, which does not
>>>> have access to include/uapi, or indeed any other Linux kernel header
>>>> files.
>>> OK, that makes it easier for me - please merge through whatever tree
>>> that owns include/dt-bindings.
>> Are there any objections to my taking both patches through the Tegra
>> tree? Patch 2/2 depends on 1/2 and is Tegra-specific. This should work
>> out fine unless anyone else wants to use the new header this kernel
>> cycle; if they do, this should go into a topic branch in the DT tree
>> that I can pull into the Tegra tree.
> 
> Hi Stephen,
> Just wanted to check if you are taking this on Tegra tree. I want to
> post some more cleanups on other dts file  to use dt-binding include for
> key code otherwise I will defer for next kernel version.

At this time, I assume this will go through the DT repo/branch. Rob?

^ permalink raw reply

* Re: [PATCH 4/4] hid-sensor-hub: change kmalloc + memcpy by kmemdup
From: Srinivas Pandruvada @ 2013-08-19 15:32 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, linux-input, Srinivas Pandruvada
In-Reply-To: <1376467631-20857-4-git-send-email-andriy.shevchenko@linux.intel.com>

On 08/14/2013 01:07 AM, Andy Shevchenko wrote:
> The patch substitutes kmemdup for kmalloc followed by memcpy.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>   drivers/hid/hid-sensor-hub.c | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index 4cb19df..0794e9f 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -430,11 +430,10 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
>   		if (pdata->pending.status && pdata->pending.attr_usage_id ==
>   				report->field[i]->usage->hid) {
>   			hid_dbg(hdev, "data was pending ...\n");
> -			pdata->pending.raw_data = kmalloc(sz, GFP_ATOMIC);
> -			if (pdata->pending.raw_data) {
> -				memcpy(pdata->pending.raw_data, ptr, sz);
> +			pdata->pending.raw_data = kmemdup(ptr, sz, GFP_ATOMIC);
> +			if (pdata->pending.raw_data)
>   				pdata->pending.raw_size = sz;
> -			} else
> +			else
>   				pdata->pending.raw_size = 0;
>   			complete(&pdata->pending.ready);
>   		}
Agreed.

Thanks,
Srinivas

^ permalink raw reply

* Re: [PATCH 3/4] hid-sensor-hub: move to devm_kzalloc
From: Srinivas Pandruvada @ 2013-08-19 15:31 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, linux-input, Srinivas Pandruvada
In-Reply-To: <1376467631-20857-3-git-send-email-andriy.shevchenko@linux.intel.com>

On 08/14/2013 01:07 AM, Andy Shevchenko wrote:
> devm_kzalloc() will manage resources freeing and allows to make error path
> smaller and nicer.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>   drivers/hid/hid-sensor-hub.c | 17 +++++------------
>   1 file changed, 5 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index d0687d0..4cb19df 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -477,16 +477,15 @@ static int sensor_hub_probe(struct hid_device *hdev,
>   	struct hid_field *field;
>   	int dev_cnt;
>   
> -	sd = kzalloc(sizeof(struct sensor_hub_data), GFP_KERNEL);
> +	sd = devm_kzalloc(&hdev->dev, sizeof(*sd), GFP_KERNEL);
>   	if (!sd) {
>   		hid_err(hdev, "cannot allocate Sensor data\n");
>   		return -ENOMEM;
>   	}
> -	sd->hsdev = kzalloc(sizeof(struct hid_sensor_hub_device), GFP_KERNEL);
> +	sd->hsdev = devm_kzalloc(&hdev->dev, sizeof(*sd->hsdev), GFP_KERNEL);
>   	if (!sd->hsdev) {
>   		hid_err(hdev, "cannot allocate hid_sensor_hub_device\n");
> -		ret = -ENOMEM;
> -		goto err_free_hub;
> +		return -ENOMEM;
>   	}
>   	hid_set_drvdata(hdev, sd);
>   	sd->hsdev->hdev = hdev;
> @@ -498,14 +497,14 @@ static int sensor_hub_probe(struct hid_device *hdev,
>   	ret = hid_parse(hdev);
>   	if (ret) {
>   		hid_err(hdev, "parse failed\n");
> -		goto err_free;
> +		return ret;
>   	}
>   	INIT_LIST_HEAD(&hdev->inputs);
>   
>   	ret = hid_hw_start(hdev, 0);
>   	if (ret) {
>   		hid_err(hdev, "hw start failed\n");
> -		goto err_free;
> +		return ret;
>   	}
>   	ret = hid_hw_open(hdev);
>   	if (ret) {
> @@ -570,10 +569,6 @@ err_close:
>   	hid_hw_close(hdev);
>   err_stop_hw:
>   	hid_hw_stop(hdev);
> -err_free:
> -	kfree(sd->hsdev);
> -err_free_hub:
> -	kfree(sd);
>   
>   	return ret;
>   }
> @@ -597,8 +592,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
>   	kfree(data->hid_sensor_hub_client_devs);
>   	hid_set_drvdata(hdev, NULL);
>   	mutex_destroy(&data->mutex);
> -	kfree(data->hsdev);
> -	kfree(data);
>   }
>   
>   static const struct hid_device_id sensor_hub_devices[] = {
Agreed.

Thanks,
Srinivas

^ permalink raw reply

* Re: [PATCH 2/4] hid-sensor-hub: fix indentation accross the code
From: Srinivas Pandruvada @ 2013-08-19 15:28 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, linux-input, Srinivas Pandruvada
In-Reply-To: <1376467631-20857-2-git-send-email-andriy.shevchenko@linux.intel.com>

On 08/14/2013 01:07 AM, Andy Shevchenko wrote:
> Patch just rearranges lines to be more compact and/or readable. Additionally it
> converts double space to one in several places.
>
> There is no functional change.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>   drivers/hid/hid-sensor-hub.c | 31 +++++++++++++++----------------
>   1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index ffc80cf..d0687d0 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -103,8 +103,7 @@ static int sensor_hub_get_physical_device_count(
>   
>   	list_for_each_entry(report, &report_enum->report_list, list) {
>   		field = report->field[0];
> -		if (report->maxfield && field &&
> -					field->physical)
> +		if (report->maxfield && field && field->physical)
>   			cnt++;
>   	}
>   
> @@ -192,12 +191,12 @@ int sensor_hub_set_feature(struct hid_sensor_hub_device *hsdev, u32 report_id,
>   				u32 field_index, s32 value)
>   {
>   	struct hid_report *report;
> -	struct sensor_hub_data *data =  hid_get_drvdata(hsdev->hdev);
> +	struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev);
>   	int ret = 0;
>   
>   	mutex_lock(&data->mutex);
>   	report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT);
> -	if (!report || (field_index >=  report->maxfield)) {
> +	if (!report || (field_index >= report->maxfield)) {
>   		ret = -EINVAL;
>   		goto done_proc;
>   	}
> @@ -216,12 +215,12 @@ int sensor_hub_get_feature(struct hid_sensor_hub_device *hsdev, u32 report_id,
>   				u32 field_index, s32 *value)
>   {
>   	struct hid_report *report;
> -	struct sensor_hub_data *data =  hid_get_drvdata(hsdev->hdev);
> +	struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev);
>   	int ret = 0;
>   
>   	mutex_lock(&data->mutex);
>   	report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT);
> -	if (!report || (field_index >=  report->maxfield)) {
> +	if (!report || (field_index >= report->maxfield)) {
>   		ret = -EINVAL;
>   		goto done_proc;
>   	}
> @@ -241,7 +240,7 @@ int sensor_hub_input_attr_get_raw_value(struct hid_sensor_hub_device *hsdev,
>   					u32 usage_id,
>   					u32 attr_usage_id, u32 report_id)
>   {
> -	struct sensor_hub_data *data =  hid_get_drvdata(hsdev->hdev);
> +	struct sensor_hub_data *data = hid_get_drvdata(hsdev->hdev);
>   	unsigned long flags;
>   	struct hid_report *report;
>   	int ret_val = 0;
> @@ -302,7 +301,7 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
>   
>   	/* Initialize with defaults */
>   	info->usage_id = usage_id;
> -	info->attrib_id =  attr_usage_id;
> +	info->attrib_id = attr_usage_id;
>   	info->report_id = -1;
>   	info->index = -1;
>   	info->units = -1;
> @@ -333,7 +332,7 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
>   					if (field->usage[j].hid ==
>   					attr_usage_id &&
>   					field->usage[j].collection_index ==
> -					collection_index)  {
> +					collection_index) {
>   						sensor_hub_fill_attr_info(info,
>   							i, report->id,
>   							field->unit,
> @@ -357,7 +356,7 @@ EXPORT_SYMBOL_GPL(sensor_hub_input_get_attribute_info);
>   #ifdef CONFIG_PM
>   static int sensor_hub_suspend(struct hid_device *hdev, pm_message_t message)
>   {
> -	struct sensor_hub_data *pdata =  hid_get_drvdata(hdev);
> +	struct sensor_hub_data *pdata = hid_get_drvdata(hdev);
>   	struct hid_sensor_hub_callbacks_list *callback;
>   
>   	hid_dbg(hdev, " sensor_hub_suspend\n");
> @@ -374,7 +373,7 @@ static int sensor_hub_suspend(struct hid_device *hdev, pm_message_t message)
>   
>   static int sensor_hub_resume(struct hid_device *hdev)
>   {
> -	struct sensor_hub_data *pdata =  hid_get_drvdata(hdev);
> +	struct sensor_hub_data *pdata = hid_get_drvdata(hdev);
>   	struct hid_sensor_hub_callbacks_list *callback;
>   
>   	hid_dbg(hdev, " sensor_hub_resume\n");
> @@ -394,6 +393,7 @@ static int sensor_hub_reset_resume(struct hid_device *hdev)
>   	return 0;
>   }
>   #endif
> +
>   /*
>    * Handle raw report as sent by device
>    */
> @@ -421,7 +421,6 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
>   	spin_lock_irqsave(&pdata->lock, flags);
>   
>   	for (i = 0; i < report->maxfield; ++i) {
> -
>   		hid_dbg(hdev, "%d collection_index:%x hid:%x sz:%x\n",
>   				i, report->field[i]->usage->collection_index,
>   				report->field[i]->usage->hid,
> @@ -434,7 +433,7 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
>   			pdata->pending.raw_data = kmalloc(sz, GFP_ATOMIC);
>   			if (pdata->pending.raw_data) {
>   				memcpy(pdata->pending.raw_data, ptr, sz);
> -				pdata->pending.raw_size  = sz;
> +				pdata->pending.raw_size = sz;
>   			} else
>   				pdata->pending.raw_size = 0;
>   			complete(&pdata->pending.ready);
> @@ -539,7 +538,7 @@ static int sensor_hub_probe(struct hid_device *hdev,
>   					field->physical) {
>   			name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
>   						field->physical);
> -			if (name  == NULL) {
> +			if (name == NULL) {
>   				hid_err(hdev, "Failed MFD device name\n");
>   					ret = -ENOMEM;
>   					goto err_free_names;
> @@ -617,8 +616,8 @@ static struct hid_driver sensor_hub_driver = {
>   	.raw_event = sensor_hub_raw_event,
>   #ifdef CONFIG_PM
>   	.suspend = sensor_hub_suspend,
> -	.resume =  sensor_hub_resume,
> -	.reset_resume =  sensor_hub_reset_resume,
> +	.resume = sensor_hub_resume,
> +	.reset_resume = sensor_hub_reset_resume,
>   #endif
>   };
>   module_hid_driver(sensor_hub_driver);
Agreed.

Thanks,
Srinivas

^ permalink raw reply

* Re: [PATCH 1/4] hid-sensor-hub: fix style of comments
From: Srinivas Pandruvada @ 2013-08-19 15:26 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, linux-input, Srinivas Pandruvada
In-Reply-To: <1376902117.403.151.camel@smile>

On 08/19/2013 01:48 AM, Andy Shevchenko wrote:
> On Wed, 2013-08-14 at 11:07 +0300, Andy Shevchenko wrote:
>> This patch fixes the style of the comments to be like following
>> 	/* The commentary */
>>
>> There is no functional change.
>>
>> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Jiri, Srinivas, any comments on this?
Agreed.
>> ---
>>   drivers/hid/hid-sensor-hub.c   | 2 +-
>>   include/linux/hid-sensor-hub.h | 2 +-
>>   include/linux/hid-sensor-ids.h | 2 +-
>>   3 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
>> index ca749810..ffc80cf 100644
>> --- a/drivers/hid/hid-sensor-hub.c
>> +++ b/drivers/hid/hid-sensor-hub.c
>> @@ -416,7 +416,7 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
>>   		return 1;
>>   
>>   	ptr = raw_data;
>> -	ptr++; /*Skip report id*/
>> +	ptr++; /* Skip report id */
>>   
>>   	spin_lock_irqsave(&pdata->lock, flags);
>>   
>> diff --git a/include/linux/hid-sensor-hub.h b/include/linux/hid-sensor-hub.h
>> index ecefb73..32ba451 100644
>> --- a/include/linux/hid-sensor-hub.h
>> +++ b/include/linux/hid-sensor-hub.h
>> @@ -172,7 +172,7 @@ struct hid_sensor_common {
>>   	struct hid_sensor_hub_attribute_info sensitivity;
>>   };
>>   
>> -/*Convert from hid unit expo to regular exponent*/
>> +/* Convert from hid unit expo to regular exponent */
>>   static inline int hid_sensor_convert_exponent(int unit_expo)
>>   {
>>   	if (unit_expo < 0x08)
>> diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
>> index 6f24446..4f945d3 100644
>> --- a/include/linux/hid-sensor-ids.h
>> +++ b/include/linux/hid-sensor-ids.h
>> @@ -37,7 +37,7 @@
>>   #define HID_USAGE_SENSOR_ANGL_VELOCITY_Y_AXIS			0x200458
>>   #define HID_USAGE_SENSOR_ANGL_VELOCITY_Z_AXIS			0x200459
>>   
>> -/*ORIENTATION: Compass 3D: (200083) */
>> +/* ORIENTATION: Compass 3D: (200083) */
>>   #define HID_USAGE_SENSOR_COMPASS_3D				0x200083
>>   #define HID_USAGE_SENSOR_ORIENT_MAGN_HEADING			0x200471
>>   #define HID_USAGE_SENSOR_ORIENT_MAGN_HEADING_X			0x200472
Thanks,
Srinivas

^ permalink raw reply

* Re: [PATCH] usb: USB host support should depend on HAS_DMA
From: Alan Stern @ 2013-08-19 15:09 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Arnd Bergmann, Greg Kroah-Hartman, linux-input@vger.kernel.org,
	Linux Media Mailing List, USB list, linux-kernel@vger.kernel.org
In-Reply-To: <CAMuHMdVXeWaggY5FPKrr2fBBnKLq3Rqw9WF99N+AX5sFwBOnog@mail.gmail.com>

On Sun, 18 Aug 2013, Geert Uytterhoeven wrote:

> On Thu, Jul 11, 2013 at 1:12 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Wednesday 10 July 2013, Alan Stern wrote:
> >> This isn't right.  There are USB host controllers that use PIO, not
> >> DMA.  The HAS_DMA dependency should go with the controller driver, not
> >> the USB core.
> >>
> >> On the other hand, the USB core does call various routines like
> >> dma_unmap_single.  It ought to be possible to compile these calls even
> >> when DMA isn't enabled.  That is, they should be defined as do-nothing
> >> stubs.
> >
> > The asm-generic/dma-mapping-broken.h file intentionally causes link
> > errors, but that could be changed.
> >
> > The better approach in my mind would be to replace code like
> >
> >
> >         if (hcd->self.uses_dma)
> >
> > with
> >
> >         if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
> >
> > which will reliably cause that reference to be omitted from object code,
> > but not stop giving link errors for drivers that actually require
> > DMA.
> 
> This can be done for drivers/usb/core/hcd.c.
> 
> But I'm a bit puzzled by drivers/usb/core/buffer.c. E.g.
> 
> void *hcd_buffer_alloc(...)
> {
>         ....
>         /* some USB hosts just use PIO */
>         if (!bus->controller->dma_mask &&
>             !(hcd->driver->flags & HCD_LOCAL_MEM)) {

I don't remember the full story.  You should check with the person who
added the HCD_LOCAL_MEM flag originally.

> So if DMA is not used (!hcd->self.uses_dma, i.e. bus->controller->dma_mask
> is zero), and HCD_LOCAL_MEM is set, we still end up calling dma_pool_alloc()?
> 
> (Naively, I'm not so familiar with the USB code) I'd expect it to use
> kmalloc() instead?

Maybe what happens in this case is that some sort of hook causes the 
allocation to be made from a special memory-mapped region on board the 
controller.

Alan Stern


^ permalink raw reply

* Re: [PATCH 1/2] include: dt-binding: input: create a DT header defining key codes.
From: Laxman Dewangan @ 2013-08-19 14:53 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Dmitry Torokhov, Rob Herring, Stephen Warren,
	linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ian Campbell,
	Pawel Moll, Mark Rutland
In-Reply-To: <52092299.4080104-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

On Monday 12 August 2013 11:29 PM, Stephen Warren wrote:
> On 08/12/2013 11:15 AM, Dmitry Torokhov wrote:
>>>
>>> Device tree files can only include headers in include/dt-bindings.
>>> Eventually/soon, all the DT files and the headers in the dt-bindings/
>>> directory will be split out into a separate git tree, which does not
>>> have access to include/uapi, or indeed any other Linux kernel header files.
>> OK, that makes it easier for me - please merge through whatever tree
>> that owns include/dt-bindings.
> Are there any objections to my taking both patches through the Tegra
> tree? Patch 2/2 depends on 1/2 and is Tegra-specific. This should work
> out fine unless anyone else wants to use the new header this kernel
> cycle; if they do, this should go into a topic branch in the DT tree
> that I can pull into the Tegra tree.

Hi Stephen,
Just wanted to check if you are taking this on Tegra tree. I want to 
post some more cleanups on other dts file  to use dt-binding include for 
key code otherwise I will defer for next kernel version.


Thanks,
Laxman

^ permalink raw reply

* Re: Atmel updates to atmel_mxt_ts touch controller driver - v6
From: Nick Dyer @ 2013-08-19 14:24 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: rydberg, Daniel Kurtz, Joonyoung Shim, Alan Bowens, linux-input,
	linux-kernel, Peter Meerwald, Benson Leung, Olof Johansson
In-Reply-To: <20130815160734.GB12196@core.coreip.homeip.net>

Dmitry Torokhov wrote:
> On Thu, Aug 15, 2013 at 04:55:57PM +0100, Nick Dyer wrote:
>> rydberg@euromail.se wrote:
>>> **Do not send more than 15 patches at once to the vger mailing lists!!!***
>>>
>>> One reason that should be obvious by now is that your work will be
>>> attended to much quicker. One may think that it is more efficient to
>>> send the whole backlog at once, but in fact, the time it takes to get
>>> a patchset accepted is inversely proportional to the length of the
>>> patchset. So please, keep it small and simple next time,
>>
>> Apologies. I will split this lot up into several smaller series of patches.
> 
> Wait, I am in the process of applying it actually...

OK, will hang on for the moment. Let me know if you need anything from me.

^ permalink raw reply

* Re: [PATCH 1/4] hid-sensor-hub: fix style of comments
From: Andy Shevchenko @ 2013-08-19  8:48 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, Srinivas Pandruvada
In-Reply-To: <1376467631-20857-1-git-send-email-andriy.shevchenko@linux.intel.com>

On Wed, 2013-08-14 at 11:07 +0300, Andy Shevchenko wrote: 
> This patch fixes the style of the comments to be like following
> 	/* The commentary */
> 
> There is no functional change.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Jiri, Srinivas, any comments on this?

> ---
>  drivers/hid/hid-sensor-hub.c   | 2 +-
>  include/linux/hid-sensor-hub.h | 2 +-
>  include/linux/hid-sensor-ids.h | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index ca749810..ffc80cf 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -416,7 +416,7 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
>  		return 1;
>  
>  	ptr = raw_data;
> -	ptr++; /*Skip report id*/
> +	ptr++; /* Skip report id */
>  
>  	spin_lock_irqsave(&pdata->lock, flags);
>  
> diff --git a/include/linux/hid-sensor-hub.h b/include/linux/hid-sensor-hub.h
> index ecefb73..32ba451 100644
> --- a/include/linux/hid-sensor-hub.h
> +++ b/include/linux/hid-sensor-hub.h
> @@ -172,7 +172,7 @@ struct hid_sensor_common {
>  	struct hid_sensor_hub_attribute_info sensitivity;
>  };
>  
> -/*Convert from hid unit expo to regular exponent*/
> +/* Convert from hid unit expo to regular exponent */
>  static inline int hid_sensor_convert_exponent(int unit_expo)
>  {
>  	if (unit_expo < 0x08)
> diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
> index 6f24446..4f945d3 100644
> --- a/include/linux/hid-sensor-ids.h
> +++ b/include/linux/hid-sensor-ids.h
> @@ -37,7 +37,7 @@
>  #define HID_USAGE_SENSOR_ANGL_VELOCITY_Y_AXIS			0x200458
>  #define HID_USAGE_SENSOR_ANGL_VELOCITY_Z_AXIS			0x200459
>  
> -/*ORIENTATION: Compass 3D: (200083) */
> +/* ORIENTATION: Compass 3D: (200083) */
>  #define HID_USAGE_SENSOR_COMPASS_3D				0x200083
>  #define HID_USAGE_SENSOR_ORIENT_MAGN_HEADING			0x200471
>  #define HID_USAGE_SENSOR_ORIENT_MAGN_HEADING_X			0x200472

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply

* Re: [PATCH] usb: USB host support should depend on HAS_DMA
From: Geert Uytterhoeven @ 2013-08-18 21:12 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Alan Stern, Greg Kroah-Hartman, linux-input@vger.kernel.org,
	Linux Media Mailing List, USB list, linux-kernel@vger.kernel.org
In-Reply-To: <201307110112.57398.arnd@arndb.de>

On Thu, Jul 11, 2013 at 1:12 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 10 July 2013, Alan Stern wrote:
>> This isn't right.  There are USB host controllers that use PIO, not
>> DMA.  The HAS_DMA dependency should go with the controller driver, not
>> the USB core.
>>
>> On the other hand, the USB core does call various routines like
>> dma_unmap_single.  It ought to be possible to compile these calls even
>> when DMA isn't enabled.  That is, they should be defined as do-nothing
>> stubs.
>
> The asm-generic/dma-mapping-broken.h file intentionally causes link
> errors, but that could be changed.
>
> The better approach in my mind would be to replace code like
>
>
>         if (hcd->self.uses_dma)
>
> with
>
>         if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
>
> which will reliably cause that reference to be omitted from object code,
> but not stop giving link errors for drivers that actually require
> DMA.

This can be done for drivers/usb/core/hcd.c.

But I'm a bit puzzled by drivers/usb/core/buffer.c. E.g.

void *hcd_buffer_alloc(...)
{
        ....
        /* some USB hosts just use PIO */
        if (!bus->controller->dma_mask &&
            !(hcd->driver->flags & HCD_LOCAL_MEM)) {
                *dma = ~(dma_addr_t) 0;
                return kmalloc(size, mem_flags);
        }

        for (i = 0; i < HCD_BUFFER_POOLS; i++) {
                if (size <= pool_max[i])
                        return dma_pool_alloc(hcd->pool[i], mem_flags, dma);
        }
        return dma_alloc_coherent(hcd->self.controller, size, dma, mem_flags);
}

which is called from usb_hcd_map_urb_for_dma():

                if (hcd->self.uses_dma) {
                        ....
                } else if (hcd->driver->flags & HCD_LOCAL_MEM) {
                        ret = hcd_alloc_coherent(
                                        urb->dev->bus, mem_flags,
                                        &urb->setup_dma,
                                        (void **)&urb->setup_packet,
                                        sizeof(struct usb_ctrlrequest),
                                        DMA_TO_DEVICE);
                        ...
                }

So if DMA is not used (!hcd->self.uses_dma, i.e. bus->controller->dma_mask
is zero), and HCD_LOCAL_MEM is set, we still end up calling dma_pool_alloc()?

(Naively, I'm not so familiar with the USB code) I'd expect it to use
kmalloc() instead?

So I would change it to

        if (!IS_ENABLED(CONFIG_HAS_DMA) ||
            (!bus->controller->dma_mask &&
             !(hcd->driver->flags & HCD_LOCAL_MEM))) {
                *dma = ~(dma_addr_t) 0;
                return kmalloc(size, mem_flags);
        }

Thanks for your clarification!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply

* Re: [PATCH v1 26/49] input: cm109: prepare for enabling irq in complete()
From: Greg Kroah-Hartman @ 2013-08-18 18:05 UTC (permalink / raw)
  To: Ming Lei; +Cc: Dmitry Torokhov, linux-usb, Oliver Neukum, Alan Stern,
	linux-input
In-Reply-To: <CACVXFVMTAYZR43pk=sc=ZDMqgS_8iSzPo880CEATNj+0SEz0aQ@mail.gmail.com>

On Sun, Aug 18, 2013 at 10:10:15PM +0800, Ming Lei wrote:
> Hi Dmitry,
> 
> On Sun, Aug 18, 2013 at 11:37 AM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > Hi Ming,
> >
> > On Sun, Aug 18, 2013 at 12:24:51AM +0800, Ming Lei wrote:
> >> Complete() will be run with interrupt enabled, so change to
> >> spin_lock_irqsave().
> >
> > I think cm109 needs some love in it's URB handling, but this patch does
> > not change anything, so:
> >
> > Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> Thank you.
> 
> >
> > Or do you want me to pick it up for my tree?
> 
> IMO, it might be easier to merge these patches via one tree, so
> 
> Greg, would you like to manage all these patches via your tree?

Yes, I can take them all.

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH v1 26/49] input: cm109: prepare for enabling irq in complete()
From: Ming Lei @ 2013-08-18 14:10 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Greg Kroah-Hartman, linux-usb, Oliver Neukum, Alan Stern,
	linux-input
In-Reply-To: <20130818033745.GC11553@core.coreip.homeip.net>

Hi Dmitry,

On Sun, Aug 18, 2013 at 11:37 AM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> Hi Ming,
>
> On Sun, Aug 18, 2013 at 12:24:51AM +0800, Ming Lei wrote:
>> Complete() will be run with interrupt enabled, so change to
>> spin_lock_irqsave().
>
> I think cm109 needs some love in it's URB handling, but this patch does
> not change anything, so:
>
> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thank you.

>
> Or do you want me to pick it up for my tree?

IMO, it might be easier to merge these patches via one tree, so

Greg, would you like to manage all these patches via your tree?

If not, I have to push these patches on each subsystem, then you
need to pick it up for your input tree...


Thanks,
--
Ming Lei

^ permalink raw reply

* Re: [PATCH v1 26/49] input: cm109: prepare for enabling irq in complete()
From: Dmitry Torokhov @ 2013-08-18  3:37 UTC (permalink / raw)
  To: Ming Lei
  Cc: Greg Kroah-Hartman, linux-usb, Oliver Neukum, Alan Stern,
	linux-input
In-Reply-To: <1376756714-25479-27-git-send-email-ming.lei@canonical.com>

Hi Ming,

On Sun, Aug 18, 2013 at 12:24:51AM +0800, Ming Lei wrote:
> Complete() will be run with interrupt enabled, so change to
> spin_lock_irqsave().

I think cm109 needs some love in it's URB handling, but this patch does
not change anything, so:

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Or do you want me to pick it up for my tree?

Thanks.

-- 
Dmitry

^ permalink raw reply

* [PATCH v1 26/49] input: cm109: prepare for enabling irq in complete()
From: Ming Lei @ 2013-08-17 16:24 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-usb, Oliver Neukum, Alan Stern, Ming Lei, Dmitry Torokhov,
	linux-input
In-Reply-To: <1376756714-25479-1-git-send-email-ming.lei@canonical.com>

Complete() will be run with interrupt enabled, so change to
spin_lock_irqsave().

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 drivers/input/misc/cm109.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
index 082684e..cac4e37 100644
--- a/drivers/input/misc/cm109.c
+++ b/drivers/input/misc/cm109.c
@@ -340,6 +340,7 @@ static void cm109_urb_irq_callback(struct urb *urb)
 	struct cm109_dev *dev = urb->context;
 	const int status = urb->status;
 	int error;
+	unsigned long flags;
 
 	dev_dbg(&dev->intf->dev, "### URB IRQ: [0x%02x 0x%02x 0x%02x 0x%02x] keybit=0x%02x\n",
 	     dev->irq_data->byte[0],
@@ -379,7 +380,7 @@ static void cm109_urb_irq_callback(struct urb *urb)
 
  out:
 
-	spin_lock(&dev->ctl_submit_lock);
+	spin_lock_irqsave(&dev->ctl_submit_lock, flags);
 
 	dev->irq_urb_pending = 0;
 
@@ -403,7 +404,7 @@ static void cm109_urb_irq_callback(struct urb *urb)
 				__func__, error);
 	}
 
-	spin_unlock(&dev->ctl_submit_lock);
+	spin_unlock_irqrestore(&dev->ctl_submit_lock, flags);
 }
 
 static void cm109_urb_ctl_callback(struct urb *urb)
@@ -411,6 +412,7 @@ static void cm109_urb_ctl_callback(struct urb *urb)
 	struct cm109_dev *dev = urb->context;
 	const int status = urb->status;
 	int error;
+	unsigned long flags;
 
 	dev_dbg(&dev->intf->dev, "### URB CTL: [0x%02x 0x%02x 0x%02x 0x%02x]\n",
 	     dev->ctl_data->byte[0],
@@ -421,7 +423,7 @@ static void cm109_urb_ctl_callback(struct urb *urb)
 	if (status)
 		dev_err(&dev->intf->dev, "%s: urb status %d\n", __func__, status);
 
-	spin_lock(&dev->ctl_submit_lock);
+	spin_lock_irqsave(&dev->ctl_submit_lock, flags);
 
 	dev->ctl_urb_pending = 0;
 
@@ -442,7 +444,7 @@ static void cm109_urb_ctl_callback(struct urb *urb)
 		}
 	}
 
-	spin_unlock(&dev->ctl_submit_lock);
+	spin_unlock_irqrestore(&dev->ctl_submit_lock, flags);
 }
 
 static void cm109_toggle_buzzer_async(struct cm109_dev *dev)
-- 
1.7.9.5


^ permalink raw reply related

* [PATCH v1 23/49] hid: usbhid: prepare for enabling irq in complete()
From: Ming Lei @ 2013-08-17 16:24 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-usb, Oliver Neukum, Alan Stern, Ming Lei, Jiri Kosina,
	linux-input
In-Reply-To: <1376756714-25479-1-git-send-email-ming.lei@canonical.com>

Complete() will be run with interrupt enabled, so change to
spin_lock_irqsave().

Cc: Jiri Kosina <jkosina@suse.cz>
Cc: linux-input@vger.kernel.org
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 drivers/hid/usbhid/hid-core.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index bd38cdf..2445fd6 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -489,8 +489,9 @@ static void hid_ctrl(struct urb *urb)
 	struct hid_device *hid = urb->context;
 	struct usbhid_device *usbhid = hid->driver_data;
 	int unplug = 0, status = urb->status;
+	unsigned long flags;
 
-	spin_lock(&usbhid->lock);
+	spin_lock_irqsave(&usbhid->lock, flags);
 
 	switch (status) {
 	case 0:			/* success */
@@ -525,7 +526,7 @@ static void hid_ctrl(struct urb *urb)
 	}
 
 	clear_bit(HID_CTRL_RUNNING, &usbhid->iofl);
-	spin_unlock(&usbhid->lock);
+	spin_unlock_irqrestore(&usbhid->lock, flags);
 	usb_autopm_put_interface_async(usbhid->intf);
 	wake_up(&usbhid->wait);
 }
-- 
1.7.9.5


^ permalink raw reply related

* [PATCH v1 00/49] USB: prepare for enabling irq in complete()
From: Ming Lei @ 2013-08-17 16:24 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-usb, Oliver Neukum, Alan Stern, linux-input,
	linux-bluetooth, netdev, linux-wireless, linux-media, alsa-devel

Hi,

As we are going to run URB->complete() in tasklet context[1][2], and
hard interrupt may be enabled when running URB completion handler[3],
so we might need to disable interrupt when acquiring one lock in
the completion handler for the below reasons:

- URB->complete() holds a subsystem wide lock which may be acquired
in another hard irq context, and the subsystem wide lock is acquired
by spin_lock()/read_lock()/write_lock() in complete()

- URB->complete() holds a private lock with spin_lock()/read_lock()/write_lock()
but driver may export APIs to make other drivers acquire the same private
lock in its interrupt handler.

For the sake of safety and making the change simple, this patch set
converts all spin_lock()/read_lock()/write_lock() in completion handler
path into their irqsave version mechanically.

But if you are sure the above two cases do not happen in your driver,
please let me know and I can drop the unnecessary change.

Also if you find some conversions are missed, also please let me know so
that I can add it in the next round.


[1], USB: URB documentation: claim complete() will be run with IRQs enabled
https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=85721d45261c4be684730c7509a59daa6cda30d8

[2], USB: HCD: support giveback of URB in tasklet context
https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=94dfd7edfd5c9b605caf7b562de7a813d216e011

[3], http://marc.info/?l=linux-usb&m=137286330626363&w=2

V1:
	- rename patchset title
	- add missed changes on 'usb_skeleon and usb sg lib'
	- remove several sound usb drivers which have been done via sound tree
	- some patch style fix
	- replace snd_pcm_stream_lock with snd_pcm_stream_lock_irqsave for related
	a/v drivers

Cc: linux-input@vger.kernel.org
Cc: linux-bluetooth@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: alsa-devel@alsa-project.org

 drivers/bluetooth/bfusb.c                     |   12 ++++----
 drivers/bluetooth/btusb.c                     |    5 ++--
 drivers/hid/usbhid/hid-core.c                 |    5 ++--
 drivers/input/misc/cm109.c                    |   10 ++++---
 drivers/isdn/hardware/mISDN/hfcsusb.c         |   36 ++++++++++++-----------
 drivers/media/dvb-core/dvb_demux.c            |   17 +++++++----
 drivers/media/usb/cx231xx/cx231xx-audio.c     |   10 ++++---
 drivers/media/usb/cx231xx/cx231xx-core.c      |   10 ++++---
 drivers/media/usb/cx231xx/cx231xx-vbi.c       |    5 ++--
 drivers/media/usb/em28xx/em28xx-audio.c       |    5 ++--
 drivers/media/usb/em28xx/em28xx-core.c        |    5 ++--
 drivers/media/usb/sn9c102/sn9c102_core.c      |    7 +++--
 drivers/media/usb/tlg2300/pd-alsa.c           |    5 ++--
 drivers/media/usb/tlg2300/pd-video.c          |    5 ++--
 drivers/media/usb/tm6000/tm6000-video.c       |    5 ++--
 drivers/net/usb/cdc-phonet.c                  |    5 ++--
 drivers/net/usb/hso.c                         |   38 ++++++++++++++-----------
 drivers/net/usb/kaweth.c                      |    7 +++--
 drivers/net/usb/rtl8150.c                     |    5 ++--
 drivers/net/wireless/ath/ath9k/hif_usb.c      |   29 ++++++++++---------
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c |    9 +++---
 drivers/net/wireless/ath/ath9k/wmi.c          |   11 +++----
 drivers/net/wireless/ath/carl9170/rx.c        |    5 ++--
 drivers/net/wireless/libertas/if_usb.c        |    5 ++--
 drivers/net/wireless/libertas_tf/if_usb.c     |    6 ++--
 drivers/net/wireless/zd1211rw/zd_usb.c        |   21 ++++++++------
 drivers/staging/bcm/InterfaceRx.c             |    5 ++--
 drivers/staging/btmtk_usb/btmtk_usb.c         |    5 ++--
 drivers/staging/ced1401/usb1401.c             |   35 ++++++++++++-----------
 drivers/staging/vt6656/usbpipe.c              |    9 +++---
 drivers/usb/class/cdc-wdm.c                   |   16 +++++++----
 drivers/usb/class/usblp.c                     |   10 ++++---
 drivers/usb/core/devio.c                      |    5 ++--
 drivers/usb/core/message.c                    |    5 ++--
 drivers/usb/misc/adutux.c                     |   10 ++++---
 drivers/usb/misc/iowarrior.c                  |    5 ++--
 drivers/usb/misc/ldusb.c                      |    7 +++--
 drivers/usb/misc/legousbtower.c               |    6 ++--
 drivers/usb/misc/usbtest.c                    |   10 ++++---
 drivers/usb/misc/uss720.c                     |    7 ++++-
 drivers/usb/serial/cyberjack.c                |   15 ++++++----
 drivers/usb/serial/digi_acceleport.c          |   23 ++++++++-------
 drivers/usb/serial/io_edgeport.c              |   14 +++++----
 drivers/usb/serial/io_ti.c                    |    5 ++--
 drivers/usb/serial/mos7720.c                  |    5 ++--
 drivers/usb/serial/mos7840.c                  |    5 ++--
 drivers/usb/serial/quatech2.c                 |    5 ++--
 drivers/usb/serial/sierra.c                   |    9 +++---
 drivers/usb/serial/symbolserial.c             |    5 ++--
 drivers/usb/serial/ti_usb_3410_5052.c         |    9 +++---
 drivers/usb/serial/usb_wwan.c                 |    5 ++--
 drivers/usb/usb-skeleton.c                    |   11 ++++---
 sound/usb/caiaq/audio.c                       |    5 ++--
 sound/usb/midi.c                              |    5 ++--
 54 files changed, 318 insertions(+), 221 deletions(-)


Thanks,
--
Ming Lei


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox