Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3985f3ab authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: gadget: function: f_obex: fix Interface Descriptor Test



On USB20CV's Interface Descriptor Test, a series
of SetInterface/GetInterface requests are issued
and gadget driver is required to always return
correct alternate setting.

In one step of the test, g_serial with f_obex
was returning the wrong value (1 instead of 0).

In order to fix this, we will now hold currently
selected alternate setting inside our struct f_obex
and just return that from our ->get_alt()
implementation.

Note that his also simplifies the code a bit.

Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent de1e6e79
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ struct f_obex {
	struct gserial			port;
	u8				ctrl_id;
	u8				data_id;
	u8				cur_alt;
	u8				port_num;
	u8				can_activate;
};
@@ -235,6 +236,8 @@ static int obex_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
	} else
		goto fail;

	obex->cur_alt = alt;

	return 0;

fail:
@@ -245,10 +248,7 @@ static int obex_get_alt(struct usb_function *f, unsigned intf)
{
	struct f_obex		*obex = func_to_obex(f);

	if (intf == obex->ctrl_id)
		return 0;

	return obex->port.in->driver_data ? 1 : 0;
	return obex->cur_alt;
}

static void obex_disable(struct usb_function *f)