Make sure the Endpoint Descriptor gets the correct maximum packet size.
This commit is contained in:
parent
1bb90faab4
commit
32dd1a1d5a
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ohci.c,v 1.9 1998/11/21 18:57:09 augustss Exp $ */
|
||||
/* $NetBSD: ohci.c,v 1.10 1998/11/22 20:21:22 augustss Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998 The NetBSD Foundation, Inc.
|
||||
|
@ -894,10 +894,12 @@ ohci_device_request(reqh)
|
|||
dmap = &opipe->u.ctl.datadma;
|
||||
opipe->u.ctl.length = len;
|
||||
|
||||
/* Update device address */
|
||||
/* Update device address and length since they may have changed. */
|
||||
/* XXX This only needs to be done once, but it's too early in open. */
|
||||
sed->ed->ed_flags =
|
||||
(sed->ed->ed_flags & ~OHCI_ED_ADDRMASK) |
|
||||
OHCI_ED_SET_FA(addr);
|
||||
(sed->ed->ed_flags & ~(OHCI_ED_ADDRMASK | OHCI_ED_MAXPMASK)) |
|
||||
OHCI_ED_SET_FA(addr) |
|
||||
OHCI_ED_SET_MAXP(UGETW(opipe->pipe.endpoint->edesc->wMaxPacketSize));
|
||||
|
||||
/* Set up data transaction */
|
||||
if (len != 0) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ohcireg.h,v 1.4 1998/08/06 12:26:51 augustss Exp $ */
|
||||
/* $NetBSD: ohcireg.h,v 1.5 1998/11/22 20:21:22 augustss Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998 The NetBSD Foundation, Inc.
|
||||
|
@ -154,6 +154,7 @@ typedef struct {
|
|||
#define OHCI_ED_FORMAT_ISO 0x00008000
|
||||
#define OHCI_ED_GET_MAXP(s) (((s) >> 16) & 0x07ff)
|
||||
#define OHCI_ED_SET_MAXP(s) ((s) << 16)
|
||||
#define OHCI_ED_MAXPMASK (0x7ff << 16)
|
||||
ohci_physaddr_t ed_tailp;
|
||||
#define OHCI_HALTED 0x00000002
|
||||
#define OHCI_TOGGLECARRY 0x00000001
|
||||
|
|
Loading…
Reference in New Issue