lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

002-upstream_svn_r152.patch (7014B)


      1 --- a/drivers/head/stub_dev.c
      2 +++ b/drivers/head/stub_dev.c
      3 @@ -398,7 +398,11 @@ static int stub_probe(struct usb_interfa
      4  {
      5  	struct usb_device *udev = interface_to_usbdev(interface);
      6  	struct stub_device *sdev = NULL;
      7 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
      8  	char *udev_busid = interface->dev.parent->bus_id;
      9 +#else
     10 +	char *udev_busid = dev_name(interface->dev.parent);
     11 +#endif
     12  	int err = 0;
     13  
     14  	udbg("Enter\n");
     15 --- a/drivers/head/stub_main.c
     16 +++ b/drivers/head/stub_main.c
     17 @@ -252,18 +252,17 @@ static int __init usb_stub_init(void)
     18  		return -ENOMEM;
     19  	}
     20  
     21 +	info(DRIVER_DESC "" DRIVER_VERSION);
     22 +
     23 +	memset(busid_table, 0, sizeof(busid_table));
     24 +	spin_lock_init(&busid_table_lock);
     25 +
     26  	ret = usb_register(&stub_driver);
     27  	if (ret) {
     28  		uerr("usb_register failed %d\n", ret);
     29  		return ret;
     30  	}
     31  
     32 -
     33 -	info(DRIVER_DESC "" DRIVER_VERSION);
     34 -
     35 -	memset(busid_table, 0, sizeof(busid_table));
     36 -	spin_lock_init(&busid_table_lock);
     37 -
     38  	ret = driver_create_file(&stub_driver.drvwrap.driver, &driver_attr_match_busid);
     39  
     40  	if (ret) {
     41 --- a/drivers/head/stub_rx.c
     42 +++ b/drivers/head/stub_rx.c
     43 @@ -159,7 +159,11 @@ static int tweak_set_configuration_cmd(s
     44  	 * A user may need to set a special configuration value before
     45  	 * exporting the device.
     46  	 */
     47 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
     48  	uinfo("set_configuration (%d) to %s\n", config, urb->dev->dev.bus_id);
     49 +#else
     50 +	uinfo("set_configuration (%d) to %s\n", config, dev_name(&urb->dev->dev));
     51 +#endif
     52  	uinfo("but, skip!\n");
     53  
     54  	return 0;
     55 @@ -177,7 +181,11 @@ static int tweak_reset_device_cmd(struct
     56  	value = le16_to_cpu(req->wValue);
     57  	index = le16_to_cpu(req->wIndex);
     58  
     59 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
     60  	uinfo("reset_device (port %d) to %s\n", index, urb->dev->dev.bus_id);
     61 +#else
     62 +	uinfo("reset_device (port %d) to %s\n", index, dev_name(&urb->dev->dev));
     63 +#endif
     64  
     65  	/* all interfaces should be owned by usbip driver, so just reset it. */
     66  	ret = usb_lock_device_for_reset(urb->dev, NULL);
     67 @@ -187,7 +195,11 @@ static int tweak_reset_device_cmd(struct
     68  	}
     69  
     70  	/* try to reset the device */
     71 -	ret = usb_reset_composite_device(urb->dev, NULL);
     72 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
     73 +    ret = usb_reset_composite_device(urb->dev, NULL);
     74 +#else
     75 +	ret = usb_reset_device(urb->dev);
     76 +#endif
     77  	if (ret < 0)
     78  		uerr("device reset\n");
     79  
     80 --- a/drivers/head/usbip_common.c
     81 +++ b/drivers/head/usbip_common.c
     82 @@ -55,10 +55,7 @@ static ssize_t show_flag(struct device *
     83  static ssize_t store_flag(struct device *dev, struct device_attribute *attr,
     84  		const char *buf, size_t count)
     85  {
     86 -	unsigned long flag;
     87 -
     88 -	sscanf(buf, "%lx", &flag);
     89 -	usbip_debug_flag = flag;
     90 +	sscanf(buf, "%lx", &usbip_debug_flag);
     91  
     92  	return count;
     93  }
     94 @@ -390,7 +387,7 @@ int usbip_thread(void *param)
     95  	unlock_kernel();
     96  
     97  	/* srv.rb must wait for rx_thread starting */
     98 -	complete(&ut->thread_done);
     99 +	complete(&ut->thread_started);
    100  
    101  	/* start of while loop */
    102  	ut->loop_ops(ut);
    103 @@ -403,15 +400,21 @@ int usbip_thread(void *param)
    104  
    105  void usbip_start_threads(struct usbip_device *ud)
    106  {
    107 +
    108  	/*
    109  	 * threads are invoked per one device (per one connection).
    110  	 */
    111 +    INIT_COMPLETION(ud->tcp_rx.thread_started);
    112 +    INIT_COMPLETION(ud->tcp_tx.thread_started);
    113 +    INIT_COMPLETION(ud->tcp_rx.thread_done);
    114 +    INIT_COMPLETION(ud->tcp_tx.thread_done);
    115 +
    116  	kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_rx, 0);
    117  	kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_tx, 0);
    118  
    119  	/* confirm threads are starting */
    120 -	wait_for_completion(&ud->tcp_rx.thread_done);
    121 -	wait_for_completion(&ud->tcp_tx.thread_done);
    122 +	wait_for_completion(&ud->tcp_rx.thread_started);
    123 +	wait_for_completion(&ud->tcp_tx.thread_started);
    124  }
    125  EXPORT_SYMBOL(usbip_start_threads);
    126  
    127 @@ -436,6 +439,7 @@ void usbip_task_init(struct usbip_task *
    128  		void (*loop_ops)(struct usbip_task *))
    129  {
    130  	ut->thread = NULL;
    131 +	init_completion(&ut->thread_started);
    132  	init_completion(&ut->thread_done);
    133  	ut->name = name;
    134  	ut->loop_ops = loop_ops;
    135 --- a/drivers/head/usbip_event.c
    136 +++ b/drivers/head/usbip_event.c
    137 @@ -38,7 +38,7 @@ void usbip_start_eh(struct usbip_device
    138  
    139  	kernel_thread((int(*)(void *)) usbip_thread, (void *) eh, 0);
    140  
    141 -	wait_for_completion(&eh->thread_done);
    142 +	wait_for_completion(&eh->thread_started);
    143  }
    144  EXPORT_SYMBOL(usbip_start_eh);
    145  
    146 --- a/drivers/head/vhci_hcd.c
    147 +++ b/drivers/head/vhci_hcd.c
    148 @@ -58,7 +58,7 @@ static void vhci_stop(struct usb_hcd *hc
    149  static int vhci_get_frame_number(struct usb_hcd *hcd);
    150  
    151  static const char driver_name[] = "vhci_hcd";
    152 -static const char driver_desc[] = "USB/IP Virtual Host Contoroller";
    153 +static const char driver_desc[] = "USB/IP Virtual Host Controller";
    154  
    155  
    156  
    157 @@ -416,14 +416,6 @@ static int vhci_hub_control(struct usb_h
    158  				case USB_PORT_FEAT_SUSPEND:
    159  					dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_SUSPEND\n");
    160  					uerr(" not yet\n");
    161 -#if 0
    162 -					dum->port_status[rhport] |= (1 << USB_PORT_FEAT_SUSPEND);
    163 -					if (dum->driver->suspend) {
    164 -						spin_unlock (&dum->lock);
    165 -						dum->driver->suspend (&dum->gadget);
    166 -						spin_lock (&dum->lock);
    167 -					}
    168 -#endif
    169  					break;
    170  				case USB_PORT_FEAT_RESET:
    171  					dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_RESET\n");
    172 @@ -432,12 +424,6 @@ static int vhci_hub_control(struct usb_h
    173  						dum->port_status[rhport] &= ~(USB_PORT_STAT_ENABLE
    174  								| USB_PORT_STAT_LOW_SPEED
    175  								| USB_PORT_STAT_HIGH_SPEED);
    176 -#if 0
    177 -						if (dum->driver) {
    178 -							dev_dbg (hardware, "disconnect\n");
    179 -							stop_activity (dum, dum->driver);
    180 -						}
    181 -#endif
    182  
    183  						/* FIXME test that code path! */
    184  					}
    185 @@ -1060,7 +1046,7 @@ static int vhci_hcd_probe(struct platfor
    186  	struct usb_hcd		*hcd;
    187  	int			ret;
    188  
    189 -	uinfo("proving...\n");
    190 +	uinfo("probing...\n");
    191  
    192  	dbg_vhci_hc("name %s id %d\n", pdev->name, pdev->id);
    193  
    194 @@ -1076,7 +1062,11 @@ static int vhci_hcd_probe(struct platfor
    195  	 * Allocate and initialize hcd.
    196  	 * Our private data is also allocated automatically.
    197  	 */
    198 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
    199  	hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, pdev->dev.bus_id);
    200 +#else
    201 +	hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, dev_name(&pdev->dev));
    202 +#endif
    203  	if (!hcd) {
    204  		uerr("create hcd failed\n");
    205  		return -ENOMEM;
    206 --- a/drivers/head/vhci_sysfs.c
    207 +++ b/drivers/head/vhci_sysfs.c
    208 @@ -123,7 +123,11 @@ static ssize_t show_status(struct device
    209  			out += sprintf(out, "%03u %08x ",
    210  					vdev->speed, vdev->devid);
    211  			out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
    212 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
    213  			out += sprintf(out, "%s", vdev->udev->dev.bus_id);
    214 +#else
    215 +			out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
    216 +#endif
    217  
    218  		} else
    219  			out += sprintf(out, "000 000 000 0000000000000000 0-0");
    220 --- a/drivers/head/usbip_common.h
    221 +++ b/drivers/head/usbip_common.h
    222 @@ -300,6 +300,7 @@ struct usbip_device;
    223  
    224  struct usbip_task {
    225  	struct task_struct *thread;
    226 +	struct completion thread_started;
    227  	struct completion thread_done;
    228  	char *name;
    229  	void (*loop_ops)(struct usbip_task *);