tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: BCM5809S support in bnx(4) and brgphy(4)
On Wed, 1 Dec 2010, Izumi Tsutsui wrote:
> > Also, there is a comment above saying that:
> >
> > /*
> > * The following data structures are generated from RTL code.
> > * Do not modify any values below this line.
> > */
>
> IMO all members fetched via PCI bus master should be uint32_t
> if hardware supports byte swap ops since swap is always done
> against each uint32_t.
Huh?
[...]
> Well, no need to use #if BYTE_ORDER if we use uint32_t with
> shift ops because word swap is done by hardware.
> (that's the reason why we have to swap uint16_t members by #ifdef)
What swap is done by what hardware? Most of the time any swapping is done
by a series of shift and mask instructions with the current
implementation, and swapping a 16-bit value is much less expensive than
swapping a 32-bit value.
Sigh. I really need to get off my butt and add a bunch of bus_dma
accessors (like the bus_space ones but for DMA buffers) to solve this
problem optimally across all architectures.
Eduardo
Home |
Main Index |
Thread Index |
Old Index