Make sure the Endpoint Descriptor gets the correct maximum packet size.

This commit is contained in:
augustss 1998-11-22 20:21:22 +00:00
parent 1bb90faab4
commit 32dd1a1d5a
2 changed files with 8 additions and 5 deletions

View File

@ -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) {

View File

@ -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