mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 05:05:20 -05:00
usb-drv-as3525v2: revert part of r31243
assigning a partially initialized structure (through casting) will initialize members unspecified in the initialization git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31372 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
02fad29a07
commit
74516e06e7
1 changed files with 15 additions and 18 deletions
|
|
@ -116,13 +116,12 @@ static void reset_endpoints(void)
|
||||||
for (unsigned i = 0; i < num_eps(dir == DIR_OUT); i++)
|
for (unsigned i = 0; i < num_eps(dir == DIR_OUT); i++)
|
||||||
{
|
{
|
||||||
int ep = ((dir == DIR_IN) ? in_ep_list : out_ep_list)[i];
|
int ep = ((dir == DIR_IN) ? in_ep_list : out_ep_list)[i];
|
||||||
endpoints[ep][out] = (struct usb_endpoint) {
|
struct usb_endpoint *endpoint = &endpoints[ep][out];
|
||||||
.active = false,
|
endpoint->active = false;
|
||||||
.busy = false,
|
endpoint->busy = false;
|
||||||
.status = -1,
|
endpoint->status = -1;
|
||||||
.done = false,
|
endpoint->done = false;
|
||||||
};
|
semaphore_release(&endpoint->complete);
|
||||||
semaphore_release(&endpoints[ep][out].complete);
|
|
||||||
|
|
||||||
if (i != 0)
|
if (i != 0)
|
||||||
DEPCTL(ep, out) = DEPCTL_setd0pid;
|
DEPCTL(ep, out) = DEPCTL_setd0pid;
|
||||||
|
|
@ -149,12 +148,11 @@ static void cancel_all_transfers(bool cancel_ep0)
|
||||||
for (unsigned i = !!cancel_ep0; i < num_eps(dir == DIR_OUT); i++)
|
for (unsigned i = !!cancel_ep0; i < num_eps(dir == DIR_OUT); i++)
|
||||||
{
|
{
|
||||||
int ep = ((dir == DIR_IN) ? in_ep_list : out_ep_list)[i];
|
int ep = ((dir == DIR_IN) ? in_ep_list : out_ep_list)[i];
|
||||||
endpoints[ep][dir == DIR_OUT] = (struct usb_endpoint) {
|
struct usb_endpoint *endpoint = &endpoints[ep][dir == DIR_OUT];
|
||||||
.status = -1,
|
endpoint->status = -1;
|
||||||
.busy = false,
|
endpoint->busy = false;
|
||||||
.done = false,
|
endpoint->done = false;
|
||||||
};
|
semaphore_release(&endpoint->complete);
|
||||||
semaphore_release(&endpoints[ep][dir == DIR_OUT].complete);
|
|
||||||
DEPCTL(ep, dir) = (DEPCTL(ep, dir) & ~DEPCTL_usbactep);
|
DEPCTL(ep, dir) = (DEPCTL(ep, dir) & ~DEPCTL_usbactep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -429,11 +427,10 @@ static void usb_drv_transfer(int ep, void *ptr, int len, bool out)
|
||||||
/* disable interrupts to avoid any race */
|
/* disable interrupts to avoid any race */
|
||||||
int oldlevel = disable_irq_save();
|
int oldlevel = disable_irq_save();
|
||||||
|
|
||||||
endpoints[ep][out ? DIR_OUT : DIR_IN] = (struct usb_endpoint) {
|
struct usb_endpoint *endpoint = &endpoints[ep][out ? DIR_OUT : DIR_IN];
|
||||||
.busy = true,
|
endpoint->busy = true;
|
||||||
.len = len,
|
endpoint->len = len;
|
||||||
.status = -1,
|
endpoint->status = -1;
|
||||||
};
|
|
||||||
|
|
||||||
if (out)
|
if (out)
|
||||||
DEPCTL(ep, out) &= ~DEPCTL_naksts;
|
DEPCTL(ep, out) &= ~DEPCTL_naksts;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue