-#define DISPLAY_ATIIXP_TIMINGS
-
-#if defined(DISPLAY_ATIIXP_TIMINGS) && defined(CONFIG_PROC_FS)
-
-#include <linux/stat.h>
-#include <linux/proc_fs.h>
-
-static u8 atiixp_proc;
-static struct pci_dev *bmide_dev;
-
-/**
- * atiixp_get_info - fill in /proc for ATIIXP IDE
- * @buffer: buffer to fill
- * @addr: address of user start in buffer
- * @offset: offset into 'file'
- * @count: buffer count
- *
- * Output summary data on the tuning.
- */
-
-static int atiixp_get_info(char *buffer, char **addr, off_t offset, int count)
-{
- char *p = buffer;
- struct pci_dev *dev = bmide_dev;
- unsigned long bibma = pci_resource_start(dev, 4);
- u32 mdma_timing = 0;
- u16 udma_mode = 0, pio_mode = 0;
- u8 c0, c1, udma_control = 0;
-
- p += sprintf(p, "\n ATI ");
- p += sprintf(p, "ATIIXP Ultra100 IDE Chipset.\n");
-
- pci_read_config_byte(dev, ATIIXP_IDE_UDMA_CONTROL, &udma_control);
- pci_read_config_word(dev, ATIIXP_IDE_UDMA_MODE, &udma_mode);
- pci_read_config_word(dev, ATIIXP_IDE_PIO_MODE, &pio_mode);
- pci_read_config_dword(dev, ATIIXP_IDE_MDMA_TIMING, &mdma_timing);
-
- /*
- * at that point bibma+0x2 et bibma+0xa are byte registers
- * to investigate:
- */
- c0 = inb(bibma + 0x02);
- c1 = inb(bibma + 0x0a);
-
- p += sprintf(p, "--------------- Primary Channel "
- "---------------- Secondary Channel "
- "-------------\n");
- p += sprintf(p, " %sabled "
- " %sabled\n",
- (c0 & 0x80) ? "dis" : " en",
- (c1 & 0x80) ? "dis" : " en");
- p += sprintf(p, "--------------- drive0 --------- drive1 "
- "-------- drive0 ---------- drive1 ------\n");
- p += sprintf(p, "DMA enabled: %s %s "
- " %s %s\n",
- (c0 & 0x20) ? "yes" : "no ",
- (c0 & 0x40) ? "yes" : "no ",
- (c1 & 0x20) ? "yes" : "no ",
- (c1 & 0x40) ? "yes" : "no " );
- p += sprintf(p, "UDMA enabled: %s %s "
- " %s %s\n",
- (udma_control & 0x01) ? "yes" : "no ",
- (udma_control & 0x02) ? "yes" : "no ",
- (udma_control & 0x04) ? "yes" : "no ",
- (udma_control & 0x08) ? "yes" : "no " );
- p += sprintf(p, "UDMA mode: %c %c "
- " %c %c\n",
- (udma_control & 0x01) ?
- ((udma_mode & 0x07) + 48) : 'X',
- (udma_control & 0x02) ?
- (((udma_mode >> 4) & 0x07) + 48) : 'X',
- (udma_control & 0x04) ?
- (((udma_mode >> 8) & 0x07) + 48) : 'X',
- (udma_control & 0x08) ?
- (((udma_mode >> 12) & 0x07) + 48) : 'X');
- p += sprintf(p, "MDMA mode: %c %c "
- " %c %c\n",
- (save_mdma_mode[0] && (c0 & 0x20)) ?
- ((save_mdma_mode[0] & 0xf) + 48) : 'X',
- (save_mdma_mode[1] && (c0 & 0x40)) ?
- ((save_mdma_mode[1] & 0xf) + 48) : 'X',
- (save_mdma_mode[2] && (c1 & 0x20)) ?
- ((save_mdma_mode[2] & 0xf) + 48) : 'X',
- (save_mdma_mode[3] && (c1 & 0x40)) ?
- ((save_mdma_mode[3] & 0xf) + 48) : 'X');
- p += sprintf(p, "PIO mode: %c %c "
- " %c %c\n",
- (c0 & 0x20) ? 'X' : ((pio_mode & 0x07) + 48),
- (c0 & 0x40) ? 'X' : (((pio_mode >> 4) & 0x07) + 48),
- (c1 & 0x20) ? 'X' : (((pio_mode >> 8) & 0x07) + 48),
- (c1 & 0x40) ? 'X' : (((pio_mode >> 12) & 0x07) + 48));
-
- return p - buffer; /* => must be less than 4k! */
-}
-#endif /* defined(DISPLAY_ATIIXP_TIMINGS) && defined(CONFIG_PROC_FS) */
-