Безопасно ли вызывать send_sig_info() внутри процедуры завершения URB?

Как известно, обратный вызов завершения USB URB будет выполняться в контексте softIRQ. Позвольте мне объяснить фон, в котором я пытаюсь использовать send_sig_info(). В настоящее время я работаю над Советом по сбору данных. Для этого на стороне USB-устройства у меня есть два блока: FPGA и FX3 USB-чип. Для прошивки устройства FX3 выставлено 4 конечных точки. Из 4 EP 2 используются для чтения / записи регистров FPGA, 1 используется для захвата прерываний IN EP.

В моем проекте есть одно требование для захвата сигнала прерывания FPGA ( FPGA доставляет прерывание на выводе GPIO к FX3, а в ответ FX3 вызовет фиктивные данные) на входе прерывания EP и после успешного приема сигнала прерывания в драйвере устройства считывает состояние прерывания FPGA. зарегистрируйтесь используя оптовую урбу. Так что в обратном вызове завершения прерывания IN urb я планирую отправить массив urb для чтения регистра прерывания FPGA.

Теперь больше никаких объяснений, подходящих к главному. В вышеупомянутом обратном вызове завершения urb после успешного чтения значения регистра состояния прерывания FPGA мне нужно отправить это целочисленное значение в userapp с помощью сигнала. Так что механизм событий userapp выполнит правильное действие.

Так безопасно ли вызывать send_sig_info () внутри функции обратного вызова массового завершения urb для доставки данных в userapp?

0 ответов

Другие вопросы по тегам