[U-Boot] [PATCH v3 1/8] ehci: cosmetic: Define used constants

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Fri Aug 10 02:53:44 CEST 2012


Dear Marek Vasut,

> > > > > > @@ -246,19 +247,20 @@ ehci_submit_async(struct usb_device
> > > > > > *dev,
> > > > > > unsigned
> > > > > > long pipe, void *buffer, */
> > > > > > 
> > > > > >  	qh->qh_link = cpu_to_hc32((uint32_t)qh_list |
> > > > > >  	QH_LINK_TYPE_QH);
> > > > > >  	c = (usb_pipespeed(pipe) != USB_SPEED_HIGH &&
> > > > > > 
> > > > > > -	     usb_pipeendpoint(pipe) == 0) ? 1 : 0;
> > > > > > -	endpt = (8 << 28) |
> > > > > > -	    (c << 27) |
> > > > > > -	    (usb_maxpacket(dev, pipe) << 16) |
> > > > > > -	    (0 << 15) |
> > > > > > -	    (1 << 14) |
> > > > > > -	    (usb_pipespeed(pipe) << 12) |
> > > > > > -	    (usb_pipeendpoint(pipe) << 8) |
> > > > > > -	    (0 << 7) | (usb_pipedevice(pipe) << 0);
> > > > > > +	     usb_pipeendpoint(pipe) == 0);
> > > > > > +	endpt = (8 << QH_ENDPT1_RL) |
> > > > > > +	    (c << QH_ENDPT1_C) |
> > > > > 
> > > > > Maybe define it as #deifne QH_ENDPT1(x) ((x) << SEOMTHING) ?
> > > > > [...]
> > > > 
> > > > For all of these?
> > > 
> > > Yes, do you not think it's better than define the offsets only?
> > 
> > Yes, I hesitated with this solution when writing this code.
> >
> > Where the offset is needed, I can instead write additional
> > extraction
> > macros.
> 
> Oh, there're places where the offset is needed?

Yes, I think.

> What about adding
> both BIT(x)
> and BIT_OFFSET in such cases ? And BIT(x) (x << BIT_OFFSET) in that
> case.

I would prefer:
#define FIELD(fldval)     (((fldval) & MASK) << OFFSET)
#define GET_FIELD(regval) (((regval) >> OFFSET) & MASK)

Are you OK with that?

Best regards,
Benoît


More information about the U-Boot mailing list