⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 feature.c

📁 linux-2.6.15.6
💻 C
📖 第 1 页 / 共 5 页
字号:
	if (pmac_mb.board_flags & PMAC_MB_MAY_SLEEP)		pmac_mb.board_flags |= PMAC_MB_CAN_SLEEP;	return 0;}static long generic_get_mb_info(struct device_node *node, long param, long value){	switch(param) {		case PMAC_MB_INFO_MODEL:			return pmac_mb.model_id;		case PMAC_MB_INFO_FLAGS:			return pmac_mb.board_flags;		case PMAC_MB_INFO_NAME:			/* hack hack hack... but should work */			*((const char **)value) = pmac_mb.model_name;			return 0;	}	return -EINVAL;}/* * Table definitions *//* Used on any machine */static struct feature_table_entry any_features[] = {	{ PMAC_FTR_GET_MB_INFO,		generic_get_mb_info },	{ PMAC_FTR_DEVICE_CAN_WAKE,	generic_dev_can_wake },	{ 0, NULL }};#ifndef CONFIG_POWER4/* OHare based motherboards. Currently, we only use these on the * 2400,3400 and 3500 series powerbooks. Some older desktops seem * to have issues with turning on/off those asic cells */static struct feature_table_entry ohare_features[] = {	{ PMAC_FTR_SCC_ENABLE,		ohare_htw_scc_enable },	{ PMAC_FTR_SWIM3_ENABLE,	ohare_floppy_enable },	{ PMAC_FTR_MESH_ENABLE,		ohare_mesh_enable },	{ PMAC_FTR_IDE_ENABLE,		ohare_ide_enable},	{ PMAC_FTR_IDE_RESET,		ohare_ide_reset},	{ PMAC_FTR_SLEEP_STATE,		ohare_sleep_state },	{ 0, NULL }};/* Heathrow desktop machines (Beige G3). * Separated as some features couldn't be properly tested * and the serial port control bits appear to confuse it. */static struct feature_table_entry heathrow_desktop_features[] = {	{ PMAC_FTR_SWIM3_ENABLE,	heathrow_floppy_enable },	{ PMAC_FTR_MESH_ENABLE,		heathrow_mesh_enable },	{ PMAC_FTR_IDE_ENABLE,		heathrow_ide_enable },	{ PMAC_FTR_IDE_RESET,		heathrow_ide_reset },	{ PMAC_FTR_BMAC_ENABLE,		heathrow_bmac_enable },	{ 0, NULL }};/* Heathrow based laptop, that is the Wallstreet and mainstreet * powerbooks. */static struct feature_table_entry heathrow_laptop_features[] = {	{ PMAC_FTR_SCC_ENABLE,		ohare_htw_scc_enable },	{ PMAC_FTR_MODEM_ENABLE,	heathrow_modem_enable },	{ PMAC_FTR_SWIM3_ENABLE,	heathrow_floppy_enable },	{ PMAC_FTR_MESH_ENABLE,		heathrow_mesh_enable },	{ PMAC_FTR_IDE_ENABLE,		heathrow_ide_enable },	{ PMAC_FTR_IDE_RESET,		heathrow_ide_reset },	{ PMAC_FTR_BMAC_ENABLE,		heathrow_bmac_enable },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	heathrow_sound_enable },	{ PMAC_FTR_SLEEP_STATE,		heathrow_sleep_state },	{ 0, NULL }};/* Paddington based machines * The lombard (101) powerbook, first iMac models, B&W G3 and Yikes G4. */static struct feature_table_entry paddington_features[] = {	{ PMAC_FTR_SCC_ENABLE,		ohare_htw_scc_enable },	{ PMAC_FTR_MODEM_ENABLE,	heathrow_modem_enable },	{ PMAC_FTR_SWIM3_ENABLE,	heathrow_floppy_enable },	{ PMAC_FTR_MESH_ENABLE,		heathrow_mesh_enable },	{ PMAC_FTR_IDE_ENABLE,		heathrow_ide_enable },	{ PMAC_FTR_IDE_RESET,		heathrow_ide_reset },	{ PMAC_FTR_BMAC_ENABLE,		heathrow_bmac_enable },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	heathrow_sound_enable },	{ PMAC_FTR_SLEEP_STATE,		heathrow_sleep_state },	{ 0, NULL }};/* Core99 & MacRISC 2 machines (all machines released since the * iBook (included), that is all AGP machines, except pangea * chipset. The pangea chipset is the "combo" UniNorth/KeyLargo * used on iBook2 & iMac "flow power". */static struct feature_table_entry core99_features[] = {	{ PMAC_FTR_SCC_ENABLE,		core99_scc_enable },	{ PMAC_FTR_MODEM_ENABLE,	core99_modem_enable },	{ PMAC_FTR_IDE_ENABLE,		core99_ide_enable },	{ PMAC_FTR_IDE_RESET,		core99_ide_reset },	{ PMAC_FTR_GMAC_ENABLE,		core99_gmac_enable },	{ PMAC_FTR_GMAC_PHY_RESET,	core99_gmac_phy_reset },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	core99_sound_chip_enable },	{ PMAC_FTR_AIRPORT_ENABLE,	core99_airport_enable },	{ PMAC_FTR_USB_ENABLE,		core99_usb_enable },	{ PMAC_FTR_1394_ENABLE,		core99_firewire_enable },	{ PMAC_FTR_1394_CABLE_POWER,	core99_firewire_cable_power },	{ PMAC_FTR_SLEEP_STATE,		core99_sleep_state },#ifdef CONFIG_SMP	{ PMAC_FTR_RESET_CPU,		core99_reset_cpu },#endif /* CONFIG_SMP */	{ PMAC_FTR_READ_GPIO,		core99_read_gpio },	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },	{ 0, NULL }};/* RackMac */static struct feature_table_entry rackmac_features[] = {	{ PMAC_FTR_SCC_ENABLE,		core99_scc_enable },	{ PMAC_FTR_IDE_ENABLE,		core99_ide_enable },	{ PMAC_FTR_IDE_RESET,		core99_ide_reset },	{ PMAC_FTR_GMAC_ENABLE,		core99_gmac_enable },	{ PMAC_FTR_GMAC_PHY_RESET,	core99_gmac_phy_reset },	{ PMAC_FTR_USB_ENABLE,		core99_usb_enable },	{ PMAC_FTR_1394_ENABLE,		core99_firewire_enable },	{ PMAC_FTR_1394_CABLE_POWER,	core99_firewire_cable_power },	{ PMAC_FTR_SLEEP_STATE,		core99_sleep_state },#ifdef CONFIG_SMP	{ PMAC_FTR_RESET_CPU,		core99_reset_cpu },#endif /* CONFIG_SMP */	{ PMAC_FTR_READ_GPIO,		core99_read_gpio },	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },	{ 0, NULL }};/* Pangea features */static struct feature_table_entry pangea_features[] = {	{ PMAC_FTR_SCC_ENABLE,		core99_scc_enable },	{ PMAC_FTR_MODEM_ENABLE,	pangea_modem_enable },	{ PMAC_FTR_IDE_ENABLE,		core99_ide_enable },	{ PMAC_FTR_IDE_RESET,		core99_ide_reset },	{ PMAC_FTR_GMAC_ENABLE,		core99_gmac_enable },	{ PMAC_FTR_GMAC_PHY_RESET,	core99_gmac_phy_reset },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	core99_sound_chip_enable },	{ PMAC_FTR_AIRPORT_ENABLE,	core99_airport_enable },	{ PMAC_FTR_USB_ENABLE,		core99_usb_enable },	{ PMAC_FTR_1394_ENABLE,		core99_firewire_enable },	{ PMAC_FTR_1394_CABLE_POWER,	core99_firewire_cable_power },	{ PMAC_FTR_SLEEP_STATE,		core99_sleep_state },	{ PMAC_FTR_READ_GPIO,		core99_read_gpio },	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },	{ 0, NULL }};/* Intrepid features */static struct feature_table_entry intrepid_features[] = {	{ PMAC_FTR_SCC_ENABLE,		core99_scc_enable },	{ PMAC_FTR_MODEM_ENABLE,	pangea_modem_enable },	{ PMAC_FTR_IDE_ENABLE,		core99_ide_enable },	{ PMAC_FTR_IDE_RESET,		core99_ide_reset },	{ PMAC_FTR_GMAC_ENABLE,		core99_gmac_enable },	{ PMAC_FTR_GMAC_PHY_RESET,	core99_gmac_phy_reset },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	core99_sound_chip_enable },	{ PMAC_FTR_AIRPORT_ENABLE,	core99_airport_enable },	{ PMAC_FTR_USB_ENABLE,		core99_usb_enable },	{ PMAC_FTR_1394_ENABLE,		core99_firewire_enable },	{ PMAC_FTR_1394_CABLE_POWER,	core99_firewire_cable_power },	{ PMAC_FTR_SLEEP_STATE,		core99_sleep_state },	{ PMAC_FTR_READ_GPIO,		core99_read_gpio },	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },	{ PMAC_FTR_AACK_DELAY_ENABLE,	intrepid_aack_delay_enable },	{ 0, NULL }};#else /* CONFIG_POWER4 *//* G5 features */static struct feature_table_entry g5_features[] = {	{ PMAC_FTR_GMAC_ENABLE,		g5_gmac_enable },	{ PMAC_FTR_1394_ENABLE,		g5_fw_enable },	{ PMAC_FTR_ENABLE_MPIC,		g5_mpic_enable },	{ PMAC_FTR_GMAC_PHY_RESET,	g5_eth_phy_reset },	{ PMAC_FTR_SOUND_CHIP_ENABLE,	g5_i2s_enable },#ifdef CONFIG_SMP	{ PMAC_FTR_RESET_CPU,		g5_reset_cpu },#endif /* CONFIG_SMP */	{ PMAC_FTR_READ_GPIO,		core99_read_gpio },	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },	{ 0, NULL }};#endif /* CONFIG_POWER4 */static struct pmac_mb_def pmac_mb_defs[] = {#ifndef CONFIG_POWER4	/*	 * Desktops	 */	{	"AAPL,8500",			"PowerMac 8500/8600",		PMAC_TYPE_PSURGE,		NULL,		0	},	{	"AAPL,9500",			"PowerMac 9500/9600",		PMAC_TYPE_PSURGE,		NULL,		0	},	{	"AAPL,7200",			"PowerMac 7200",		PMAC_TYPE_PSURGE,		NULL,		0	},	{	"AAPL,7300",			"PowerMac 7200/7300",		PMAC_TYPE_PSURGE,		NULL,		0	},	{	"AAPL,7500",			"PowerMac 7500",		PMAC_TYPE_PSURGE,		NULL,		0	},	{	"AAPL,ShinerESB",		"Apple Network Server",		PMAC_TYPE_ANS,			NULL,		0	},	{	"AAPL,e407",			"Alchemy",		PMAC_TYPE_ALCHEMY,		NULL,		0	},	{	"AAPL,e411",			"Gazelle",		PMAC_TYPE_GAZELLE,		NULL,		0	},	{	"AAPL,Gossamer",		"PowerMac G3 (Gossamer)",		PMAC_TYPE_GOSSAMER,		heathrow_desktop_features,		0	},	{	"AAPL,PowerMac G3",		"PowerMac G3 (Silk)",		PMAC_TYPE_SILK,			heathrow_desktop_features,		0	},	{	"PowerMac1,1",			"Blue&White G3",		PMAC_TYPE_YOSEMITE,		paddington_features,		0	},	{	"PowerMac1,2",			"PowerMac G4 PCI Graphics",		PMAC_TYPE_YIKES,		paddington_features,		0	},	{	"PowerMac2,1",			"iMac FireWire",		PMAC_TYPE_FW_IMAC,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_OLD_CORE99	},	{	"PowerMac2,2",			"iMac FireWire",		PMAC_TYPE_FW_IMAC,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_OLD_CORE99	},	{	"PowerMac3,1",			"PowerMac G4 AGP Graphics",		PMAC_TYPE_SAWTOOTH,		core99_features,		PMAC_MB_OLD_CORE99	},	{	"PowerMac3,2",			"PowerMac G4 AGP Graphics",		PMAC_TYPE_SAWTOOTH,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_OLD_CORE99	},	{	"PowerMac3,3",			"PowerMac G4 AGP Graphics",		PMAC_TYPE_SAWTOOTH,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_OLD_CORE99	},	{	"PowerMac3,4",			"PowerMac G4 Silver",		PMAC_TYPE_QUICKSILVER,		core99_features,		PMAC_MB_MAY_SLEEP	},	{	"PowerMac3,5",			"PowerMac G4 Silver",		PMAC_TYPE_QUICKSILVER,		core99_features,		PMAC_MB_MAY_SLEEP	},	{	"PowerMac3,6",			"PowerMac G4 Windtunnel",		PMAC_TYPE_WINDTUNNEL,		core99_features,		PMAC_MB_MAY_SLEEP,	},	{	"PowerMac4,1",			"iMac \"Flower Power\"",		PMAC_TYPE_PANGEA_IMAC,		pangea_features,		PMAC_MB_MAY_SLEEP	},	{	"PowerMac4,2",			"Flat panel iMac",		PMAC_TYPE_FLAT_PANEL_IMAC,	pangea_features,		PMAC_MB_CAN_SLEEP	},	{	"PowerMac4,4",			"eMac",		PMAC_TYPE_EMAC,			core99_features,		PMAC_MB_MAY_SLEEP	},	{	"PowerMac5,1",			"PowerMac G4 Cube",		PMAC_TYPE_CUBE,			core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_OLD_CORE99	},	{	"PowerMac6,1",			"Flat panel iMac",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP,	},	{	"PowerMac6,3",			"Flat panel iMac",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP,	},	{	"PowerMac6,4",			"eMac",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP,	},	{	"PowerMac10,1",			"Mac mini",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER,	},	{	"iMac,1",			"iMac (first generation)",		PMAC_TYPE_ORIG_IMAC,		paddington_features,		0	},	/*	 * Xserve's	 */	{	"RackMac1,1",			"XServe",		PMAC_TYPE_RACKMAC,		rackmac_features,		0,	},	{	"RackMac1,2",			"XServe rev. 2",		PMAC_TYPE_RACKMAC,		rackmac_features,		0,	},	/*	 * Laptops	 */	{	"AAPL,3400/2400",		"PowerBook 3400",		PMAC_TYPE_HOOPER,		ohare_features,		PMAC_MB_CAN_SLEEP | PMAC_MB_MOBILE	},	{	"AAPL,3500",			"PowerBook 3500",		PMAC_TYPE_KANGA,		ohare_features,		PMAC_MB_CAN_SLEEP | PMAC_MB_MOBILE	},	{	"AAPL,PowerBook1998",		"PowerBook Wallstreet",		PMAC_TYPE_WALLSTREET,		heathrow_laptop_features,		PMAC_MB_CAN_SLEEP | PMAC_MB_MOBILE	},	{	"PowerBook1,1",			"PowerBook 101 (Lombard)",		PMAC_TYPE_101_PBOOK,		paddington_features,		PMAC_MB_CAN_SLEEP | PMAC_MB_MOBILE	},	{	"PowerBook2,1",			"iBook (first generation)",		PMAC_TYPE_ORIG_IBOOK,		core99_features,		PMAC_MB_CAN_SLEEP | PMAC_MB_OLD_CORE99 | PMAC_MB_MOBILE	},	{	"PowerBook2,2",			"iBook FireWire",		PMAC_TYPE_FW_IBOOK,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER |		PMAC_MB_OLD_CORE99 | PMAC_MB_MOBILE	},	{	"PowerBook3,1",			"PowerBook Pismo",		PMAC_TYPE_PISMO,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER |		PMAC_MB_OLD_CORE99 | PMAC_MB_MOBILE	},	{	"PowerBook3,2",			"PowerBook Titanium",		PMAC_TYPE_TITANIUM,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook3,3",			"PowerBook Titanium II",		PMAC_TYPE_TITANIUM2,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook3,4",			"PowerBook Titanium III",		PMAC_TYPE_TITANIUM3,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook3,5",			"PowerBook Titanium IV",		PMAC_TYPE_TITANIUM4,		core99_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook4,1",			"iBook 2",		PMAC_TYPE_IBOOK2,		pangea_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook4,2",			"iBook 2",		PMAC_TYPE_IBOOK2,		pangea_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook4,3",			"iBook 2 rev. 2",		PMAC_TYPE_IBOOK2,		pangea_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE	},	{	"PowerBook5,1",			"PowerBook G4 17\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,2",			"PowerBook G4 15\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,3",			"PowerBook G4 17\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,4",			"PowerBook G4 15\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,5",			"PowerBook G4 17\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,6",			"PowerBook G4 15\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,7",			"PowerBook G4 17\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,8",			"PowerBook G4 15\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook5,9",			"PowerBook G4 17\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,1",			"PowerBook G4 12\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,2",			"PowerBook G4",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,3",			"iBook G4",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,4",			"PowerBook G4 12\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,5",			"iBook G4",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,7",			"iBook G4",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},	{	"PowerBook6,8",			"PowerBook G4 12\"",		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,		PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,	},#else /* CONFIG_POWER4 */	{	"PowerMac7,2",			"PowerMac G5",		PMAC_TYPE_POWERMAC_G5,		g5_features,		0,	},#ifdef CONFIG_PPC64	{	"PowerMac7,3",			"PowerMac G5",		PMAC_TYPE_POWERMAC_G5,		g5_features,		0,	},	{	"PowerMac8,1",			"iMac G5",		PMAC_TYPE_IMAC_G5,		g5_features,		0,	},	{	"PowerMac9,1",			"PowerMac G5",		PMAC_TYPE_POWERMAC_G5_U3L,	g5_features,		0,	},	{       "RackMac3,1",                   "XServe G5",		PMAC_TYPE_XSERVE_G5,		g5_features,		0,	},#endif /* CO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -