From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Thu, 30 Aug 2012 22:59:53 +0200 Subject: [U-Boot] [PATCH] usb: remove unnecessary packed attributes In-Reply-To: <201208301749.11276.marex@denx.de> References: <1346341281-12923-1-git-send-email-dev@lynxeye.de> <201208301749.11276.marex@denx.de> Message-ID: <201208302259.53564.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Marek Vasut, > Dear Lucas Stach, > > > We don't actually need to pack those structs, as they > > are not used to do actual hardware access. > > > > This avoids some unaligned accesses and therefore makes > > the EHCI stack work on ARMv7 without compiler workarounds. > > > > Signed-off-by: Lucas Stach > > I need to review this properly, will get back to it soon. My 7th sense is telling me, these descriptors are sent across the bus. ehci_submit_root() puts them into buffer and then ehci_submit_async() blasts them. I believe they must be packed, otherwise the format expected by devices on the bus won't match and it'll fall apart. > Until then, CCing other good fellows. > > > --- > > > > drivers/usb/host/ehci-hcd.c | 2 +- > > include/usb.h | 2 +- > > 2 Dateien ge?ndert, 2 Zeilen hinzugef?gt(+), 2 Zeilen entfernt(-) > > > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c > > index 18b4bc6..2f4fa5e 100644 > > --- a/drivers/usb/host/ehci-hcd.c > > +++ b/drivers/usb/host/ehci-hcd.c > > @@ -45,7 +45,7 @@ static struct descriptor { > > > > struct usb_linux_config_descriptor config; > > struct usb_linux_interface_descriptor interface; > > struct usb_endpoint_descriptor endpoint; > > > > -} __attribute__ ((packed)) descriptor = { > > +} descriptor = { > > > > { > > > > 0x8, /* bDescLength */ > > 0x29, /* bDescriptorType: hub descriptor */ > > > > diff --git a/include/usb.h b/include/usb.h > > index ba3d169..63730ee 100644 > > --- a/include/usb.h > > +++ b/include/usb.h > > @@ -369,7 +369,7 @@ struct usb_hub_descriptor { > > > > unsigned char PortPowerCtrlMask[(USB_MAXCHILDREN+1+7)/8]; > > /* DeviceRemovable and PortPwrCtrlMask want to be variable-length > > > > bitmaps that hold max 255 entries. (bit0 is ignored) */ > > > > -} __attribute__ ((packed)); > > +}; > > > > struct usb_hub_device { > > Best regards, > Marek Vasut Best regards, Marek Vasut