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

Commit 2c247804 authored by Felipe Balbi's avatar Felipe Balbi
Browse files

Revert "usb: gadget: zero: Add support for interrupt EP"



This reverts commit ef11982d.

That commit creates a problem for some UDCs (at least musb)
where it allocates an endpoints with a 64-byte FIFO, but later
tries to use that same FIFO for 1024-byte packets.

Before implementing this, composite framework needs to be
modified so we only allocate endpoints after we know negotiated
speed, however that needs quite a bit of extra work.

Cc: <stable@vger.kernel.org> # v3.18+
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent d0f347d6
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -289,8 +289,7 @@ static void disable_loopback(struct f_loopback *loop)
	struct usb_composite_dev	*cdev;

	cdev = loop->function.config->cdev;
	disable_endpoints(cdev, loop->in_ep, loop->out_ep, NULL, NULL, NULL,
			NULL);
	disable_endpoints(cdev, loop->in_ep, loop->out_ep, NULL, NULL);
	VDBG(cdev, "%s disabled\n", loop->function.name);
}

+20 −491

File changed.

Preview size limit exceeded, changes collapsed.

+1 −12
Original line number Diff line number Diff line
@@ -10,8 +10,6 @@
#define GZERO_QLEN		32
#define GZERO_ISOC_INTERVAL	4
#define GZERO_ISOC_MAXPACKET	1024
#define GZERO_INT_INTERVAL	1 /* Default interrupt interval = 1 ms */
#define GZERO_INT_MAXPACKET	1024

struct usb_zero_options {
	unsigned pattern;
@@ -19,10 +17,6 @@ struct usb_zero_options {
	unsigned isoc_maxpacket;
	unsigned isoc_mult;
	unsigned isoc_maxburst;
	unsigned int_interval; /* In ms */
	unsigned int_maxpacket;
	unsigned int_mult;
	unsigned int_maxburst;
	unsigned bulk_buflen;
	unsigned qlen;
};
@@ -34,10 +28,6 @@ struct f_ss_opts {
	unsigned isoc_maxpacket;
	unsigned isoc_mult;
	unsigned isoc_maxburst;
	unsigned int_interval; /* In ms */
	unsigned int_maxpacket;
	unsigned int_mult;
	unsigned int_maxburst;
	unsigned bulk_buflen;

	/*
@@ -72,7 +62,6 @@ int lb_modinit(void);
void free_ep_req(struct usb_ep *ep, struct usb_request *req);
void disable_endpoints(struct usb_composite_dev *cdev,
		struct usb_ep *in, struct usb_ep *out,
		struct usb_ep *iso_in, struct usb_ep *iso_out,
		struct usb_ep *int_in, struct usb_ep *int_out);
		struct usb_ep *iso_in, struct usb_ep *iso_out);

#endif /* __G_ZERO_H */
+0 −21
Original line number Diff line number Diff line
@@ -68,8 +68,6 @@ static struct usb_zero_options gzero_options = {
	.isoc_maxpacket = GZERO_ISOC_MAXPACKET,
	.bulk_buflen = GZERO_BULK_BUFLEN,
	.qlen = GZERO_QLEN,
	.int_interval = GZERO_INT_INTERVAL,
	.int_maxpacket = GZERO_INT_MAXPACKET,
};

/*-------------------------------------------------------------------------*/
@@ -268,21 +266,6 @@ module_param_named(isoc_maxburst, gzero_options.isoc_maxburst, uint,
		S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(isoc_maxburst, "0 - 15 (ss only)");

module_param_named(int_interval, gzero_options.int_interval, uint,
		S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(int_interval, "1 - 16");

module_param_named(int_maxpacket, gzero_options.int_maxpacket, uint,
		S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(int_maxpacket, "0 - 1023 (fs), 0 - 1024 (hs/ss)");

module_param_named(int_mult, gzero_options.int_mult, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(int_mult, "0 - 2 (hs/ss only)");

module_param_named(int_maxburst, gzero_options.int_maxburst, uint,
		S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(int_maxburst, "0 - 15 (ss only)");

static struct usb_function *func_lb;
static struct usb_function_instance *func_inst_lb;

@@ -318,10 +301,6 @@ static int __init zero_bind(struct usb_composite_dev *cdev)
	ss_opts->isoc_maxpacket = gzero_options.isoc_maxpacket;
	ss_opts->isoc_mult = gzero_options.isoc_mult;
	ss_opts->isoc_maxburst = gzero_options.isoc_maxburst;
	ss_opts->int_interval = gzero_options.int_interval;
	ss_opts->int_maxpacket = gzero_options.int_maxpacket;
	ss_opts->int_mult = gzero_options.int_mult;
	ss_opts->int_maxburst = gzero_options.int_maxburst;
	ss_opts->bulk_buflen = gzero_options.bulk_buflen;

	func_ss = usb_get_function(func_inst_ss);