[alsa-devel] [PATCH v4 11/18] input: Add initial support for TWL6040 vibrator

Dmitry Torokhov dmitry.torokhov at gmail.com
Mon Jun 13 23:20:28 CEST 2011


On Mon, Jun 13, 2011 at 12:51:16PM +0300, Péter Ujfalusi wrote:
> On Sunday 12 June 2011 01:18:54 Dmitry Torokhov wrote:
> 
> > > +static int twl6040_vibra_open(struct input_dev *input)
> > > +{
> > > +     struct vibra_info *info = input_get_drvdata(input);
> > > +
> > > +     info->workqueue = create_singlethread_workqueue("vibra");
> > > +     if (info->workqueue == NULL) {
> > > +             dev_err(&input->dev, "couldn't create workqueue\n");
> > > +             return -ENOMEM;
> > > +     }
> > 
> > Why do we need to create a separate workqueue? With arrival of CWQ
> > it looks like we should be able to use one of the system-wide
> > workqueues for this.
> 
> The reason for this is to ensure that we have the lowest latency as possible 
> in most case. In the embedded devices we use the vibra for tactile type of 
> feedbacks as well, where few tens of ms delay can be felt.

Even if you create a dedicated workqueue with CWQ it will still be using
shared pool of threads so I do not think that latency will be affected
by using system-wide workqueue. I might be mistaken though, Tejun will
correct me if I am wrong...

Thanks.

-- 
Dmitry


More information about the Alsa-devel mailing list