Example #1
0
static struct platform_t __init *platform_detect(void)
{
	enum bcm47xx_board board;
	const char *board_name;


	board = bcm47xx_board_get();
	board_name = bcm47xx_board_get_name();

	switch(board) {
	case BCM47XX_BOARD_BUFFALO_WBR2_G54:
		return &platforms[WBR2_G54];
	case BCM47XX_BOARD_BUFFALO_WLA2_G54L:
		return &platforms[WLA2_G54L];
	case BCM47XX_BOARD_LINKSYS_WRT54G:
		return &platforms[WRT54G];
	case BCM47XX_BOARD_NETGEAR_WNDR3700V3:
		return &platforms[WNDR3700V3];
	case BCM47XX_BOARD_UNKNOWN:
	case BCM47XX_BOARD_NO:
		printk(MODULE_NAME ": unknown board found, try legacy detect\n");
		printk(MODULE_NAME ": please open a ticket at https://dev.openwrt.org and attach the complete nvram\n");
		return platform_detect_legacy();
	default:
		printk(MODULE_NAME ": board was detected as \"%s\", and kernel should handle it\n", board_name);
		return NULL;
	}
}
Example #2
0
void __init bcm47xx_workarounds(void)
{
	enum bcm47xx_board board = bcm47xx_board_get();

	switch (board) {
	case BCM47XX_BOARD_NETGEAR_WNR3500L:
		bcm47xx_workarounds_enable_usb_power(12);
		break;
	case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
	case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
		bcm47xx_workarounds_enable_usb_power(21);
		break;
	default:
		/* No workaround(s) needed */
		break;
	}
}