diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES index 5e486978781d..7ee1b45e6ba6 100644 --- a/sys/amd64/conf/NOTES +++ b/sys/amd64/conf/NOTES @@ -639,8 +639,6 @@ options PV_STATS # More undocumented options for linting. # Note that documenting these are not considered an affront. -options FB_INSTALL_CDEV # install a CDEV entry in /dev - options KBDIO_DEBUG=2 options KBD_MAXRETRY=4 options KBD_MAXWAIT=6 diff --git a/sys/conf/options b/sys/conf/options index 0c10801637c2..fda513ee484a 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -586,7 +586,6 @@ IFMEDIA_DEBUG opt_ifmedia.h # Fb options FB_DEBUG opt_fb.h -FB_INSTALL_CDEV opt_fb.h # ppbus related options PERIPH_1284 opt_ppb_1284.h diff --git a/sys/dev/fb/fb.c b/sys/dev/fb/fb.c index 95b7a30391cf..5c8e354290be 100644 --- a/sys/dev/fb/fb.c +++ b/sys/dev/fb/fb.c @@ -66,11 +66,6 @@ static video_adapter_t **adapter = &adp_ini; static video_switch_t *vidsw_ini; video_switch_t **vidsw = &vidsw_ini; -#ifdef FB_INSTALL_CDEV -static struct cdevsw *vidcdevsw_ini; -static struct cdevsw **vidcdevsw = &vidcdevsw_ini; -#endif - #define ARRAY_DELTA 4 static int @@ -78,9 +73,6 @@ vid_realloc_array(void) { video_adapter_t **new_adp; video_switch_t **new_vidsw; -#ifdef FB_INSTALL_CDEV - struct cdevsw **new_cdevsw; -#endif int newsize; int s; @@ -92,27 +84,14 @@ vid_realloc_array(void) new_adp = malloc(sizeof(*new_adp)*newsize, M_DEVBUF, M_WAITOK | M_ZERO); new_vidsw = malloc(sizeof(*new_vidsw)*newsize, M_DEVBUF, M_WAITOK | M_ZERO); -#ifdef FB_INSTALL_CDEV - new_cdevsw = malloc(sizeof(*new_cdevsw)*newsize, M_DEVBUF, - M_WAITOK | M_ZERO); -#endif bcopy(adapter, new_adp, sizeof(*adapter)*adapters); bcopy(vidsw, new_vidsw, sizeof(*vidsw)*adapters); -#ifdef FB_INSTALL_CDEV - bcopy(vidcdevsw, new_cdevsw, sizeof(*vidcdevsw)*adapters); -#endif if (adapters > 1) { free(adapter, M_DEVBUF); free(vidsw, M_DEVBUF); -#ifdef FB_INSTALL_CDEV - free(vidcdevsw, M_DEVBUF); -#endif } adapter = new_adp; vidsw = new_vidsw; -#ifdef FB_INSTALL_CDEV - vidcdevsw = new_cdevsw; -#endif adapters = newsize; splx(s); @@ -296,230 +275,8 @@ vid_configure(int flags) return 0; } -/* - * Virtual frame buffer cdev driver functions - * The virtual frame buffer driver dispatches driver functions to - * appropriate subdrivers. - */ - #define FB_DRIVER_NAME "fb" -#ifdef FB_INSTALL_CDEV - -#if 0 /* experimental */ - -static devclass_t fb_devclass; - -static int fbprobe(device_t dev); -static int fbattach(device_t dev); - -static device_method_t fb_methods[] = { - DEVMETHOD(device_probe, fbprobe), - DEVMETHOD(device_attach, fbattach), - - DEVMETHOD_END -}; - -static driver_t fb_driver = { - FB_DRIVER_NAME, - fb_methods, - 0, -}; - -static int -fbprobe(device_t dev) -{ - int unit; - - unit = device_get_unit(dev); - if (unit >= adapters) - return ENXIO; - if (adapter[unit] == NULL) - return ENXIO; - - device_set_desc(dev, "generic frame buffer"); - return 0; -} - -static int -fbattach(device_t dev) -{ - printf("fbattach: about to attach children\n"); - bus_generic_attach(dev); - return 0; -} - -#endif - -#define FB_UNIT(dev) dev2unit(dev) -#define FB_MKMINOR(unit) (u) - -#if 0 /* experimental */ -static d_open_t fbopen; -static d_close_t fbclose; -static d_read_t fbread; -static d_write_t fbwrite; -static d_ioctl_t fbioctl; -static d_mmap_t fbmmap; - - -static struct cdevsw fb_cdevsw = { - .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, - .d_open = fbopen, - .d_close = fbclose, - .d_read = fbread, - .d_write = fbwrite, - .d_ioctl = fbioctl, - .d_mmap = fbmmap, - .d_name = FB_DRIVER_NAME, -}; -#endif - - -static int -fb_modevent(module_t mod, int type, void *data) -{ - - switch (type) { - case MOD_LOAD: - break; - case MOD_UNLOAD: - printf("fb module unload - not possible for this module type\n"); - return EINVAL; - default: - return EOPNOTSUPP; - } - return 0; -} - -static moduledata_t fb_mod = { - "fb", - fb_modevent, - NULL -}; - -DECLARE_MODULE(fb, fb_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); - -int -fb_attach(int unit, video_adapter_t *adp, struct cdevsw *cdevsw) -{ - int s; - - if (adp->va_index >= adapters) - return EINVAL; - if (adapter[adp->va_index] != adp) - return EINVAL; - - s = spltty(); - adp->va_minor = unit; - vidcdevsw[adp->va_index] = cdevsw; - splx(s); - - printf("fb%d at %s%d\n", adp->va_index, adp->va_name, adp->va_unit); - return 0; -} - -int -fb_detach(int unit, video_adapter_t *adp, struct cdevsw *cdevsw) -{ - int s; - - if (adp->va_index >= adapters) - return EINVAL; - if (adapter[adp->va_index] != adp) - return EINVAL; - if (vidcdevsw[adp->va_index] != cdevsw) - return EINVAL; - - s = spltty(); - vidcdevsw[adp->va_index] = NULL; - splx(s); - return 0; -} - -/* - * Generic frame buffer cdev driver functions - * Frame buffer subdrivers may call these functions to implement common - * driver functions. - */ - -int genfbopen(genfb_softc_t *sc, video_adapter_t *adp, int flag, int mode, - struct thread *td) -{ - int s; - - s = spltty(); - if (!(sc->gfb_flags & FB_OPEN)) - sc->gfb_flags |= FB_OPEN; - splx(s); - return 0; -} - -int genfbclose(genfb_softc_t *sc, video_adapter_t *adp, int flag, int mode, - struct thread *td) -{ - int s; - - s = spltty(); - sc->gfb_flags &= ~FB_OPEN; - splx(s); - return 0; -} - -int genfbread(genfb_softc_t *sc, video_adapter_t *adp, struct uio *uio, - int flag) -{ - int size; - int offset; - int error; - int len; - - error = 0; - size = adp->va_buffer_size/adp->va_info.vi_planes; - while (uio->uio_resid > 0) { - if (uio->uio_offset >= size) - break; - offset = uio->uio_offset%adp->va_window_size; - len = imin(uio->uio_resid, size - uio->uio_offset); - len = imin(len, adp->va_window_size - offset); - if (len <= 0) - break; - vidd_set_win_org(adp, uio->uio_offset); - error = uiomove((caddr_t)(adp->va_window + offset), len, uio); - if (error) - break; - } - return error; -} - -int genfbwrite(genfb_softc_t *sc, video_adapter_t *adp, struct uio *uio, - int flag) -{ - return ENODEV; -} - -int genfbioctl(genfb_softc_t *sc, video_adapter_t *adp, u_long cmd, - caddr_t arg, int flag, struct thread *td) -{ - int error; - - if (adp == NULL) /* XXX */ - return ENXIO; - error = vidd_ioctl(adp, cmd, arg); - if (error == ENOIOCTL) - error = ENODEV; - return error; -} - -int genfbmmap(genfb_softc_t *sc, video_adapter_t *adp, vm_ooffset_t offset, - vm_paddr_t *paddr, int prot, vm_memattr_t *memattr) -{ - return vidd_mmap(adp, offset, paddr, prot, memattr); -} - -#endif /* FB_INSTALL_CDEV */ - static char *adapter_name(int type) { diff --git a/sys/dev/fb/fbreg.h b/sys/dev/fb/fbreg.h index 7637f06a86b4..944243d4e687 100644 --- a/sys/dev/fb/fbreg.h +++ b/sys/dev/fb/fbreg.h @@ -294,37 +294,6 @@ video_adapter_t *vid_get_adapter(int index); int vid_configure(int flags); #define VIO_PROBE_ONLY (1 << 0) /* probe only, don't initialize */ -#ifdef FB_INSTALL_CDEV - -/* virtual frame buffer driver functions */ -int fb_attach(int unit, video_adapter_t *adp, - struct cdevsw *cdevsw); -int fb_detach(int unit, video_adapter_t *adp, - struct cdevsw *cdevsw); - -/* generic frame buffer cdev driver functions */ - -typedef struct genfb_softc { - int gfb_flags; /* flag/status bits */ -#define FB_OPEN (1 << 0) -} genfb_softc_t; - -int genfbopen(genfb_softc_t *sc, video_adapter_t *adp, - int flag, int mode, struct thread *td); -int genfbclose(genfb_softc_t *sc, video_adapter_t *adp, - int flag, int mode, struct thread *td); -int genfbread(genfb_softc_t *sc, video_adapter_t *adp, - struct uio *uio, int flag); -int genfbwrite(genfb_softc_t *sc, video_adapter_t *adp, - struct uio *uio, int flag); -int genfbioctl(genfb_softc_t *sc, video_adapter_t *adp, - u_long cmd, caddr_t arg, int flag, struct thread *td); -int genfbmmap(genfb_softc_t *sc, video_adapter_t *adp, - vm_ooffset_t offset, vm_paddr_t *paddr, - int prot, vm_memattr_t *memattr); - -#endif /* FB_INSTALL_CDEV */ - /* generic low-level driver functions */ void fb_dump_adp_info(char *driver, video_adapter_t *adp, int level); diff --git a/sys/dev/fb/vga.c b/sys/dev/fb/vga.c index 88ce75b922e1..d8fc19369ea7 100644 --- a/sys/dev/fb/vga.c +++ b/sys/dev/fb/vga.c @@ -105,55 +105,6 @@ vga_attach_unit(int unit, vga_softc_t *sc, int flags) return (*sw->init)(unit, sc->adp, flags); } -/* cdev driver functions */ - -#ifdef FB_INSTALL_CDEV - -int -vga_open(struct cdev *dev, vga_softc_t *sc, int flag, int mode, struct thread *td) -{ - if (sc == NULL) - return ENXIO; - if (mode & (O_CREAT | O_APPEND | O_TRUNC)) - return ENODEV; - - return genfbopen(&sc->gensc, sc->adp, flag, mode, td); -} - -int -vga_close(struct cdev *dev, vga_softc_t *sc, int flag, int mode, struct thread *td) -{ - return genfbclose(&sc->gensc, sc->adp, flag, mode, td); -} - -int -vga_read(struct cdev *dev, vga_softc_t *sc, struct uio *uio, int flag) -{ - return genfbread(&sc->gensc, sc->adp, uio, flag); -} - -int -vga_write(struct cdev *dev, vga_softc_t *sc, struct uio *uio, int flag) -{ - return genfbread(&sc->gensc, sc->adp, uio, flag); -} - -int -vga_ioctl(struct cdev *dev, vga_softc_t *sc, u_long cmd, caddr_t arg, int flag, - struct thread *td) -{ - return genfbioctl(&sc->gensc, sc->adp, cmd, arg, flag, td); -} - -int -vga_mmap(struct cdev *dev, vga_softc_t *sc, vm_ooffset_t offset, - vm_paddr_t *paddr, int prot, vm_memattr_t *memattr) -{ - return genfbmmap(&sc->gensc, sc->adp, offset, paddr, prot, memattr); -} - -#endif /* FB_INSTALL_CDEV */ - /* LOW-LEVEL */ #include diff --git a/sys/dev/fb/vgareg.h b/sys/dev/fb/vgareg.h index b2c148a4dd3b..370888e6d167 100644 --- a/sys/dev/fb/vgareg.h +++ b/sys/dev/fb/vgareg.h @@ -73,27 +73,11 @@ typedef struct vga_softc { struct video_adapter *adp; void *state_buf; void *pal_buf; -#ifdef FB_INSTALL_CDEV - genfb_softc_t gensc; -#endif } vga_softc_t; int vga_probe_unit(int unit, struct video_adapter *adp, int flags); int vga_attach_unit(int unit, vga_softc_t *sc, int flags); -#ifdef FB_INSTALL_CDEV -int vga_open(struct cdev *dev, vga_softc_t *sc, int flag, int mode, - struct thread *td); -int vga_close(struct cdev *dev, vga_softc_t *sc, int flag, int mode, - struct thread *td); -int vga_read(struct cdev *dev, vga_softc_t *sc, struct uio *uio, int flag); -int vga_write(struct cdev *dev, vga_softc_t *sc, struct uio *uio, int flag); -int vga_ioctl(struct cdev *dev, vga_softc_t *sc, u_long cmd, caddr_t arg, - int flag, struct thread *td); -int vga_mmap(struct cdev *dev, vga_softc_t *sc, vm_ooffset_t offset, - vm_paddr_t *paddr, int prot, vm_memattr_t *memattr); -#endif - extern int (*vga_sub_configure)(int flags); #endif /* _KERNEL */ diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index 1cf8a34a8ebc..42aafcecd97b 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -877,8 +877,6 @@ options PV_STATS # More undocumented options for linting. # Note that documenting these are not considered an affront. -options FB_INSTALL_CDEV # install a CDEV entry in /dev - options KBDIO_DEBUG=2 options KBD_MAXRETRY=4 options KBD_MAXWAIT=6 diff --git a/sys/isa/vga_isa.c b/sys/isa/vga_isa.c index 0d1f042fa78f..b5660a1f70d3 100644 --- a/sys/isa/vga_isa.c +++ b/sys/isa/vga_isa.c @@ -131,34 +131,8 @@ vga_resume(device_t dev) } } -#define VGA_SOFTC(unit) \ - ((vga_softc_t *)devclass_get_softc(isavga_devclass, unit)) - static devclass_t isavga_devclass; -#ifdef FB_INSTALL_CDEV - -static d_open_t isavga_open; -static d_close_t isavga_close; -static d_read_t isavga_read; -static d_write_t isavga_write; -static d_ioctl_t isavga_ioctl; -static d_mmap_t isavga_mmap; - -static struct cdevsw isavga_cdevsw = { - .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, - .d_open = isavga_open, - .d_close = isavga_close, - .d_read = isavga_read, - .d_write = isavga_write, - .d_ioctl = isavga_ioctl, - .d_mmap = isavga_mmap, - .d_name = VGA_DRIVER_NAME, -}; - -#endif /* FB_INSTALL_CDEV */ - static void isavga_identify(driver_t *driver, device_t parent) { @@ -216,13 +190,6 @@ isavga_attach(device_t dev) if (error) return (error); -#ifdef FB_INSTALL_CDEV - /* attach a virtual frame buffer device */ - error = fb_attach(VGA_MKMINOR(unit), sc->adp, &isavga_cdevsw); - if (error) - return (error); -#endif /* FB_INSTALL_CDEV */ - if (0 && bootverbose) vidd_diag(sc->adp, bootverbose); @@ -256,48 +223,6 @@ isavga_resume(device_t dev) return (bus_generic_resume(dev)); } -#ifdef FB_INSTALL_CDEV - -static int -isavga_open(struct cdev *dev, int flag, int mode, struct thread *td) -{ - return (vga_open(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td)); -} - -static int -isavga_close(struct cdev *dev, int flag, int mode, struct thread *td) -{ - return (vga_close(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td)); -} - -static int -isavga_read(struct cdev *dev, struct uio *uio, int flag) -{ - return (vga_read(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag)); -} - -static int -isavga_write(struct cdev *dev, struct uio *uio, int flag) -{ - return (vga_write(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag)); -} - -static int -isavga_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td) -{ - return (vga_ioctl(dev, VGA_SOFTC(VGA_UNIT(dev)), cmd, arg, flag, td)); -} - -static int -isavga_mmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, - int prot, vm_memattr_t *memattr) -{ - return (vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot, - memattr)); -} - -#endif /* FB_INSTALL_CDEV */ - static device_method_t isavga_methods[] = { DEVMETHOD(device_identify, isavga_identify), DEVMETHOD(device_probe, isavga_probe),