USB: ehci saves some memory in ISO transfer descriptors
In the EHCI driver, itd->usecs[8] is used in periodic_usecs(), indexed by uframe. For an ITD's unused uframes it is 0, else it contains the same value as itd->stream->usecs. To check if an ITD's uframe is used, we can instead test itd->hw_transaction[uframe]: if used, it will be nonzero no matter what endianess is used. This patch replaces those two uses, eliminates itd->usecs[], and saves eight bytes from each ITD. Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
91bc4d31e8
Коммит
3b6fcfd066
|
@ -119,7 +119,8 @@ periodic_usecs (struct ehci_hcd *ehci, unsigned frame, unsigned uframe)
|
||||||
q = &q->fstn->fstn_next;
|
q = &q->fstn->fstn_next;
|
||||||
break;
|
break;
|
||||||
case Q_TYPE_ITD:
|
case Q_TYPE_ITD:
|
||||||
usecs += q->itd->usecs [uframe];
|
if (q->itd->hw_transaction[uframe])
|
||||||
|
usecs += q->itd->stream->usecs;
|
||||||
hw_p = &q->itd->hw_next;
|
hw_p = &q->itd->hw_next;
|
||||||
q = &q->itd->itd_next;
|
q = &q->itd->itd_next;
|
||||||
break;
|
break;
|
||||||
|
@ -1536,7 +1537,6 @@ itd_link_urb (
|
||||||
uframe = next_uframe & 0x07;
|
uframe = next_uframe & 0x07;
|
||||||
frame = next_uframe >> 3;
|
frame = next_uframe >> 3;
|
||||||
|
|
||||||
itd->usecs [uframe] = stream->usecs;
|
|
||||||
itd_patch(ehci, itd, iso_sched, packet, uframe);
|
itd_patch(ehci, itd, iso_sched, packet, uframe);
|
||||||
|
|
||||||
next_uframe += stream->interval;
|
next_uframe += stream->interval;
|
||||||
|
|
|
@ -602,7 +602,6 @@ struct ehci_itd {
|
||||||
unsigned frame; /* where scheduled */
|
unsigned frame; /* where scheduled */
|
||||||
unsigned pg;
|
unsigned pg;
|
||||||
unsigned index[8]; /* in urb->iso_frame_desc */
|
unsigned index[8]; /* in urb->iso_frame_desc */
|
||||||
u8 usecs[8];
|
|
||||||
} __attribute__ ((aligned (32)));
|
} __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
Загрузка…
Ссылка в новой задаче