userland fix

Hidetoshi Shimokawa simokawa at sat.t.u-tokyo.ac.jp
Wed Jun 30 06:49:08 PDT 2004


Sorry for my late response.

At Thu, 24 Jun 2004 10:09:09 -0700 (PDT),
Buzz Slye wrote:
> 
> The following code may be substituted for the broken code in fwdev.c, line 325
> (in the routine fw_read) to allow downloading of digital camera images.

Do you mean not Digital Video but Digital Camera protocol?

> #if 1 /* XXX fixed ? */
> 		/* per packet mode or FWACT_CH bind?*/
> 		s = splfw();
> 		ir->queued --;
> 		STAILQ_REMOVE_HEAD(&ir->q, link);
> 		splx(s);
> 		fp = &xfer->recv.hdr;
> 		if (sc->fc->irx_post != NULL)
> 			sc->fc->irx_post(sc->fc, fp->mode.ld);
> 		err = uiomove((caddr_t)fp, sizeof(struct fw_isohdr), uio);
> 		err = uiomove((caddr_t)xfer->recv.payload, xfer->recv.pay_len, uio);
> #endif

I cannot remember in which case these code are executed.
What kind of userland program do you use?
I think that bulkxfer is used for DV receive.

Are you going to implement Digital Camera specification?

> Changing the receive channel, however, results in the message:
> 
> fwohci0: IR DMA no free chunk

This indicates that there is no receive buffer available.

> Is changing channels not supported?  After the above message, the code
> returns 0.  So maybe this message is not really an error.

I think it's not supported and you may need to close/reopen the
device.

/\ Hidetoshi Shimokawa
\/  simokawa at sat.t.u-tokyo.ac.jp
PGP public key: http://www.sat.t.u-tokyo.ac.jp/~simokawa/pgp.html


More information about the freebsd-firewire mailing list