Revert "cdc_subset: deal with a device that needs reset for timeout"
This reverts commit 20fbe3ae99
.
As reported by Stephen Rothwell, it causes compile failures in certain
configurations:
drivers/net/usb/cdc_subset.c:360:15: error: 'dummy_prereset' undeclared here (not in a function)
.pre_reset = dummy_prereset,
^
drivers/net/usb/cdc_subset.c:361:16: error: 'dummy_postreset' undeclared here (not in a function)
.post_reset = dummy_postreset,
^
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: David Miller <davem@davemloft.net>
Cc: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
b527caee1b
Коммит
1d8fcba1de
|
@ -85,34 +85,9 @@ static int always_connected (struct usbnet *dev)
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------*/
|
*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static void m5632_recover(struct usbnet *dev)
|
|
||||||
{
|
|
||||||
struct usb_device *udev = dev->udev;
|
|
||||||
struct usb_interface *intf = dev->intf;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
r = usb_lock_device_for_reset(udev, intf);
|
|
||||||
if (r < 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
usb_reset_device(udev);
|
|
||||||
usb_unlock_device(udev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int dummy_prereset(struct usb_interface *intf)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int dummy_postreset(struct usb_interface *intf)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct driver_info ali_m5632_info = {
|
static const struct driver_info ali_m5632_info = {
|
||||||
.description = "ALi M5632",
|
.description = "ALi M5632",
|
||||||
.flags = FLAG_POINTTOPOINT,
|
.flags = FLAG_POINTTOPOINT,
|
||||||
.recover = m5632_recover,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -357,8 +332,6 @@ static struct usb_driver cdc_subset_driver = {
|
||||||
.probe = usbnet_probe,
|
.probe = usbnet_probe,
|
||||||
.suspend = usbnet_suspend,
|
.suspend = usbnet_suspend,
|
||||||
.resume = usbnet_resume,
|
.resume = usbnet_resume,
|
||||||
.pre_reset = dummy_prereset,
|
|
||||||
.post_reset = dummy_postreset,
|
|
||||||
.disconnect = usbnet_disconnect,
|
.disconnect = usbnet_disconnect,
|
||||||
.id_table = products,
|
.id_table = products,
|
||||||
.disable_hub_initiated_lpm = 1,
|
.disable_hub_initiated_lpm = 1,
|
||||||
|
|
|
@ -1218,12 +1218,8 @@ void usbnet_tx_timeout (struct net_device *net)
|
||||||
|
|
||||||
unlink_urbs (dev, &dev->txq);
|
unlink_urbs (dev, &dev->txq);
|
||||||
tasklet_schedule (&dev->bh);
|
tasklet_schedule (&dev->bh);
|
||||||
/* this needs to be handled individually because the generic layer
|
|
||||||
* doesn't know what is sufficient and could not restore private
|
// FIXME: device recovery -- reset?
|
||||||
* information if a remedy of an unconditional reset were used.
|
|
||||||
*/
|
|
||||||
if (dev->driver_info->recover)
|
|
||||||
(dev->driver_info->recover)(dev);
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(usbnet_tx_timeout);
|
EXPORT_SYMBOL_GPL(usbnet_tx_timeout);
|
||||||
|
|
||||||
|
|
|
@ -148,9 +148,6 @@ struct driver_info {
|
||||||
struct sk_buff *(*tx_fixup)(struct usbnet *dev,
|
struct sk_buff *(*tx_fixup)(struct usbnet *dev,
|
||||||
struct sk_buff *skb, gfp_t flags);
|
struct sk_buff *skb, gfp_t flags);
|
||||||
|
|
||||||
/* recover from timeout */
|
|
||||||
void (*recover)(struct usbnet *dev);
|
|
||||||
|
|
||||||
/* early initialization code, can sleep. This is for minidrivers
|
/* early initialization code, can sleep. This is for minidrivers
|
||||||
* having 'subminidrivers' that need to do extra initialization
|
* having 'subminidrivers' that need to do extra initialization
|
||||||
* right after minidriver have initialized hardware. */
|
* right after minidriver have initialized hardware. */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче