Re: [Madwifi-devel] Making OpenHAL endianess-agnostic
Status: Beta
Brought to you by:
otaku
From: Nick K. <mic...@gm...> - 2007-02-25 09:43:30
|
2007/2/24, Pavel Roskin <pr...@gn...>: > Quoting Nick Kossifidis <mic...@gm...>: > > > > I think I know why madwifi-old-openhal is not working on PowerPC. > > > > > > There are some registers OpenHAL sets differently on big-endian > > > machines. Presumably, it allows using faster I/O without byte swapping. > > > Check for BYTE_ORDER in the OpenHAL headers. > > > > Yup there is how you set that behaviour, it's used for descriptors etc > > (part of the header i made and waiting for a yes or no to commit > > it)... > > You can post it to the list first. I prefer the approach when we convert one > function at a time and actually test the new code, including constants. > > > #define AR5K_CFG_ADHOC 0x00000020 /*not found on 5210*/ > > Such comments are not quite useful. Do you know for sure that 5210 doesn't > support it? Do you know what that bit does? I think it would be better to > write about 5210 in a separate comment and try to provide the meaning of the > value. It's better it you put question marks there to encourage others to put > the description there. It says that this flag is not fount in 5210 registers header, i haven't got a 5210 to know for sure, we'll have to fill in the gaps... > > #define AR5K_CFG_TXCNT_S 11 > > What is that? How is it used? I think we should limit the header to things we > know and use. We don't need things just picked up somewhere with description. > I guess it's the shift value to guess the count, but I don't see it used. > All the _S are used by some macros, it's how many bits we shift (_M is for mask). > > It doesn't swap the registers, it swaps the descriptors etc that are > > being directly assigned (pointers as function args) and i think that's > > something we need to keep because swapping each descriptor/data we > > get/send will have a huge impact. That's the only programming being > > done on the card that has to do with endianess as far as i know. > > I don't understand why we need to store any function pointers in the hardware > and why byte-swapping them would have a huge impact. I would prefer to start > with something that works and then do optimizations is needed. > O.K. let's start with what you think is better but i suggest that we use that functionality in the future since the hardware supports it. > > Do what you think is best, you know more than i do, I just believe > > that swapping descriptors/buffers etc while the card can do this for > > us is not wise, it's the register reads/writes we should work on. > > As I said, most drivers don't handle big-endian hosts specifically. And I'll > rather start with that. It's better than to do optimization of something that > is not working in hope that it would work. > ACK -- As you read this post global entropy rises. Have Fun ;-) Nick |