[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: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
865d7ec934
Коммит
38ed1aef92
|
@ -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 = {
|
||||||
|
|
||||||
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 = {
|
||||||
.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 = {
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче