--- zzzz-none-000/linux-4.1.38/drivers/usb/core/driver.c 2017-01-18 18:48:06.000000000 +0000 +++ bcm63-7582-715/linux-4.1.38/drivers/usb/core/driver.c 2020-11-25 10:06:48.000000000 +0000 @@ -297,6 +297,13 @@ return error; } +#if 1 /* == 20160222 AVM/VGJ - CHANGESET: noprobe Extension for AURA == */ + if (udev->noprobe) { + dev_err(&intf->dev, "Probing is disabled for this device\n"); + return error; + } +#endif + id = usb_match_dynamic_id(intf, driver); if (!id) id = usb_match_id(intf, driver->id_table); @@ -360,6 +367,10 @@ if (!lpm_disable_error) usb_unlocked_enable_lpm(udev); + /* == 20180328 AVM/VGJ - Inc USB use counter -> prevents suspension + * The interface's driver must dec the counter to allow suspension ==*/ + avm_usb_suspend_get_locked(udev); + usb_autosuspend_device(udev); return error; @@ -462,6 +473,9 @@ if (!lpm_disable_error) usb_unlocked_enable_lpm(udev); + /* == 20180328 AVM/VGJ - Dec USB use counter -> allows suspension ==*/ + avm_usb_suspend_put_locked(udev); + /* Unbound interfaces are always runtime-PM-disabled and -suspended */ if (driver->supports_autosuspend) pm_runtime_disable(dev); @@ -533,6 +547,10 @@ } } + /* == 20180328 AVM/VGJ - Inc USB use counter -> prevents suspension + * The interface's driver must dec the counter to allow suspension ==*/ + avm_usb_suspend_get_locked(interface_to_usbdev(iface)); + /* Claimed interfaces are initially inactive (suspended) and * runtime-PM-enabled, but only if the driver has autosuspend * support. Otherwise they are marked active, to prevent the