Hi Rene,

On 3/7/07, Rene van Paassen <[EMAIL PROTECTED]> wrote:
>
>  /***********************************************************************
> + * Constants used in the sysfs files. This affords us a small size
> + * optimization, plus maintains a single point of failure (misspellings.)
> + */
> +static char *pStylus = "stylus";
> +static char *pMouse = "mouse";
> +static char *pEither = "either";
> +static char *pUnknown = "unknown";
> +static char *pAbsolute = "absolute";
> +static char *pRelative = "relative";
> +static char *pEraser = "eraser";
> +static char *pPen = "pen";
> +static char *pPencil = "pencil";
> +static char *pBrush = "brush";
> +static char *pAirbrush = "airbrush";
> +static char *pLens = "lens";
> +static char *pDisable = "disable";
> +static char *pUpper = "upper";
> +static char *pLower = "lower";
> +static char *pLeft = "left";
> +static char *pRight = "right";
> +static char *pMiddle = "middle";
> +

Does not this waste 4 bytes per string as opposed to static char[]? Or
does it only matter with __initdata?

> @@ -1034,8 +1185,7 @@
>        if (aiptek == NULL)
>                return 0;
>
> -       return snprintf(buf, PAGE_SIZE, "0x%04x\n",
> -                       aiptek->inputdev->id.product);
> +       return snprintf(buf, PAGE_SIZE, pHex, aiptek->inputdev->id.product);
>  }

I believe input core already exports all these IDs, so I'd rather have
these attributes removed.

> +       /* Register the tablet as an Input Device
> +        */
> +       input_register_device(aiptek->inputdev);
> +

I'd appreciate if you add error handling here.

> +       /* We now will look for the evdev device which is mapped to
> +        * the tablet. The partial name is kept in the link list of
> +        * input_handles associated with this input device.
> +        * What identifies an evdev input_handler is that it begins
> +        * with 'event', continues with a digit, and that in turn
> +        * is mapped to /{devfs}/input/eventN.
> +        */
> +       inputdev = aiptek->inputdev;
> +       list_for_each_safe(node, next, &inputdev->h_list) {
> +               inputhandle = to_handle(node);
> +               if (strncmp(inputhandle->name, "event", 5) == 0) {
> +                       strcpy(aiptek->features.inputPath,
> +                              inputhandle->name);
> +                       break;
> +               }
> +       }

And get rid of this part cmpletely. It does not even work if evdev is
not loaded before aiptek.

-- 
Dmitry

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to