New version of webcamd [3.13.0.3] ready for testing

Juergen Lock nox at jelal.kn-bremen.de
Wed Dec 11 18:33:55 UTC 2013


On Wed, Dec 11, 2013 at 07:38:25AM +0100, Hans Petter Selasky wrote:
> Hi,
Hi!
> 
> Looks like you need to fetch and revert apply this patch to webcamd:
> 
> http://kernel.opensuse.org/cgit/kernel/commit/?id=7760e148350bf6df95662bc0db3734e9d991cb03
> 
 Ah yes, that fixed it.

 Thanx! :)
	Juergen

PS: Here is the patch I used:

--- media_tree/drivers/media/usb/dvb-usb-v2/af9035.c.orig
+++ media_tree/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -21,9 +21,6 @@
 
 #include "af9035.h"
 
-/* Max transfer size done by I2C transfer functions */
-#define MAX_XFER_SIZE  64
-
 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
 
 static u16 af9035_checksum(const u8 *buf, size_t len)
@@ -129,16 +126,10 @@ exit:
 /* write multiple registers */
 static int af9035_wr_regs(struct dvb_usb_device *d, u32 reg, u8 *val, int len)
 {
-	u8 wbuf[MAX_XFER_SIZE];
+	u8 wbuf[6 + len];
 	u8 mbox = (reg >> 16) & 0xff;
 	struct usb_req req = { CMD_MEM_WR, mbox, sizeof(wbuf), wbuf, 0, NULL };
 
-	if (6 + len > sizeof(wbuf)) {
-		dev_warn(&d->udev->dev, "%s: i2c wr: len=%d is too big!\n",
-			 KBUILD_MODNAME, len);
-		return -EOPNOTSUPP;
-	}
-
 	wbuf[0] = len;
 	wbuf[1] = 2;
 	wbuf[2] = 0;
@@ -237,16 +228,9 @@ static int af9035_i2c_master_xfer(struct
 					msg[1].len);
 		} else {
 			/* I2C */
-			u8 buf[MAX_XFER_SIZE];
+			u8 buf[5 + msg[0].len];
 			struct usb_req req = { CMD_I2C_RD, 0, sizeof(buf),
 					buf, msg[1].len, msg[1].buf };
-
-			if (5 + msg[0].len > sizeof(buf)) {
-				dev_warn(&d->udev->dev,
-					 "%s: i2c xfer: len=%d is too big!\n",
-					 KBUILD_MODNAME, msg[0].len);
-				return -EOPNOTSUPP;
-			}
 			req.mbox |= ((msg[0].addr & 0x80)  >>  3);
 			buf[0] = msg[1].len;
 			buf[1] = msg[0].addr << 1;
@@ -273,16 +257,9 @@ static int af9035_i2c_master_xfer(struct
 					msg[0].len - 3);
 		} else {
 			/* I2C */
-			u8 buf[MAX_XFER_SIZE];
+			u8 buf[5 + msg[0].len];
 			struct usb_req req = { CMD_I2C_WR, 0, sizeof(buf), buf,
 					0, NULL };
-
-			if (5 + msg[0].len > sizeof(buf)) {
-				dev_warn(&d->udev->dev,
-					 "%s: i2c xfer: len=%d is too big!\n",
-					 KBUILD_MODNAME, msg[0].len);
-				return -EOPNOTSUPP;
-			}
 			req.mbox |= ((msg[0].addr & 0x80)  >>  3);
 			buf[0] = msg[0].len;
 			buf[1] = msg[0].addr << 1;
> --HPS
> 
> -----Original message-----
> > From:Juergen Lock <nox at jelal.kn-bremen.de <mailto:nox at jelal.kn-bremen.de> >
> > Sent: Tuesday 10th December 2013 23:35
> > To: Hans Petter Selasky <hans.petter.selasky at bitfrost.no <mailto:hans.petter.selasky at bitfrost.no> >
> > Cc: freebsd-multimedia at freebsd.org <mailto:freebsd-multimedia at freebsd.org> ; Juergen Lock <nox at jelal.kn-bremen.de <mailto:nox at jelal.kn-bremen.de> >
> > Subject: Re: New version of webcamd [3.13.0.3] ready for testing
> > 
> > On Tue, Dec 10, 2013 at 10:55:45PM +0100, Hans Petter Selasky wrote:
> > > On 12/10/13 21:26, Juergen Lock wrote:
> > > > On Tue, Dec 10, 2013 at 08:09:14PM +0100, Hans Petter Selasky wrote:
> > > >> Hi,
> > > > Hi!
> > > >>
> > > >> webcamd changes:
> > > >> - Update to latest V4L sources
> > > >> - Fix USB attach for HD-PVR driver
> > > >>
> > > >> cuse4bsd changes:
> > > >> - Added new API function needed by webcamd.
> > > >>
> > > >> svn --username anonsvn --password anonsvn \
> > > >>          checkout svn://svn.turbocat.net/i4b/trunk/ports
> > > >>
> > > >> --HPS
> > > >>
> > > >   af9035 fails with:
> > > 
> > > svn up
> > > 
> > > and try again.
> > > 
> > > Thank you!
> > > 
> > Still I get:
> > 
> > [...]
> > INFO: : : found a 'Afatech AF9035 reference design' in cold state
> > DBG: : dvb_usbv2_download_firmware:
> > Loading firmware at '/boot/modules/dvb-usb-af9035-02.fw', f=7
> > INFO: : : downloading firmware from file 'dvb-usb-af9035-02.fw'
> > DBG: : af9035_download_firmware:
> > DBG: : dvb_usb_v2_generic_io: >>>  0x8024ba080h
> > DBG: : dvb_usb_v2_generic_io: <<< 0x8024ba080h
> > DBG: : dvb_usb_v2_generic_io: >>>  0x8024ba080h
> > DBG: : dvb_usb_v2_generic_io: <<< 0x8024ba080h
> > ERR: : : too much data wlen=64 rlen=0
> > DBG: : af9035_ctrl_msg: failed=-22
> > DBG: : af9035_download_firmware: failed=-22
> > DBG: : dvb_usbv2_download_firmware: failed=-22
> > DBG: : dvb_usbv2_exit:
> > DBG: : dvb_usbv2_remote_exit:
> > DBG: : dvb_usbv2_adapter_exit:
> > DBG: : dvb_usbv2_i2c_exit:
> > DBG: : dvb_usbv2_probe: failed=-22
> > DBG: : dvb_usbv2_probe: bInterfaceNumber=1
> > DBG: : dvb_usbv2_exit:
> > DBG: : dvb_usbv2_remote_exit:
> > DBG: : dvb_usbv2_adapter_exit:
> > DBG: : dvb_usbv2_i2c_exit:
> > DBG: : dvb_usbv2_probe: failed=-19
> > webcamd: Cannot find USB device
> > 
> >  Hmmm...
> > 	Juergen
> > _______________________________________________
> > freebsd-multimedia at freebsd.org <mailto:freebsd-multimedia at freebsd.org>  mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia <http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia> 
> > To unsubscribe, send any mail to "freebsd-multimedia-unsubscribe at freebsd.org <mailto:freebsd-multimedia-unsubscribe at freebsd.org> "
> > 
> 


More information about the freebsd-multimedia mailing list