diff --git a/bumble/drivers/intel.py b/bumble/drivers/intel.py index 1ef61050..c65d5281 100644 --- a/bumble/drivers/intel.py +++ b/bumble/drivers/intel.py @@ -53,8 +53,12 @@ def __init__(self, host): self.host = host @classmethod - async def for_host(cls, host, force=False): # type: ignore - return cls(host) + async def for_host(cls, host): # type: ignore + # Only instantiate this driver if explicitly selected + if host.hci_metadata.get("driver") == "intel": + return cls(host) + + return None async def init_controller(self): self.host.ready = True diff --git a/bumble/host.py b/bumble/host.py index ab0df662..fd0a2470 100644 --- a/bumble/host.py +++ b/bumble/host.py @@ -498,7 +498,7 @@ def controller(self) -> Optional[TransportSink]: def controller(self, controller) -> None: self.set_packet_sink(controller) if controller: - controller.set_packet_sink(self) + self.set_packet_source(controller) def set_packet_sink(self, sink: Optional[TransportSink]) -> None: self.hci_sink = sink diff --git a/docs/mkdocs/src/drivers/index.md b/docs/mkdocs/src/drivers/index.md index cb0a981e..aa5f0a17 100644 --- a/docs/mkdocs/src/drivers/index.md +++ b/docs/mkdocs/src/drivers/index.md @@ -10,7 +10,7 @@ used with particular HCI controller. When the transport for an HCI controller is instantiated from a transport name, a driver may also be forced by specifying ``driver=`` in the optional metadata portion of the transport name. For example, -``usb:[driver=-rtk]0`` indicates that the ``rtk`` driver should be used with the +``usb:[driver=rtk]0`` indicates that the ``rtk`` driver should be used with the first USB device, even if a normal probe would not have selected it based on the USB vendor ID and product ID.