linux/drivers/media/radio/radio-zoltrix.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Zoltrix Radio Plus driver
 * Copyright 1998 C. van Schaik <[email protected]>
 *
 * BUGS
 *  Due to the inconsistency in reading from the signal flags
 *  it is difficult to get an accurate tuned signal.
 *
 *  It seems that the card is not linear to 0 volume. It cuts off
 *  at a low volume, and it is not possible (at least I have not found)
 *  to get fine volume control over the low volume range.
 *
 *  Some code derived from code by Romolo Manfredini
 *				   [email protected]
 *
 * 1999-05-06 - (C. van Schaik)
 *	      - Make signal strength and stereo scans
 *		kinder to cpu while in delay
 * 1999-01-05 - (C. van Schaik)
 *	      - Changed tuning to 1/160Mhz accuracy
 *	      - Added stereo support
 *		(card defaults to stereo)
 *		(can explicitly force mono on the card)
 *		(can detect if station is in stereo)
 *	      - Added unmute function
 *	      - Reworked ioctl functions
 * 2002-07-15 - Fix Stereo typo
 *
 * 2006-07-24 - Converted to V4L2 API
 *		by Mauro Carvalho Chehab <[email protected]>
 *
 * Converted to the radio-isa framework by Hans Verkuil <[email protected]>
 *
 * Note that this is the driver for the Zoltrix Radio Plus.
 * This driver does not work for the Zoltrix Radio Plus 108 or the
 * Zoltrix Radio Plus for Windows.
 *
 * Fully tested with the Keene USB FM Transmitter and the v4l2-compliance tool.
 */

#include <linux/module.h>	/* Modules                        */
#include <linux/init.h>		/* Initdata                       */
#include <linux/ioport.h>	/* request_region		  */
#include <linux/delay.h>	/* udelay, msleep                 */
#include <linux/videodev2.h>	/* kernel radio structs           */
#include <linux/mutex.h>
#include <linux/io.h>		/* outb, outb_p                   */
#include <linux/slab.h>
#include <media/v4l2-device.h>
#include <media/v4l2-ioctl.h>
#include "radio-isa.h"

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_VERSION();

#ifndef CONFIG_RADIO_ZOLTRIX_PORT
#define CONFIG_RADIO_ZOLTRIX_PORT
#endif

#define ZOLTRIX_MAX

static int io[ZOLTRIX_MAX] =;
static int radio_nr[ZOLTRIX_MAX] =;

module_param_array();
MODULE_PARM_DESC();
module_param_array();
MODULE_PARM_DESC();

struct zoltrix {};

static struct radio_isa_card *zoltrix_alloc(void)
{}

static int zoltrix_s_mute_volume(struct radio_isa_card *isa, bool mute, int vol)
{}

/* tunes the radio to the desired frequency */
static int zoltrix_s_frequency(struct radio_isa_card *isa, u32 freq)
{}

/* Get signal strength */
static u32 zoltrix_g_rxsubchans(struct radio_isa_card *isa)
{}

static u32 zoltrix_g_signal(struct radio_isa_card *isa)
{}

static int zoltrix_s_stereo(struct radio_isa_card *isa, bool stereo)
{}

static const struct radio_isa_ops zoltrix_ops =;

static const int zoltrix_ioports[] =;

static struct radio_isa_driver zoltrix_driver =;

static int __init zoltrix_init(void)
{}

static void __exit zoltrix_exit(void)
{}

module_init();
module_exit(zoltrix_exit);