diff --git a/driver/px4_usb.c b/driver/px4_usb.c index 0a44a37..36945a6 100644 --- a/driver/px4_usb.c +++ b/driver/px4_usb.c @@ -84,7 +84,7 @@ static int px4_usb_init_bridge(struct device *dev, struct usb_device *usb_dev, bus->dev = dev; bus->type = ITEDTV_BUS_USB; bus->usb.dev = usb_dev; - bus->usb.ctrl_timeout = 3000; + bus->usb.ctrl_timeout = px4_usb_params.ctrl_timeout; bus->usb.streaming.urb_buffer_size = 188 * px4_usb_params.urb_max_packets; bus->usb.streaming.urb_num = px4_usb_params.max_urbs; bus->usb.streaming.no_dma = px4_usb_params.no_dma; diff --git a/driver/px4_usb_params.c b/driver/px4_usb_params.c index 3cf8b8f..2358021 100644 --- a/driver/px4_usb_params.c +++ b/driver/px4_usb_params.c @@ -11,12 +11,19 @@ #include struct px4_usb_param_set px4_usb_params = { + .ctrl_timeout = 3000, .xfer_packets = 816, .urb_max_packets = 816, .max_urbs = 6, .no_dma = false }; +module_param_named(ctrl_timeout, px4_usb_params.ctrl_timeout, + int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +MODULE_PARM_DESC(ctrl_timeout, + "Time in msecs to wait for the message to complete " \ + "before timing out (if 0 the wait is forever). (default: 3000)"); + module_param_named(xfer_packets, px4_usb_params.xfer_packets, uint, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); MODULE_PARM_DESC(xfer_packets, diff --git a/driver/px4_usb_params.h b/driver/px4_usb_params.h index c64ed8f..b111bee 100644 --- a/driver/px4_usb_params.h +++ b/driver/px4_usb_params.h @@ -6,6 +6,7 @@ #include struct px4_usb_param_set { + int ctrl_timeout; unsigned int xfer_packets; unsigned int urb_max_packets; unsigned int max_urbs;