diff options
| author | Max Kellermann <max.kellermann@gmail.com> | 2016-08-09 17:32:26 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-11-18 12:05:44 -0500 |
| commit | 22a613e89825ea7a3984a968463cc6d425bd8856 (patch) | |
| tree | ec1841642bf43f88cf9b89323315dfca7418d0d6 | |
| parent | 4d5030b69bb4880a760406a6d3d519f02b9351dc (diff) | |
[media] dvb_frontend: merge duplicate dvb_tuner_ops.release implementations
Most release callback functions are identical: free the "tuner_priv"
and clear it. Let's eliminate some bloat by providing this simple
implementation in the dvb_frontend library.
Signed-off-by: Max Kellermann <max.kellermann@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
29 files changed, 46 insertions, 245 deletions
diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c index cdb7048874c5..7c4a50b0b963 100644 --- a/drivers/media/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb-core/dvb_frontend.c | |||
| @@ -174,6 +174,15 @@ static bool has_get_frontend(struct dvb_frontend *fe) | |||
| 174 | return fe->ops.get_frontend != NULL; | 174 | return fe->ops.get_frontend != NULL; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | int | ||
| 178 | dvb_tuner_simple_release(struct dvb_frontend *fe) | ||
| 179 | { | ||
| 180 | kfree(fe->tuner_priv); | ||
| 181 | fe->tuner_priv = NULL; | ||
| 182 | return 0; | ||
| 183 | } | ||
| 184 | EXPORT_SYMBOL(dvb_tuner_simple_release); | ||
| 185 | |||
| 177 | /* | 186 | /* |
| 178 | * Due to DVBv3 API calls, a delivery system should be mapped into one of | 187 | * Due to DVBv3 API calls, a delivery system should be mapped into one of |
| 179 | * the 4 DVBv3 delivery systems (FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC), | 188 | * the 4 DVBv3 delivery systems (FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC), |
diff --git a/drivers/media/dvb-core/dvb_frontend.h b/drivers/media/dvb-core/dvb_frontend.h index fb6e84811504..6b675a833520 100644 --- a/drivers/media/dvb-core/dvb_frontend.h +++ b/drivers/media/dvb-core/dvb_frontend.h | |||
| @@ -267,6 +267,13 @@ struct dvb_tuner_ops { | |||
| 267 | }; | 267 | }; |
| 268 | 268 | ||
| 269 | /** | 269 | /** |
| 270 | * A common default implementation for dvb_tuner_ops.release. All it | ||
| 271 | * does is kfree() the tuner_priv and assign NULL to it. | ||
| 272 | */ | ||
| 273 | int | ||
| 274 | dvb_tuner_simple_release(struct dvb_frontend *fe); | ||
| 275 | |||
| 276 | /** | ||
| 270 | * struct analog_demod_info - Information struct for analog TV part of the demod | 277 | * struct analog_demod_info - Information struct for analog TV part of the demod |
| 271 | * | 278 | * |
| 272 | * @name: Name of the analog TV demodulator | 279 | * @name: Name of the analog TV demodulator |
diff --git a/drivers/media/dvb-frontends/dib0070.c b/drivers/media/dvb-frontends/dib0070.c index 016ad09a8754..d9f1bc2f778c 100644 --- a/drivers/media/dvb-frontends/dib0070.c +++ b/drivers/media/dvb-frontends/dib0070.c | |||
| @@ -722,13 +722,6 @@ static int dib0070_get_frequency(struct dvb_frontend *fe, u32 *frequency) | |||
| 722 | return 0; | 722 | return 0; |
| 723 | } | 723 | } |
| 724 | 724 | ||
| 725 | static int dib0070_release(struct dvb_frontend *fe) | ||
| 726 | { | ||
| 727 | kfree(fe->tuner_priv); | ||
| 728 | fe->tuner_priv = NULL; | ||
| 729 | return 0; | ||
| 730 | } | ||
| 731 | |||
| 732 | static const struct dvb_tuner_ops dib0070_ops = { | 725 | static const struct dvb_tuner_ops dib0070_ops = { |
| 733 | .info = { | 726 | .info = { |
| 734 | .name = "DiBcom DiB0070", | 727 | .name = "DiBcom DiB0070", |
| @@ -736,7 +729,7 @@ static const struct dvb_tuner_ops dib0070_ops = { | |||
| 736 | .frequency_max = 860000000, | 729 | .frequency_max = 860000000, |
| 737 | .frequency_step = 1000, | 730 | .frequency_step = 1000, |
| 738 | }, | 731 | }, |
| 739 | .release = dib0070_release, | 732 | .release = dvb_tuner_simple_release, |
| 740 | 733 | ||
| 741 | .init = dib0070_wakeup, | 734 | .init = dib0070_wakeup, |
| 742 | .sleep = dib0070_sleep, | 735 | .sleep = dib0070_sleep, |
diff --git a/drivers/media/dvb-frontends/dib0090.c b/drivers/media/dvb-frontends/dib0090.c index 16200582f089..7b4bee5c8e34 100644 --- a/drivers/media/dvb-frontends/dib0090.c +++ b/drivers/media/dvb-frontends/dib0090.c | |||
| @@ -2526,13 +2526,6 @@ static int dib0090_tune(struct dvb_frontend *fe) | |||
| 2526 | return ret; | 2526 | return ret; |
| 2527 | } | 2527 | } |
| 2528 | 2528 | ||
| 2529 | static int dib0090_release(struct dvb_frontend *fe) | ||
| 2530 | { | ||
| 2531 | kfree(fe->tuner_priv); | ||
| 2532 | fe->tuner_priv = NULL; | ||
| 2533 | return 0; | ||
| 2534 | } | ||
| 2535 | |||
| 2536 | enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe) | 2529 | enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe) |
| 2537 | { | 2530 | { |
| 2538 | struct dib0090_state *state = fe->tuner_priv; | 2531 | struct dib0090_state *state = fe->tuner_priv; |
| @@ -2594,7 +2587,7 @@ static const struct dvb_tuner_ops dib0090_ops = { | |||
| 2594 | .frequency_max = 860000000, | 2587 | .frequency_max = 860000000, |
| 2595 | .frequency_step = 1000, | 2588 | .frequency_step = 1000, |
| 2596 | }, | 2589 | }, |
| 2597 | .release = dib0090_release, | 2590 | .release = dvb_tuner_simple_release, |
| 2598 | 2591 | ||
| 2599 | .init = dib0090_wakeup, | 2592 | .init = dib0090_wakeup, |
| 2600 | .sleep = dib0090_sleep, | 2593 | .sleep = dib0090_sleep, |
| @@ -2609,7 +2602,7 @@ static const struct dvb_tuner_ops dib0090_fw_ops = { | |||
| 2609 | .frequency_max = 860000000, | 2602 | .frequency_max = 860000000, |
| 2610 | .frequency_step = 1000, | 2603 | .frequency_step = 1000, |
| 2611 | }, | 2604 | }, |
| 2612 | .release = dib0090_release, | 2605 | .release = dvb_tuner_simple_release, |
| 2613 | 2606 | ||
| 2614 | .init = NULL, | 2607 | .init = NULL, |
| 2615 | .sleep = NULL, | 2608 | .sleep = NULL, |
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c index b6d199196b83..56832d6f47ae 100644 --- a/drivers/media/dvb-frontends/dvb-pll.c +++ b/drivers/media/dvb-frontends/dvb-pll.c | |||
| @@ -606,13 +606,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf, | |||
| 606 | return (div * desc->entries[i].stepsize) - desc->iffreq; | 606 | return (div * desc->entries[i].stepsize) - desc->iffreq; |
| 607 | } | 607 | } |
| 608 | 608 | ||
| 609 | static int dvb_pll_release(struct dvb_frontend *fe) | ||
| 610 | { | ||
| 611 | kfree(fe->tuner_priv); | ||
| 612 | fe->tuner_priv = NULL; | ||
| 613 | return 0; | ||
| 614 | } | ||
| 615 | |||
| 616 | static int dvb_pll_sleep(struct dvb_frontend *fe) | 609 | static int dvb_pll_sleep(struct dvb_frontend *fe) |
| 617 | { | 610 | { |
| 618 | struct dvb_pll_priv *priv = fe->tuner_priv; | 611 | struct dvb_pll_priv *priv = fe->tuner_priv; |
| @@ -745,7 +738,7 @@ static int dvb_pll_init(struct dvb_frontend *fe) | |||
| 745 | } | 738 | } |
| 746 | 739 | ||
| 747 | static const struct dvb_tuner_ops dvb_pll_tuner_ops = { | 740 | static const struct dvb_tuner_ops dvb_pll_tuner_ops = { |
| 748 | .release = dvb_pll_release, | 741 | .release = dvb_tuner_simple_release, |
| 749 | .sleep = dvb_pll_sleep, | 742 | .sleep = dvb_pll_sleep, |
| 750 | .init = dvb_pll_init, | 743 | .init = dvb_pll_init, |
| 751 | .set_params = dvb_pll_set_params, | 744 | .set_params = dvb_pll_set_params, |
diff --git a/drivers/media/dvb-frontends/itd1000.c b/drivers/media/dvb-frontends/itd1000.c index cadcae4cff89..d09f718f8119 100644 --- a/drivers/media/dvb-frontends/itd1000.c +++ b/drivers/media/dvb-frontends/itd1000.c | |||
| @@ -348,13 +348,6 @@ static int itd1000_sleep(struct dvb_frontend *fe) | |||
| 348 | return 0; | 348 | return 0; |
| 349 | } | 349 | } |
| 350 | 350 | ||
| 351 | static int itd1000_release(struct dvb_frontend *fe) | ||
| 352 | { | ||
| 353 | kfree(fe->tuner_priv); | ||
| 354 | fe->tuner_priv = NULL; | ||
| 355 | return 0; | ||
| 356 | } | ||
| 357 | |||
| 358 | static const struct dvb_tuner_ops itd1000_tuner_ops = { | 351 | static const struct dvb_tuner_ops itd1000_tuner_ops = { |
| 359 | .info = { | 352 | .info = { |
| 360 | .name = "Integrant ITD1000", | 353 | .name = "Integrant ITD1000", |
| @@ -363,7 +356,7 @@ static const struct dvb_tuner_ops itd1000_tuner_ops = { | |||
| 363 | .frequency_step = 125, /* kHz for QPSK frontends */ | 356 | .frequency_step = 125, /* kHz for QPSK frontends */ |
| 364 | }, | 357 | }, |
| 365 | 358 | ||
| 366 | .release = itd1000_release, | 359 | .release = dvb_tuner_simple_release, |
| 367 | 360 | ||
| 368 | .init = itd1000_init, | 361 | .init = itd1000_init, |
| 369 | .sleep = itd1000_sleep, | 362 | .sleep = itd1000_sleep, |
diff --git a/drivers/media/dvb-frontends/ix2505v.c b/drivers/media/dvb-frontends/ix2505v.c index 2826bbb36b73..7742a7a8cdbb 100644 --- a/drivers/media/dvb-frontends/ix2505v.c +++ b/drivers/media/dvb-frontends/ix2505v.c | |||
| @@ -94,16 +94,6 @@ static int ix2505v_write(struct ix2505v_state *state, u8 buf[], u8 count) | |||
| 94 | return 0; | 94 | return 0; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static int ix2505v_release(struct dvb_frontend *fe) | ||
| 98 | { | ||
| 99 | struct ix2505v_state *state = fe->tuner_priv; | ||
| 100 | |||
| 101 | fe->tuner_priv = NULL; | ||
| 102 | kfree(state); | ||
| 103 | |||
| 104 | return 0; | ||
| 105 | } | ||
| 106 | |||
| 107 | /** | 97 | /** |
| 108 | * Data write format of the Sharp IX2505V B0017 | 98 | * Data write format of the Sharp IX2505V B0017 |
| 109 | * | 99 | * |
| @@ -264,7 +254,7 @@ static const struct dvb_tuner_ops ix2505v_tuner_ops = { | |||
| 264 | .frequency_min = 950000, | 254 | .frequency_min = 950000, |
| 265 | .frequency_max = 2175000 | 255 | .frequency_max = 2175000 |
| 266 | }, | 256 | }, |
| 267 | .release = ix2505v_release, | 257 | .release = dvb_tuner_simple_release, |
| 268 | .set_params = ix2505v_set_params, | 258 | .set_params = ix2505v_set_params, |
| 269 | .get_frequency = ix2505v_get_frequency, | 259 | .get_frequency = ix2505v_get_frequency, |
| 270 | }; | 260 | }; |
diff --git a/drivers/media/dvb-frontends/stb6000.c b/drivers/media/dvb-frontends/stb6000.c index 73347d51f340..5252d485439e 100644 --- a/drivers/media/dvb-frontends/stb6000.c +++ b/drivers/media/dvb-frontends/stb6000.c | |||
| @@ -41,13 +41,6 @@ struct stb6000_priv { | |||
| 41 | u32 frequency; | 41 | u32 frequency; |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | static int stb6000_release(struct dvb_frontend *fe) | ||
| 45 | { | ||
| 46 | kfree(fe->tuner_priv); | ||
| 47 | fe->tuner_priv = NULL; | ||
| 48 | return 0; | ||
| 49 | } | ||
| 50 | |||
| 51 | static int stb6000_sleep(struct dvb_frontend *fe) | 44 | static int stb6000_sleep(struct dvb_frontend *fe) |
| 52 | { | 45 | { |
| 53 | struct stb6000_priv *priv = fe->tuner_priv; | 46 | struct stb6000_priv *priv = fe->tuner_priv; |
| @@ -192,7 +185,7 @@ static const struct dvb_tuner_ops stb6000_tuner_ops = { | |||
| 192 | .frequency_min = 950000, | 185 | .frequency_min = 950000, |
| 193 | .frequency_max = 2150000 | 186 | .frequency_max = 2150000 |
| 194 | }, | 187 | }, |
| 195 | .release = stb6000_release, | 188 | .release = dvb_tuner_simple_release, |
| 196 | .sleep = stb6000_sleep, | 189 | .sleep = stb6000_sleep, |
| 197 | .set_params = stb6000_set_params, | 190 | .set_params = stb6000_set_params, |
| 198 | .get_frequency = stb6000_get_frequency, | 191 | .get_frequency = stb6000_get_frequency, |
diff --git a/drivers/media/dvb-frontends/stb6100.c b/drivers/media/dvb-frontends/stb6100.c index 5add1182c3ca..befd26bdfa0f 100644 --- a/drivers/media/dvb-frontends/stb6100.c +++ b/drivers/media/dvb-frontends/stb6100.c | |||
| @@ -61,8 +61,6 @@ struct stb6100_lkup { | |||
| 61 | u8 reg; | 61 | u8 reg; |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | static int stb6100_release(struct dvb_frontend *fe); | ||
| 65 | |||
| 66 | static const struct stb6100_lkup lkup[] = { | 64 | static const struct stb6100_lkup lkup[] = { |
| 67 | { 0, 950000, 0x0a }, | 65 | { 0, 950000, 0x0a }, |
| 68 | { 950000, 1000000, 0x0a }, | 66 | { 950000, 1000000, 0x0a }, |
| @@ -536,7 +534,7 @@ static const struct dvb_tuner_ops stb6100_ops = { | |||
| 536 | .set_params = stb6100_set_params, | 534 | .set_params = stb6100_set_params, |
| 537 | .get_frequency = stb6100_get_frequency, | 535 | .get_frequency = stb6100_get_frequency, |
| 538 | .get_bandwidth = stb6100_get_bandwidth, | 536 | .get_bandwidth = stb6100_get_bandwidth, |
| 539 | .release = stb6100_release | 537 | .release = dvb_tuner_simple_release |
| 540 | }; | 538 | }; |
| 541 | 539 | ||
| 542 | struct dvb_frontend *stb6100_attach(struct dvb_frontend *fe, | 540 | struct dvb_frontend *stb6100_attach(struct dvb_frontend *fe, |
| @@ -560,16 +558,6 @@ struct dvb_frontend *stb6100_attach(struct dvb_frontend *fe, | |||
| 560 | return fe; | 558 | return fe; |
| 561 | } | 559 | } |
| 562 | 560 | ||
| 563 | static int stb6100_release(struct dvb_frontend *fe) | ||
| 564 | { | ||
| 565 | struct stb6100_state *state = fe->tuner_priv; | ||
| 566 | |||
| 567 | fe->tuner_priv = NULL; | ||
| 568 | kfree(state); | ||
| 569 | |||
| 570 | return 0; | ||
| 571 | } | ||
| 572 | |||
| 573 | EXPORT_SYMBOL(stb6100_attach); | 561 | EXPORT_SYMBOL(stb6100_attach); |
| 574 | MODULE_PARM_DESC(verbose, "Set Verbosity level"); | 562 | MODULE_PARM_DESC(verbose, "Set Verbosity level"); |
| 575 | 563 | ||
diff --git a/drivers/media/dvb-frontends/stv6110.c b/drivers/media/dvb-frontends/stv6110.c index 66a5a7f2295c..d9a88adc4c10 100644 --- a/drivers/media/dvb-frontends/stv6110.c +++ b/drivers/media/dvb-frontends/stv6110.c | |||
| @@ -59,13 +59,6 @@ static s32 abssub(s32 a, s32 b) | |||
| 59 | return b - a; | 59 | return b - a; |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | static int stv6110_release(struct dvb_frontend *fe) | ||
| 63 | { | ||
| 64 | kfree(fe->tuner_priv); | ||
| 65 | fe->tuner_priv = NULL; | ||
| 66 | return 0; | ||
| 67 | } | ||
| 68 | |||
| 69 | static int stv6110_write_regs(struct dvb_frontend *fe, u8 buf[], | 62 | static int stv6110_write_regs(struct dvb_frontend *fe, u8 buf[], |
| 70 | int start, int len) | 63 | int start, int len) |
| 71 | { | 64 | { |
| @@ -390,7 +383,7 @@ static const struct dvb_tuner_ops stv6110_tuner_ops = { | |||
| 390 | .frequency_step = 1000, | 383 | .frequency_step = 1000, |
| 391 | }, | 384 | }, |
| 392 | .init = stv6110_init, | 385 | .init = stv6110_init, |
| 393 | .release = stv6110_release, | 386 | .release = dvb_tuner_simple_release, |
| 394 | .sleep = stv6110_sleep, | 387 | .sleep = stv6110_sleep, |
| 395 | .set_params = stv6110_set_params, | 388 | .set_params = stv6110_set_params, |
| 396 | .get_frequency = stv6110_get_frequency, | 389 | .get_frequency = stv6110_get_frequency, |
diff --git a/drivers/media/dvb-frontends/stv6110x.c b/drivers/media/dvb-frontends/stv6110x.c index c611ad210b5c..70d5641453c2 100644 --- a/drivers/media/dvb-frontends/stv6110x.c +++ b/drivers/media/dvb-frontends/stv6110x.c | |||
| @@ -335,16 +335,6 @@ static int stv6110x_get_status(struct dvb_frontend *fe, u32 *status) | |||
| 335 | } | 335 | } |
| 336 | 336 | ||
| 337 | 337 | ||
| 338 | static int stv6110x_release(struct dvb_frontend *fe) | ||
| 339 | { | ||
| 340 | struct stv6110x_state *stv6110x = fe->tuner_priv; | ||
| 341 | |||
| 342 | fe->tuner_priv = NULL; | ||
| 343 | kfree(stv6110x); | ||
| 344 | |||
| 345 | return 0; | ||
| 346 | } | ||
| 347 | |||
| 348 | static const struct dvb_tuner_ops stv6110x_ops = { | 338 | static const struct dvb_tuner_ops stv6110x_ops = { |
| 349 | .info = { | 339 | .info = { |
| 350 | .name = "STV6110(A) Silicon Tuner", | 340 | .name = "STV6110(A) Silicon Tuner", |
| @@ -352,7 +342,7 @@ static const struct dvb_tuner_ops stv6110x_ops = { | |||
| 352 | .frequency_max = 2150000, | 342 | .frequency_max = 2150000, |
| 353 | .frequency_step = 0, | 343 | .frequency_step = 0, |
| 354 | }, | 344 | }, |
| 355 | .release = stv6110x_release | 345 | .release = dvb_tuner_simple_release, |
| 356 | }; | 346 | }; |
| 357 | 347 | ||
| 358 | static const struct stv6110x_devctl stv6110x_ctl = { | 348 | static const struct stv6110x_devctl stv6110x_ctl = { |
diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c b/drivers/media/dvb-frontends/tda18271c2dd.c index bc247f9b553a..a324f30f7224 100644 --- a/drivers/media/dvb-frontends/tda18271c2dd.c +++ b/drivers/media/dvb-frontends/tda18271c2dd.c | |||
| @@ -1126,14 +1126,6 @@ static int init(struct dvb_frontend *fe) | |||
| 1126 | return 0; | 1126 | return 0; |
| 1127 | } | 1127 | } |
| 1128 | 1128 | ||
| 1129 | static int release(struct dvb_frontend *fe) | ||
| 1130 | { | ||
| 1131 | kfree(fe->tuner_priv); | ||
| 1132 | fe->tuner_priv = NULL; | ||
| 1133 | return 0; | ||
| 1134 | } | ||
| 1135 | |||
| 1136 | |||
| 1137 | static int set_params(struct dvb_frontend *fe) | 1129 | static int set_params(struct dvb_frontend *fe) |
| 1138 | { | 1130 | { |
| 1139 | struct tda_state *state = fe->tuner_priv; | 1131 | struct tda_state *state = fe->tuner_priv; |
| @@ -1227,7 +1219,7 @@ static const struct dvb_tuner_ops tuner_ops = { | |||
| 1227 | .init = init, | 1219 | .init = init, |
| 1228 | .sleep = sleep, | 1220 | .sleep = sleep, |
| 1229 | .set_params = set_params, | 1221 | .set_params = set_params, |
| 1230 | .release = release, | 1222 | .release = dvb_tuner_simple_release, |
| 1231 | .get_if_frequency = get_if_frequency, | 1223 | .get_if_frequency = get_if_frequency, |
| 1232 | .get_bandwidth = get_bandwidth, | 1224 | .get_bandwidth = get_bandwidth, |
| 1233 | }; | 1225 | }; |
diff --git a/drivers/media/dvb-frontends/tda665x.c b/drivers/media/dvb-frontends/tda665x.c index 7ca965987f40..39a1eb23ad04 100644 --- a/drivers/media/dvb-frontends/tda665x.c +++ b/drivers/media/dvb-frontends/tda665x.c | |||
| @@ -197,20 +197,11 @@ static int tda665x_set_params(struct dvb_frontend *fe) | |||
| 197 | return 0; | 197 | return 0; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | static int tda665x_release(struct dvb_frontend *fe) | ||
| 201 | { | ||
| 202 | struct tda665x_state *state = fe->tuner_priv; | ||
| 203 | |||
| 204 | fe->tuner_priv = NULL; | ||
| 205 | kfree(state); | ||
| 206 | return 0; | ||
| 207 | } | ||
| 208 | |||
| 209 | static const struct dvb_tuner_ops tda665x_ops = { | 200 | static const struct dvb_tuner_ops tda665x_ops = { |
| 210 | .get_status = tda665x_get_status, | 201 | .get_status = tda665x_get_status, |
| 211 | .set_params = tda665x_set_params, | 202 | .set_params = tda665x_set_params, |
| 212 | .get_frequency = tda665x_get_frequency, | 203 | .get_frequency = tda665x_get_frequency, |
| 213 | .release = tda665x_release | 204 | .release = dvb_tuner_simple_release, |
| 214 | }; | 205 | }; |
| 215 | 206 | ||
| 216 | struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, | 207 | struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, |
diff --git a/drivers/media/dvb-frontends/tda8261.c b/drivers/media/dvb-frontends/tda8261.c index e0df93191b9e..65f729ff27a9 100644 --- a/drivers/media/dvb-frontends/tda8261.c +++ b/drivers/media/dvb-frontends/tda8261.c | |||
| @@ -152,15 +152,6 @@ static int tda8261_set_params(struct dvb_frontend *fe) | |||
| 152 | return 0; | 152 | return 0; |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | static int tda8261_release(struct dvb_frontend *fe) | ||
| 156 | { | ||
| 157 | struct tda8261_state *state = fe->tuner_priv; | ||
| 158 | |||
| 159 | fe->tuner_priv = NULL; | ||
| 160 | kfree(state); | ||
| 161 | return 0; | ||
| 162 | } | ||
| 163 | |||
| 164 | static const struct dvb_tuner_ops tda8261_ops = { | 155 | static const struct dvb_tuner_ops tda8261_ops = { |
| 165 | 156 | ||
| 166 | .info = { | 157 | .info = { |
| @@ -173,7 +164,7 @@ static const struct dvb_tuner_ops tda8261_ops = { | |||
| 173 | .set_params = tda8261_set_params, | 164 | .set_params = tda8261_set_params, |
| 174 | .get_frequency = tda8261_get_frequency, | 165 | .get_frequency = tda8261_get_frequency, |
| 175 | .get_status = tda8261_get_status, | 166 | .get_status = tda8261_get_status, |
| 176 | .release = tda8261_release | 167 | .release = dvb_tuner_simple_release, |
| 177 | }; | 168 | }; |
| 178 | 169 | ||
| 179 | struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe, | 170 | struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe, |
diff --git a/drivers/media/dvb-frontends/tda826x.c b/drivers/media/dvb-frontends/tda826x.c index 2ec671df1441..bf8946c2c04a 100644 --- a/drivers/media/dvb-frontends/tda826x.c +++ b/drivers/media/dvb-frontends/tda826x.c | |||
| @@ -41,13 +41,6 @@ struct tda826x_priv { | |||
| 41 | u32 frequency; | 41 | u32 frequency; |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | static int tda826x_release(struct dvb_frontend *fe) | ||
| 45 | { | ||
| 46 | kfree(fe->tuner_priv); | ||
| 47 | fe->tuner_priv = NULL; | ||
| 48 | return 0; | ||
| 49 | } | ||
| 50 | |||
| 51 | static int tda826x_sleep(struct dvb_frontend *fe) | 44 | static int tda826x_sleep(struct dvb_frontend *fe) |
| 52 | { | 45 | { |
| 53 | struct tda826x_priv *priv = fe->tuner_priv; | 46 | struct tda826x_priv *priv = fe->tuner_priv; |
| @@ -135,7 +128,7 @@ static const struct dvb_tuner_ops tda826x_tuner_ops = { | |||
| 135 | .frequency_min = 950000, | 128 | .frequency_min = 950000, |
| 136 | .frequency_max = 2175000 | 129 | .frequency_max = 2175000 |
| 137 | }, | 130 | }, |
| 138 | .release = tda826x_release, | 131 | .release = dvb_tuner_simple_release, |
| 139 | .sleep = tda826x_sleep, | 132 | .sleep = tda826x_sleep, |
| 140 | .set_params = tda826x_set_params, | 133 | .set_params = tda826x_set_params, |
| 141 | .get_frequency = tda826x_get_frequency, | 134 | .get_frequency = tda826x_get_frequency, |
diff --git a/drivers/media/dvb-frontends/tua6100.c b/drivers/media/dvb-frontends/tua6100.c index 6da12b9e55eb..9e9a8ad7f37c 100644 --- a/drivers/media/dvb-frontends/tua6100.c +++ b/drivers/media/dvb-frontends/tua6100.c | |||
| @@ -42,13 +42,6 @@ struct tua6100_priv { | |||
| 42 | u32 frequency; | 42 | u32 frequency; |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | static int tua6100_release(struct dvb_frontend *fe) | ||
| 46 | { | ||
| 47 | kfree(fe->tuner_priv); | ||
| 48 | fe->tuner_priv = NULL; | ||
| 49 | return 0; | ||
| 50 | } | ||
| 51 | |||
| 52 | static int tua6100_sleep(struct dvb_frontend *fe) | 45 | static int tua6100_sleep(struct dvb_frontend *fe) |
| 53 | { | 46 | { |
| 54 | struct tua6100_priv *priv = fe->tuner_priv; | 47 | struct tua6100_priv *priv = fe->tuner_priv; |
| @@ -164,7 +157,7 @@ static const struct dvb_tuner_ops tua6100_tuner_ops = { | |||
| 164 | .frequency_max = 2150000, | 157 | .frequency_max = 2150000, |
| 165 | .frequency_step = 1000, | 158 | .frequency_step = 1000, |
| 166 | }, | 159 | }, |
| 167 | .release = tua6100_release, | 160 | .release = dvb_tuner_simple_release, |
| 168 | .sleep = tua6100_sleep, | 161 | .sleep = tua6100_sleep, |
| 169 | .set_params = tua6100_set_params, | 162 | .set_params = tua6100_set_params, |
| 170 | .get_frequency = tua6100_get_frequency, | 163 | .get_frequency = tua6100_get_frequency, |
diff --git a/drivers/media/dvb-frontends/zl10036.c b/drivers/media/dvb-frontends/zl10036.c index df5d0fe24687..0116557c0f10 100644 --- a/drivers/media/dvb-frontends/zl10036.c +++ b/drivers/media/dvb-frontends/zl10036.c | |||
| @@ -134,16 +134,6 @@ static int zl10036_write(struct zl10036_state *state, u8 buf[], u8 count) | |||
| 134 | return 0; | 134 | return 0; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | static int zl10036_release(struct dvb_frontend *fe) | ||
| 138 | { | ||
| 139 | struct zl10036_state *state = fe->tuner_priv; | ||
| 140 | |||
| 141 | fe->tuner_priv = NULL; | ||
| 142 | kfree(state); | ||
| 143 | |||
| 144 | return 0; | ||
| 145 | } | ||
| 146 | |||
| 147 | static int zl10036_sleep(struct dvb_frontend *fe) | 137 | static int zl10036_sleep(struct dvb_frontend *fe) |
| 148 | { | 138 | { |
| 149 | struct zl10036_state *state = fe->tuner_priv; | 139 | struct zl10036_state *state = fe->tuner_priv; |
| @@ -453,7 +443,7 @@ static const struct dvb_tuner_ops zl10036_tuner_ops = { | |||
| 453 | .frequency_max = 2175000 | 443 | .frequency_max = 2175000 |
| 454 | }, | 444 | }, |
| 455 | .init = zl10036_init, | 445 | .init = zl10036_init, |
| 456 | .release = zl10036_release, | 446 | .release = dvb_tuner_simple_release, |
| 457 | .sleep = zl10036_sleep, | 447 | .sleep = zl10036_sleep, |
| 458 | .set_params = zl10036_set_params, | 448 | .set_params = zl10036_set_params, |
| 459 | .get_frequency = zl10036_get_frequency, | 449 | .get_frequency = zl10036_get_frequency, |
diff --git a/drivers/media/tuners/fc0011.c b/drivers/media/tuners/fc0011.c index 2dda8d993c14..5e9e2e694f98 100644 --- a/drivers/media/tuners/fc0011.c +++ b/drivers/media/tuners/fc0011.c | |||
| @@ -112,14 +112,6 @@ static int fc0011_readreg(struct fc0011_priv *priv, u8 reg, u8 *val) | |||
| 112 | return 0; | 112 | return 0; |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | static int fc0011_release(struct dvb_frontend *fe) | ||
| 116 | { | ||
| 117 | kfree(fe->tuner_priv); | ||
| 118 | fe->tuner_priv = NULL; | ||
| 119 | |||
| 120 | return 0; | ||
| 121 | } | ||
| 122 | |||
| 123 | static int fc0011_init(struct dvb_frontend *fe) | 115 | static int fc0011_init(struct dvb_frontend *fe) |
| 124 | { | 116 | { |
| 125 | struct fc0011_priv *priv = fe->tuner_priv; | 117 | struct fc0011_priv *priv = fe->tuner_priv; |
| @@ -483,7 +475,7 @@ static const struct dvb_tuner_ops fc0011_tuner_ops = { | |||
| 483 | .frequency_max = 1000000000, | 475 | .frequency_max = 1000000000, |
| 484 | }, | 476 | }, |
| 485 | 477 | ||
| 486 | .release = fc0011_release, | 478 | .release = dvb_tuner_simple_release, |
| 487 | .init = fc0011_init, | 479 | .init = fc0011_init, |
| 488 | 480 | ||
| 489 | .set_params = fc0011_set_params, | 481 | .set_params = fc0011_set_params, |
diff --git a/drivers/media/tuners/fc0012.c b/drivers/media/tuners/fc0012.c index d74e92056810..7faff84e5ea8 100644 --- a/drivers/media/tuners/fc0012.c +++ b/drivers/media/tuners/fc0012.c | |||
| @@ -55,13 +55,6 @@ static int fc0012_readreg(struct fc0012_priv *priv, u8 reg, u8 *val) | |||
| 55 | return 0; | 55 | return 0; |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | static int fc0012_release(struct dvb_frontend *fe) | ||
| 59 | { | ||
| 60 | kfree(fe->tuner_priv); | ||
| 61 | fe->tuner_priv = NULL; | ||
| 62 | return 0; | ||
| 63 | } | ||
| 64 | |||
| 65 | static int fc0012_init(struct dvb_frontend *fe) | 58 | static int fc0012_init(struct dvb_frontend *fe) |
| 66 | { | 59 | { |
| 67 | struct fc0012_priv *priv = fe->tuner_priv; | 60 | struct fc0012_priv *priv = fe->tuner_priv; |
| @@ -427,7 +420,7 @@ static const struct dvb_tuner_ops fc0012_tuner_ops = { | |||
| 427 | .frequency_step = 0, | 420 | .frequency_step = 0, |
| 428 | }, | 421 | }, |
| 429 | 422 | ||
| 430 | .release = fc0012_release, | 423 | .release = dvb_tuner_simple_release, |
| 431 | 424 | ||
| 432 | .init = fc0012_init, | 425 | .init = fc0012_init, |
| 433 | 426 | ||
diff --git a/drivers/media/tuners/fc0013.c b/drivers/media/tuners/fc0013.c index 522690d97b42..b068b9702cf7 100644 --- a/drivers/media/tuners/fc0013.c +++ b/drivers/media/tuners/fc0013.c | |||
| @@ -52,13 +52,6 @@ static int fc0013_readreg(struct fc0013_priv *priv, u8 reg, u8 *val) | |||
| 52 | return 0; | 52 | return 0; |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | static int fc0013_release(struct dvb_frontend *fe) | ||
| 56 | { | ||
| 57 | kfree(fe->tuner_priv); | ||
| 58 | fe->tuner_priv = NULL; | ||
| 59 | return 0; | ||
| 60 | } | ||
| 61 | |||
| 62 | static int fc0013_init(struct dvb_frontend *fe) | 55 | static int fc0013_init(struct dvb_frontend *fe) |
| 63 | { | 56 | { |
| 64 | struct fc0013_priv *priv = fe->tuner_priv; | 57 | struct fc0013_priv *priv = fe->tuner_priv; |
| @@ -586,7 +579,7 @@ static const struct dvb_tuner_ops fc0013_tuner_ops = { | |||
| 586 | .frequency_step = 0, | 579 | .frequency_step = 0, |
| 587 | }, | 580 | }, |
| 588 | 581 | ||
| 589 | .release = fc0013_release, | 582 | .release = dvb_tuner_simple_release, |
| 590 | 583 | ||
| 591 | .init = fc0013_init, | 584 | .init = fc0013_init, |
| 592 | .sleep = fc0013_sleep, | 585 | .sleep = fc0013_sleep, |
diff --git a/drivers/media/tuners/mc44s803.c b/drivers/media/tuners/mc44s803.c index d5681669d3cd..86542cbd73fb 100644 --- a/drivers/media/tuners/mc44s803.c +++ b/drivers/media/tuners/mc44s803.c | |||
| @@ -80,16 +80,6 @@ static int mc44s803_readreg(struct mc44s803_priv *priv, u8 reg, u32 *val) | |||
| 80 | return 0; | 80 | return 0; |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | static int mc44s803_release(struct dvb_frontend *fe) | ||
| 84 | { | ||
| 85 | struct mc44s803_priv *priv = fe->tuner_priv; | ||
| 86 | |||
| 87 | fe->tuner_priv = NULL; | ||
| 88 | kfree(priv); | ||
| 89 | |||
| 90 | return 0; | ||
| 91 | } | ||
| 92 | |||
| 93 | static int mc44s803_init(struct dvb_frontend *fe) | 83 | static int mc44s803_init(struct dvb_frontend *fe) |
| 94 | { | 84 | { |
| 95 | struct mc44s803_priv *priv = fe->tuner_priv; | 85 | struct mc44s803_priv *priv = fe->tuner_priv; |
| @@ -312,7 +302,7 @@ static const struct dvb_tuner_ops mc44s803_tuner_ops = { | |||
| 312 | .frequency_step = 100000, | 302 | .frequency_step = 100000, |
| 313 | }, | 303 | }, |
| 314 | 304 | ||
| 315 | .release = mc44s803_release, | 305 | .release = dvb_tuner_simple_release, |
| 316 | .init = mc44s803_init, | 306 | .init = mc44s803_init, |
| 317 | .set_params = mc44s803_set_params, | 307 | .set_params = mc44s803_set_params, |
| 318 | .get_frequency = mc44s803_get_frequency, | 308 | .get_frequency = mc44s803_get_frequency, |
diff --git a/drivers/media/tuners/mt2060.c b/drivers/media/tuners/mt2060.c index b87b2549d58d..14e7b64360cb 100644 --- a/drivers/media/tuners/mt2060.c +++ b/drivers/media/tuners/mt2060.c | |||
| @@ -332,13 +332,6 @@ static int mt2060_sleep(struct dvb_frontend *fe) | |||
| 332 | return ret; | 332 | return ret; |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | static int mt2060_release(struct dvb_frontend *fe) | ||
| 336 | { | ||
| 337 | kfree(fe->tuner_priv); | ||
| 338 | fe->tuner_priv = NULL; | ||
| 339 | return 0; | ||
| 340 | } | ||
| 341 | |||
| 342 | static const struct dvb_tuner_ops mt2060_tuner_ops = { | 335 | static const struct dvb_tuner_ops mt2060_tuner_ops = { |
| 343 | .info = { | 336 | .info = { |
| 344 | .name = "Microtune MT2060", | 337 | .name = "Microtune MT2060", |
| @@ -347,7 +340,7 @@ static const struct dvb_tuner_ops mt2060_tuner_ops = { | |||
| 347 | .frequency_step = 50000, | 340 | .frequency_step = 50000, |
| 348 | }, | 341 | }, |
| 349 | 342 | ||
| 350 | .release = mt2060_release, | 343 | .release = dvb_tuner_simple_release, |
| 351 | 344 | ||
| 352 | .init = mt2060_init, | 345 | .init = mt2060_init, |
| 353 | .sleep = mt2060_sleep, | 346 | .sleep = mt2060_sleep, |
diff --git a/drivers/media/tuners/mt20xx.c b/drivers/media/tuners/mt20xx.c index 29dadd171b31..4237d8f15919 100644 --- a/drivers/media/tuners/mt20xx.c +++ b/drivers/media/tuners/mt20xx.c | |||
| @@ -49,14 +49,6 @@ struct microtune_priv { | |||
| 49 | u32 frequency; | 49 | u32 frequency; |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | static int microtune_release(struct dvb_frontend *fe) | ||
| 53 | { | ||
| 54 | kfree(fe->tuner_priv); | ||
| 55 | fe->tuner_priv = NULL; | ||
| 56 | |||
| 57 | return 0; | ||
| 58 | } | ||
| 59 | |||
| 60 | static int microtune_get_frequency(struct dvb_frontend *fe, u32 *frequency) | 52 | static int microtune_get_frequency(struct dvb_frontend *fe, u32 *frequency) |
| 61 | { | 53 | { |
| 62 | struct microtune_priv *priv = fe->tuner_priv; | 54 | struct microtune_priv *priv = fe->tuner_priv; |
| @@ -365,7 +357,7 @@ static int mt2032_set_params(struct dvb_frontend *fe, | |||
| 365 | 357 | ||
| 366 | static const struct dvb_tuner_ops mt2032_tuner_ops = { | 358 | static const struct dvb_tuner_ops mt2032_tuner_ops = { |
| 367 | .set_analog_params = mt2032_set_params, | 359 | .set_analog_params = mt2032_set_params, |
| 368 | .release = microtune_release, | 360 | .release = dvb_tuner_simple_release, |
| 369 | .get_frequency = microtune_get_frequency, | 361 | .get_frequency = microtune_get_frequency, |
| 370 | }; | 362 | }; |
| 371 | 363 | ||
| @@ -560,7 +552,7 @@ static int mt2050_set_params(struct dvb_frontend *fe, | |||
| 560 | 552 | ||
| 561 | static const struct dvb_tuner_ops mt2050_tuner_ops = { | 553 | static const struct dvb_tuner_ops mt2050_tuner_ops = { |
| 562 | .set_analog_params = mt2050_set_params, | 554 | .set_analog_params = mt2050_set_params, |
| 563 | .release = microtune_release, | 555 | .release = dvb_tuner_simple_release, |
| 564 | .get_frequency = microtune_get_frequency, | 556 | .get_frequency = microtune_get_frequency, |
| 565 | }; | 557 | }; |
| 566 | 558 | ||
diff --git a/drivers/media/tuners/mt2266.c b/drivers/media/tuners/mt2266.c index bca4d75e42d4..35ea5e7975ac 100644 --- a/drivers/media/tuners/mt2266.c +++ b/drivers/media/tuners/mt2266.c | |||
| @@ -296,13 +296,6 @@ static int mt2266_sleep(struct dvb_frontend *fe) | |||
| 296 | return 0; | 296 | return 0; |
| 297 | } | 297 | } |
| 298 | 298 | ||
| 299 | static int mt2266_release(struct dvb_frontend *fe) | ||
| 300 | { | ||
| 301 | kfree(fe->tuner_priv); | ||
| 302 | fe->tuner_priv = NULL; | ||
| 303 | return 0; | ||
| 304 | } | ||
| 305 | |||
| 306 | static const struct dvb_tuner_ops mt2266_tuner_ops = { | 299 | static const struct dvb_tuner_ops mt2266_tuner_ops = { |
| 307 | .info = { | 300 | .info = { |
| 308 | .name = "Microtune MT2266", | 301 | .name = "Microtune MT2266", |
| @@ -310,7 +303,7 @@ static const struct dvb_tuner_ops mt2266_tuner_ops = { | |||
| 310 | .frequency_max = 862000000, | 303 | .frequency_max = 862000000, |
| 311 | .frequency_step = 50000, | 304 | .frequency_step = 50000, |
| 312 | }, | 305 | }, |
| 313 | .release = mt2266_release, | 306 | .release = dvb_tuner_simple_release, |
| 314 | .init = mt2266_init, | 307 | .init = mt2266_init, |
| 315 | .sleep = mt2266_sleep, | 308 | .sleep = mt2266_sleep, |
| 316 | .set_params = mt2266_set_params, | 309 | .set_params = mt2266_set_params, |
diff --git a/drivers/media/tuners/qt1010.c b/drivers/media/tuners/qt1010.c index ae8cbece6d2b..5a1662aeeb87 100644 --- a/drivers/media/tuners/qt1010.c +++ b/drivers/media/tuners/qt1010.c | |||
| @@ -377,13 +377,6 @@ static int qt1010_init(struct dvb_frontend *fe) | |||
| 377 | return qt1010_set_params(fe); | 377 | return qt1010_set_params(fe); |
| 378 | } | 378 | } |
| 379 | 379 | ||
| 380 | static int qt1010_release(struct dvb_frontend *fe) | ||
| 381 | { | ||
| 382 | kfree(fe->tuner_priv); | ||
| 383 | fe->tuner_priv = NULL; | ||
| 384 | return 0; | ||
| 385 | } | ||
| 386 | |||
| 387 | static int qt1010_get_frequency(struct dvb_frontend *fe, u32 *frequency) | 380 | static int qt1010_get_frequency(struct dvb_frontend *fe, u32 *frequency) |
| 388 | { | 381 | { |
| 389 | struct qt1010_priv *priv = fe->tuner_priv; | 382 | struct qt1010_priv *priv = fe->tuner_priv; |
| @@ -405,7 +398,7 @@ static const struct dvb_tuner_ops qt1010_tuner_ops = { | |||
| 405 | .frequency_step = QT1010_STEP, | 398 | .frequency_step = QT1010_STEP, |
| 406 | }, | 399 | }, |
| 407 | 400 | ||
| 408 | .release = qt1010_release, | 401 | .release = dvb_tuner_simple_release, |
| 409 | .init = qt1010_init, | 402 | .init = qt1010_init, |
| 410 | /* TODO: implement sleep */ | 403 | /* TODO: implement sleep */ |
| 411 | 404 | ||
diff --git a/drivers/media/tuners/tda18218.c b/drivers/media/tuners/tda18218.c index 9300e9361e3b..4d2916fb9953 100644 --- a/drivers/media/tuners/tda18218.c +++ b/drivers/media/tuners/tda18218.c | |||
| @@ -265,13 +265,6 @@ static int tda18218_init(struct dvb_frontend *fe) | |||
| 265 | return ret; | 265 | return ret; |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | static int tda18218_release(struct dvb_frontend *fe) | ||
| 269 | { | ||
| 270 | kfree(fe->tuner_priv); | ||
| 271 | fe->tuner_priv = NULL; | ||
| 272 | return 0; | ||
| 273 | } | ||
| 274 | |||
| 275 | static const struct dvb_tuner_ops tda18218_tuner_ops = { | 268 | static const struct dvb_tuner_ops tda18218_tuner_ops = { |
| 276 | .info = { | 269 | .info = { |
| 277 | .name = "NXP TDA18218", | 270 | .name = "NXP TDA18218", |
| @@ -281,7 +274,7 @@ static const struct dvb_tuner_ops tda18218_tuner_ops = { | |||
| 281 | .frequency_step = 1000, | 274 | .frequency_step = 1000, |
| 282 | }, | 275 | }, |
| 283 | 276 | ||
| 284 | .release = tda18218_release, | 277 | .release = dvb_tuner_simple_release, |
| 285 | .init = tda18218_init, | 278 | .init = tda18218_init, |
| 286 | .sleep = tda18218_sleep, | 279 | .sleep = tda18218_sleep, |
| 287 | 280 | ||
diff --git a/drivers/media/tuners/tda827x.c b/drivers/media/tuners/tda827x.c index 5050ce9be423..4befb81f0c1a 100644 --- a/drivers/media/tuners/tda827x.c +++ b/drivers/media/tuners/tda827x.c | |||
| @@ -767,13 +767,6 @@ static void tda827xa_agcf(struct dvb_frontend *fe) | |||
| 767 | 767 | ||
| 768 | /* ------------------------------------------------------------------ */ | 768 | /* ------------------------------------------------------------------ */ |
| 769 | 769 | ||
| 770 | static int tda827x_release(struct dvb_frontend *fe) | ||
| 771 | { | ||
| 772 | kfree(fe->tuner_priv); | ||
| 773 | fe->tuner_priv = NULL; | ||
| 774 | return 0; | ||
| 775 | } | ||
| 776 | |||
| 777 | static int tda827x_get_frequency(struct dvb_frontend *fe, u32 *frequency) | 770 | static int tda827x_get_frequency(struct dvb_frontend *fe, u32 *frequency) |
| 778 | { | 771 | { |
| 779 | struct tda827x_priv *priv = fe->tuner_priv; | 772 | struct tda827x_priv *priv = fe->tuner_priv; |
| @@ -825,7 +818,7 @@ static const struct dvb_tuner_ops tda827xo_tuner_ops = { | |||
| 825 | .frequency_max = 860000000, | 818 | .frequency_max = 860000000, |
| 826 | .frequency_step = 250000 | 819 | .frequency_step = 250000 |
| 827 | }, | 820 | }, |
| 828 | .release = tda827x_release, | 821 | .release = dvb_tuner_simple_release, |
| 829 | .init = tda827x_initial_init, | 822 | .init = tda827x_initial_init, |
| 830 | .sleep = tda827x_initial_sleep, | 823 | .sleep = tda827x_initial_sleep, |
| 831 | .set_params = tda827xo_set_params, | 824 | .set_params = tda827xo_set_params, |
| @@ -841,7 +834,7 @@ static const struct dvb_tuner_ops tda827xa_tuner_ops = { | |||
| 841 | .frequency_max = 906000000, | 834 | .frequency_max = 906000000, |
| 842 | .frequency_step = 62500 | 835 | .frequency_step = 62500 |
| 843 | }, | 836 | }, |
| 844 | .release = tda827x_release, | 837 | .release = dvb_tuner_simple_release, |
| 845 | .init = tda827x_init, | 838 | .init = tda827x_init, |
| 846 | .sleep = tda827xa_sleep, | 839 | .sleep = tda827xa_sleep, |
| 847 | .set_params = tda827xa_set_params, | 840 | .set_params = tda827xa_set_params, |
diff --git a/drivers/media/tuners/tea5761.c b/drivers/media/tuners/tea5761.c index 12347aa95de3..82f25621d995 100644 --- a/drivers/media/tuners/tea5761.c +++ b/drivers/media/tuners/tea5761.c | |||
| @@ -284,14 +284,6 @@ int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr) | |||
| 284 | return 0; | 284 | return 0; |
| 285 | } | 285 | } |
| 286 | 286 | ||
| 287 | static int tea5761_release(struct dvb_frontend *fe) | ||
| 288 | { | ||
| 289 | kfree(fe->tuner_priv); | ||
| 290 | fe->tuner_priv = NULL; | ||
| 291 | |||
| 292 | return 0; | ||
| 293 | } | ||
| 294 | |||
| 295 | static int tea5761_get_frequency(struct dvb_frontend *fe, u32 *frequency) | 287 | static int tea5761_get_frequency(struct dvb_frontend *fe, u32 *frequency) |
| 296 | { | 288 | { |
| 297 | struct tea5761_priv *priv = fe->tuner_priv; | 289 | struct tea5761_priv *priv = fe->tuner_priv; |
| @@ -305,7 +297,7 @@ static const struct dvb_tuner_ops tea5761_tuner_ops = { | |||
| 305 | }, | 297 | }, |
| 306 | .set_analog_params = set_radio_freq, | 298 | .set_analog_params = set_radio_freq, |
| 307 | .sleep = set_radio_sleep, | 299 | .sleep = set_radio_sleep, |
| 308 | .release = tea5761_release, | 300 | .release = dvb_tuner_simple_release, |
| 309 | .get_frequency = tea5761_get_frequency, | 301 | .get_frequency = tea5761_get_frequency, |
| 310 | .get_status = tea5761_get_status, | 302 | .get_status = tea5761_get_status, |
| 311 | .get_rf_strength = tea5761_get_rf_strength, | 303 | .get_rf_strength = tea5761_get_rf_strength, |
diff --git a/drivers/media/tuners/tea5767.c b/drivers/media/tuners/tea5767.c index d62a6d6b1f42..a33c97de8b8a 100644 --- a/drivers/media/tuners/tea5767.c +++ b/drivers/media/tuners/tea5767.c | |||
| @@ -401,14 +401,6 @@ int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr) | |||
| 401 | return 0; | 401 | return 0; |
| 402 | } | 402 | } |
| 403 | 403 | ||
| 404 | static int tea5767_release(struct dvb_frontend *fe) | ||
| 405 | { | ||
| 406 | kfree(fe->tuner_priv); | ||
| 407 | fe->tuner_priv = NULL; | ||
| 408 | |||
| 409 | return 0; | ||
| 410 | } | ||
| 411 | |||
| 412 | static int tea5767_get_frequency(struct dvb_frontend *fe, u32 *frequency) | 404 | static int tea5767_get_frequency(struct dvb_frontend *fe, u32 *frequency) |
| 413 | { | 405 | { |
| 414 | struct tea5767_priv *priv = fe->tuner_priv; | 406 | struct tea5767_priv *priv = fe->tuner_priv; |
| @@ -434,7 +426,7 @@ static const struct dvb_tuner_ops tea5767_tuner_ops = { | |||
| 434 | .set_analog_params = set_radio_freq, | 426 | .set_analog_params = set_radio_freq, |
| 435 | .set_config = tea5767_set_config, | 427 | .set_config = tea5767_set_config, |
| 436 | .sleep = tea5767_standby, | 428 | .sleep = tea5767_standby, |
| 437 | .release = tea5767_release, | 429 | .release = dvb_tuner_simple_release, |
| 438 | .get_frequency = tea5767_get_frequency, | 430 | .get_frequency = tea5767_get_frequency, |
| 439 | .get_status = tea5767_get_status, | 431 | .get_status = tea5767_get_status, |
| 440 | .get_rf_strength = tea5767_get_rf_strength, | 432 | .get_rf_strength = tea5767_get_rf_strength, |
