summaryrefslogtreecommitdiffstats
path: root/app/kvm.c
diff options
context:
space:
mode:
authorroot <root@no.no.james.local>2015-07-15 20:17:30 +0100
committerroot <root@no.no.james.local>2015-07-15 20:17:30 +0100
commit39044e272695c5f9c43a0560ae00ea440881d464 (patch)
tree666d206036ceae71058bd9617d215fd83da63358 /app/kvm.c
parent500561f54adabc9aaf5b3548744b5bc8b4381c89 (diff)
downloadstm32_usb_kvm-from-no.tar.gz
stm32_usb_kvm-from-no.tar.bz2
stm32_usb_kvm-from-no.zip
from-nofrom-no
Diffstat (limited to 'app/kvm.c')
-rw-r--r--app/kvm.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/app/kvm.c b/app/kvm.c
index ab27bb7..ebdd282 100644
--- a/app/kvm.c
+++ b/app/kvm.c
@@ -31,7 +31,19 @@ kvm_dispatch (void)
led_set(GPIO8);
else
led_set(GPIO9);
- usbd_ep_write_packet (usbd_dev, endpoint, buf, len);
+
+ if (endpoint==0x84) {
+ SET_REG(USB_CNTR_REG, USB_CNTR_RESETM | USB_CNTR_CTRM | USB_CNTR_SUSPM | USB_CNTR_WKUPM | USB_CNTR_RESUME);
+ {
+ int i;
+ for (i = 0; i < 0x80000; i++)
+ __asm__ ("nop");
+ }
+
+ SET_REG(USB_CNTR_REG, USB_CNTR_RESETM | USB_CNTR_CTRM | USB_CNTR_SUSPM | USB_CNTR_WKUPM);
+ } else {
+ usbd_ep_write_packet (usbd_dev, endpoint, buf, len);
+ }
}
}