Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22a613e8 authored by Max Kellermann's avatar Max Kellermann Committed by Mauro Carvalho Chehab
Browse files

[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: default avatarMax Kellermann <max.kellermann@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 4d5030b6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -174,6 +174,15 @@ static bool has_get_frontend(struct dvb_frontend *fe)
	return fe->ops.get_frontend != NULL;
}

int
dvb_tuner_simple_release(struct dvb_frontend *fe)
{
	kfree(fe->tuner_priv);
	fe->tuner_priv = NULL;
	return 0;
}
EXPORT_SYMBOL(dvb_tuner_simple_release);

/*
 * Due to DVBv3 API calls, a delivery system should be mapped into one of
 * the 4 DVBv3 delivery systems (FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC),
+7 −0
Original line number Diff line number Diff line
@@ -266,6 +266,13 @@ struct dvb_tuner_ops {
	int (*set_bandwidth)(struct dvb_frontend *fe, u32 bandwidth);
};

/**
 * A common default implementation for dvb_tuner_ops.release.  All it
 * does is kfree() the tuner_priv and assign NULL to it.
 */
int
dvb_tuner_simple_release(struct dvb_frontend *fe);

/**
 * struct analog_demod_info - Information struct for analog TV part of the demod
 *
+1 −8
Original line number Diff line number Diff line
@@ -722,13 +722,6 @@ static int dib0070_get_frequency(struct dvb_frontend *fe, u32 *frequency)
	return 0;
}

static int dib0070_release(struct dvb_frontend *fe)
{
	kfree(fe->tuner_priv);
	fe->tuner_priv = NULL;
	return 0;
}

static const struct dvb_tuner_ops dib0070_ops = {
	.info = {
		.name           = "DiBcom DiB0070",
@@ -736,7 +729,7 @@ static const struct dvb_tuner_ops dib0070_ops = {
		.frequency_max  = 860000000,
		.frequency_step =      1000,
	},
	.release       = dib0070_release,
	.release       = dvb_tuner_simple_release,

	.init          = dib0070_wakeup,
	.sleep         = dib0070_sleep,
+2 −9
Original line number Diff line number Diff line
@@ -2526,13 +2526,6 @@ static int dib0090_tune(struct dvb_frontend *fe)
	return ret;
}

static int dib0090_release(struct dvb_frontend *fe)
{
	kfree(fe->tuner_priv);
	fe->tuner_priv = NULL;
	return 0;
}

enum frontend_tune_state dib0090_get_tune_state(struct dvb_frontend *fe)
{
	struct dib0090_state *state = fe->tuner_priv;
@@ -2594,7 +2587,7 @@ static const struct dvb_tuner_ops dib0090_ops = {
		 .frequency_max = 860000000,
		 .frequency_step = 1000,
		 },
	.release = dib0090_release,
	.release = dvb_tuner_simple_release,

	.init = dib0090_wakeup,
	.sleep = dib0090_sleep,
@@ -2609,7 +2602,7 @@ static const struct dvb_tuner_ops dib0090_fw_ops = {
		 .frequency_max = 860000000,
		 .frequency_step = 1000,
		 },
	.release = dib0090_release,
	.release = dvb_tuner_simple_release,

	.init = NULL,
	.sleep = NULL,
+1 −8
Original line number Diff line number Diff line
@@ -606,13 +606,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
	return (div * desc->entries[i].stepsize) - desc->iffreq;
}

static int dvb_pll_release(struct dvb_frontend *fe)
{
	kfree(fe->tuner_priv);
	fe->tuner_priv = NULL;
	return 0;
}

static int dvb_pll_sleep(struct dvb_frontend *fe)
{
	struct dvb_pll_priv *priv = fe->tuner_priv;
@@ -745,7 +738,7 @@ static int dvb_pll_init(struct dvb_frontend *fe)
}

static const struct dvb_tuner_ops dvb_pll_tuner_ops = {
	.release = dvb_pll_release,
	.release = dvb_tuner_simple_release,
	.sleep = dvb_pll_sleep,
	.init = dvb_pll_init,
	.set_params = dvb_pll_set_params,
Loading