diff --git a/VersionNum b/VersionNum index efbdd408761e0dadb8a8a138c2a18d82a9499b18..e0c88b0aee9b59cf19a5c3c22fb607d0a2c93c7e 100644 --- a/VersionNum +++ b/VersionNum @@ -1,23 +1,23 @@ -/* (0.61) +/* (0.62) * * This file is automatically maintained by srccommit, do not edit manually. * Last processed by srccommit version: 1.1. * */ -#define Module_MajorVersion_CMHG 0.61 +#define Module_MajorVersion_CMHG 0.62 #define Module_MinorVersion_CMHG -#define Module_Date_CMHG 08 Aug 2011 +#define Module_Date_CMHG 22 Aug 2011 -#define Module_MajorVersion "0.61" -#define Module_Version 61 +#define Module_MajorVersion "0.62" +#define Module_Version 62 #define Module_MinorVersion "" -#define Module_Date "08 Aug 2011" +#define Module_Date "22 Aug 2011" -#define Module_ApplicationDate "08-Aug-11" +#define Module_ApplicationDate "22-Aug-11" #define Module_ComponentName "NetBSD" #define Module_ComponentPath "mixed/RiscOS/Sources/HWSupport/USB/NetBSD" -#define Module_FullVersion "0.61" -#define Module_HelpVersion "0.61 (08 Aug 2011)" -#define Module_LibraryVersionInfo "0:61" +#define Module_FullVersion "0.62" +#define Module_HelpVersion "0.62 (22 Aug 2011)" +#define Module_LibraryVersionInfo "0:62" diff --git a/build/Version b/build/Version index 6eb4a7d0a151c9e5950a7f6de0826880a647c7aa..4566fae0527b8134b1feda4ba8d5b1340be99368 100644 --- a/build/Version +++ b/build/Version @@ -2,11 +2,11 @@ VersionNum file really,as a work around define them here so the CMHG file remains unaltered */ -#define OHCIDriverModule_Module_Date_CMHG 08 Aug 2011 -#define OHCIDriverModule_MajorVersion_CMHG 0.35 +#define OHCIDriverModule_Module_Date_CMHG 22 Aug 2011 +#define OHCIDriverModule_MajorVersion_CMHG 0.36 -#define EHCIDriverModule_Module_Date_CMHG 05 Aug 2011 -#define EHCIDriverModule_MajorVersion_CMHG 0.18 +#define EHCIDriverModule_Module_Date_CMHG 22 Aug 2011 +#define EHCIDriverModule_MajorVersion_CMHG 0.19 -#define USBDriverModule_Module_Date_CMHG 05 Aug 2011 -#define USBDriverModule_MajorVersion_CMHG 0.53 +#define USBDriverModule_Module_Date_CMHG 22 Aug 2011 +#define USBDriverModule_MajorVersion_CMHG 0.54 diff --git a/build/c/usbhal b/build/c/usbhal index 9fccf602879be6b09cad458930dd89b6af5e1c85..80c0c6cbbe1a20107e54d2c763982d5ffb106594 100644 --- a/build/c/usbhal +++ b/build/c/usbhal @@ -340,10 +340,9 @@ uint32_t USBHAL_KbdScan(void) return USBHALWS->kbdflags; } -void USBHAL_KbdScanInterrupt(void) +int USBHAL_KbdScanInterrupt(int irq) { USBHALWS->irqsema++; - int irq = HAL_IRQSource(); hdprintf("i%d\n",irq); if(irq == HAL_TimerDevice(0)) { @@ -364,6 +363,7 @@ void USBHAL_KbdScanInterrupt(void) /* Make sure IRQs are still off */ splbio(); } + irq = -1; } else if(irq != -1) { @@ -373,16 +373,19 @@ void USBHAL_KbdScanInterrupt(void) { struct usbd_bus *bus = usb_getbus(dev); if(bus->methods->do_intr(bus,irq)) + { + irq = -1; goto done; + } } hdprintf("?\n"); - HAL_IRQClear(irq); } done: USBHALWS->irqsema--; /* Trigger any pending callbacks */ triggercbs(); hdprintf("I\n"); + return irq; } void USBHAL_Shutdown(void) diff --git a/dev/usb/c/ehci b/dev/usb/c/ehci index 5996877092a1639c4d1d05df4fbd9d86672765dd..4e1ab35c707359b8dd4af6d933eff1658574f87a 100644 --- a/dev/usb/c/ehci +++ b/dev/usb/c/ehci @@ -2052,7 +2052,7 @@ ehci_rem_free_itd_chain(ehci_softc_t *sc, struct ehci_xfer *exfer) /* * Data structures and routines to emulate the root hub. */ -Static usb_device_descriptor_t ehci_devd = { +Static const usb_device_descriptor_t ehci_devd = { USB_DEVICE_DESCRIPTOR_SIZE, UDESC_DEVICE, /* type */ {0x00, 0x02}, /* USB version */ @@ -2199,12 +2199,12 @@ ehci_root_ctrl_start(usbd_xfer_handle xfer) goto ret; } totlen = l = min(len, USB_DEVICE_DESCRIPTOR_SIZE); - USETW(ehci_devd.idVendor, sc->sc_id_vendor); #if defined(__CC_NORCROFT) && !defined(DISABLE_PACKED) memcpy(buf, (void*) &ehci_devd, l); #else memcpy(buf, &ehci_devd, l); #endif + USETW(((usb_device_descriptor_t *) buf)->idVendor, sc->sc_id_vendor); break; /* * We can't really operate at another speed, but the spec says diff --git a/dev/usb/c/ohci b/dev/usb/c/ohci index 40407e5e1bf0039878d8c5602bad09d750b52cbb..120ad7491e31c579c806f98e3c071c3743dcea2a 100644 --- a/dev/usb/c/ohci +++ b/dev/usb/c/ohci @@ -2615,7 +2615,7 @@ ohci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) /* * Data structures and routines to emulate the root hub. */ -Static usb_device_descriptor_t ohci_devd = { +Static const usb_device_descriptor_t ohci_devd = { USB_DEVICE_DESCRIPTOR_SIZE, UDESC_DEVICE, /* type */ {0x00, 0x01}, /* USB version */ @@ -2628,7 +2628,7 @@ Static usb_device_descriptor_t ohci_devd = { 1 /* # of configurations */ }; -Static usb_config_descriptor_t ohci_confd = { +Static const usb_config_descriptor_t ohci_confd = { USB_CONFIG_DESCRIPTOR_SIZE, UDESC_CONFIG, {USB_CONFIG_DESCRIPTOR_SIZE + @@ -2641,7 +2641,7 @@ Static usb_config_descriptor_t ohci_confd = { 0 /* max power */ }; -Static usb_interface_descriptor_t ohci_ifcd = { +Static const usb_interface_descriptor_t ohci_ifcd = { USB_INTERFACE_DESCRIPTOR_SIZE, UDESC_INTERFACE, 0, @@ -2653,7 +2653,7 @@ Static usb_interface_descriptor_t ohci_ifcd = { 0 }; -Static usb_endpoint_descriptor_t ohci_endpd = { +Static const usb_endpoint_descriptor_t ohci_endpd = { USB_ENDPOINT_DESCRIPTOR_SIZE, UDESC_ENDPOINT, UE_DIR_IN | OHCI_INTR_ENDPT, @@ -2662,7 +2662,7 @@ Static usb_endpoint_descriptor_t ohci_endpd = { 255 }; -Static usb_hub_descriptor_t ohci_hubd = { +Static const usb_hub_descriptor_t ohci_hubd = { USB_HUB_DESCRIPTOR_SIZE, UDESC_HUB, 0, @@ -2765,8 +2765,8 @@ ohci_root_ctrl_start(usbd_xfer_handle xfer) goto ret; } totlen = l = min(len, USB_DEVICE_DESCRIPTOR_SIZE); - USETW(ohci_devd.idVendor, sc->sc_id_vendor); memcpy(buf, (void *)&ohci_devd, l); + USETW(((usb_device_descriptor_t *) buf)->idVendor, sc->sc_id_vendor); break; case UDESC_CONFIG: if ((value & 0xff) != 0) { diff --git a/dev/usb/h/usbhal b/dev/usb/h/usbhal index 66ddaedfc1beeb6752954f1ea1b279a4fba3c05c..abb3f47c2acc50940a123d1b7ddda61262f88c62 100644 --- a/dev/usb/h/usbhal +++ b/dev/usb/h/usbhal @@ -75,8 +75,8 @@ extern void USBHAL_Init(void *heapbase,uint32_t heapsize,void *ncnbbase,uint32_t /* Process keyboard scan */ extern uint32_t USBHAL_KbdScan(void); -/* Process keyboard scan interrupt */ -extern void USBHAL_KbdScanInterrupt(void); +/* Process keyboard scan interrupt. Returns -1 if IRQ handled, or 'irq' if not. */ +extern int USBHAL_KbdScanInterrupt(int irq); /* Finish keyboard scan and shut everything down */ extern void USBHAL_Shutdown(void);