aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/eata_pio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/eata_pio.c')
-rw-r--r--drivers/scsi/eata_pio.c56
1 files changed, 10 insertions, 46 deletions
diff --git a/drivers/scsi/eata_pio.c b/drivers/scsi/eata_pio.c
index d5f8362335d3..356def44ce58 100644
--- a/drivers/scsi/eata_pio.c
+++ b/drivers/scsi/eata_pio.c
@@ -92,58 +92,22 @@ static unsigned long queue_counter;
92 92
93static struct scsi_host_template driver_template; 93static struct scsi_host_template driver_template;
94 94
95/* 95static int eata_pio_show_info(struct seq_file *m, struct Scsi_Host *shost)
96 * eata_proc_info
97 * inout : decides on the direction of the dataflow and the meaning of the
98 * variables
99 * buffer: If inout==FALSE data is being written to it else read from it
100 * *start: If inout==FALSE start of the valid data in the buffer
101 * offset: If inout==FALSE offset from the beginning of the imaginary file
102 * from which we start writing into the buffer
103 * length: If inout==FALSE max number of bytes to be written into the buffer
104 * else number of bytes in the buffer
105 */
106static int eata_pio_proc_info(struct Scsi_Host *shost, char *buffer, char **start, off_t offset,
107 int length, int rw)
108{ 96{
109 int len = 0; 97 seq_printf(m, "EATA (Extended Attachment) PIO driver version: "
110 off_t begin = 0, pos = 0;
111
112 if (rw)
113 return -ENOSYS;
114
115 len += sprintf(buffer+len, "EATA (Extended Attachment) PIO driver version: "
116 "%d.%d%s\n",VER_MAJOR, VER_MINOR, VER_SUB); 98 "%d.%d%s\n",VER_MAJOR, VER_MINOR, VER_SUB);
117 len += sprintf(buffer + len, "queued commands: %10ld\n" 99 seq_printf(m, "queued commands: %10ld\n"
118 "processed interrupts:%10ld\n", queue_counter, int_counter); 100 "processed interrupts:%10ld\n", queue_counter, int_counter);
119 len += sprintf(buffer + len, "\nscsi%-2d: HBA %.10s\n", 101 seq_printf(m, "\nscsi%-2d: HBA %.10s\n",
120 shost->host_no, SD(shost)->name); 102 shost->host_no, SD(shost)->name);
121 len += sprintf(buffer + len, "Firmware revision: v%s\n", 103 seq_printf(m, "Firmware revision: v%s\n",
122 SD(shost)->revision); 104 SD(shost)->revision);
123 len += sprintf(buffer + len, "IO: PIO\n"); 105 seq_printf(m, "IO: PIO\n");
124 len += sprintf(buffer + len, "Base IO : %#.4x\n", (u32) shost->base); 106 seq_printf(m, "Base IO : %#.4x\n", (u32) shost->base);
125 len += sprintf(buffer + len, "Host Bus: %s\n", 107 seq_printf(m, "Host Bus: %s\n",
126 (SD(shost)->bustype == 'P')?"PCI ": 108 (SD(shost)->bustype == 'P')?"PCI ":
127 (SD(shost)->bustype == 'E')?"EISA":"ISA "); 109 (SD(shost)->bustype == 'E')?"EISA":"ISA ");
128 110 return 0;
129 pos = begin + len;
130
131 if (pos < offset) {
132 len = 0;
133 begin = pos;
134 }
135 if (pos > offset + length)
136 goto stop_output;
137
138stop_output:
139 DBG(DBG_PROC, printk("2pos: %ld offset: %ld len: %d\n", pos, offset, len));
140 *start = buffer + (offset - begin); /* Start of wanted data */
141 len -= (offset - begin); /* Start slop */
142 if (len > length)
143 len = length; /* Ending slop */
144 DBG(DBG_PROC, printk("3pos: %ld offset: %ld len: %d\n", pos, offset, len));
145
146 return len;
147} 111}
148 112
149static int eata_pio_release(struct Scsi_Host *sh) 113static int eata_pio_release(struct Scsi_Host *sh)
@@ -985,7 +949,7 @@ static int eata_pio_detect(struct scsi_host_template *tpnt)
985static struct scsi_host_template driver_template = { 949static struct scsi_host_template driver_template = {
986 .proc_name = "eata_pio", 950 .proc_name = "eata_pio",
987 .name = "EATA (Extended Attachment) PIO driver", 951 .name = "EATA (Extended Attachment) PIO driver",
988 .proc_info = eata_pio_proc_info, 952 .show_info = eata_pio_show_info,
989 .detect = eata_pio_detect, 953 .detect = eata_pio_detect,
990 .release = eata_pio_release, 954 .release = eata_pio_release,
991 .queuecommand = eata_pio_queue, 955 .queuecommand = eata_pio_queue,