> Quoth Doug Scott on Tue, Aug 28, 2007 at 08:19:22PM
> +0700:
> >  Do you know what is the problem with firewire on
> x86?
> > I have a camera and some time to look at getting
> something going. I hate 
> > having to reboot into windows, just to download a
> video off my camera.
> 
> Fixes for some subset of the following bugs are
> required:
> 
>   5108602 isoch does not work on x86
> 6346997 av1394 can't parse roms, breaks
> ioctl(IEC61883_NODE_GET_TEXT_LEAF)
> 6347004 av1394_ioctl_isoch_init() censors
>  av1394_ic_validate_init_params()
> 6353395 Dubious frame size test in
>  av1394_ic_validate_init_params
> 6353396 av1394_ic_dma_sync_frames() confuses frames
>  and segments, causes panic
> 6353397 av1394_ic_trigger_softint() can set wrong
>  mask on x86
>  6353398 av1394 should report buffer overruns
> I had rough fixes for them, but av1394 isn't a high
> enough priority for
> the responsible engineer to integrate them into
> Solaris.

After a quick look at the kernel code, one obvious fix is to wrap quadlet_data 
with the T1394_DATA32() macro to convert the data to the correct endian. After 
doing this ioctl(IEC61883_NODE_GET_TEXT_LEAF) succeeds.

i.e av1394_cfgrom.c:
-               *rval = cmd->cmd_u.q.quadlet_data;
+               *rval = T1394_DATA32(cmd->cmd_u.q.quadlet_data);

David, are you able to make your shim code and patches available so I can do 
some testing?

Doug
 
 
This message posted from opensolaris.org

Reply via email to