On 08/19/2018 09:20 PM, Tuomas Tynkkynen wrote: > Setting GPIO 21 high seems to be required to enable power to USB ports > on the WNDR3400v3. As there is already similar code for WNR3500L, > make the existing USB power GPIO code generic and use that. > > Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@xxxxxx> I didn't runtime tested this and didn't checked the board, but this looks good. Acked-by: Hauke Mehrtens <hauke@xxxxxxxxxx> > --- > arch/mips/bcm47xx/workarounds.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/arch/mips/bcm47xx/workarounds.c b/arch/mips/bcm47xx/workarounds.c > index 1a8a07e7a563..46eddbec8d9f 100644 > --- a/arch/mips/bcm47xx/workarounds.c > +++ b/arch/mips/bcm47xx/workarounds.c > @@ -5,9 +5,8 @@ > #include <bcm47xx_board.h> > #include <bcm47xx.h> > > -static void __init bcm47xx_workarounds_netgear_wnr3500l(void) > +static void __init bcm47xx_workarounds_enable_usb_power(int usb_power) > { > - const int usb_power = 12; > int err; > > err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power"); > @@ -23,7 +22,10 @@ void __init bcm47xx_workarounds(void) > > switch (board) { > case BCM47XX_BOARD_NETGEAR_WNR3500L: > - bcm47xx_workarounds_netgear_wnr3500l(); > + bcm47xx_workarounds_enable_usb_power(12); > + break; > + case BCM47XX_BOARD_NETGEAR_WNDR3400_V3: > + bcm47xx_workarounds_enable_usb_power(21); > break; > default: > /* No workaround(s) needed */ >