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

[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
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/videodev2.h> /* kernel radio structs */ #include <linux/videodev2.h> /* kernel radio structs */
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/io.h> /* outb, outb_p */ #include <linux/io.h> /* outb, outb_p */
#include <linux/pnp.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <media/v4l2-ioctl.h> #include <media/v4l2-ioctl.h>
#include <media/v4l2-device.h> #include <media/v4l2-device.h>
...@@ -283,6 +284,16 @@ static const struct radio_isa_ops gemtek_ops = { ...@@ -283,6 +284,16 @@ static const struct radio_isa_ops gemtek_ops = {
static const int gemtek_ioports[] = { 0x20c, 0x30c, 0x24c, 0x34c, 0x248, 0x28c }; 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 = { static struct radio_isa_driver gemtek_driver = {
.driver = { .driver = {
.match = radio_isa_match, .match = radio_isa_match,
...@@ -292,6 +303,14 @@ static struct radio_isa_driver gemtek_driver = { ...@@ -292,6 +303,14 @@ static struct radio_isa_driver gemtek_driver = {
.name = "radio-gemtek", .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, .io_params = io,
.radio_nr_params = radio_nr, .radio_nr_params = radio_nr,
.io_ports = gemtek_ioports, .io_ports = gemtek_ioports,
...@@ -305,12 +324,18 @@ static struct radio_isa_driver gemtek_driver = { ...@@ -305,12 +324,18 @@ static struct radio_isa_driver gemtek_driver = {
static int __init gemtek_init(void) static int __init gemtek_init(void)
{ {
gemtek_driver.probe = probe; gemtek_driver.probe = probe;
#ifdef CONFIG_PNP
pnp_register_driver(&gemtek_driver.pnp_driver);
#endif
return isa_register_driver(&gemtek_driver.driver, GEMTEK_MAX); return isa_register_driver(&gemtek_driver.driver, GEMTEK_MAX);
} }
static void __exit gemtek_exit(void) static void __exit gemtek_exit(void)
{ {
hardmute = 1; /* Turn off PLL */ hardmute = 1; /* Turn off PLL */
#ifdef CONFIG_PNP
pnp_unregister_driver(&gemtek_driver.pnp_driver);
#endif
isa_unregister_driver(&gemtek_driver.driver); isa_unregister_driver(&gemtek_driver.driver);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment