Commit 0b8b1a1f authored by Jayshri Pawar's avatar Jayshri Pawar Committed by Felipe Balbi
Browse files

usb: gadget: f_tcm: Provide support to get alternate setting in tcm function



Providing tcm_get_alt in tcm function to support Bulk only protocol and
USB Attached SCSI protocol

Signed-off-by: default avatarJayshri Pawar <jpawar@cadence.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 75eaa498
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -846,7 +846,7 @@ static void uasp_set_alt(struct f_uas *fu)

	fu->flags = USBG_IS_UAS;

	if (gadget->speed == USB_SPEED_SUPER)
	if (gadget->speed >= USB_SPEED_SUPER)
		fu->flags |= USBG_USE_STREAMS;

	config_ep_by_speed(gadget, f, fu->ep_in);
@@ -2093,6 +2093,16 @@ static void tcm_delayed_set_alt(struct work_struct *wq)
	usb_composite_setup_continue(fu->function.config->cdev);
}

static int tcm_get_alt(struct usb_function *f, unsigned intf)
{
	if (intf == bot_intf_desc.bInterfaceNumber)
		return USB_G_ALT_INT_BBB;
	if (intf == uasp_intf_desc.bInterfaceNumber)
		return USB_G_ALT_INT_UAS;

	return -EOPNOTSUPP;
}

static int tcm_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
{
	struct f_uas *fu = to_f_uas(f);
@@ -2300,6 +2310,7 @@ static struct usb_function *tcm_alloc(struct usb_function_instance *fi)
	fu->function.bind = tcm_bind;
	fu->function.unbind = tcm_unbind;
	fu->function.set_alt = tcm_set_alt;
	fu->function.get_alt = tcm_get_alt;
	fu->function.setup = tcm_setup;
	fu->function.disable = tcm_disable;
	fu->function.free_func = tcm_free;