Unverified Commit 2c428871 authored by Thomas Bogendoerfer's avatar Thomas Bogendoerfer Committed by Paul Burton
Browse files

MIPS: PCI: Add detection of IOC3 on IO7, IO8, IO9 and Fuel



Add detection for IOC3 chips in IP35 machines.

Signed-off-by: default avatarThomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: default avatarPaul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
parent 1306cc0a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -598,5 +598,9 @@ struct ioc3_etxd {
#define	IOC3_SUBSYS_IP30_SYSBOARD	0xc304
#define	IOC3_SUBSYS_MENET		0xc305
#define	IOC3_SUBSYS_MENET4		0xc306
#define	IOC3_SUBSYS_IO7			0xc307
#define	IOC3_SUBSYS_IO8			0xc308
#define	IOC3_SUBSYS_IO9			0xc309
#define	IOC3_SUBSYS_IP34_SYSBOARD	0xc30A

#endif /* MIPS_SN_IOC3_H */
+24 −0
Original line number Diff line number Diff line
@@ -499,6 +499,26 @@ static void bridge_setup_menet(struct bridge_controller *bc)
	bc->ioc3_sid[3] = IOC3_SID(IOC3_SUBSYS_MENET4);
}

static void bridge_setup_io7(struct bridge_controller *bc)
{
	bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IO7);
}

static void bridge_setup_io8(struct bridge_controller *bc)
{
	bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IO8);
}

static void bridge_setup_io9(struct bridge_controller *bc)
{
	bc->ioc3_sid[1] = IOC3_SID(IOC3_SUBSYS_IO9);
}

static void bridge_setup_ip34_fuel_sysboard(struct bridge_controller *bc)
{
	bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IP34_SYSBOARD);
}

#define BRIDGE_BOARD_SETUP(_partno, _setup)	\
	{ .match = _partno, .setup = _setup }

@@ -516,6 +536,10 @@ static const struct {
	BRIDGE_BOARD_SETUP("030-0887-", bridge_setup_ip30_sysboard),
	BRIDGE_BOARD_SETUP("030-1467-", bridge_setup_ip30_sysboard),
	BRIDGE_BOARD_SETUP("030-0873-", bridge_setup_menet),
	BRIDGE_BOARD_SETUP("030-1557-", bridge_setup_io7),
	BRIDGE_BOARD_SETUP("030-1673-", bridge_setup_io8),
	BRIDGE_BOARD_SETUP("030-1771-", bridge_setup_io9),
	BRIDGE_BOARD_SETUP("030-1707-", bridge_setup_ip34_fuel_sysboard),
};

static void bridge_setup_board(struct bridge_controller *bc, char *partnum)