xref: /netbsd-src/sys/dev/dtv/dtv_ioctl.c (revision d3ea21c055bfe689f3bf9926366670a4a5645c73)
1 /* $NetBSD: dtv_ioctl.c,v 1.3 2011/07/13 22:43:04 jmcneill Exp $ */
2 
3 /*-
4  * Copyright (c) 2011 Jared D. McNeill <jmcneill@invisible.ca>
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. All advertising materials mentioning features or use of this software
16  *    must display the following acknowledgement:
17  *        This product includes software developed by Jared D. McNeill.
18  * 4. Neither the name of The NetBSD Foundation nor the names of its
19  *    contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
23  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
24  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
26  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  */
34 
35 #include <sys/cdefs.h>
36 __KERNEL_RCSID(0, "$NetBSD: dtv_ioctl.c,v 1.3 2011/07/13 22:43:04 jmcneill Exp $");
37 
38 #include <sys/param.h>
39 #include <sys/types.h>
40 #include <sys/conf.h>
41 #include <sys/kmem.h>
42 #include <sys/device.h>
43 #include <sys/select.h>
44 
45 #include <dev/dtv/dtvvar.h>
46 
47 int
dtv_frontend_ioctl(struct dtv_softc * sc,u_long cmd,void * data,int flags)48 dtv_frontend_ioctl(struct dtv_softc *sc, u_long cmd, void *data, int flags)
49 {
50 	switch (cmd) {
51 	case FE_READ_STATUS:
52 		*(fe_status_t *)data = dtv_device_get_status(sc);
53 		return 0;
54 	case FE_READ_BER:
55 		*(uint32_t *)data = 0;	/* XXX TODO */
56 		return 0;
57 	case FE_READ_SNR:
58 		*(uint16_t *)data = dtv_device_get_snr(sc);
59 		return 0;
60 	case FE_READ_SIGNAL_STRENGTH:
61 		*(uint16_t *)data = dtv_device_get_signal_strength(sc);
62 		return 0;
63 	case FE_SET_FRONTEND:
64 		return dtv_device_set_tuner(sc, data);
65 	case FE_GET_INFO:
66 		dtv_device_get_devinfo(sc, data);
67 		return 0;
68 	default:
69 		return EINVAL;
70 	}
71 }
72