From a946aac7baf9771e87a48624a9250dda6079d894 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Wed, 30 Nov 2011 06:46:03 -0300 Subject: [PATCH] m1/patches/rtems/: added Milkymist-specific USB-MIDI forwarding --- m1/patches/rtems/milkymist-usb-midi.patch | 47 +++++++++++++++++++++++ m1/patches/rtems/series | 1 + 2 files changed, 48 insertions(+) create mode 100644 m1/patches/rtems/milkymist-usb-midi.patch diff --git a/m1/patches/rtems/milkymist-usb-midi.patch b/m1/patches/rtems/milkymist-usb-midi.patch new file mode 100644 index 0000000..de0d025 --- /dev/null +++ b/m1/patches/rtems/milkymist-usb-midi.patch @@ -0,0 +1,47 @@ +Index: rtems/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/comloc.h +=================================================================== +--- rtems.orig/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/comloc.h 2011-11-30 05:40:59.000000000 -0300 ++++ rtems/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/comloc.h 2011-11-30 05:41:26.000000000 -0300 +@@ -22,5 +22,7 @@ + #define COMLOC_MEVT(offset) COMLOCV(MM_SOFTUSB_DMEM_BASE+0x1102+offset) + #define COMLOC_KEVT_PRODUCE COMLOCV(MM_SOFTUSB_DMEM_BASE+0x1142) + #define COMLOC_KEVT(offset) COMLOCV(MM_SOFTUSB_DMEM_BASE+0x1143+offset) ++#define COMLOC_MIDI_PRODUCE COMLOCV(MM_SOFTUSB_DMEM_BASE+0x1183) ++#define COMLOC_MIDI(offset) COMLOCV(MM_SOFTUSB_DMEM_BASE+0x1184+offset) + + #endif /* __COMLOC_H_ */ +Index: rtems/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/usbinput.c +=================================================================== +--- rtems.orig/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/usbinput.c 2011-11-30 05:38:19.000000000 -0300 ++++ rtems/c/src/lib/libbsp/lm32/shared/milkymist_usbinput/usbinput.c 2011-11-30 05:40:54.000000000 -0300 +@@ -35,6 +35,7 @@ + + static int mouse_consume; + static int keyboard_consume; ++static int midi_consume; + + static rtems_id event_q; + +@@ -58,6 +59,14 @@ + rtems_message_queue_send(event_q, msg, 8); + keyboard_consume = (keyboard_consume + 1) & 0x07; + } ++ ++ while(midi_consume != COMLOC_MIDI_PRODUCE) { ++ for(i=0;i<3;i++) ++ msg[i] = COMLOC_MIDI(4*midi_consume+i+1); ++ rtems_message_queue_send(event_q, msg, 3); ++ midi_consume = (midi_consume + 1) & 0x0f; ++ } ++ + } + + rtems_device_driver usbinput_initialize( +@@ -87,6 +96,7 @@ + + mouse_consume = 0; + keyboard_consume = 0; ++ midi_consume = 0; + + sc = rtems_io_register_name(DEVICE_NAME, major, 0); + RTEMS_CHECK_SC(sc, "create USB input device"); diff --git a/m1/patches/rtems/series b/m1/patches/rtems/series index 85882f5..12bb962 100644 --- a/m1/patches/rtems/series +++ b/m1/patches/rtems/series @@ -14,3 +14,4 @@ # milkymist-map-sysfreq.patch - applied 2011-11-27 # milkymist-videoformat.patch - applied 2011-11-27 #fix-timer-includes.patch +milkymist-usb-midi.patch