mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
Driver symbol lookup fix for 6.6-rc1
Here is one last fixup for your tree for 6.6-rc1. It resolves a problem with the way that symbol_get was changed in the module tree merge in your tree to fix up the DVB drivers which rely on this old api to attach new devices. As the changelog comment says: In commit9011e49d54
("modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules") the use of symbol_get is properly restricted to GPL-only marked symbols. This interacts oddly with the DVB logic which only uses dvb_attach() to load the dvb driver which then uses symbol_get(). Fix this up by properly marking all of the dvb_attach attach symbols as EXPORT_SYMBOL_GPL(). This has been acked by Hans from the V4L driver side, and from Luis from the module side, and Christoph said it was the correct solution, and was tested by the original reporter of the issue. It has passed 0-day testing, but has not been in linux-next due to it only being sent yesterday. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZPwnEQ8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ylvTQCgxfqe4gH03Pqiw/52XUvn40XvPtUAoJRfLVsp GwCxypgSc0F+SPHRaaiO =BvGY -----END PGP SIGNATURE----- Merge tag 'driver-core-6.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver symbol lookup fix from Greg KH: "Here is one last fixup for your tree for 6.6-rc1. It resolves a problem with the way that symbol_get was changed in the module tree merge in your tree to fix up the DVB drivers which rely on this old api to attach new devices. As the changelog comment says: In commit9011e49d54
("modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules") the use of symbol_get is properly restricted to GPL-only marked symbols. This interacts oddly with the DVB logic which only uses dvb_attach() to load the dvb driver which then uses symbol_get(). Fix this up by properly marking all of the dvb_attach attach symbols as EXPORT_SYMBOL_GPL(). This has been acked by Hans from the V4L driver side, Luis from the module side, Mauro on the media side, and Christoph said it was the correct solution, and was tested by the original reporter of the issue. It has passed 0-day testing, but has not been in linux-next due to it only being sent yesterday" * tag 'driver-core-6.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: media: dvb: symbol fixup for dvb_attach()
This commit is contained in:
commit
6b41fb277e
@ -533,7 +533,7 @@ struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe,
|
||||
priv->i2c_address, priv->i2c);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(ascot2e_attach);
|
||||
EXPORT_SYMBOL_GPL(ascot2e_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Sony ASCOT2E terr/cab tuner driver");
|
||||
MODULE_AUTHOR("info@netup.ru");
|
||||
|
@ -489,7 +489,7 @@ error_out:
|
||||
return NULL;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(atbm8830_attach);
|
||||
EXPORT_SYMBOL_GPL(atbm8830_attach);
|
||||
|
||||
MODULE_DESCRIPTION("AltoBeam ATBM8830/8831 GB20600 demodulator driver");
|
||||
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
|
||||
|
@ -879,7 +879,7 @@ error:
|
||||
au8522_release_state(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(au8522_attach);
|
||||
EXPORT_SYMBOL_GPL(au8522_attach);
|
||||
|
||||
static const struct dvb_frontend_ops au8522_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -835,7 +835,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(bcm3510_attach);
|
||||
EXPORT_SYMBOL_GPL(bcm3510_attach);
|
||||
|
||||
static const struct dvb_frontend_ops bcm3510_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -432,4 +432,4 @@ MODULE_DESCRIPTION("Conexant CX22700 DVB-T Demodulator driver");
|
||||
MODULE_AUTHOR("Holger Waechtler");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(cx22700_attach);
|
||||
EXPORT_SYMBOL_GPL(cx22700_attach);
|
||||
|
@ -604,7 +604,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(cx22702_attach);
|
||||
EXPORT_SYMBOL_GPL(cx22702_attach);
|
||||
|
||||
static const struct dvb_frontend_ops cx22702_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -653,4 +653,4 @@ MODULE_DESCRIPTION("Conexant CX24110 DVB-S Demodulator driver");
|
||||
MODULE_AUTHOR("Peter Hettkamp");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(cx24110_attach);
|
||||
EXPORT_SYMBOL_GPL(cx24110_attach);
|
||||
|
@ -590,7 +590,7 @@ error:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(cx24113_attach);
|
||||
EXPORT_SYMBOL_GPL(cx24113_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
|
||||
|
@ -1133,7 +1133,7 @@ struct dvb_frontend *cx24116_attach(const struct cx24116_config *config,
|
||||
state->frontend.demodulator_priv = state;
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(cx24116_attach);
|
||||
EXPORT_SYMBOL_GPL(cx24116_attach);
|
||||
|
||||
/*
|
||||
* Initialise or wake up device
|
||||
|
@ -305,7 +305,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(cx24120_attach);
|
||||
EXPORT_SYMBOL_GPL(cx24120_attach);
|
||||
|
||||
static int cx24120_test_rom(struct cx24120_state *state)
|
||||
{
|
||||
|
@ -1096,7 +1096,7 @@ error:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(cx24123_attach);
|
||||
EXPORT_SYMBOL_GPL(cx24123_attach);
|
||||
|
||||
static const struct dvb_frontend_ops cx24123_ops = {
|
||||
.delsys = { SYS_DVBS },
|
||||
|
@ -536,7 +536,7 @@ struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *config,
|
||||
|
||||
return pdata.get_dvb_frontend(client);
|
||||
}
|
||||
EXPORT_SYMBOL(cxd2820r_attach);
|
||||
EXPORT_SYMBOL_GPL(cxd2820r_attach);
|
||||
|
||||
static struct dvb_frontend *cxd2820r_get_dvb_frontend(struct i2c_client *client)
|
||||
{
|
||||
|
@ -3930,14 +3930,14 @@ struct dvb_frontend *cxd2841er_attach_s(struct cxd2841er_config *cfg,
|
||||
{
|
||||
return cxd2841er_attach(cfg, i2c, SYS_DVBS);
|
||||
}
|
||||
EXPORT_SYMBOL(cxd2841er_attach_s);
|
||||
EXPORT_SYMBOL_GPL(cxd2841er_attach_s);
|
||||
|
||||
struct dvb_frontend *cxd2841er_attach_t_c(struct cxd2841er_config *cfg,
|
||||
struct i2c_adapter *i2c)
|
||||
{
|
||||
return cxd2841er_attach(cfg, i2c, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(cxd2841er_attach_t_c);
|
||||
EXPORT_SYMBOL_GPL(cxd2841er_attach_t_c);
|
||||
|
||||
static const struct dvb_frontend_ops cxd2841er_dvbs_s2_ops = {
|
||||
.delsys = { SYS_DVBS, SYS_DVBS2 },
|
||||
|
@ -1950,7 +1950,7 @@ struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(cxd2880_attach);
|
||||
EXPORT_SYMBOL_GPL(cxd2880_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Sony CXD2880 DVB-T2/T tuner + demod driver");
|
||||
MODULE_AUTHOR("Sony Semiconductor Solutions Corporation");
|
||||
|
@ -762,7 +762,7 @@ free_mem:
|
||||
fe->tuner_priv = NULL;
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dib0070_attach);
|
||||
EXPORT_SYMBOL_GPL(dib0070_attach);
|
||||
|
||||
MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
|
||||
MODULE_DESCRIPTION("Driver for the DiBcom 0070 base-band RF Tuner");
|
||||
|
@ -2634,7 +2634,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dib0090_register);
|
||||
EXPORT_SYMBOL_GPL(dib0090_register);
|
||||
|
||||
struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config)
|
||||
{
|
||||
@ -2660,7 +2660,7 @@ free_mem:
|
||||
fe->tuner_priv = NULL;
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dib0090_fw_register);
|
||||
EXPORT_SYMBOL_GPL(dib0090_fw_register);
|
||||
|
||||
MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
|
||||
MODULE_AUTHOR("Olivier Grenie <olivier.grenie@parrot.com>");
|
||||
|
@ -815,4 +815,4 @@ MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(dib3000mb_attach);
|
||||
EXPORT_SYMBOL_GPL(dib3000mb_attach);
|
||||
|
@ -935,7 +935,7 @@ error:
|
||||
kfree(st);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dib3000mc_attach);
|
||||
EXPORT_SYMBOL_GPL(dib3000mc_attach);
|
||||
|
||||
static const struct dvb_frontend_ops dib3000mc_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -1434,7 +1434,7 @@ error:
|
||||
kfree(st);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dib7000m_attach);
|
||||
EXPORT_SYMBOL_GPL(dib7000m_attach);
|
||||
|
||||
static const struct dvb_frontend_ops dib7000m_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -2822,7 +2822,7 @@ void *dib7000p_attach(struct dib7000p_ops *ops)
|
||||
|
||||
return ops;
|
||||
}
|
||||
EXPORT_SYMBOL(dib7000p_attach);
|
||||
EXPORT_SYMBOL_GPL(dib7000p_attach);
|
||||
|
||||
static const struct dvb_frontend_ops dib7000p_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -4527,7 +4527,7 @@ void *dib8000_attach(struct dib8000_ops *ops)
|
||||
|
||||
return ops;
|
||||
}
|
||||
EXPORT_SYMBOL(dib8000_attach);
|
||||
EXPORT_SYMBOL_GPL(dib8000_attach);
|
||||
|
||||
MODULE_AUTHOR("Olivier Grenie <Olivier.Grenie@parrot.com, Patrick Boettcher <patrick.boettcher@posteo.de>");
|
||||
MODULE_DESCRIPTION("Driver for the DiBcom 8000 ISDB-T demodulator");
|
||||
|
@ -2546,7 +2546,7 @@ error:
|
||||
kfree(st);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dib9000_attach);
|
||||
EXPORT_SYMBOL_GPL(dib9000_attach);
|
||||
|
||||
static const struct dvb_frontend_ops dib9000_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -12372,7 +12372,7 @@ error:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(drx39xxj_attach);
|
||||
EXPORT_SYMBOL_GPL(drx39xxj_attach);
|
||||
|
||||
static const struct dvb_frontend_ops drx39xxj_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -2939,7 +2939,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(drxd_attach);
|
||||
EXPORT_SYMBOL_GPL(drxd_attach);
|
||||
|
||||
MODULE_DESCRIPTION("DRXD driver");
|
||||
MODULE_AUTHOR("Micronas");
|
||||
|
@ -6814,7 +6814,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(drxk_attach);
|
||||
EXPORT_SYMBOL_GPL(drxk_attach);
|
||||
|
||||
MODULE_DESCRIPTION("DRX-K driver");
|
||||
MODULE_AUTHOR("Ralph Metzler");
|
||||
|
@ -859,7 +859,7 @@ struct dvb_frontend *ds3000_attach(const struct ds3000_config *config,
|
||||
ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF);
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(ds3000_attach);
|
||||
EXPORT_SYMBOL_GPL(ds3000_attach);
|
||||
|
||||
static int ds3000_set_carrier_offset(struct dvb_frontend *fe,
|
||||
s32 carrier_offset_khz)
|
||||
|
@ -866,7 +866,7 @@ out:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(dvb_pll_attach);
|
||||
EXPORT_SYMBOL_GPL(dvb_pll_attach);
|
||||
|
||||
|
||||
static int
|
||||
|
@ -299,7 +299,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(ec100_attach);
|
||||
EXPORT_SYMBOL_GPL(ec100_attach);
|
||||
|
||||
static const struct dvb_frontend_ops ec100_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -1025,7 +1025,7 @@ struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
|
||||
priv->i2c_address, priv->i2c);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(helene_attach_s);
|
||||
EXPORT_SYMBOL_GPL(helene_attach_s);
|
||||
|
||||
struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
@ -1061,7 +1061,7 @@ struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
|
||||
priv->i2c_address, priv->i2c);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(helene_attach);
|
||||
EXPORT_SYMBOL_GPL(helene_attach);
|
||||
|
||||
static int helene_probe(struct i2c_client *client)
|
||||
{
|
||||
|
@ -395,7 +395,7 @@ struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe,
|
||||
priv->i2c_address, priv->i2c);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(horus3a_attach);
|
||||
EXPORT_SYMBOL_GPL(horus3a_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Sony HORUS3A satellite tuner driver");
|
||||
MODULE_AUTHOR("Sergey Kozlov <serjk@netup.ru>");
|
||||
|
@ -141,7 +141,7 @@ struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe, struct i2c_adapter
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(isl6405_attach);
|
||||
EXPORT_SYMBOL_GPL(isl6405_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6405");
|
||||
MODULE_AUTHOR("Hartmut Hackmann & Oliver Endriss");
|
||||
|
@ -213,7 +213,7 @@ struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(isl6421_attach);
|
||||
EXPORT_SYMBOL_GPL(isl6421_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421");
|
||||
MODULE_AUTHOR("Andrew de Quincey & Oliver Endriss");
|
||||
|
@ -289,7 +289,7 @@ exit:
|
||||
fe->sec_priv = NULL;
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(isl6423_attach);
|
||||
EXPORT_SYMBOL_GPL(isl6423_attach);
|
||||
|
||||
MODULE_DESCRIPTION("ISL6423 SEC");
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
|
@ -389,7 +389,7 @@ struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(itd1000_attach);
|
||||
EXPORT_SYMBOL_GPL(itd1000_attach);
|
||||
|
||||
MODULE_AUTHOR("Patrick Boettcher <pb@linuxtv.org>");
|
||||
MODULE_DESCRIPTION("Integrant ITD1000 driver");
|
||||
|
@ -302,7 +302,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(ix2505v_attach);
|
||||
EXPORT_SYMBOL_GPL(ix2505v_attach);
|
||||
|
||||
module_param_named(debug, ix2505v_debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -593,4 +593,4 @@ MODULE_DESCRIPTION("LSI L64781 DVB-T Demodulator driver");
|
||||
MODULE_AUTHOR("Holger Waechtler, Marko Kohtala");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(l64781_attach);
|
||||
EXPORT_SYMBOL_GPL(l64781_attach);
|
||||
|
@ -1426,7 +1426,7 @@ struct dvb_frontend *lg2160_attach(const struct lg2160_config *config,
|
||||
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(lg2160_attach);
|
||||
EXPORT_SYMBOL_GPL(lg2160_attach);
|
||||
|
||||
MODULE_DESCRIPTION("LG Electronics LG216x ATSC/MH Demodulator Driver");
|
||||
MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>");
|
||||
|
@ -1148,7 +1148,7 @@ fail:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(lgdt3305_attach);
|
||||
EXPORT_SYMBOL_GPL(lgdt3305_attach);
|
||||
|
||||
static const struct dvb_frontend_ops lgdt3304_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -1859,7 +1859,7 @@ fail:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(lgdt3306a_attach);
|
||||
EXPORT_SYMBOL_GPL(lgdt3306a_attach);
|
||||
|
||||
#ifdef DBG_DUMP
|
||||
|
||||
|
@ -927,7 +927,7 @@ struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *_config,
|
||||
|
||||
return lgdt330x_get_dvb_frontend(client);
|
||||
}
|
||||
EXPORT_SYMBOL(lgdt330x_attach);
|
||||
EXPORT_SYMBOL_GPL(lgdt330x_attach);
|
||||
|
||||
static const struct dvb_frontend_ops lgdt3302_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -1043,7 +1043,7 @@ error_out:
|
||||
return NULL;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(lgs8gxx_attach);
|
||||
EXPORT_SYMBOL_GPL(lgs8gxx_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Legend Silicon LGS8913/LGS8GXX DMB-TH demodulator driver");
|
||||
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
|
||||
|
@ -173,7 +173,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
|
||||
__func__, priv->i2c_address);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(lnbh25_attach);
|
||||
EXPORT_SYMBOL_GPL(lnbh25_attach);
|
||||
|
||||
MODULE_DESCRIPTION("ST LNBH25 driver");
|
||||
MODULE_AUTHOR("info@netup.ru");
|
||||
|
@ -155,7 +155,7 @@ struct dvb_frontend *lnbh24_attach(struct dvb_frontend *fe,
|
||||
return lnbx2x_attach(fe, i2c, override_set, override_clear,
|
||||
i2c_addr, LNBH24_TTX);
|
||||
}
|
||||
EXPORT_SYMBOL(lnbh24_attach);
|
||||
EXPORT_SYMBOL_GPL(lnbh24_attach);
|
||||
|
||||
struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe,
|
||||
struct i2c_adapter *i2c, u8 override_set,
|
||||
@ -164,7 +164,7 @@ struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe,
|
||||
return lnbx2x_attach(fe, i2c, override_set, override_clear,
|
||||
0x08, LNBP21_ISEL);
|
||||
}
|
||||
EXPORT_SYMBOL(lnbp21_attach);
|
||||
EXPORT_SYMBOL_GPL(lnbp21_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp21, lnbh24");
|
||||
MODULE_AUTHOR("Oliver Endriss, Igor M. Liplianin");
|
||||
|
@ -125,7 +125,7 @@ struct dvb_frontend *lnbp22_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(lnbp22_attach);
|
||||
EXPORT_SYMBOL_GPL(lnbp22_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp22");
|
||||
MODULE_AUTHOR("Dominik Kuhlen");
|
||||
|
@ -1695,7 +1695,7 @@ struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *cfg,
|
||||
*tuner_i2c_adapter = pdata.get_i2c_adapter(client);
|
||||
return pdata.get_dvb_frontend(client);
|
||||
}
|
||||
EXPORT_SYMBOL(m88ds3103_attach);
|
||||
EXPORT_SYMBOL_GPL(m88ds3103_attach);
|
||||
|
||||
static const struct dvb_frontend_ops m88ds3103_ops = {
|
||||
.delsys = {SYS_DVBS, SYS_DVBS2},
|
||||
|
@ -808,7 +808,7 @@ error:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(m88rs2000_attach);
|
||||
EXPORT_SYMBOL_GPL(m88rs2000_attach);
|
||||
|
||||
MODULE_DESCRIPTION("M88RS2000 DVB-S Demodulator driver");
|
||||
MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
|
||||
|
@ -1853,6 +1853,6 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(mb86a16_attach);
|
||||
EXPORT_SYMBOL_GPL(mb86a16_attach);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
|
@ -2078,7 +2078,7 @@ struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
|
||||
dev_info(&i2c->dev, "Detected a Fujitsu mb86a20s frontend\n");
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(mb86a20s_attach);
|
||||
EXPORT_SYMBOL_GPL(mb86a20s_attach);
|
||||
|
||||
static const struct dvb_frontend_ops mb86a20s_ops = {
|
||||
.delsys = { SYS_ISDBT },
|
||||
|
@ -827,7 +827,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(mt312_attach);
|
||||
EXPORT_SYMBOL_GPL(mt312_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -593,4 +593,4 @@ MODULE_DESCRIPTION("Zarlink MT352 DVB-T Demodulator driver");
|
||||
MODULE_AUTHOR("Holger Waechtler, Daniel Mack, Antonio Mancuso");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(mt352_attach);
|
||||
EXPORT_SYMBOL_GPL(mt352_attach);
|
||||
|
@ -1216,5 +1216,5 @@ MODULE_DESCRIPTION("NXT200X (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulat
|
||||
MODULE_AUTHOR("Kirk Lapray, Michael Krufky, Jean-Francois Thibert, and Taylor Jacob");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(nxt200x_attach);
|
||||
EXPORT_SYMBOL_GPL(nxt200x_attach);
|
||||
|
||||
|
@ -621,4 +621,4 @@ MODULE_DESCRIPTION("NxtWave NXT6000 DVB-T demodulator driver");
|
||||
MODULE_AUTHOR("Florian Schirmer");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(nxt6000_attach);
|
||||
EXPORT_SYMBOL_GPL(nxt6000_attach);
|
||||
|
@ -605,4 +605,4 @@ MODULE_AUTHOR("Kirk Lapray");
|
||||
MODULE_AUTHOR("Trent Piepho");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(or51132_attach);
|
||||
EXPORT_SYMBOL_GPL(or51132_attach);
|
||||
|
@ -551,5 +551,5 @@ MODULE_DESCRIPTION("Oren OR51211 VSB [pcHDTV HD-2000] Demodulator Driver");
|
||||
MODULE_AUTHOR("Kirk Lapray");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(or51211_attach);
|
||||
EXPORT_SYMBOL_GPL(or51211_attach);
|
||||
|
||||
|
@ -981,7 +981,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(s5h1409_attach);
|
||||
EXPORT_SYMBOL_GPL(s5h1409_attach);
|
||||
|
||||
static const struct dvb_frontend_ops s5h1409_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -900,7 +900,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(s5h1411_attach);
|
||||
EXPORT_SYMBOL_GPL(s5h1411_attach);
|
||||
|
||||
static const struct dvb_frontend_ops s5h1411_ops = {
|
||||
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
|
||||
|
@ -918,7 +918,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(s5h1420_attach);
|
||||
EXPORT_SYMBOL_GPL(s5h1420_attach);
|
||||
|
||||
static const struct dvb_frontend_ops s5h1420_ops = {
|
||||
.delsys = { SYS_DVBS },
|
||||
|
@ -355,7 +355,7 @@ struct dvb_frontend *s5h1432_attach(const struct s5h1432_config *config,
|
||||
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(s5h1432_attach);
|
||||
EXPORT_SYMBOL_GPL(s5h1432_attach);
|
||||
|
||||
static const struct dvb_frontend_ops s5h1432_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -495,7 +495,7 @@ struct dvb_frontend *s921_attach(const struct s921_config *config,
|
||||
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(s921_attach);
|
||||
EXPORT_SYMBOL_GPL(s921_attach);
|
||||
|
||||
static const struct dvb_frontend_ops s921_ops = {
|
||||
.delsys = { SYS_ISDBT },
|
||||
|
@ -937,7 +937,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(si21xx_attach);
|
||||
EXPORT_SYMBOL_GPL(si21xx_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -624,4 +624,4 @@ MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
MODULE_DESCRIPTION("Spase sp887x DVB-T demodulator driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(sp887x_attach);
|
||||
EXPORT_SYMBOL_GPL(sp887x_attach);
|
||||
|
@ -1638,7 +1638,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stb0899_attach);
|
||||
EXPORT_SYMBOL_GPL(stb0899_attach);
|
||||
MODULE_PARM_DESC(verbose, "Set Verbosity level");
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
MODULE_DESCRIPTION("STB0899 Multi-Std frontend");
|
||||
|
@ -232,7 +232,7 @@ struct dvb_frontend *stb6000_attach(struct dvb_frontend *fe, int addr,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(stb6000_attach);
|
||||
EXPORT_SYMBOL_GPL(stb6000_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -557,7 +557,7 @@ static void stb6100_release(struct dvb_frontend *fe)
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(stb6100_attach);
|
||||
EXPORT_SYMBOL_GPL(stb6100_attach);
|
||||
MODULE_PARM_DESC(verbose, "Set Verbosity level");
|
||||
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
|
@ -590,7 +590,7 @@ error:
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv0288_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0288_attach);
|
||||
|
||||
module_param(debug_legacy_dish_switch, int, 0444);
|
||||
MODULE_PARM_DESC(debug_legacy_dish_switch,
|
||||
|
@ -710,4 +710,4 @@ MODULE_DESCRIPTION("ST STV0297 DVB-C Demodulator driver");
|
||||
MODULE_AUTHOR("Dennis Noermann and Andrew de Quincey");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(stv0297_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0297_attach);
|
||||
|
@ -752,4 +752,4 @@ MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver");
|
||||
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, Andreas Oberritter, Andrew de Quincey, Kenneth Aafly");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(stv0299_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0299_attach);
|
||||
|
@ -1750,7 +1750,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv0367ter_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0367ter_attach);
|
||||
|
||||
static int stv0367cab_gate_ctrl(struct dvb_frontend *fe, int enable)
|
||||
{
|
||||
@ -2919,7 +2919,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv0367cab_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0367cab_attach);
|
||||
|
||||
/*
|
||||
* Functions for operation on Digital Devices hardware
|
||||
@ -3340,7 +3340,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv0367ddb_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0367ddb_attach);
|
||||
|
||||
MODULE_PARM_DESC(debug, "Set debug");
|
||||
MODULE_PARM_DESC(i2c_debug, "Set i2c debug");
|
||||
|
@ -1957,7 +1957,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv0900_attach);
|
||||
EXPORT_SYMBOL_GPL(stv0900_attach);
|
||||
|
||||
MODULE_PARM_DESC(debug, "Set debug");
|
||||
|
||||
|
@ -5071,7 +5071,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(stv090x_attach);
|
||||
EXPORT_SYMBOL_GPL(stv090x_attach);
|
||||
|
||||
static const struct i2c_device_id stv090x_id_table[] = {
|
||||
{"stv090x", 0},
|
||||
|
@ -427,7 +427,7 @@ struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(stv6110_attach);
|
||||
EXPORT_SYMBOL_GPL(stv6110_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -467,7 +467,7 @@ const struct stv6110x_devctl *stv6110x_attach(struct dvb_frontend *fe,
|
||||
dev_info(&stv6110x->i2c->dev, "Attaching STV6110x\n");
|
||||
return stv6110x->devctl;
|
||||
}
|
||||
EXPORT_SYMBOL(stv6110x_attach);
|
||||
EXPORT_SYMBOL_GPL(stv6110x_attach);
|
||||
|
||||
static const struct i2c_device_id stv6110x_id_table[] = {
|
||||
{"stv6110x", 0},
|
||||
|
@ -523,4 +523,4 @@ MODULE_DESCRIPTION("Philips TDA10021 DVB-C demodulator driver");
|
||||
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Markus Schulz");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(tda10021_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10021_attach);
|
||||
|
@ -594,4 +594,4 @@ MODULE_DESCRIPTION("Philips TDA10023 DVB-C demodulator driver");
|
||||
MODULE_AUTHOR("Georg Acher, Hartmut Birr");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(tda10023_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10023_attach);
|
||||
|
@ -1138,7 +1138,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(tda10048_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10048_attach);
|
||||
|
||||
static const struct dvb_frontend_ops tda10048_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -1378,5 +1378,5 @@ MODULE_DESCRIPTION("Philips TDA10045H & TDA10046H DVB-T Demodulator");
|
||||
MODULE_AUTHOR("Andrew de Quincey & Robert Schlabbach");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(tda10045_attach);
|
||||
EXPORT_SYMBOL(tda10046_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10045_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10046_attach);
|
||||
|
@ -764,4 +764,4 @@ MODULE_DESCRIPTION("Philips TDA10086 DVB-S Demodulator");
|
||||
MODULE_AUTHOR("Andrew de Quincey");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(tda10086_attach);
|
||||
EXPORT_SYMBOL_GPL(tda10086_attach);
|
||||
|
@ -227,7 +227,7 @@ struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(tda665x_attach);
|
||||
EXPORT_SYMBOL_GPL(tda665x_attach);
|
||||
|
||||
MODULE_DESCRIPTION("TDA665x driver");
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
|
@ -481,4 +481,4 @@ MODULE_DESCRIPTION("Philips TDA8083 DVB-S Demodulator");
|
||||
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(tda8083_attach);
|
||||
EXPORT_SYMBOL_GPL(tda8083_attach);
|
||||
|
@ -188,7 +188,7 @@ exit:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(tda8261_attach);
|
||||
EXPORT_SYMBOL_GPL(tda8261_attach);
|
||||
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
MODULE_DESCRIPTION("TDA8261 8PSK/QPSK Tuner");
|
||||
|
@ -164,7 +164,7 @@ struct dvb_frontend *tda826x_attach(struct dvb_frontend *fe, int addr, struct i2
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(tda826x_attach);
|
||||
EXPORT_SYMBOL_GPL(tda826x_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -525,7 +525,7 @@ struct dvb_frontend *ts2020_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(ts2020_attach);
|
||||
EXPORT_SYMBOL_GPL(ts2020_attach);
|
||||
|
||||
/*
|
||||
* We implement own regmap locking due to legacy DVB attach which uses frontend
|
||||
|
@ -186,7 +186,7 @@ struct dvb_frontend *tua6100_attach(struct dvb_frontend *fe, int addr, struct i2
|
||||
fe->tuner_priv = priv;
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(tua6100_attach);
|
||||
EXPORT_SYMBOL_GPL(tua6100_attach);
|
||||
|
||||
MODULE_DESCRIPTION("DVB tua6100 driver");
|
||||
MODULE_AUTHOR("Andrew de Quincey");
|
||||
|
@ -434,4 +434,4 @@ MODULE_DESCRIPTION("VLSI VES1820 DVB-C Demodulator driver");
|
||||
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(ves1820_attach);
|
||||
EXPORT_SYMBOL_GPL(ves1820_attach);
|
||||
|
@ -540,4 +540,4 @@ MODULE_DESCRIPTION("VLSI VES1x93 DVB-S Demodulator driver");
|
||||
MODULE_AUTHOR("Ralph Metzler");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(ves1x93_attach);
|
||||
EXPORT_SYMBOL_GPL(ves1x93_attach);
|
||||
|
@ -496,7 +496,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(zl10036_attach);
|
||||
EXPORT_SYMBOL_GPL(zl10036_attach);
|
||||
|
||||
module_param_named(debug, zl10036_debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -295,7 +295,7 @@ error:
|
||||
kfree(state);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(zl10039_attach);
|
||||
EXPORT_SYMBOL_GPL(zl10039_attach);
|
||||
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
|
||||
|
@ -665,4 +665,4 @@ MODULE_DESCRIPTION("Zarlink ZL10353 DVB-T demodulator driver");
|
||||
MODULE_AUTHOR("Chris Pascoe");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
EXPORT_SYMBOL(zl10353_attach);
|
||||
EXPORT_SYMBOL_GPL(zl10353_attach);
|
||||
|
@ -1722,7 +1722,7 @@ struct dst_state *dst_attach(struct dst_state *state, struct dvb_adapter *dvb_ad
|
||||
return state; /* Manu (DST is a card not a frontend) */
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dst_attach);
|
||||
EXPORT_SYMBOL_GPL(dst_attach);
|
||||
|
||||
static const struct dvb_frontend_ops dst_dvbt_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
|
@ -668,7 +668,7 @@ struct dvb_device *dst_ca_attach(struct dst_state *dst, struct dvb_adapter *dvb_
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dst_ca_attach);
|
||||
EXPORT_SYMBOL_GPL(dst_ca_attach);
|
||||
|
||||
MODULE_DESCRIPTION("DST DVB-S/T/C Combo CA driver");
|
||||
MODULE_AUTHOR("Manu Abraham");
|
||||
|
@ -112,7 +112,7 @@ struct dvb_frontend *ddbridge_dummy_fe_qam_attach(void)
|
||||
state->frontend.demodulator_priv = state;
|
||||
return &state->frontend;
|
||||
}
|
||||
EXPORT_SYMBOL(ddbridge_dummy_fe_qam_attach);
|
||||
EXPORT_SYMBOL_GPL(ddbridge_dummy_fe_qam_attach);
|
||||
|
||||
static const struct dvb_frontend_ops ddbridge_dummy_fe_qam_ops = {
|
||||
.delsys = { SYS_DVBC_ANNEX_A },
|
||||
|
@ -499,7 +499,7 @@ struct dvb_frontend *fc0011_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(fc0011_attach);
|
||||
EXPORT_SYMBOL_GPL(fc0011_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Fitipower FC0011 silicon tuner driver");
|
||||
MODULE_AUTHOR("Michael Buesch <m@bues.ch>");
|
||||
|
@ -495,7 +495,7 @@ err:
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(fc0012_attach);
|
||||
EXPORT_SYMBOL_GPL(fc0012_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Fitipower FC0012 silicon tuner driver");
|
||||
MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>");
|
||||
|
@ -608,7 +608,7 @@ struct dvb_frontend *fc0013_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(fc0013_attach);
|
||||
EXPORT_SYMBOL_GPL(fc0013_attach);
|
||||
|
||||
MODULE_DESCRIPTION("Fitipower FC0013 silicon tuner driver");
|
||||
MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>");
|
||||
|
@ -410,7 +410,7 @@ struct dvb_frontend *max2165_attach(struct dvb_frontend *fe,
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(max2165_attach);
|
||||
EXPORT_SYMBOL_GPL(max2165_attach);
|
||||
|
||||
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
|
||||
MODULE_DESCRIPTION("Maxim MAX2165 silicon tuner driver");
|
||||
|
@ -356,7 +356,7 @@ error:
|
||||
kfree(priv);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(mc44s803_attach);
|
||||
EXPORT_SYMBOL_GPL(mc44s803_attach);
|
||||
|
||||
MODULE_AUTHOR("Jochen Friedrich");
|
||||
MODULE_DESCRIPTION("Freescale MC44S803 silicon tuner driver");
|
||||
|
@ -440,7 +440,7 @@ struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter
|
||||
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(mt2060_attach);
|
||||
EXPORT_SYMBOL_GPL(mt2060_attach);
|
||||
|
||||
static int mt2060_probe(struct i2c_client *client)
|
||||
{
|
||||
|
@ -274,7 +274,7 @@ struct dvb_frontend * mt2131_attach(struct dvb_frontend *fe,
|
||||
fe->tuner_priv = priv;
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(mt2131_attach);
|
||||
EXPORT_SYMBOL_GPL(mt2131_attach);
|
||||
|
||||
MODULE_AUTHOR("Steven Toth");
|
||||
MODULE_DESCRIPTION("Microtune MT2131 silicon tuner driver");
|
||||
|
@ -336,7 +336,7 @@ struct dvb_frontend * mt2266_attach(struct dvb_frontend *fe, struct i2c_adapter
|
||||
mt2266_calibrate(priv);
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(mt2266_attach);
|
||||
EXPORT_SYMBOL_GPL(mt2266_attach);
|
||||
|
||||
MODULE_AUTHOR("Olivier DANET");
|
||||
MODULE_DESCRIPTION("Microtune MT2266 silicon tuner driver");
|
||||
|
@ -4120,7 +4120,7 @@ struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
|
||||
fe->tuner_priv = state;
|
||||
return fe;
|
||||
}
|
||||
EXPORT_SYMBOL(mxl5005s_attach);
|
||||
EXPORT_SYMBOL_GPL(mxl5005s_attach);
|
||||
|
||||
MODULE_DESCRIPTION("MaxLinear MXL5005S silicon tuner driver");
|
||||
MODULE_AUTHOR("Steven Toth");
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user