On Nov 7, 2006, at 10:44 PM, Tyler Trafford wrote:

> I'm pretty sure those writel's were there to fix something....  
> *checks*
>
> Refer to these:
>
> http://ivtvdriver.org/trac/changeset/3089
> http://ivtvdriver.org/trac/changeset/3152

I'm not sure what the agreement is on 'writel()' at the moment in  
this thread, but I'd just like to state that its use in the  
changesets above breaks the loading of firmware on big-endian  
architectures (notably PPC). Releases since those changesets above  
fail at insmod with the error 'encoder mailbox not found' although  
the firmware is located, read, and attempted to be loaded.

If the driver does not revert to memcpy/memcpy_toio (as has been  
suggested) could I recommend the use of '__raw_writel()' instead?

writel on most big-endian architectures does a byteswap operation to  
ensure the data is available to the little-endian PCI bus in its  
correct order, but for some reason the firmware is already little- 
endian beforehand. Using __raw_writel does not run a byteswap on the  
data, and the firmware gets loaded correctly - even on little-endian  
machines.

- Ricardo

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to