usb: Only enable the SOF interrupt if user_callback_sof is given.

Otherwise we get 1 kHz of SOF interrupts even if we don't need them.

Originally reported by Uwe in https://github.com/libopencm3/libopencm3/pull/274
but BuFran provided a reworked implementation.
This commit is contained in:
Frantisek Burian
2014-12-19 00:53:21 +01:00
committed by Karl Palsson
parent 13004f81ee
commit 0cc0134f21
4 changed files with 14 additions and 4 deletions

View File

@@ -343,4 +343,10 @@ static void stm32f103_poll(usbd_device *dev)
dev->user_callback_sof();
}
}
if (usbd_dev->user_callback_sof) {
BBIO_PERIPH(USB_CNTR_REG, USB_CNTR_SOFM) = 1;
} else {
BBIO_PERIPH(USB_CNTR_REG, USB_CNTR_SOFM) = 0;
}
}