diff --git a/device.go b/device.go index 49c1f31..31f7fb6 100644 --- a/device.go +++ b/device.go @@ -210,6 +210,15 @@ func (d *Device) Control(rType, request uint8, val, idx uint16, data []byte) (in return d.ctx.libusb.control(d.handle, d.ControlTimeout, rType, request, val, idx, data) } +// DetachKernelDriver detaches the driver currently attached to the given +// interface. +func (d *Device) DetachKernelDriver(ifNumber int) error { + if d.handle == nil { + return fmt.Errorf("DetachKernelDriver(%d) called on %s after Close", ifNumber, d) + } + return d.ctx.libusb.detachKernelDriver(d.handle, uint8(ifNumber)) +} + // Close closes the device. func (d *Device) Close() error { if d.handle == nil {