Re: [PATCH v2 1/4] usb/gadget: composite: redirect setup requests

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

 



On Thu, Nov 07 2013, Andrzej Pietrasiewicz wrote:
> If there are setup requests not directed to an endpont or an interface,
> current config's setup() has been attempted so far.
> This patch, in case the above fails, adds code which tries the setup() of
> configuration's function if there is only one function in the configuration.
>
> This behavior is required to provide equivalent of gadget zero with configfs.
>
> The gadget zero has a "config driver" for sourcesink, but all it does is
> delegating the request to the function proper. So when the equivalent gadget
> is set up with configfs it needs to handle requests directed to
> "config driver", but with configfs it is not possible to specify
> "config drivers".
>
> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxx>
> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>

Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>

> ---
>  drivers/usb/gadget/composite.c |   16 +++++++++++++++-
>  1 files changed, 15 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index d4f0f33..6c0d25d 100644
> --- a/drivers/usb/gadget/composite.c
> +++ b/drivers/usb/gadget/composite.c
> @@ -1451,8 +1451,22 @@ unknown:
>  			struct usb_configuration	*c;
>  
>  			c = cdev->config;
> -			if (c && c->setup)
> +			if (!c)
> +				goto done;
> +
> +			/* try current config's setup */
> +			if (c->setup) {
>  				value = c->setup(c, ctrl);
> +				goto done;
> +			}
> +
> +			/* try the only function in the current config */
> +			if (!list_is_singular(&c->functions))
> +				goto done;
> +			f = list_first_entry(&c->functions, struct usb_function,
> +					     list);
> +			if (f->setup)
> +				value = f->setup(f, ctrl);
>  		}
>  
>  		goto done;
> -- 
> 1.7.0.4
>

-- 
Best regards,                                         _     _
.o. | Liege of Serenely Enlightened Majesty of      o' \,=./ `o
..o | Computer Science,  Michał “mina86” Nazarewicz    (o o)
ooo +--<mpn@xxxxxxxxxx>--<xmpp:mina86@xxxxxxxxxx>--ooO--(_)--Ooo--

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux