Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38ed1aef authored by Ondrej Zary's avatar Ondrej Zary Committed by Mauro Carvalho Chehab
Browse files

[media] radio-gemtek: add PnP support for AOpen FX-3D/Pro Radio



Add PnP support to radio-gemtek for AOpen FX-3D/Pro Radio card
(AD1816 + Gemtek radio).

Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 865d7ec9
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include <linux/videodev2.h>	/* kernel radio structs		*/
#include <linux/mutex.h>
#include <linux/io.h>		/* outb, outb_p			*/
#include <linux/pnp.h>
#include <linux/slab.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-device.h>
@@ -283,6 +284,16 @@ static const struct radio_isa_ops gemtek_ops = {

static const int gemtek_ioports[] = { 0x20c, 0x30c, 0x24c, 0x34c, 0x248, 0x28c };

#ifdef CONFIG_PNP
static struct pnp_device_id gemtek_pnp_devices[] = {
	/* AOpen FX-3D/Pro Radio */
	{.id = "ADS7183", .driver_data = 0},
	{.id = ""}
};

MODULE_DEVICE_TABLE(pnp, gemtek_pnp_devices);
#endif

static struct radio_isa_driver gemtek_driver = {
	.driver = {
		.match		= radio_isa_match,
@@ -292,6 +303,14 @@ static struct radio_isa_driver gemtek_driver = {
			.name	= "radio-gemtek",
		},
	},
#ifdef CONFIG_PNP
	.pnp_driver = {
		.name		= "radio-gemtek",
		.id_table	= gemtek_pnp_devices,
		.probe		= radio_isa_pnp_probe,
		.remove		= radio_isa_pnp_remove,
	},
#endif
	.io_params = io,
	.radio_nr_params = radio_nr,
	.io_ports = gemtek_ioports,
@@ -305,12 +324,18 @@ static struct radio_isa_driver gemtek_driver = {
static int __init gemtek_init(void)
{
	gemtek_driver.probe = probe;
#ifdef CONFIG_PNP
	pnp_register_driver(&gemtek_driver.pnp_driver);
#endif
	return isa_register_driver(&gemtek_driver.driver, GEMTEK_MAX);
}

static void __exit gemtek_exit(void)
{
	hardmute = 1;	/* Turn off PLL */
#ifdef CONFIG_PNP
	pnp_unregister_driver(&gemtek_driver.pnp_driver);
#endif
	isa_unregister_driver(&gemtek_driver.driver);
}