Module Name: src Committed By: christos Date: Sun Apr 14 16:37:32 UTC 2013
Modified Files: src/sys/dev/ic: vga_raster.c Log Message: return something reasonable for WSDISPLAYIO_GINFO To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/dev/ic/vga_raster.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/vga_raster.c diff -u src/sys/dev/ic/vga_raster.c:1.36 src/sys/dev/ic/vga_raster.c:1.37 --- src/sys/dev/ic/vga_raster.c:1.36 Mon Jan 21 14:49:15 2013 +++ src/sys/dev/ic/vga_raster.c Sun Apr 14 12:37:32 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: vga_raster.c,v 1.36 2013/01/21 19:49:15 mlelstv Exp $ */ +/* $NetBSD: vga_raster.c,v 1.37 2013/04/14 16:37:32 christos Exp $ */ /* * Copyright (c) 2001, 2002 Bang Jun-Young @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vga_raster.c,v 1.36 2013/01/21 19:49:15 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vga_raster.c,v 1.37 2013/04/14 16:37:32 christos Exp $"); #include "opt_wsmsgattrs.h" /* for WSDISPLAY_CUSTOM_OUTPUT */ @@ -632,22 +632,25 @@ vga_raster_ioctl(void *v, void *vs, u_lo *(int *)data = vc->vc_type; return 0; - case WSDISPLAYIO_GINFO: - /* XXX should get detailed hardware information here */ - return EPASSTHROUGH; + case WSDISPLAYIO_GINFO: { + struct wsdisplay_fbinfo *fbi = data; + const struct wsscreen_descr *wd = vc->currenttype; + const struct videomode *vm = wd->modecookie; + fbi->width = vm->hdisplay; + fbi->height = vm->vdisplay; + fbi->depth = 24; /* xxx: ? */ + fbi->cmsize = 256; /* xxx: from palette */ + return 0; + } case WSDISPLAYIO_GVIDEO: -#if 1 *(int *)data = (vga_get_video(vc) ? WSDISPLAYIO_VIDEO_ON : WSDISPLAYIO_VIDEO_OFF); return 0; -#endif case WSDISPLAYIO_SVIDEO: -#if 1 vga_set_video(vc, *(int *)data == WSDISPLAYIO_VIDEO_ON); return 0; -#endif case WSDISPLAYIO_GETCMAP: case WSDISPLAYIO_PUTCMAP: @@ -656,15 +659,26 @@ vga_raster_ioctl(void *v, void *vs, u_lo case WSDISPLAYIO_GCURMAX: case WSDISPLAYIO_GCURSOR: case WSDISPLAYIO_SCURSOR: +#ifdef DIAGNOSTIC + printf("%s: 0x%lx unsupported\n", __func__, cmd); +#endif /* NONE of these operations are by the generic VGA driver. */ return EPASSTHROUGH; } - if (vc->vc_funcs == NULL) - return (EPASSTHROUGH); + if (vc->vc_funcs == NULL) { +#ifdef DIAGNOSTIC + printf("%s: no vc_funcs\n", __func__); +#endif + return EPASSTHROUGH; + } - if (vf->vf_ioctl == NULL) - return (EPASSTHROUGH); + if (vf->vf_ioctl == NULL) { +#ifdef DIAGNOSTIC + printf("%s: no vf_ioctl\n", __func__); +#endif + return EPASSTHROUGH; + } return ((*vf->vf_ioctl)(v, cmd, data, flag, l)); }