forked from Minki/linux
amd74xx: remove /proc/ide/amd74xx
This belongs to user-space (and only if really needed). text data bss dec hex filename 6723 2000 28 8751 222f drivers/ide/pci/amd74xx.o.before 3833 2000 16 5849 16d9 drivers/ide/pci/amd74xx.o.after Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
8fcb2ea822
commit
b02fcae007
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Version 2.23
|
* Version 2.24
|
||||||
*
|
*
|
||||||
* AMD 755/756/766/8111 and nVidia nForce/2/2s/3/3s/CK804/MCP04
|
* AMD 755/756/766/8111 and nVidia nForce/2/2s/3/3s/CK804/MCP04
|
||||||
* IDE driver for Linux.
|
* IDE driver for Linux.
|
||||||
@ -28,9 +28,6 @@
|
|||||||
|
|
||||||
#include "ide-timing.h"
|
#include "ide-timing.h"
|
||||||
|
|
||||||
#define DISPLAY_AMD_TIMINGS
|
|
||||||
|
|
||||||
#define AMD_IDE_ENABLE (0x00 + amd_config->base)
|
|
||||||
#define AMD_IDE_CONFIG (0x01 + amd_config->base)
|
#define AMD_IDE_CONFIG (0x01 + amd_config->base)
|
||||||
#define AMD_CABLE_DETECT (0x02 + amd_config->base)
|
#define AMD_CABLE_DETECT (0x02 + amd_config->base)
|
||||||
#define AMD_DRIVE_TIMING (0x08 + amd_config->base)
|
#define AMD_DRIVE_TIMING (0x08 + amd_config->base)
|
||||||
@ -87,118 +84,6 @@ static unsigned int amd_clock;
|
|||||||
static char *amd_dma[] = { "16", "25", "33", "44", "66", "100", "133" };
|
static char *amd_dma[] = { "16", "25", "33", "44", "66", "100", "133" };
|
||||||
static unsigned char amd_cyc2udma[] = { 6, 6, 5, 4, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 7 };
|
static unsigned char amd_cyc2udma[] = { 6, 6, 5, 4, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 7 };
|
||||||
|
|
||||||
/*
|
|
||||||
* AMD /proc entry.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef CONFIG_IDE_PROC_FS
|
|
||||||
|
|
||||||
#include <linux/stat.h>
|
|
||||||
#include <linux/proc_fs.h>
|
|
||||||
|
|
||||||
static u8 amd74xx_proc;
|
|
||||||
|
|
||||||
static unsigned char amd_udma2cyc[] = { 4, 6, 8, 10, 3, 2, 1, 15 };
|
|
||||||
static unsigned long amd_base;
|
|
||||||
static struct pci_dev *bmide_dev;
|
|
||||||
extern int (*amd74xx_display_info)(char *, char **, off_t, int); /* ide-proc.c */
|
|
||||||
|
|
||||||
#define amd_print(format, arg...) p += sprintf(p, format "\n" , ## arg)
|
|
||||||
#define amd_print_drive(name, format, arg...)\
|
|
||||||
p += sprintf(p, name); for (i = 0; i < 4; i++) p += sprintf(p, format, ## arg); p += sprintf(p, "\n");
|
|
||||||
|
|
||||||
static int amd74xx_get_info(char *buffer, char **addr, off_t offset, int count)
|
|
||||||
{
|
|
||||||
int speed[4], cycle[4], setup[4], active[4], recover[4], den[4],
|
|
||||||
uen[4], udma[4], active8b[4], recover8b[4];
|
|
||||||
struct pci_dev *dev = bmide_dev;
|
|
||||||
unsigned int v, u, i;
|
|
||||||
unsigned short c, w;
|
|
||||||
unsigned char t;
|
|
||||||
int len;
|
|
||||||
char *p = buffer;
|
|
||||||
|
|
||||||
amd_print("----------AMD BusMastering IDE Configuration----------------");
|
|
||||||
|
|
||||||
amd_print("Driver Version: 2.13");
|
|
||||||
amd_print("South Bridge: %s", pci_name(bmide_dev));
|
|
||||||
|
|
||||||
amd_print("Revision: IDE %#x", dev->revision);
|
|
||||||
amd_print("Highest DMA rate: UDMA%s", amd_dma[fls(amd_config->udma_mask) - 1]);
|
|
||||||
|
|
||||||
amd_print("BM-DMA base: %#lx", amd_base);
|
|
||||||
amd_print("PCI clock: %d.%dMHz", amd_clock / 1000, amd_clock / 100 % 10);
|
|
||||||
|
|
||||||
amd_print("-----------------------Primary IDE-------Secondary IDE------");
|
|
||||||
|
|
||||||
pci_read_config_byte(dev, AMD_IDE_CONFIG, &t);
|
|
||||||
amd_print("Prefetch Buffer: %10s%20s", (t & 0x80) ? "yes" : "no", (t & 0x20) ? "yes" : "no");
|
|
||||||
amd_print("Post Write Buffer: %10s%20s", (t & 0x40) ? "yes" : "no", (t & 0x10) ? "yes" : "no");
|
|
||||||
|
|
||||||
pci_read_config_byte(dev, AMD_IDE_ENABLE, &t);
|
|
||||||
amd_print("Enabled: %10s%20s", (t & 0x02) ? "yes" : "no", (t & 0x01) ? "yes" : "no");
|
|
||||||
|
|
||||||
c = inb(amd_base + 0x02) | (inb(amd_base + 0x0a) << 8);
|
|
||||||
amd_print("Simplex only: %10s%20s", (c & 0x80) ? "yes" : "no", (c & 0x8000) ? "yes" : "no");
|
|
||||||
|
|
||||||
amd_print("Cable Type: %10s%20s", (amd_80w & 1) ? "80w" : "40w", (amd_80w & 2) ? "80w" : "40w");
|
|
||||||
|
|
||||||
if (!amd_clock)
|
|
||||||
return p - buffer;
|
|
||||||
|
|
||||||
amd_print("-------------------drive0----drive1----drive2----drive3-----");
|
|
||||||
|
|
||||||
pci_read_config_byte(dev, AMD_ADDRESS_SETUP, &t);
|
|
||||||
pci_read_config_dword(dev, AMD_DRIVE_TIMING, &v);
|
|
||||||
pci_read_config_word(dev, AMD_8BIT_TIMING, &w);
|
|
||||||
pci_read_config_dword(dev, AMD_UDMA_TIMING, &u);
|
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
|
||||||
setup[i] = ((t >> ((3 - i) << 1)) & 0x3) + 1;
|
|
||||||
recover8b[i] = ((w >> ((1 - (i >> 1)) << 3)) & 0xf) + 1;
|
|
||||||
active8b[i] = ((w >> (((1 - (i >> 1)) << 3) + 4)) & 0xf) + 1;
|
|
||||||
active[i] = ((v >> (((3 - i) << 3) + 4)) & 0xf) + 1;
|
|
||||||
recover[i] = ((v >> ((3 - i) << 3)) & 0xf) + 1;
|
|
||||||
|
|
||||||
udma[i] = amd_udma2cyc[((u >> ((3 - i) << 3)) & 0x7)];
|
|
||||||
uen[i] = ((u >> ((3 - i) << 3)) & 0x40) ? 1 : 0;
|
|
||||||
den[i] = (c & ((i & 1) ? 0x40 : 0x20) << ((i & 2) << 2));
|
|
||||||
|
|
||||||
if (den[i] && uen[i] && udma[i] == 1) {
|
|
||||||
speed[i] = amd_clock * 3;
|
|
||||||
cycle[i] = 666666 / amd_clock;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (den[i] && uen[i] && udma[i] == 15) {
|
|
||||||
speed[i] = amd_clock * 4;
|
|
||||||
cycle[i] = 500000 / amd_clock;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
speed[i] = 4 * amd_clock / ((den[i] && uen[i]) ? udma[i] : (active[i] + recover[i]) * 2);
|
|
||||||
cycle[i] = 1000000 * ((den[i] && uen[i]) ? udma[i] : (active[i] + recover[i]) * 2) / amd_clock / 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
amd_print_drive("Transfer Mode: ", "%10s", den[i] ? (uen[i] ? "UDMA" : "DMA") : "PIO");
|
|
||||||
|
|
||||||
amd_print_drive("Address Setup: ", "%8dns", 1000000 * setup[i] / amd_clock);
|
|
||||||
amd_print_drive("Cmd Active: ", "%8dns", 1000000 * active8b[i] / amd_clock);
|
|
||||||
amd_print_drive("Cmd Recovery: ", "%8dns", 1000000 * recover8b[i] / amd_clock);
|
|
||||||
amd_print_drive("Data Active: ", "%8dns", 1000000 * active[i] / amd_clock);
|
|
||||||
amd_print_drive("Data Recovery: ", "%8dns", 1000000 * recover[i] / amd_clock);
|
|
||||||
amd_print_drive("Cycle Time: ", "%8dns", cycle[i]);
|
|
||||||
amd_print_drive("Transfer Rate: ", "%4d.%dMB/s", speed[i] / 1000, speed[i] / 100 % 10);
|
|
||||||
|
|
||||||
/* hoping p - buffer is less than 4K... */
|
|
||||||
len = (p - buffer) - offset;
|
|
||||||
*addr = buffer + offset;
|
|
||||||
|
|
||||||
return len > count ? count : len;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* amd_set_speed() writes timing values to the chipset registers
|
* amd_set_speed() writes timing values to the chipset registers
|
||||||
*/
|
*/
|
||||||
@ -353,19 +238,6 @@ static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const ch
|
|||||||
amd_chipset->name, pci_name(dev), dev->revision,
|
amd_chipset->name, pci_name(dev), dev->revision,
|
||||||
amd_dma[fls(amd_config->udma_mask) - 1]);
|
amd_dma[fls(amd_config->udma_mask) - 1]);
|
||||||
|
|
||||||
/*
|
|
||||||
* Register /proc/ide/amd74xx entry
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(DISPLAY_AMD_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
|
||||||
if (!amd74xx_proc) {
|
|
||||||
amd_base = pci_resource_start(dev, 4);
|
|
||||||
bmide_dev = dev;
|
|
||||||
ide_pci_create_host_proc("amd74xx", amd74xx_get_info);
|
|
||||||
amd74xx_proc = 1;
|
|
||||||
}
|
|
||||||
#endif /* DISPLAY_AMD_TIMINGS && CONFIG_IDE_PROC_FS */
|
|
||||||
|
|
||||||
return dev->irq;
|
return dev->irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user