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 commit 9011e49d54 ("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 commit 9011e49d54 ("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:
Linus Torvalds 2023-09-09 11:49:05 -07:00
commit 6b41fb277e
106 changed files with 113 additions and 113 deletions

View File

@ -533,7 +533,7 @@ struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c); priv->i2c_address, priv->i2c);
return fe; return fe;
} }
EXPORT_SYMBOL(ascot2e_attach); EXPORT_SYMBOL_GPL(ascot2e_attach);
MODULE_DESCRIPTION("Sony ASCOT2E terr/cab tuner driver"); MODULE_DESCRIPTION("Sony ASCOT2E terr/cab tuner driver");
MODULE_AUTHOR("info@netup.ru"); MODULE_AUTHOR("info@netup.ru");

View File

@ -489,7 +489,7 @@ error_out:
return NULL; return NULL;
} }
EXPORT_SYMBOL(atbm8830_attach); EXPORT_SYMBOL_GPL(atbm8830_attach);
MODULE_DESCRIPTION("AltoBeam ATBM8830/8831 GB20600 demodulator driver"); MODULE_DESCRIPTION("AltoBeam ATBM8830/8831 GB20600 demodulator driver");
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>"); MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");

View File

@ -879,7 +879,7 @@ error:
au8522_release_state(state); au8522_release_state(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(au8522_attach); EXPORT_SYMBOL_GPL(au8522_attach);
static const struct dvb_frontend_ops au8522_ops = { static const struct dvb_frontend_ops au8522_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -835,7 +835,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(bcm3510_attach); EXPORT_SYMBOL_GPL(bcm3510_attach);
static const struct dvb_frontend_ops bcm3510_ops = { static const struct dvb_frontend_ops bcm3510_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -432,4 +432,4 @@ MODULE_DESCRIPTION("Conexant CX22700 DVB-T Demodulator driver");
MODULE_AUTHOR("Holger Waechtler"); MODULE_AUTHOR("Holger Waechtler");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(cx22700_attach); EXPORT_SYMBOL_GPL(cx22700_attach);

View File

@ -604,7 +604,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(cx22702_attach); EXPORT_SYMBOL_GPL(cx22702_attach);
static const struct dvb_frontend_ops cx22702_ops = { static const struct dvb_frontend_ops cx22702_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -653,4 +653,4 @@ MODULE_DESCRIPTION("Conexant CX24110 DVB-S Demodulator driver");
MODULE_AUTHOR("Peter Hettkamp"); MODULE_AUTHOR("Peter Hettkamp");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(cx24110_attach); EXPORT_SYMBOL_GPL(cx24110_attach);

View File

@ -590,7 +590,7 @@ error:
return NULL; return NULL;
} }
EXPORT_SYMBOL(cx24113_attach); EXPORT_SYMBOL_GPL(cx24113_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");

View File

@ -1133,7 +1133,7 @@ struct dvb_frontend *cx24116_attach(const struct cx24116_config *config,
state->frontend.demodulator_priv = state; state->frontend.demodulator_priv = state;
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(cx24116_attach); EXPORT_SYMBOL_GPL(cx24116_attach);
/* /*
* Initialise or wake up device * Initialise or wake up device

View File

@ -305,7 +305,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(cx24120_attach); EXPORT_SYMBOL_GPL(cx24120_attach);
static int cx24120_test_rom(struct cx24120_state *state) static int cx24120_test_rom(struct cx24120_state *state)
{ {

View File

@ -1096,7 +1096,7 @@ error:
return NULL; return NULL;
} }
EXPORT_SYMBOL(cx24123_attach); EXPORT_SYMBOL_GPL(cx24123_attach);
static const struct dvb_frontend_ops cx24123_ops = { static const struct dvb_frontend_ops cx24123_ops = {
.delsys = { SYS_DVBS }, .delsys = { SYS_DVBS },

View File

@ -536,7 +536,7 @@ struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *config,
return pdata.get_dvb_frontend(client); 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) static struct dvb_frontend *cxd2820r_get_dvb_frontend(struct i2c_client *client)
{ {

View File

@ -3930,14 +3930,14 @@ struct dvb_frontend *cxd2841er_attach_s(struct cxd2841er_config *cfg,
{ {
return cxd2841er_attach(cfg, i2c, SYS_DVBS); 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 dvb_frontend *cxd2841er_attach_t_c(struct cxd2841er_config *cfg,
struct i2c_adapter *i2c) struct i2c_adapter *i2c)
{ {
return cxd2841er_attach(cfg, i2c, 0); 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 = { static const struct dvb_frontend_ops cxd2841er_dvbs_s2_ops = {
.delsys = { SYS_DVBS, SYS_DVBS2 }, .delsys = { SYS_DVBS, SYS_DVBS2 },

View File

@ -1950,7 +1950,7 @@ struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(cxd2880_attach); EXPORT_SYMBOL_GPL(cxd2880_attach);
MODULE_DESCRIPTION("Sony CXD2880 DVB-T2/T tuner + demod driver"); MODULE_DESCRIPTION("Sony CXD2880 DVB-T2/T tuner + demod driver");
MODULE_AUTHOR("Sony Semiconductor Solutions Corporation"); MODULE_AUTHOR("Sony Semiconductor Solutions Corporation");

View File

@ -762,7 +762,7 @@ free_mem:
fe->tuner_priv = NULL; fe->tuner_priv = NULL;
return NULL; return NULL;
} }
EXPORT_SYMBOL(dib0070_attach); EXPORT_SYMBOL_GPL(dib0070_attach);
MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>"); MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_DESCRIPTION("Driver for the DiBcom 0070 base-band RF Tuner"); MODULE_DESCRIPTION("Driver for the DiBcom 0070 base-band RF Tuner");

View File

@ -2634,7 +2634,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
return NULL; 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) 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; fe->tuner_priv = NULL;
return NULL; return NULL;
} }
EXPORT_SYMBOL(dib0090_fw_register); EXPORT_SYMBOL_GPL(dib0090_fw_register);
MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>"); MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_AUTHOR("Olivier Grenie <olivier.grenie@parrot.com>"); MODULE_AUTHOR("Olivier Grenie <olivier.grenie@parrot.com>");

View File

@ -815,4 +815,4 @@ MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC); MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(dib3000mb_attach); EXPORT_SYMBOL_GPL(dib3000mb_attach);

View File

@ -935,7 +935,7 @@ error:
kfree(st); kfree(st);
return NULL; return NULL;
} }
EXPORT_SYMBOL(dib3000mc_attach); EXPORT_SYMBOL_GPL(dib3000mc_attach);
static const struct dvb_frontend_ops dib3000mc_ops = { static const struct dvb_frontend_ops dib3000mc_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -1434,7 +1434,7 @@ error:
kfree(st); kfree(st);
return NULL; return NULL;
} }
EXPORT_SYMBOL(dib7000m_attach); EXPORT_SYMBOL_GPL(dib7000m_attach);
static const struct dvb_frontend_ops dib7000m_ops = { static const struct dvb_frontend_ops dib7000m_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -2822,7 +2822,7 @@ void *dib7000p_attach(struct dib7000p_ops *ops)
return ops; return ops;
} }
EXPORT_SYMBOL(dib7000p_attach); EXPORT_SYMBOL_GPL(dib7000p_attach);
static const struct dvb_frontend_ops dib7000p_ops = { static const struct dvb_frontend_ops dib7000p_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -4527,7 +4527,7 @@ void *dib8000_attach(struct dib8000_ops *ops)
return 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_AUTHOR("Olivier Grenie <Olivier.Grenie@parrot.com, Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_DESCRIPTION("Driver for the DiBcom 8000 ISDB-T demodulator"); MODULE_DESCRIPTION("Driver for the DiBcom 8000 ISDB-T demodulator");

View File

@ -2546,7 +2546,7 @@ error:
kfree(st); kfree(st);
return NULL; return NULL;
} }
EXPORT_SYMBOL(dib9000_attach); EXPORT_SYMBOL_GPL(dib9000_attach);
static const struct dvb_frontend_ops dib9000_ops = { static const struct dvb_frontend_ops dib9000_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -12372,7 +12372,7 @@ error:
return NULL; return NULL;
} }
EXPORT_SYMBOL(drx39xxj_attach); EXPORT_SYMBOL_GPL(drx39xxj_attach);
static const struct dvb_frontend_ops drx39xxj_ops = { static const struct dvb_frontend_ops drx39xxj_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -2939,7 +2939,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(drxd_attach); EXPORT_SYMBOL_GPL(drxd_attach);
MODULE_DESCRIPTION("DRXD driver"); MODULE_DESCRIPTION("DRXD driver");
MODULE_AUTHOR("Micronas"); MODULE_AUTHOR("Micronas");

View File

@ -6814,7 +6814,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(drxk_attach); EXPORT_SYMBOL_GPL(drxk_attach);
MODULE_DESCRIPTION("DRX-K driver"); MODULE_DESCRIPTION("DRX-K driver");
MODULE_AUTHOR("Ralph Metzler"); MODULE_AUTHOR("Ralph Metzler");

View File

@ -859,7 +859,7 @@ struct dvb_frontend *ds3000_attach(const struct ds3000_config *config,
ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF); ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF);
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(ds3000_attach); EXPORT_SYMBOL_GPL(ds3000_attach);
static int ds3000_set_carrier_offset(struct dvb_frontend *fe, static int ds3000_set_carrier_offset(struct dvb_frontend *fe,
s32 carrier_offset_khz) s32 carrier_offset_khz)

View File

@ -866,7 +866,7 @@ out:
return NULL; return NULL;
} }
EXPORT_SYMBOL(dvb_pll_attach); EXPORT_SYMBOL_GPL(dvb_pll_attach);
static int static int

View File

@ -299,7 +299,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(ec100_attach); EXPORT_SYMBOL_GPL(ec100_attach);
static const struct dvb_frontend_ops ec100_ops = { static const struct dvb_frontend_ops ec100_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -1025,7 +1025,7 @@ struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c); priv->i2c_address, priv->i2c);
return fe; return fe;
} }
EXPORT_SYMBOL(helene_attach_s); EXPORT_SYMBOL_GPL(helene_attach_s);
struct dvb_frontend *helene_attach(struct dvb_frontend *fe, struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
const struct helene_config *config, const struct helene_config *config,
@ -1061,7 +1061,7 @@ struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c); priv->i2c_address, priv->i2c);
return fe; return fe;
} }
EXPORT_SYMBOL(helene_attach); EXPORT_SYMBOL_GPL(helene_attach);
static int helene_probe(struct i2c_client *client) static int helene_probe(struct i2c_client *client)
{ {

View File

@ -395,7 +395,7 @@ struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c); priv->i2c_address, priv->i2c);
return fe; return fe;
} }
EXPORT_SYMBOL(horus3a_attach); EXPORT_SYMBOL_GPL(horus3a_attach);
MODULE_DESCRIPTION("Sony HORUS3A satellite tuner driver"); MODULE_DESCRIPTION("Sony HORUS3A satellite tuner driver");
MODULE_AUTHOR("Sergey Kozlov <serjk@netup.ru>"); MODULE_AUTHOR("Sergey Kozlov <serjk@netup.ru>");

View File

@ -141,7 +141,7 @@ struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe, struct i2c_adapter
return fe; return fe;
} }
EXPORT_SYMBOL(isl6405_attach); EXPORT_SYMBOL_GPL(isl6405_attach);
MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6405"); MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6405");
MODULE_AUTHOR("Hartmut Hackmann & Oliver Endriss"); MODULE_AUTHOR("Hartmut Hackmann & Oliver Endriss");

View File

@ -213,7 +213,7 @@ struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter
return fe; return fe;
} }
EXPORT_SYMBOL(isl6421_attach); EXPORT_SYMBOL_GPL(isl6421_attach);
MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421"); MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421");
MODULE_AUTHOR("Andrew de Quincey & Oliver Endriss"); MODULE_AUTHOR("Andrew de Quincey & Oliver Endriss");

View File

@ -289,7 +289,7 @@ exit:
fe->sec_priv = NULL; fe->sec_priv = NULL;
return NULL; return NULL;
} }
EXPORT_SYMBOL(isl6423_attach); EXPORT_SYMBOL_GPL(isl6423_attach);
MODULE_DESCRIPTION("ISL6423 SEC"); MODULE_DESCRIPTION("ISL6423 SEC");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");

View File

@ -389,7 +389,7 @@ struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter
return fe; return fe;
} }
EXPORT_SYMBOL(itd1000_attach); EXPORT_SYMBOL_GPL(itd1000_attach);
MODULE_AUTHOR("Patrick Boettcher <pb@linuxtv.org>"); MODULE_AUTHOR("Patrick Boettcher <pb@linuxtv.org>");
MODULE_DESCRIPTION("Integrant ITD1000 driver"); MODULE_DESCRIPTION("Integrant ITD1000 driver");

View File

@ -302,7 +302,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(ix2505v_attach); EXPORT_SYMBOL_GPL(ix2505v_attach);
module_param_named(debug, ix2505v_debug, int, 0644); module_param_named(debug, ix2505v_debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -593,4 +593,4 @@ MODULE_DESCRIPTION("LSI L64781 DVB-T Demodulator driver");
MODULE_AUTHOR("Holger Waechtler, Marko Kohtala"); MODULE_AUTHOR("Holger Waechtler, Marko Kohtala");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(l64781_attach); EXPORT_SYMBOL_GPL(l64781_attach);

View File

@ -1426,7 +1426,7 @@ struct dvb_frontend *lg2160_attach(const struct lg2160_config *config,
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(lg2160_attach); EXPORT_SYMBOL_GPL(lg2160_attach);
MODULE_DESCRIPTION("LG Electronics LG216x ATSC/MH Demodulator Driver"); MODULE_DESCRIPTION("LG Electronics LG216x ATSC/MH Demodulator Driver");
MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>"); MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>");

View File

@ -1148,7 +1148,7 @@ fail:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(lgdt3305_attach); EXPORT_SYMBOL_GPL(lgdt3305_attach);
static const struct dvb_frontend_ops lgdt3304_ops = { static const struct dvb_frontend_ops lgdt3304_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -1859,7 +1859,7 @@ fail:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(lgdt3306a_attach); EXPORT_SYMBOL_GPL(lgdt3306a_attach);
#ifdef DBG_DUMP #ifdef DBG_DUMP

View File

@ -927,7 +927,7 @@ struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *_config,
return lgdt330x_get_dvb_frontend(client); return lgdt330x_get_dvb_frontend(client);
} }
EXPORT_SYMBOL(lgdt330x_attach); EXPORT_SYMBOL_GPL(lgdt330x_attach);
static const struct dvb_frontend_ops lgdt3302_ops = { static const struct dvb_frontend_ops lgdt3302_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -1043,7 +1043,7 @@ error_out:
return NULL; return NULL;
} }
EXPORT_SYMBOL(lgs8gxx_attach); EXPORT_SYMBOL_GPL(lgs8gxx_attach);
MODULE_DESCRIPTION("Legend Silicon LGS8913/LGS8GXX DMB-TH demodulator driver"); MODULE_DESCRIPTION("Legend Silicon LGS8913/LGS8GXX DMB-TH demodulator driver");
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>"); MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");

View File

@ -173,7 +173,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
__func__, priv->i2c_address); __func__, priv->i2c_address);
return fe; return fe;
} }
EXPORT_SYMBOL(lnbh25_attach); EXPORT_SYMBOL_GPL(lnbh25_attach);
MODULE_DESCRIPTION("ST LNBH25 driver"); MODULE_DESCRIPTION("ST LNBH25 driver");
MODULE_AUTHOR("info@netup.ru"); MODULE_AUTHOR("info@netup.ru");

View File

@ -155,7 +155,7 @@ struct dvb_frontend *lnbh24_attach(struct dvb_frontend *fe,
return lnbx2x_attach(fe, i2c, override_set, override_clear, return lnbx2x_attach(fe, i2c, override_set, override_clear,
i2c_addr, LNBH24_TTX); i2c_addr, LNBH24_TTX);
} }
EXPORT_SYMBOL(lnbh24_attach); EXPORT_SYMBOL_GPL(lnbh24_attach);
struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c, u8 override_set, 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, return lnbx2x_attach(fe, i2c, override_set, override_clear,
0x08, LNBP21_ISEL); 0x08, LNBP21_ISEL);
} }
EXPORT_SYMBOL(lnbp21_attach); EXPORT_SYMBOL_GPL(lnbp21_attach);
MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp21, lnbh24"); MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp21, lnbh24");
MODULE_AUTHOR("Oliver Endriss, Igor M. Liplianin"); MODULE_AUTHOR("Oliver Endriss, Igor M. Liplianin");

View File

@ -125,7 +125,7 @@ struct dvb_frontend *lnbp22_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(lnbp22_attach); EXPORT_SYMBOL_GPL(lnbp22_attach);
MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp22"); MODULE_DESCRIPTION("Driver for lnb supply and control ic lnbp22");
MODULE_AUTHOR("Dominik Kuhlen"); MODULE_AUTHOR("Dominik Kuhlen");

View File

@ -1695,7 +1695,7 @@ struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *cfg,
*tuner_i2c_adapter = pdata.get_i2c_adapter(client); *tuner_i2c_adapter = pdata.get_i2c_adapter(client);
return pdata.get_dvb_frontend(client); return pdata.get_dvb_frontend(client);
} }
EXPORT_SYMBOL(m88ds3103_attach); EXPORT_SYMBOL_GPL(m88ds3103_attach);
static const struct dvb_frontend_ops m88ds3103_ops = { static const struct dvb_frontend_ops m88ds3103_ops = {
.delsys = {SYS_DVBS, SYS_DVBS2}, .delsys = {SYS_DVBS, SYS_DVBS2},

View File

@ -808,7 +808,7 @@ error:
return NULL; return NULL;
} }
EXPORT_SYMBOL(m88rs2000_attach); EXPORT_SYMBOL_GPL(m88rs2000_attach);
MODULE_DESCRIPTION("M88RS2000 DVB-S Demodulator driver"); MODULE_DESCRIPTION("M88RS2000 DVB-S Demodulator driver");
MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com"); MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");

View File

@ -1853,6 +1853,6 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(mb86a16_attach); EXPORT_SYMBOL_GPL(mb86a16_attach);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");

View File

@ -2078,7 +2078,7 @@ struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
dev_info(&i2c->dev, "Detected a Fujitsu mb86a20s frontend\n"); dev_info(&i2c->dev, "Detected a Fujitsu mb86a20s frontend\n");
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(mb86a20s_attach); EXPORT_SYMBOL_GPL(mb86a20s_attach);
static const struct dvb_frontend_ops mb86a20s_ops = { static const struct dvb_frontend_ops mb86a20s_ops = {
.delsys = { SYS_ISDBT }, .delsys = { SYS_ISDBT },

View File

@ -827,7 +827,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(mt312_attach); EXPORT_SYMBOL_GPL(mt312_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -593,4 +593,4 @@ MODULE_DESCRIPTION("Zarlink MT352 DVB-T Demodulator driver");
MODULE_AUTHOR("Holger Waechtler, Daniel Mack, Antonio Mancuso"); MODULE_AUTHOR("Holger Waechtler, Daniel Mack, Antonio Mancuso");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(mt352_attach); EXPORT_SYMBOL_GPL(mt352_attach);

View File

@ -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_AUTHOR("Kirk Lapray, Michael Krufky, Jean-Francois Thibert, and Taylor Jacob");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(nxt200x_attach); EXPORT_SYMBOL_GPL(nxt200x_attach);

View File

@ -621,4 +621,4 @@ MODULE_DESCRIPTION("NxtWave NXT6000 DVB-T demodulator driver");
MODULE_AUTHOR("Florian Schirmer"); MODULE_AUTHOR("Florian Schirmer");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(nxt6000_attach); EXPORT_SYMBOL_GPL(nxt6000_attach);

View File

@ -605,4 +605,4 @@ MODULE_AUTHOR("Kirk Lapray");
MODULE_AUTHOR("Trent Piepho"); MODULE_AUTHOR("Trent Piepho");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(or51132_attach); EXPORT_SYMBOL_GPL(or51132_attach);

View File

@ -551,5 +551,5 @@ MODULE_DESCRIPTION("Oren OR51211 VSB [pcHDTV HD-2000] Demodulator Driver");
MODULE_AUTHOR("Kirk Lapray"); MODULE_AUTHOR("Kirk Lapray");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(or51211_attach); EXPORT_SYMBOL_GPL(or51211_attach);

View File

@ -981,7 +981,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(s5h1409_attach); EXPORT_SYMBOL_GPL(s5h1409_attach);
static const struct dvb_frontend_ops s5h1409_ops = { static const struct dvb_frontend_ops s5h1409_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -900,7 +900,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(s5h1411_attach); EXPORT_SYMBOL_GPL(s5h1411_attach);
static const struct dvb_frontend_ops s5h1411_ops = { static const struct dvb_frontend_ops s5h1411_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },

View File

@ -918,7 +918,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(s5h1420_attach); EXPORT_SYMBOL_GPL(s5h1420_attach);
static const struct dvb_frontend_ops s5h1420_ops = { static const struct dvb_frontend_ops s5h1420_ops = {
.delsys = { SYS_DVBS }, .delsys = { SYS_DVBS },

View File

@ -355,7 +355,7 @@ struct dvb_frontend *s5h1432_attach(const struct s5h1432_config *config,
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(s5h1432_attach); EXPORT_SYMBOL_GPL(s5h1432_attach);
static const struct dvb_frontend_ops s5h1432_ops = { static const struct dvb_frontend_ops s5h1432_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -495,7 +495,7 @@ struct dvb_frontend *s921_attach(const struct s921_config *config,
return &state->frontend; return &state->frontend;
} }
EXPORT_SYMBOL(s921_attach); EXPORT_SYMBOL_GPL(s921_attach);
static const struct dvb_frontend_ops s921_ops = { static const struct dvb_frontend_ops s921_ops = {
.delsys = { SYS_ISDBT }, .delsys = { SYS_ISDBT },

View File

@ -937,7 +937,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(si21xx_attach); EXPORT_SYMBOL_GPL(si21xx_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -624,4 +624,4 @@ MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
MODULE_DESCRIPTION("Spase sp887x DVB-T demodulator driver"); MODULE_DESCRIPTION("Spase sp887x DVB-T demodulator driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(sp887x_attach); EXPORT_SYMBOL_GPL(sp887x_attach);

View File

@ -1638,7 +1638,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stb0899_attach); EXPORT_SYMBOL_GPL(stb0899_attach);
MODULE_PARM_DESC(verbose, "Set Verbosity level"); MODULE_PARM_DESC(verbose, "Set Verbosity level");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");
MODULE_DESCRIPTION("STB0899 Multi-Std frontend"); MODULE_DESCRIPTION("STB0899 Multi-Std frontend");

View File

@ -232,7 +232,7 @@ struct dvb_frontend *stb6000_attach(struct dvb_frontend *fe, int addr,
return fe; return fe;
} }
EXPORT_SYMBOL(stb6000_attach); EXPORT_SYMBOL_GPL(stb6000_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -557,7 +557,7 @@ static void stb6100_release(struct dvb_frontend *fe)
kfree(state); kfree(state);
} }
EXPORT_SYMBOL(stb6100_attach); EXPORT_SYMBOL_GPL(stb6100_attach);
MODULE_PARM_DESC(verbose, "Set Verbosity level"); MODULE_PARM_DESC(verbose, "Set Verbosity level");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");

View File

@ -590,7 +590,7 @@ error:
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv0288_attach); EXPORT_SYMBOL_GPL(stv0288_attach);
module_param(debug_legacy_dish_switch, int, 0444); module_param(debug_legacy_dish_switch, int, 0444);
MODULE_PARM_DESC(debug_legacy_dish_switch, MODULE_PARM_DESC(debug_legacy_dish_switch,

View File

@ -710,4 +710,4 @@ MODULE_DESCRIPTION("ST STV0297 DVB-C Demodulator driver");
MODULE_AUTHOR("Dennis Noermann and Andrew de Quincey"); MODULE_AUTHOR("Dennis Noermann and Andrew de Quincey");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(stv0297_attach); EXPORT_SYMBOL_GPL(stv0297_attach);

View File

@ -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_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, Andreas Oberritter, Andrew de Quincey, Kenneth Aafly");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(stv0299_attach); EXPORT_SYMBOL_GPL(stv0299_attach);

View File

@ -1750,7 +1750,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv0367ter_attach); EXPORT_SYMBOL_GPL(stv0367ter_attach);
static int stv0367cab_gate_ctrl(struct dvb_frontend *fe, int enable) static int stv0367cab_gate_ctrl(struct dvb_frontend *fe, int enable)
{ {
@ -2919,7 +2919,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv0367cab_attach); EXPORT_SYMBOL_GPL(stv0367cab_attach);
/* /*
* Functions for operation on Digital Devices hardware * Functions for operation on Digital Devices hardware
@ -3340,7 +3340,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv0367ddb_attach); EXPORT_SYMBOL_GPL(stv0367ddb_attach);
MODULE_PARM_DESC(debug, "Set debug"); MODULE_PARM_DESC(debug, "Set debug");
MODULE_PARM_DESC(i2c_debug, "Set i2c debug"); MODULE_PARM_DESC(i2c_debug, "Set i2c debug");

View File

@ -1957,7 +1957,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv0900_attach); EXPORT_SYMBOL_GPL(stv0900_attach);
MODULE_PARM_DESC(debug, "Set debug"); MODULE_PARM_DESC(debug, "Set debug");

View File

@ -5071,7 +5071,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(stv090x_attach); EXPORT_SYMBOL_GPL(stv090x_attach);
static const struct i2c_device_id stv090x_id_table[] = { static const struct i2c_device_id stv090x_id_table[] = {
{"stv090x", 0}, {"stv090x", 0},

View File

@ -427,7 +427,7 @@ struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(stv6110_attach); EXPORT_SYMBOL_GPL(stv6110_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -467,7 +467,7 @@ const struct stv6110x_devctl *stv6110x_attach(struct dvb_frontend *fe,
dev_info(&stv6110x->i2c->dev, "Attaching STV6110x\n"); dev_info(&stv6110x->i2c->dev, "Attaching STV6110x\n");
return stv6110x->devctl; return stv6110x->devctl;
} }
EXPORT_SYMBOL(stv6110x_attach); EXPORT_SYMBOL_GPL(stv6110x_attach);
static const struct i2c_device_id stv6110x_id_table[] = { static const struct i2c_device_id stv6110x_id_table[] = {
{"stv6110x", 0}, {"stv6110x", 0},

View File

@ -523,4 +523,4 @@ MODULE_DESCRIPTION("Philips TDA10021 DVB-C demodulator driver");
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Markus Schulz"); MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Markus Schulz");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(tda10021_attach); EXPORT_SYMBOL_GPL(tda10021_attach);

View File

@ -594,4 +594,4 @@ MODULE_DESCRIPTION("Philips TDA10023 DVB-C demodulator driver");
MODULE_AUTHOR("Georg Acher, Hartmut Birr"); MODULE_AUTHOR("Georg Acher, Hartmut Birr");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(tda10023_attach); EXPORT_SYMBOL_GPL(tda10023_attach);

View File

@ -1138,7 +1138,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(tda10048_attach); EXPORT_SYMBOL_GPL(tda10048_attach);
static const struct dvb_frontend_ops tda10048_ops = { static const struct dvb_frontend_ops tda10048_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -1378,5 +1378,5 @@ MODULE_DESCRIPTION("Philips TDA10045H & TDA10046H DVB-T Demodulator");
MODULE_AUTHOR("Andrew de Quincey & Robert Schlabbach"); MODULE_AUTHOR("Andrew de Quincey & Robert Schlabbach");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(tda10045_attach); EXPORT_SYMBOL_GPL(tda10045_attach);
EXPORT_SYMBOL(tda10046_attach); EXPORT_SYMBOL_GPL(tda10046_attach);

View File

@ -764,4 +764,4 @@ MODULE_DESCRIPTION("Philips TDA10086 DVB-S Demodulator");
MODULE_AUTHOR("Andrew de Quincey"); MODULE_AUTHOR("Andrew de Quincey");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(tda10086_attach); EXPORT_SYMBOL_GPL(tda10086_attach);

View File

@ -227,7 +227,7 @@ struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(tda665x_attach); EXPORT_SYMBOL_GPL(tda665x_attach);
MODULE_DESCRIPTION("TDA665x driver"); MODULE_DESCRIPTION("TDA665x driver");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");

View File

@ -481,4 +481,4 @@ MODULE_DESCRIPTION("Philips TDA8083 DVB-S Demodulator");
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler"); MODULE_AUTHOR("Ralph Metzler, Holger Waechtler");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(tda8083_attach); EXPORT_SYMBOL_GPL(tda8083_attach);

View File

@ -188,7 +188,7 @@ exit:
return NULL; return NULL;
} }
EXPORT_SYMBOL(tda8261_attach); EXPORT_SYMBOL_GPL(tda8261_attach);
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");
MODULE_DESCRIPTION("TDA8261 8PSK/QPSK Tuner"); MODULE_DESCRIPTION("TDA8261 8PSK/QPSK Tuner");

View File

@ -164,7 +164,7 @@ struct dvb_frontend *tda826x_attach(struct dvb_frontend *fe, int addr, struct i2
return fe; return fe;
} }
EXPORT_SYMBOL(tda826x_attach); EXPORT_SYMBOL_GPL(tda826x_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -525,7 +525,7 @@ struct dvb_frontend *ts2020_attach(struct dvb_frontend *fe,
return 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 * We implement own regmap locking due to legacy DVB attach which uses frontend

View File

@ -186,7 +186,7 @@ struct dvb_frontend *tua6100_attach(struct dvb_frontend *fe, int addr, struct i2
fe->tuner_priv = priv; fe->tuner_priv = priv;
return fe; return fe;
} }
EXPORT_SYMBOL(tua6100_attach); EXPORT_SYMBOL_GPL(tua6100_attach);
MODULE_DESCRIPTION("DVB tua6100 driver"); MODULE_DESCRIPTION("DVB tua6100 driver");
MODULE_AUTHOR("Andrew de Quincey"); MODULE_AUTHOR("Andrew de Quincey");

View File

@ -434,4 +434,4 @@ MODULE_DESCRIPTION("VLSI VES1820 DVB-C Demodulator driver");
MODULE_AUTHOR("Ralph Metzler, Holger Waechtler"); MODULE_AUTHOR("Ralph Metzler, Holger Waechtler");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(ves1820_attach); EXPORT_SYMBOL_GPL(ves1820_attach);

View File

@ -540,4 +540,4 @@ MODULE_DESCRIPTION("VLSI VES1x93 DVB-S Demodulator driver");
MODULE_AUTHOR("Ralph Metzler"); MODULE_AUTHOR("Ralph Metzler");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(ves1x93_attach); EXPORT_SYMBOL_GPL(ves1x93_attach);

View File

@ -496,7 +496,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(zl10036_attach); EXPORT_SYMBOL_GPL(zl10036_attach);
module_param_named(debug, zl10036_debug, int, 0644); module_param_named(debug, zl10036_debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -295,7 +295,7 @@ error:
kfree(state); kfree(state);
return NULL; return NULL;
} }
EXPORT_SYMBOL(zl10039_attach); EXPORT_SYMBOL_GPL(zl10039_attach);
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");

View File

@ -665,4 +665,4 @@ MODULE_DESCRIPTION("Zarlink ZL10353 DVB-T demodulator driver");
MODULE_AUTHOR("Chris Pascoe"); MODULE_AUTHOR("Chris Pascoe");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(zl10353_attach); EXPORT_SYMBOL_GPL(zl10353_attach);

View File

@ -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) */ 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 = { static const struct dvb_frontend_ops dst_dvbt_ops = {
.delsys = { SYS_DVBT }, .delsys = { SYS_DVBT },

View File

@ -668,7 +668,7 @@ struct dvb_device *dst_ca_attach(struct dst_state *dst, struct dvb_adapter *dvb_
return NULL; return NULL;
} }
EXPORT_SYMBOL(dst_ca_attach); EXPORT_SYMBOL_GPL(dst_ca_attach);
MODULE_DESCRIPTION("DST DVB-S/T/C Combo CA driver"); MODULE_DESCRIPTION("DST DVB-S/T/C Combo CA driver");
MODULE_AUTHOR("Manu Abraham"); MODULE_AUTHOR("Manu Abraham");

View File

@ -112,7 +112,7 @@ struct dvb_frontend *ddbridge_dummy_fe_qam_attach(void)
state->frontend.demodulator_priv = state; state->frontend.demodulator_priv = state;
return &state->frontend; 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 = { static const struct dvb_frontend_ops ddbridge_dummy_fe_qam_ops = {
.delsys = { SYS_DVBC_ANNEX_A }, .delsys = { SYS_DVBC_ANNEX_A },

View File

@ -499,7 +499,7 @@ struct dvb_frontend *fc0011_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(fc0011_attach); EXPORT_SYMBOL_GPL(fc0011_attach);
MODULE_DESCRIPTION("Fitipower FC0011 silicon tuner driver"); MODULE_DESCRIPTION("Fitipower FC0011 silicon tuner driver");
MODULE_AUTHOR("Michael Buesch <m@bues.ch>"); MODULE_AUTHOR("Michael Buesch <m@bues.ch>");

View File

@ -495,7 +495,7 @@ err:
return fe; return fe;
} }
EXPORT_SYMBOL(fc0012_attach); EXPORT_SYMBOL_GPL(fc0012_attach);
MODULE_DESCRIPTION("Fitipower FC0012 silicon tuner driver"); MODULE_DESCRIPTION("Fitipower FC0012 silicon tuner driver");
MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>"); MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>");

View File

@ -608,7 +608,7 @@ struct dvb_frontend *fc0013_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(fc0013_attach); EXPORT_SYMBOL_GPL(fc0013_attach);
MODULE_DESCRIPTION("Fitipower FC0013 silicon tuner driver"); MODULE_DESCRIPTION("Fitipower FC0013 silicon tuner driver");
MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>"); MODULE_AUTHOR("Hans-Frieder Vogt <hfvogt@gmx.net>");

View File

@ -410,7 +410,7 @@ struct dvb_frontend *max2165_attach(struct dvb_frontend *fe,
return fe; return fe;
} }
EXPORT_SYMBOL(max2165_attach); EXPORT_SYMBOL_GPL(max2165_attach);
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>"); MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
MODULE_DESCRIPTION("Maxim MAX2165 silicon tuner driver"); MODULE_DESCRIPTION("Maxim MAX2165 silicon tuner driver");

View File

@ -356,7 +356,7 @@ error:
kfree(priv); kfree(priv);
return NULL; return NULL;
} }
EXPORT_SYMBOL(mc44s803_attach); EXPORT_SYMBOL_GPL(mc44s803_attach);
MODULE_AUTHOR("Jochen Friedrich"); MODULE_AUTHOR("Jochen Friedrich");
MODULE_DESCRIPTION("Freescale MC44S803 silicon tuner driver"); MODULE_DESCRIPTION("Freescale MC44S803 silicon tuner driver");

View File

@ -440,7 +440,7 @@ struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter
return fe; return fe;
} }
EXPORT_SYMBOL(mt2060_attach); EXPORT_SYMBOL_GPL(mt2060_attach);
static int mt2060_probe(struct i2c_client *client) static int mt2060_probe(struct i2c_client *client)
{ {

View File

@ -274,7 +274,7 @@ struct dvb_frontend * mt2131_attach(struct dvb_frontend *fe,
fe->tuner_priv = priv; fe->tuner_priv = priv;
return fe; return fe;
} }
EXPORT_SYMBOL(mt2131_attach); EXPORT_SYMBOL_GPL(mt2131_attach);
MODULE_AUTHOR("Steven Toth"); MODULE_AUTHOR("Steven Toth");
MODULE_DESCRIPTION("Microtune MT2131 silicon tuner driver"); MODULE_DESCRIPTION("Microtune MT2131 silicon tuner driver");

View File

@ -336,7 +336,7 @@ struct dvb_frontend * mt2266_attach(struct dvb_frontend *fe, struct i2c_adapter
mt2266_calibrate(priv); mt2266_calibrate(priv);
return fe; return fe;
} }
EXPORT_SYMBOL(mt2266_attach); EXPORT_SYMBOL_GPL(mt2266_attach);
MODULE_AUTHOR("Olivier DANET"); MODULE_AUTHOR("Olivier DANET");
MODULE_DESCRIPTION("Microtune MT2266 silicon tuner driver"); MODULE_DESCRIPTION("Microtune MT2266 silicon tuner driver");

View File

@ -4120,7 +4120,7 @@ struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
fe->tuner_priv = state; fe->tuner_priv = state;
return fe; return fe;
} }
EXPORT_SYMBOL(mxl5005s_attach); EXPORT_SYMBOL_GPL(mxl5005s_attach);
MODULE_DESCRIPTION("MaxLinear MXL5005S silicon tuner driver"); MODULE_DESCRIPTION("MaxLinear MXL5005S silicon tuner driver");
MODULE_AUTHOR("Steven Toth"); MODULE_AUTHOR("Steven Toth");

Some files were not shown because too many files have changed in this diff Show More