Setting processor endianess for USB modules
PATCH 1/1 Setting processor endianess for USB modules
Quoted 3 lines
Unfortunately it's unusable as your mailer wrapped long lines:
[...]
Please fix your mailer (or even better use git-send-email)
Unfortunately I don't have this command (perhaps my git is too old).
I've adjusted the input window of my mailer and I hope there are no wrapped lines anymore.
regards
Christian
--- common/usb.c | 44 ++++++++++++++++++++++---------------------- common/usb_kbd.c | 11 ++++++----- common/usb_storage.c | 28 ++++++++++------------------ 3 files changed, 38 insertions(+), 45 deletions(-)
common/usb.c +22 -22
@@ -48,6 +48,7 @@#include <command.h> #include <asm/processor.h> #include <linux/ctype.h> +#include <asm/byteorder.h> #if defined(CONFIG_CMD_USB )
@@ -177,10 +178,10 @@ int usb_control_msg(struct usb_device *d/* set setup command */ setup_packet.requesttype = requesttype; setup_packet.request = request; - setup_packet.value =swap_16 (value); - setup_packet.index =swap_16 (index); - setup_packet.length =swap_16 (size); -USB_PRINTF ("usb_control_msg: request: 0x%X, requesttype: 0x%X\nvalue 0x%X index 0x%X length 0x%X\n" , + setup_packet.value =cpu_to_le16 (value); + setup_packet.index =cpu_to_le16 (index); + setup_packet.length =cpu_to_le16 (size); +USB_PRINTF ("usb_control_msg: request: 0x%X, requesttype: 0x%X, value 0x%X index 0x%X length 0x%X\n" , request,requesttype,value,index,size); dev->status=USB_ST_NOT_PROC ;/*not yet processed */
@@ -300,7 +301,7 @@ int usb_parse_config(struct usb_device *return -1 ; }memcpy (&dev->config, buffer, buffer[0 ]); - dev->config.wTotalLength =swap_16 (dev->config.wTotalLength); +le16_to_cpus (&(dev->config.wTotalLength)); dev->config.no_of_if =0 ; index = dev->config.bLength;
@@ -329,8 +330,7 @@ int usb_parse_config(struct usb_device * dev->config.if_desc[ifno].no_of_ep++;/* found an endpoint */ memcpy (&dev->config.if_desc[ifno].ep_desc[epno], &buffer[index], buffer[index]); - dev->config.if_desc[ifno].ep_desc[epno].wMaxPacketSize = -swap_16 (dev->config.if_desc[ifno].ep_desc[epno].wMaxPacketSize); +le16_to_cpus (&(dev->config.if_desc[ifno].ep_desc[epno].wMaxPacketSize));USB_PRINTF ("if %d, ep %d\n" , ifno, epno);break ;default :
@@ -413,7 +413,7 @@ int usb_get_configuration_no(struct usb_printf ("config descriptor too short (expected %i, got %i)\n" ,8 ,result);return -1 ; } - tmp=swap_16 (config->wTotalLength); + tmp =le16_to_cpu (config->wTotalLength);if (tmp >USB_BUFSIZ ) { USB_PRINTF("usb_get_configuration_no: failed to get descriptor - too long: %d\n",
@@ -816,10 +816,10 @@ int usb_new_device(struct usb_device *dereturn 1 ; }/* correct le values */ - dev->descriptor.bcdUSB=swap_16 (dev->descriptor.bcdUSB); - dev->descriptor.idVendor=swap_16 (dev->descriptor.idVendor); - dev->descriptor.idProduct=swap_16 (dev->descriptor.idProduct); - dev->descriptor.bcdDevice=swap_16 (dev->descriptor.bcdDevice); +le16_to_cpus (&dev->descriptor.bcdUSB); +le16_to_cpus (&dev->descriptor.idVendor); +le16_to_cpus (&dev->descriptor.idProduct); +le16_to_cpus (&dev->descriptor.bcdDevice);/* only support for one config for now */ usb_get_configuration_no (dev,&tmpbuf[0 ],0 );usb_parse_config (dev,&tmpbuf[0 ],0 );
@@ -979,8 +979,8 @@ static int hub_port_reset(struct usb_devUSB_HUB_PRINTF ("get_port_status failed status %lX\n" ,dev->status);return -1 ; } - portstatus =swap_16 (portsts.wPortStatus); - portchange =swap_16 (portsts.wPortChange); + portstatus =le16_to_cpu (portsts.wPortStatus); + portchange =le16_to_cpu (portsts.wPortChange);USB_HUB_PRINTF ("portstatus %x, change %x, %s\n" , portstatus ,portchange, portstatus&(1 <<USB_PORT_FEAT_LOWSPEED ) ?"Low Speed" :"High Speed" ); USB_HUB_PRINTF("STAT_C_CONNECTION = %d STAT_CONNECTION = %d USB_PORT_STAT_ENABLE %d\n",
@@ -1024,8 +1024,8 @@ void usb_hub_port_connect_change(structreturn ; } - portstatus =swap_16 (portsts.wPortStatus); - portchange =swap_16 (portsts.wPortChange); + portstatus =le16_to_cpu (portsts.wPortStatus); + portchange =le16_to_cpu (portsts.wPortChange);USB_HUB_PRINTF ("portstatus %x, change %x, %s\n" , portstatus, portchange, portstatus&(1 <<USB_PORT_FEAT_LOWSPEED ) ?"Low Speed" :"High Speed" );
@@ -1099,7 +1099,7 @@ int usb_hub_configure(struct usb_device }memcpy ((unsigned char *)&hub->desc,buffer,descriptor->bLength);/* adjust 16bit values */ - hub->desc.wHubCharacteristics=swap_16 (descriptor->wHubCharacteristics); + hub->desc.wHubCharacteristics =le16_to_cpu (descriptor->wHubCharacteristics);/* set the bitmap */ bitmap=(unsigned char *)&hub->desc.DeviceRemovable[0 ];memset (bitmap,0xff ,(USB_MAXCHILDREN +1 +7 )/8 );/* devices not removable by default */
@@ -1161,11 +1161,11 @@ int usb_hub_configure(struct usb_device } hubsts = (struct usb_hub_status *)buffer;USB_HUB_PRINTF ("get_hub_status returned status %X, change %X\n" , -swap_16 (hubsts->wHubStatus),swap_16 (hubsts->wHubChange)); +le16_to_cpu (hubsts->wHubStatus),le16_to_cpu (hubsts->wHubChange));USB_HUB_PRINTF ("local power source is %s\n" , - (swap_16 (hubsts->wHubStatus) &HUB_STATUS_LOCAL_POWER ) ?"lost (inactive)" :"good" ); + (le16_to_cpu (hubsts->wHubStatus) &HUB_STATUS_LOCAL_POWER ) ?"lost (inactive)" :"good" );USB_HUB_PRINTF ("%sover-current condition exists\n" , - (swap_16 (hubsts->wHubStatus) &HUB_STATUS_OVERCURRENT ) ?"" :"no " ); + (le16_to_cpu (hubsts->wHubStatus) &HUB_STATUS_OVERCURRENT ) ?"" :"no " );usb_hub_power_on (hub);for (i =0 ; i < dev->maxchild; i++) {struct usb_port_status portsts;
@@ -1175,8 +1175,8 @@ int usb_hub_configure(struct usb_deviceUSB_HUB_PRINTF ("get_port_status failed\n" );continue ; } - portstatus =swap_16 (portsts.wPortStatus); - portchange =swap_16 (portsts.wPortChange); + portstatus =le16_to_cpu (portsts.wPortStatus); + portchange =le16_to_cpu (portsts.wPortChange);USB_HUB_PRINTF ("Port %d Status %X Change %X\n" ,i+1 ,portstatus,portchange);if (portchange &USB_PORT_STAT_C_CONNECTION ) {USB_HUB_PRINTF ("port %d connection change\n" , i +1 );
common/usb_kbd.c +6 -5
@@ -26,6 +26,7 @@*/ #include <common.h> #include <devices.h> +#include <asm/byteorder.h> #ifdef CONFIG_USB_KEYBOARD
@@ -475,14 +476,14 @@ static int fetch_item(unsigned char *stabreak ;case 2 :if ((end - start) >=2 ) { - item->data.u16 =swap_16 ((unsigned short *)start); + item->data.u16 =le16_to_cpu ((unsigned short *)start); start+=2 ;return item->size; }case 3 : item->size++;if ((end - start) >=4 ) { - item->data.u32 =swap_32 ((unsigned long *)start); + item->data.u32 =le32_to_cpu ((unsigned long *)start); start+=4 ;return item->size; }
@@ -705,15 +706,15 @@ static int usb_kbd_get_hid_desc(struct u } index=head->bLength; config=(struct usb_config_descriptor *)&buffer[0 ]; - len=swap_16 (config->wTotalLength); + len=le16_to_cpu (config->wTotalLength);/* Ok the first entry must be a configuration entry, now process the others */ head=(struct usb_descriptor_header *)&buffer[index];while (index+1 < len) {if (head->bDescriptorType==USB_DT_HID ) {printf ("HID desc found\n" );memcpy (&usb_kbd_hid_desc,&buffer[index],buffer[index]); - usb_kbd_hid_desc.bcdHID=swap_16 (usb_kbd_hid_desc.bcdHID); - usb_kbd_hid_desc.wDescriptorLength=swap_16 (usb_kbd_hid_desc.wDescriptorLength); +le16_to_cpus (&usb_kbd_hid_desc.bcdHID); +le16_to_cpus (&usb_kbd_hid_desc.wDescriptorLength);usb_kbd_display_hid (&usb_kbd_hid_desc); len=0 ;break ;
common/usb_storage.c +10 -18
@@ -52,6 +52,7 @@#include <common.h> #include <command.h> +#include <asm/byteorder.h> #include <asm/processor.h>
@@ -474,9 +475,9 @@ int usb_stor_BBB_comdat(ccb *srb, struct/* always OUT to the ep */ pipe =usb_sndbulkpipe (us->pusb_dev, us->ep_out); - cbw.dCBWSignature =swap_32 (CBWSIGNATURE ); - cbw.dCBWTag =swap_32 (CBWTag++); - cbw.dCBWDataTransferLength =swap_32 (srb->datalen); + cbw.dCBWSignature =cpu_to_le32 (CBWSIGNATURE ); + cbw.dCBWTag =cpu_to_le32 (CBWTag++); + cbw.dCBWDataTransferLength =cpu_to_le32 (srb->datalen); cbw.bCBWFlags = (dir_in?CBWFLAGS_IN :CBWFLAGS_OUT ); cbw.bCBWLUN = srb->lun; cbw.bCDBLength = srb->cmdlen;
@@ -692,14 +693,14 @@ int usb_stor_BBB_transport(ccb *srb, strprintf ("\n" );#endif /* misuse pipe to get the residue */ - pipe =swap_32 (csw.dCSWDataResidue); + pipe =le32_to_cpu (csw.dCSWDataResidue);if (pipe ==0 && srb->datalen !=0 && srb->datalen - data_actlen !=0 ) pipe = srb->datalen - data_actlen; -if (CSWSIGNATURE !=swap_32 (csw.dCSWSignature)) { +if (CSWSIGNATURE !=le32_to_cpu (csw.dCSWSignature)) {USB_STOR_PRINTF ("!CSWSIGNATURE\n" );usb_stor_BBB_reset (us);return USB_STOR_TRANSPORT_FAILED ; - }else if ((CBWTag -1 ) !=swap_32 (csw.dCSWTag)) { + }else if ((CBWTag -1 ) !=le32_to_cpu (csw.dCSWTag)) {USB_STOR_PRINTF ("!Tag\n" );usb_stor_BBB_reset (us);return USB_STOR_TRANSPORT_FAILED ;
@@ -1222,18 +1223,9 @@ int usb_stor_get_info(struct usb_deviceif (cap[0 ]>(0x200000 *10 ))/* greater than 10 GByte */ cap[0 ]>>=16 ;#endif -#ifdef LITTLEENDIAN - cap[0 ] = ((unsigned long )( - (((unsigned long )(cap[0 ]) & (unsigned long )0x000000ffUL ) <<24 ) | - (((unsigned long )(cap[0 ]) & (unsigned long )0x0000ff00UL ) <<8 ) | - (((unsigned long )(cap[0 ]) & (unsigned long )0x00ff0000UL ) >>8 ) | - (((unsigned long )(cap[0 ]) & (unsigned long )0xff000000UL ) >>24 ) )); - cap[1 ] = ((unsigned long )( - (((unsigned long )(cap[1 ]) & (unsigned long )0x000000ffUL ) <<24 ) | - (((unsigned long )(cap[1 ]) & (unsigned long )0x0000ff00UL ) <<8 ) | - (((unsigned long )(cap[1 ]) & (unsigned long )0x00ff0000UL ) >>8 ) | - (((unsigned long )(cap[1 ]) & (unsigned long )0xff000000UL ) >>24 ) )); -#endif + cap[0 ] =cpu_to_be32 (cap[0 ]); + cap[1 ] =cpu_to_be32 (cap[1 ]); +/* this assumes bigendian! */ cap[0 ] +=1 ; capacity = &cap[0 ];
Signature · 1 line
1.4.3.4
PATCH 1/1 Setting processor endianess for USB modules
Quoted 5 lines · In message <[email protected]> you wrote:
Quoted 3 lines
Unfortunately it's unusable as your mailer wrapped long lines:
[...]
Please fix your mailer (or even better use git-send-email)Unfortunately I don't have this command (perhaps my git is too old).
No, that's not the reason. Your mail says:
Quoted 2 lines
Signature · 1 line
1.4.3.4
but git-send-email was already present under this name in v0.99.7.
How did you install git? If in doubt, clone the original repo and install (if necessary locally in your $HOME) from the original sources.
Quoted 2 lines
I've adjusted the input window of my mailer and I hope there are no wrapped lines anymore.
Yes, it helped, this time. Thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de It may be bad manners to talk with your mouth full, but it isn't too good either if you speak when your head is empty.
PATCH 1/1 Setting processor endianess for USB modules
Quoted 10 lines · Wolfgang Denk
Quoted 5 lines · In message <[email protected]> you wrote:
Quoted 3 lines
Unfortunately it's unusable as your mailer wrapped long lines:
[...]
Please fix your mailer (or even better use git-send-email)Unfortunately I don't have this command (perhaps my git is too old).
How did you install git? If in doubt, clone the original repo and install (if necessary locally in your $HOME) from the original sources.
Some distro packaging separated the git mail commands into a separate package. Perhaps you need to install more than just 'git-core'? Like, 'git-[e]mail' too?
jdl
PATCH 1/1 Setting processor endianess for USB modules
Quoted 8 lines · In message <1211471365.32225.15.camel@ld0161-tx32> you wrote:
Quoted 4 lines
How did you install git? If in doubt, clone the original repo and install (if necessary locally in your $HOME) from the original sources.
Some distro packaging separated the git mail commands into a separate package. Perhaps you need to install more than just 'git-core'? Like, 'git-[e]mail' too?
That's why I asked how he installed git - the Fedora systems I'm running also have a separate "git-email", but they also provide a "git" RPM which does not contain any files itself - it is a dummy package which brings in all subpackages.
So on Fedora, "yum install git" should do the trick.
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!
PATCH 1/1 Setting processor endianess for USB modules
In reply to Wolfgang DenkHello all,
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
Please fix your mailer (or even better use git-send-email)
Unfortunately I don't have this command (perhaps my git is too old).
No, that's not the reason. Your mail says:
Quoted 9 lines
Quoted 2 lines
Signature · 1 line
1.4.3.4but git-send-email was already present under this name in v0.99.7.
How did you install git? If in doubt, clone the original repo and install (if necessary locally in your $HOME) from the original sources.
after installing the appropriate package under my distro (openSuSE), the command is also available on my machine.
regards
Christian
PATCH 1/1 Setting processor endianess for USB modules
In reply to Christian EggersQuoted 12 lines · Christian Eggers
Quoted 3 lines
Unfortunately it's unusable as your mailer wrapped long lines:
[...]
Please fix your mailer (or even better use git-send-email)Unfortunately I don't have this command (perhaps my git is too old).
I've adjusted the input window of my mailer and I hope there are no wrapped lines anymore.
regards
Christian
Quoted 7 lines
Signed-off-by Christian Eggers <[email protected]>--- common/usb.c | 44 ++++++++++++++++++++++---------------------- common/usb_kbd.c | 11 ++++++----- common/usb_storage.c | 28 ++++++++++------------------ 3 files changed, 38 insertions(+), 45 deletions(-)
Thanks a lot, applied.
Please remember to use a more descriptive subject next time.
Best regards
Markus Klotzbuecher
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de