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

Commit 969678c0 authored by Robert Baldyga's avatar Robert Baldyga Committed by Felipe Balbi
Browse files

tools: ffs-aio-example: use endpoint addresses from descriptors



This makes examples more platform independent and more compatible with
USB standard, as endpoint addresses in given interface may differ
between hardware platforms or even between configurations in single
USB device.

Signed-off-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent fc12c68b
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -33,11 +33,6 @@
#define VENDOR	0x1d6b
#define PRODUCT	0x0105

/* endpoints indexes */

#define EP_BULK_IN	(1 | LIBUSB_ENDPOINT_IN)
#define EP_BULK_OUT	(2 | LIBUSB_ENDPOINT_OUT)

#define BUF_LEN		8192

/*
@@ -159,14 +154,21 @@ void test_exit(struct test_state *state)
int main(void)
{
	struct test_state state;
	struct libusb_config_descriptor *conf;
	struct libusb_interface_descriptor const *iface;
	unsigned char addr;

	if (test_init(&state))
		return 1;

	libusb_get_config_descriptor(state.found, 0, &conf);
	iface = &conf->interface[0].altsetting[0];
	addr = iface->endpoint[0].bEndpointAddress;

	while (1) {
		static unsigned char buffer[BUF_LEN];
		int bytes;
		libusb_bulk_transfer(state.handle, EP_BULK_IN, buffer, BUF_LEN,
		libusb_bulk_transfer(state.handle, addr, buffer, BUF_LEN,
				     &bytes, 500);
	}
	test_exit(&state);
+10 −7
Original line number Diff line number Diff line
@@ -33,11 +33,6 @@
#define VENDOR	0x1d6b
#define PRODUCT	0x0105

/* endpoints indexes */

#define EP_BULK_IN	(1 | LIBUSB_ENDPOINT_IN)
#define EP_BULK_OUT	(2 | LIBUSB_ENDPOINT_OUT)

#define BUF_LEN		8192

/*
@@ -159,16 +154,24 @@ void test_exit(struct test_state *state)
int main(void)
{
	struct test_state state;
	struct libusb_config_descriptor *conf;
	struct libusb_interface_descriptor const *iface;
	unsigned char in_addr, out_addr;

	if (test_init(&state))
		return 1;

	libusb_get_config_descriptor(state.found, 0, &conf);
	iface = &conf->interface[0].altsetting[0];
	in_addr = iface->endpoint[0].bEndpointAddress;
	out_addr = iface->endpoint[1].bEndpointAddress;

	while (1) {
		static unsigned char buffer[BUF_LEN];
		int bytes;
		libusb_bulk_transfer(state.handle, EP_BULK_IN, buffer, BUF_LEN,
		libusb_bulk_transfer(state.handle, in_addr, buffer, BUF_LEN,
				     &bytes, 500);
		libusb_bulk_transfer(state.handle, EP_BULK_OUT, buffer, BUF_LEN,
		libusb_bulk_transfer(state.handle, out_addr, buffer, BUF_LEN,
				     &bytes, 500);
	}
	test_exit(&state);