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

📄 ide-pci.c

📁 em85xx的大硬盘修正代码包
💻 C
📖 第 1 页 / 共 3 页
字号:
/* *  linux/drivers/ide/ide-pci.c		Version 1.05	June 9, 2000 * *  Copyright (c) 1998-2000  Andre Hedrick <andre@linux-ide.org> * *  Copyright (c) 1995-1998  Mark Lord *  May be copied or modified under the terms of the GNU General Public License *//* *  This module provides support for automatic detection and *  configuration of all PCI IDE interfaces present in a system.   */#include <linux/config.h>#include <linux/types.h>#include <linux/kernel.h>#include <linux/timer.h>#include <linux/mm.h>#include <linux/interrupt.h>#include <linux/pci.h>#include <linux/init.h>#include <linux/ide.h>#include <asm/io.h>#include <asm/irq.h>#define DEVID_PIIXa	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82371FB_0})#define DEVID_PIIXb	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82371FB_1})#define DEVID_MPIIX	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82371MX})#define DEVID_PIIX3	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82371SB_1})#define DEVID_PIIX4	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82371AB})#define DEVID_PIIX4E	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801AB_1})#define DEVID_PIIX4E2	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82443MX_1})#define DEVID_PIIX4U	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801AA_1})#define DEVID_PIIX4U2	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82372FB_1})#define DEVID_PIIX4NX	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82451NX})#define DEVID_PIIX4U3	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801BA_9})#define DEVID_PIIX4U4	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801BA_8})#define DEVID_PIIX4U5	((ide_pci_devid_t){PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801CA_10})#define DEVID_VIA_IDE	((ide_pci_devid_t){PCI_VENDOR_ID_VIA,     PCI_DEVICE_ID_VIA_82C561})#define DEVID_MR_IDE	((ide_pci_devid_t){PCI_VENDOR_ID_VIA,     PCI_DEVICE_ID_VIA_82C576_1})#define DEVID_VP_IDE	((ide_pci_devid_t){PCI_VENDOR_ID_VIA,     PCI_DEVICE_ID_VIA_82C586_1})#define DEVID_PDC20246	((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246})#define DEVID_PDC20262	((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262})#define DEVID_PDC20265	((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20265})#define DEVID_PDC20267	((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20267})#define DEVID_PDC20268  ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20268})#define DEVID_PDC20268R ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20268R})#define DEVID_RZ1000	((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH,  PCI_DEVICE_ID_PCTECH_RZ1000})#define DEVID_RZ1001	((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH,  PCI_DEVICE_ID_PCTECH_RZ1001})#define DEVID_SAMURAI	((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH,  PCI_DEVICE_ID_PCTECH_SAMURAI_IDE})#define DEVID_CMD640	((ide_pci_devid_t){PCI_VENDOR_ID_CMD,     PCI_DEVICE_ID_CMD_640})#define DEVID_CMD643	((ide_pci_devid_t){PCI_VENDOR_ID_CMD,     PCI_DEVICE_ID_CMD_643})#define DEVID_CMD646	((ide_pci_devid_t){PCI_VENDOR_ID_CMD,     PCI_DEVICE_ID_CMD_646})#define DEVID_CMD648	((ide_pci_devid_t){PCI_VENDOR_ID_CMD,     PCI_DEVICE_ID_CMD_648})#define DEVID_CMD649	((ide_pci_devid_t){PCI_VENDOR_ID_CMD,     PCI_DEVICE_ID_CMD_649})#define DEVID_SIS5513	((ide_pci_devid_t){PCI_VENDOR_ID_SI,      PCI_DEVICE_ID_SI_5513})#define DEVID_OPTI621	((ide_pci_devid_t){PCI_VENDOR_ID_OPTI,    PCI_DEVICE_ID_OPTI_82C621})#define DEVID_OPTI621V	((ide_pci_devid_t){PCI_VENDOR_ID_OPTI,    PCI_DEVICE_ID_OPTI_82C558})#define DEVID_OPTI621X	((ide_pci_devid_t){PCI_VENDOR_ID_OPTI,    PCI_DEVICE_ID_OPTI_82C825})#define DEVID_TRM290	((ide_pci_devid_t){PCI_VENDOR_ID_TEKRAM,  PCI_DEVICE_ID_TEKRAM_DC290})#define DEVID_NS87410	((ide_pci_devid_t){PCI_VENDOR_ID_NS,      PCI_DEVICE_ID_NS_87410})#define DEVID_NS87415	((ide_pci_devid_t){PCI_VENDOR_ID_NS,      PCI_DEVICE_ID_NS_87415})#define DEVID_HT6565	((ide_pci_devid_t){PCI_VENDOR_ID_HOLTEK,  PCI_DEVICE_ID_HOLTEK_6565})#define DEVID_AEC6210	((ide_pci_devid_t){PCI_VENDOR_ID_ARTOP,   PCI_DEVICE_ID_ARTOP_ATP850UF})#define DEVID_AEC6260	((ide_pci_devid_t){PCI_VENDOR_ID_ARTOP,   PCI_DEVICE_ID_ARTOP_ATP860})#define DEVID_AEC6260R	((ide_pci_devid_t){PCI_VENDOR_ID_ARTOP,   PCI_DEVICE_ID_ARTOP_ATP860R})#define DEVID_W82C105	((ide_pci_devid_t){PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_82C105})#define DEVID_UM8673F	((ide_pci_devid_t){PCI_VENDOR_ID_UMC,     PCI_DEVICE_ID_UMC_UM8673F})#define DEVID_UM8886A	((ide_pci_devid_t){PCI_VENDOR_ID_UMC,     PCI_DEVICE_ID_UMC_UM8886A})#define DEVID_UM8886BF	((ide_pci_devid_t){PCI_VENDOR_ID_UMC,     PCI_DEVICE_ID_UMC_UM8886BF})#define DEVID_HPT34X	((ide_pci_devid_t){PCI_VENDOR_ID_TTI,     PCI_DEVICE_ID_TTI_HPT343})#define DEVID_HPT366	((ide_pci_devid_t){PCI_VENDOR_ID_TTI,     PCI_DEVICE_ID_TTI_HPT366})#define DEVID_ALI15X3	((ide_pci_devid_t){PCI_VENDOR_ID_AL,      PCI_DEVICE_ID_AL_M5229})#define DEVID_CY82C693	((ide_pci_devid_t){PCI_VENDOR_ID_CONTAQ,  PCI_DEVICE_ID_CONTAQ_82C693})#define DEVID_HINT	((ide_pci_devid_t){0x3388,                0x8013})#define DEVID_CS5530	((ide_pci_devid_t){PCI_VENDOR_ID_CYRIX,   PCI_DEVICE_ID_CYRIX_5530_IDE})#define DEVID_AMD7401	((ide_pci_devid_t){PCI_VENDOR_ID_AMD,     PCI_DEVICE_ID_AMD_COBRA_7401})#define DEVID_AMD7409	((ide_pci_devid_t){PCI_VENDOR_ID_AMD,     PCI_DEVICE_ID_AMD_VIPER_7409})#define DEVID_AMD7411	((ide_pci_devid_t){PCI_VENDOR_ID_AMD,     PCI_DEVICE_ID_AMD_VIPER_7411})#define DEVID_PDCADMA	((ide_pci_devid_t){PCI_VENDOR_ID_PDC,     PCI_DEVICE_ID_PDC_1841})#define DEVID_SLC90E66	((ide_pci_devid_t){PCI_VENDOR_ID_EFAR,    PCI_DEVICE_ID_EFAR_SLC90E66_1})#define DEVID_OSB4	((ide_pci_devid_t){PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE})#define DEVID_CSB5	((ide_pci_devid_t){PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE})#define DEVID_ITE8172G	((ide_pci_devid_t){PCI_VENDOR_ID_ITE,     PCI_DEVICE_ID_ITE_IT8172G})#define	IDE_IGNORE	((void *)-1)#ifdef CONFIG_BLK_DEV_AEC62XXextern unsigned int pci_init_aec62xx(struct pci_dev *, const char *);extern unsigned int ata66_aec62xx(ide_hwif_t *);extern void ide_init_aec62xx(ide_hwif_t *);extern void ide_dmacapable_aec62xx(ide_hwif_t *, unsigned long);#define PCI_AEC62XX	&pci_init_aec62xx#define ATA66_AEC62XX	&ata66_aec62xx#define INIT_AEC62XX	&ide_init_aec62xx#define DMA_AEC62XX	&ide_dmacapable_aec62xx#else#define PCI_AEC62XX	NULL#define ATA66_AEC62XX	NULL#define INIT_AEC62XX	NULL#define DMA_AEC62XX	NULL#endif#ifdef CONFIG_BLK_DEV_ALI15X3extern unsigned int pci_init_ali15x3(struct pci_dev *, const char *);extern unsigned int ata66_ali15x3(ide_hwif_t *);extern void ide_init_ali15x3(ide_hwif_t *);extern void ide_dmacapable_ali15x3(ide_hwif_t *, unsigned long);#define PCI_ALI15X3	&pci_init_ali15x3#define ATA66_ALI15X3	&ata66_ali15x3#define INIT_ALI15X3	&ide_init_ali15x3#define DMA_ALI15X3	&ide_dmacapable_ali15x3#else#define PCI_ALI15X3	NULL#define ATA66_ALI15X3	NULL#define INIT_ALI15X3	NULL#define DMA_ALI15X3	NULL#endif#ifdef CONFIG_BLK_DEV_AMD74XXextern unsigned int pci_init_amd74xx(struct pci_dev *, const char *);extern unsigned int ata66_amd74xx(ide_hwif_t *);extern void ide_init_amd74xx(ide_hwif_t *);extern void ide_dmacapable_amd74xx(ide_hwif_t *, unsigned long);#define PCI_AMD74XX	&pci_init_amd74xx#define ATA66_AMD74XX	&ata66_amd74xx#define INIT_AMD74XX	&ide_init_amd74xx#define DMA_AMD74XX	&ide_dmacapable_amd74xx#else#define PCI_AMD74XX	NULL#define ATA66_AMD74XX	NULL#define INIT_AMD74XX	NULL#define DMA_AMD74XX	NULL#endif#ifdef CONFIG_BLK_DEV_CMD64Xextern unsigned int pci_init_cmd64x(struct pci_dev *, const char *);extern unsigned int ata66_cmd64x(ide_hwif_t *);extern void ide_init_cmd64x(ide_hwif_t *);extern void ide_dmacapable_cmd64x(ide_hwif_t *, unsigned long);#define PCI_CMD64X	&pci_init_cmd64x#define ATA66_CMD64X	&ata66_cmd64x#define INIT_CMD64X	&ide_init_cmd64x#else#define PCI_CMD64X	NULL#define ATA66_CMD64X	NULL#ifdef __sparc_v9__#define INIT_CMD64X	IDE_IGNORE#else#define INIT_CMD64X	NULL#endif#endif#ifdef CONFIG_BLK_DEV_CY82C693extern unsigned int pci_init_cy82c693(struct pci_dev *, const char *);extern void ide_init_cy82c693(ide_hwif_t *);#define PCI_CY82C693	&pci_init_cy82c693#define INIT_CY82C693	&ide_init_cy82c693#else#define PCI_CY82C693	NULL#define INIT_CY82C693	NULL#endif#ifdef CONFIG_BLK_DEV_CS5530extern unsigned int pci_init_cs5530(struct pci_dev *, const char *);extern void ide_init_cs5530(ide_hwif_t *);#define PCI_CS5530	&pci_init_cs5530#define INIT_CS5530	&ide_init_cs5530#else#define PCI_CS5530	NULL#define INIT_CS5530	NULL#endif#ifdef CONFIG_BLK_DEV_HPT34Xextern unsigned int pci_init_hpt34x(struct pci_dev *, const char *);extern void ide_init_hpt34x(ide_hwif_t *);#define PCI_HPT34X	&pci_init_hpt34x#define INIT_HPT34X	&ide_init_hpt34x#else#define PCI_HPT34X	NULL#define INIT_HPT34X	IDE_IGNORE#endif#ifdef CONFIG_BLK_DEV_HPT366extern byte hpt363_shared_irq;extern byte hpt363_shared_pin;extern unsigned int pci_init_hpt366(struct pci_dev *, const char *);extern unsigned int ata66_hpt366(ide_hwif_t *);extern void ide_init_hpt366(ide_hwif_t *);extern void ide_dmacapable_hpt366(ide_hwif_t *, unsigned long);#define PCI_HPT366	&pci_init_hpt366#define ATA66_HPT366	&ata66_hpt366#define INIT_HPT366	&ide_init_hpt366#define DMA_HPT366	&ide_dmacapable_hpt366#elsestatic byte hpt363_shared_irq;static byte hpt363_shared_pin;#define PCI_HPT366	NULL#define ATA66_HPT366	NULL#define INIT_HPT366	NULL#define DMA_HPT366	NULL#endif#ifdef CONFIG_BLK_DEV_NS87415extern void ide_init_ns87415(ide_hwif_t *);#define INIT_NS87415	&ide_init_ns87415#else#define INIT_NS87415	IDE_IGNORE#endif#ifdef CONFIG_BLK_DEV_OPTI621extern void ide_init_opti621(ide_hwif_t *);#define INIT_OPTI621	&ide_init_opti621#else#define INIT_OPTI621	NULL#endif#ifdef CONFIG_BLK_DEV_PDC_ADMAextern unsigned int pci_init_pdcadma(struct pci_dev *, const char *);extern unsigned int ata66_pdcadma(ide_hwif_t *);extern void ide_init_pdcadma(ide_hwif_t *);extern void ide_dmacapable_pdcadma(ide_hwif_t *, unsigned long);#define PCI_PDCADMA	&pci_init_pdcadma#define ATA66_PDCADMA	&ata66_pdcadma#define INIT_PDCADMA	&ide_init_pdcadma#define DMA_PDCADMA	&ide_dmacapable_pdcadma#else#define PCI_PDCADMA	IDE_IGNORE#define ATA66_PDCADMA	IDE_IGNORE#define INIT_PDCADMA	IDE_IGNORE#define DMA_PDCADMA	IDE_IGNORE#endif#ifdef CONFIG_BLK_DEV_PDC202XXextern unsigned int pci_init_pdc202xx(struct pci_dev *, const char *);extern unsigned int ata66_pdc202xx(ide_hwif_t *);extern void ide_init_pdc202xx(ide_hwif_t *);#define PCI_PDC202XX	&pci_init_pdc202xx#define ATA66_PDC202XX	&ata66_pdc202xx#define INIT_PDC202XX	&ide_init_pdc202xx#else#define PCI_PDC202XX	NULL#define ATA66_PDC202XX	NULL#define INIT_PDC202XX	NULL#endif#ifdef CONFIG_BLK_DEV_PIIXextern unsigned int pci_init_piix(struct pci_dev *, const char *);extern unsigned int ata66_piix(ide_hwif_t *);extern void ide_init_piix(ide_hwif_t *);#define PCI_PIIX	&pci_init_piix#define ATA66_PIIX	&ata66_piix#define INIT_PIIX	&ide_init_piix#else#define PCI_PIIX	NULL#define ATA66_PIIX	NULL#define INIT_PIIX	NULL#endif#ifdef CONFIG_BLK_DEV_IT8172extern unsigned int pci_init_it8172(struct pci_dev *, const char *);extern unsigned int ata66_it8172(ide_hwif_t *);extern void ide_init_it8172(ide_hwif_t *);#define PCI_IT8172	&pci_init_it8172#define INIT_IT8172	&ide_init_it8172#else#define PCI_IT8172	NULL#define ATA66_IT8172	NULL#define INIT_IT8172	NULL#endif#ifdef CONFIG_BLK_DEV_RZ1000extern void ide_init_rz1000(ide_hwif_t *);#define INIT_RZ1000	&ide_init_rz1000#else#define INIT_RZ1000	IDE_IGNORE#endif#define INIT_SAMURAI	NULL#ifdef CONFIG_BLK_DEV_SVWKSextern unsigned int pci_init_svwks(struct pci_dev *, const char *);extern unsigned int ata66_svwks(ide_hwif_t *);extern void ide_init_svwks(ide_hwif_t *);#define PCI_SVWKS	&pci_init_svwks#define ATA66_SVWKS	&ata66_svwks#define INIT_SVWKS	&ide_init_svwks#else#define PCI_SVWKS	NULL#define ATA66_SVWKS	NULL#define INIT_SVWKS	NULL#endif#ifdef CONFIG_BLK_DEV_SIS5513extern unsigned int pci_init_sis5513(struct pci_dev *, const char *);extern unsigned int ata66_sis5513(ide_hwif_t *);extern void ide_init_sis5513(ide_hwif_t *);#define PCI_SIS5513	&pci_init_sis5513#define ATA66_SIS5513	&ata66_sis5513#define INIT_SIS5513	&ide_init_sis5513#else#define PCI_SIS5513	NULL#define ATA66_SIS5513	NULL#define INIT_SIS5513	NULL#endif#ifdef CONFIG_BLK_DEV_SLC90E66extern unsigned int pci_init_slc90e66(struct pci_dev *, const char *);

⌨️ 快捷键说明

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