aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fdc
diff options
context:
space:
mode:
authorGarrett Wollman <wollman@FreeBSD.org>1995-04-12 20:48:13 +0000
committerGarrett Wollman <wollman@FreeBSD.org>1995-04-12 20:48:13 +0000
commit6c0081e92ba843bef15fe7b01e7479f7ac01f762 (patch)
tree3733f361a8298b0f38c2e4586c976a9240816ec2 /sys/dev/fdc
parentfd7e139eeddd7de2fad7ff77bf9c427bdc7bef6b (diff)
Notes
Diffstat (limited to 'sys/dev/fdc')
-rw-r--r--sys/dev/fdc/fdc.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c
index 9a6816f189b7..e755f5666d1e 100644
--- a/sys/dev/fdc/fdc.c
+++ b/sys/dev/fdc/fdc.c
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.55 1995/03/26 19:28:18 rgrimes Exp $
+ * $Id: fd.c,v 1.56 1995/04/06 07:20:15 rgrimes Exp $
*
*/
@@ -101,7 +101,8 @@ static struct kern_devconf kdc_fd[NFD] = { {
0, /* parent */
0, /* parentdata */
DC_UNCONFIGURED, /* state */
- "floppy disk"
+ "floppy disk",
+ DC_CLS_DISK /* class */
} };
struct kern_devconf kdc_fdc[NFDC] = { {
@@ -111,7 +112,8 @@ struct kern_devconf kdc_fdc[NFDC] = { {
0, /* parent */
0, /* parentdata */
DC_UNCONFIGURED, /* state */
- "floppy disk/tape controller"
+ "floppy disk/tape controller",
+ DC_CLS_MISC /* class */
} };
static inline void
@@ -522,6 +524,10 @@ fdprobe(struct isa_device *dev)
fdcdevs[fdcu] = dev;
fdc_data[fdcu].baseport = dev->id_iobase;
+#ifndef DEV_LKM
+ fdc_registerdev(dev);
+#endif
+
/* First - lets reset the floppy controller */
outb(dev->id_iobase+FDOUT, 0);
DELAY(100);
@@ -553,8 +559,6 @@ fdattach(struct isa_device *dev)
struct isa_device *fdup;
int ic_type = 0;
- fdc_registerdev(dev);
-
fdc->fdcu = fdcu;
fdc->flags |= FDC_ATTACHED;
fdc->dmachan = dev->id_drq;
@@ -619,14 +623,20 @@ fdattach(struct isa_device *dev)
case 0x80:
printf("NEC 765\n");
fdc->fdct = FDC_NE765;
+ kdc_fdc[fdcu].kdc_description =
+ "NEC 765 floppy disk/tape controller";
break;
case 0x81:
printf("Intel 82077\n");
fdc->fdct = FDC_I82077;
+ kdc_fdc[fdcu].kdc_description =
+ "Intel 82077 floppy disk/tape controller";
break;
case 0x90:
printf("NEC 72065B\n");
fdc->fdct = FDC_NE72065;
+ kdc_fdc[fdcu].kdc_description =
+ "NEC 72065B floppy disk/tape controller";
break;
default:
printf("unknown IC type %02x\n", ic_type);
@@ -685,33 +695,43 @@ fdattach(struct isa_device *dev)
fd->options = 0;
printf("fd%d: ", fdsu, fdu);
+ fd_registerdev(fdcu, fdu);
switch (fdt) {
case RTCFDT_12M:
printf("1.2MB 5.25in\n");
fd->type = FD_1200;
+ kdc_fd[fdu].kdc_description =
+ "1.2MB (1200K) 5.25in floppy disk drive";
break;
case RTCFDT_144M:
printf("1.44MB 3.5in\n");
fd->type = FD_1440;
+ kdc_fd[fdu].kdc_description =
+ "1.44MB (1440K) 3.5in floppy disk drive";
break;
case RTCFDT_288M:
printf("2.88MB 3.5in - 1.44MB mode\n");
fd->type = FD_1440;
+ kdc_fd[fdu].kdc_description =
+ "2.88MB (2880K) 3.5in floppy disk drive in 1.44 mode";
break;
case RTCFDT_360K:
printf("360KB 5.25in\n");
fd->type = FD_360;
+ kdc_fd[fdu].kdc_description =
+ "360KB 5.25in floppy disk drive";
break;
case RTCFDT_720K:
printf("720KB 3.5in\n");
fd->type = FD_720;
+ kdc_fd[fdu].kdc_description =
+ "720KB 3.5in floppy disk drive";
break;
default:
printf("unknown\n");
fd->type = NO_TYPE;
break;
}
- fd_registerdev(fdcu, fdu);
kdc_fd[fdu].kdc_state = DC_IDLE;
if (dk_ndrive < DK_NDRIVE) {
sprintf(dk_names[dk_ndrive], "fd%d", fdu);