public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] af9005: use generic_bulk_ctrl_endpoint_response
@ 2010-06-21  5:29 Michael Krufky
  2010-06-21  5:35 ` Michael Krufky
  2010-06-21  6:59 ` Luca Olivetti
  0 siblings, 2 replies; 6+ messages in thread
From: Michael Krufky @ 2010-06-21  5:29 UTC (permalink / raw)
  To: linux-media; +Cc: Luca Olivetti

[-- Attachment #1: Type: text/plain, Size: 403 bytes --]

Could somebody please test this patch and confirm that it doesn't
break the af9005 support?

This patch removes the af9005_usb_generic_rw function and uses the
dvb_usb_generic_rw function instead, using
generic_bulk_ctrl_endpoint_response to differentiate between the read
pipe and the write pipe.

Also found in the mercurial repository:

http://kernellabs.com/hg/~mkrufky/af9005

Cheers,

Mike Krufky

[-- Attachment #2: 8d43c09cfe26.patch --]
[-- Type: application/octet-stream, Size: 2958 bytes --]


# HG changeset patch
# User Michael Krufky <mkrufky@kernellabs.com>
# Date 1277095782 14400
# Node ID 8d43c09cfe26655166e7ab039f765223bc87f3c5
# Parent 723e03a57ef335a4e005ac57e49fa50d2c66a010
af9005: use generic_bulk_ctrl_endpoint_response

From: Michael Krufky <mkrufky@kernellabs.com>

Priority: normal

Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>

--- a/linux/drivers/media/dvb/dvb-usb/af9005.c	Sun Jan 31 19:06:10 2010 -0500
+++ b/linux/drivers/media/dvb/dvb-usb/af9005.c	Mon Jun 21 00:49:42 2010 -0400
@@ -54,50 +54,6 @@
 	int led_state;
 };
 
-static int af9005_usb_generic_rw(struct dvb_usb_device *d, u8 *wbuf, u16 wlen,
-			  u8 *rbuf, u16 rlen, int delay_ms)
-{
-	int actlen, ret = -ENOMEM;
-
-	if (wbuf == NULL || wlen == 0)
-		return -EINVAL;
-
-	if ((ret = mutex_lock_interruptible(&d->usb_mutex)))
-		return ret;
-
-	deb_xfer(">>> ");
-	debug_dump(wbuf, wlen, deb_xfer);
-
-	ret = usb_bulk_msg(d->udev, usb_sndbulkpipe(d->udev,
-						    2), wbuf, wlen,
-			   &actlen, 2000);
-
-	if (ret)
-		err("bulk message failed: %d (%d/%d)", ret, wlen, actlen);
-	else
-		ret = actlen != wlen ? -1 : 0;
-
-	/* an answer is expected, and no error before */
-	if (!ret && rbuf && rlen) {
-		if (delay_ms)
-			msleep(delay_ms);
-
-		ret = usb_bulk_msg(d->udev, usb_rcvbulkpipe(d->udev,
-							    0x01), rbuf,
-				   rlen, &actlen, 2000);
-
-		if (ret)
-			err("recv bulk message failed: %d", ret);
-		else {
-			deb_xfer("<<< ");
-			debug_dump(rbuf, actlen, deb_xfer);
-		}
-	}
-
-	mutex_unlock(&d->usb_mutex);
-	return ret;
-}
-
 static int af9005_generic_read_write(struct dvb_usb_device *d, u16 reg,
 			      int readwrite, int type, u8 * values, int len)
 {
@@ -146,7 +102,7 @@
 		obuf[8] = values[0];
 	obuf[7] = command;
 
-	ret = af9005_usb_generic_rw(d, obuf, 16, ibuf, 17, 0);
+	ret = dvb_usb_generic_rw(d, obuf, 16, ibuf, 17, 0);
 	if (ret)
 		return ret;
 
@@ -537,7 +493,7 @@
 	buf[6] = wlen;
 	for (i = 0; i < wlen; i++)
 		buf[7 + i] = wbuf[i];
-	ret = af9005_usb_generic_rw(d, buf, wlen + 7, ibuf, rlen + 7, 0);
+	ret = dvb_usb_generic_rw(d, buf, wlen + 7, ibuf, rlen + 7, 0);
 	if (ret)
 		return ret;
 	if (ibuf[2] != 0x27) {
@@ -584,7 +540,7 @@
 
 	obuf[6] = len;
 	obuf[7] = address;
-	ret = af9005_usb_generic_rw(d, obuf, 16, ibuf, 14, 0);
+	ret = dvb_usb_generic_rw(d, obuf, 16, ibuf, 14, 0);
 	if (ret)
 		return ret;
 	if (ibuf[2] != 0x2b) {
@@ -885,7 +841,7 @@
 	obuf[2] = 0x40;		/* read remote */
 	obuf[3] = 1;		/* rest of packet length */
 	obuf[4] = st->sequence++;	/* sequence number */
-	ret = af9005_usb_generic_rw(d, obuf, 5, ibuf, 256, 0);
+	ret = dvb_usb_generic_rw(d, obuf, 5, ibuf, 256, 0);
 	if (ret) {
 		err("rc query failed");
 		return ret;
@@ -1077,6 +1033,9 @@
 	.rc_key_map_size = 0,
 	.rc_query = af9005_rc_query,
 
+	.generic_bulk_ctrl_endpoint          = 2,
+	.generic_bulk_ctrl_endpoint_response = 1,
+
 	.num_device_descs = 3,
 	.devices = {
 		    {.name = "Afatech DVB-T USB1.1 stick",


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-06-21 18:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-21  5:29 [PATCH] af9005: use generic_bulk_ctrl_endpoint_response Michael Krufky
2010-06-21  5:35 ` Michael Krufky
2010-06-21  6:59 ` Luca Olivetti
2010-06-21 15:45   ` Michael Krufky
2010-06-21 18:22     ` Luca Olivetti
2010-06-21 18:44       ` Michael Krufky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox