fix: НЕ делать detach_kernel_driver() — это отключает audio интерфейсы!
Проблема: detach_kernel_driver(0) отключает ядро от интерфейса 0, который является частью audio function (интерфейсы 0-2). Решение: Убрать detach_kernel_driver() вообще. Control transfer с CTRL_TYPE_VENDOR работает без claim interface и не требует отключения ядра. Это как в xvf_host.py — там тоже нет detach_kernel_driver().
This commit is contained in:
@@ -152,12 +152,8 @@ class XVF3800Controller:
|
|||||||
_LOGGER.debug("Looking for PID %04x...", pid)
|
_LOGGER.debug("Looking for PID %04x...", pid)
|
||||||
dev = usb.core.find(idVendor=self._vendor_id, idProduct=pid)
|
dev = usb.core.find(idVendor=self._vendor_id, idProduct=pid)
|
||||||
if dev is not None:
|
if dev is not None:
|
||||||
try:
|
# НЕ делаем detach_kernel_driver() — это отключает audio интерфейсы!
|
||||||
if dev.is_kernel_driver_active(0):
|
# Control transfer с CTRL_TYPE_VENDOR работает без claim interface
|
||||||
_LOGGER.info("Detaching kernel driver from device...")
|
|
||||||
dev.detach_kernel_driver(0)
|
|
||||||
except Exception as exc:
|
|
||||||
_LOGGER.warning("Could not detach kernel driver: %s", exc)
|
|
||||||
|
|
||||||
self._dev = dev
|
self._dev = dev
|
||||||
_LOGGER.info(
|
_LOGGER.info(
|
||||||
|
|||||||
Reference in New Issue
Block a user