Lines Matching defs:hwif_s
851 typedef struct hwif_s { struct
852 struct hwif_s *next; /* for linked-list in ide_hwgroup_t */ argument
853 struct hwif_s *mate; /* other hwif from same PCI chip */ argument
854 struct hwgroup_s *hwgroup; /* actually (ide_hwgroup_t *) */
855 struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
856 struct gendisk *gd; /* gendisk structure */
858 char name[6]; /* name of interface, eg. "ide0" */
861 ide_ioreg_t io_ports[IDE_NR_PORTS];
862 sata_ioreg_t sata_scr[SATA_NR_PORTS];
863 sata_ioreg_t sata_misc[SATA_NR_PORTS];
865 hw_regs_t hw; /* Hardware info */
866 ide_drive_t drives[MAX_DRIVES]; /* drive info */
868 u8 major; /* our major number */
869 u8 index; /* 0 for ide0; 1 for ide1; ... */
870 u8 channel; /* for dual-port chips: 0=primary, 1=secondary */
871 u8 straight8; /* Alan's straight 8 check */
872 u8 bus_state; /* power state of the IDE bus */
874 u8 atapi_dma; /* host supports atapi_dma */
875 u8 ultra_mask;
876 u8 mwdma_mask;
877 u8 swdma_mask;
879 hwif_chipset_t chipset; /* sub-module for tuning.. */
881 struct pci_dev *pci_dev; /* for pci chipsets */
882 struct ide_pci_device_s *cds; /* chipset device struct */
884 ide_startstop_t (*rw_disk)(ide_drive_t *, struct request *, unsigned long);
890 int (*identify)(ide_drive_t *);
892 void (*tuneproc)(ide_drive_t *, u8);
894 int (*speedproc)(ide_drive_t *, u8);
896 void (*selectproc)(ide_drive_t *);
898 int (*reset_poll)(ide_drive_t *);
900 void (*pre_reset)(ide_drive_t *);
902 void (*resetproc)(ide_drive_t *);
904 void (*intrproc)(ide_drive_t *);
906 void (*maskproc)(ide_drive_t *, int);
908 int (*quirkproc)(ide_drive_t *);
910 int (*busproc)(ide_drive_t *, int);
920 void (*ata_input_data)(ide_drive_t *, void *, u32);
921 void (*ata_output_data)(ide_drive_t *, void *, u32);
923 void (*atapi_input_bytes)(ide_drive_t *, void *, u32);
924 void (*atapi_output_bytes)(ide_drive_t *, void *, u32);
930 int (*ide_dma_read)(ide_drive_t *drive);
931 int (*ide_dma_write)(ide_drive_t *drive);
932 int (*ide_dma_begin)(ide_drive_t *drive);
933 int (*ide_dma_end)(ide_drive_t *drive);
934 int (*ide_dma_check)(ide_drive_t *drive);
935 int (*ide_dma_on)(ide_drive_t *drive);
936 int (*ide_dma_off)(ide_drive_t *drive);
937 int (*ide_dma_off_quietly)(ide_drive_t *drive);
938 int (*ide_dma_test_irq)(ide_drive_t *drive);
939 int (*ide_dma_host_on)(ide_drive_t *drive);
940 int (*ide_dma_host_off)(ide_drive_t *drive);
941 int (*ide_dma_bad_drive)(ide_drive_t *drive);
942 int (*ide_dma_good_drive)(ide_drive_t *drive);
943 int (*ide_dma_count)(ide_drive_t *drive);
944 int (*ide_dma_verbose)(ide_drive_t *drive);
945 int (*ide_dma_retune)(ide_drive_t *drive);
946 int (*ide_dma_lostirq)(ide_drive_t *drive);
947 int (*ide_dma_timeout)(ide_drive_t *drive);
950 void (*OUTB)(u8 addr, unsigned long port);
951 void (*OUTBSYNC)(ide_drive_t *drive, u8 addr, unsigned long port);
952 void (*OUTW)(u16 addr, unsigned long port);
953 void (*OUTL)(u32 addr, unsigned long port);
954 void (*OUTSW)(unsigned long port, void *addr, u32 count);
955 void (*OUTSL)(unsigned long port, void *addr, u32 count);
957 u8 (*INB)(unsigned long port);
958 u16 (*INW)(unsigned long port);
959 u32 (*INL)(unsigned long port);
960 void (*INSW)(unsigned long port, void *addr, u32 count);
961 void (*INSL)(unsigned long port, void *addr, u32 count);
964 unsigned int *dmatable_cpu;
966 dma_addr_t dmatable_dma;
968 struct scatterlist *sg_table;
969 int sg_nents; /* Current number of entries in it */
970 int sg_dma_direction; /* dma transfer direction */
971 int sg_dma_active; /* is it in use */
973 int mmio; /* hosts iomio (0), mmio (1) or custom (2) select */
974 int rqsize; /* max sectors per request */
975 int addressing; /* hosts addressing */
976 int irq; /* our irq number */
977 int initializing; /* set while initializing self */
979 unsigned long dma_master; /* reference base addr dmabase */
980 unsigned long dma_base; /* base addr for dma ports */
981 unsigned long dma_command; /* dma command register */
982 unsigned long dma_vendor1; /* dma vendor 1 register */
983 unsigned long dma_status; /* dma status register */
984 unsigned long dma_vendor3; /* dma vendor 3 register */
985 unsigned long dma_prdtable; /* actual prd table address */
986 unsigned long dma_base2; /* extended base addr for dma ports */
988 unsigned dma_extra; /* extra addr for dma ports */
989 unsigned long config_data; /* for use by chipset-specific code */
990 unsigned long select_data; /* for use by chipset-specific code */
992 unsigned long last_time; /* time when previous rq was done */
996 unsigned noprobe : 1; /* don't probe for this interface */
997 unsigned present : 1; /* this interface exists */
998 unsigned hold : 1; /* this interface is always present */
999 unsigned serialized : 1; /* serialized all channel operation */
1000 unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */
1001 unsigned reset : 1; /* reset after probe */
1002 unsigned autodma : 1; /* auto-attempt using DMA at boot */
1003 unsigned udma_four : 1; /* 1=ATA-66 capable, 0=default */
1004 unsigned highmem : 1; /* can do full 32-bit dma */
1005 unsigned no_dsc : 1; /* 0 default, 1 dsc_overlap disabled */
1006 unsigned sata : 1; /* 0 PATA, 1 SATA */
1008 void *hwif_data; /* extra hwif data */