Hi Jason,

I'd be happy to review these patches if you want it but can you give a
little more context for the series on them?

For example, a version of this patch seems to be in linux kernel but uses
usb_hub_for_each_child().  Can patch be aligned with linux?

Are other patches in linux kernel as well?  Any that are not and so should
be reviewed closer?

Chris



On Wed, Sep 25, 2013 at 6:50 PM, Jason Gerecke <killert...@gmail.com> wrote:

> Instead of bailing at the first NULL child (i.e., the first non-
> connected port), go through all ports and simply skip any NULL
> children. This condition occurs in the Cintiq Companion Hybrid
> when trying to locate the other "half" (i.e. pen or touch device)
> of the tablet.
>
> Signed-off-by: Jason Gerecke <killert...@gmail.com>
> ---
>  2.6.38/wacom_sys.c | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/2.6.38/wacom_sys.c b/2.6.38/wacom_sys.c
> index 177efd8..6848717 100644
> --- a/2.6.38/wacom_sys.c
> +++ b/2.6.38/wacom_sys.c
> @@ -622,7 +622,7 @@ static DEFINE_MUTEX(wacom_udev_list_lock);
>
>  static struct usb_device *wacom_get_sibling(struct usb_device *dev, int
> vendor, int product)
>  {
> -       struct usb_device **sibling;
> +       int i;
>
>         if (vendor == 0 && product == 0)
>                 return dev;
> @@ -630,14 +630,17 @@ static struct usb_device *wacom_get_sibling(struct
> usb_device *dev, int vendor,
>         if (dev->parent == NULL)
>                 return NULL;
>
> -       sibling = dev->parent->children;
> -       while (sibling != NULL && *sibling != NULL) {
> -               struct usb_device_descriptor d = (*sibling)->descriptor;
> +       for (i = 0 ; i < dev->parent->maxchild; i++) {
> +               struct usb_device *sibling = dev->parent->children[i];
> +               struct usb_device_descriptor d;
>
> -               if (d.idVendor == vendor && d.idProduct == product)
> -                       return *sibling;
> +               if (sibling == NULL)
> +                       continue;
> +
> +               d = sibling->descriptor;
>
> -               sibling++;
> +               if (d.idVendor == vendor && d.idProduct == product)
> +                       return sibling;
>         }
>
>         return NULL;
> --
> 1.8.4
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to