diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
index fe0fae482ba46297852da0dd24f6cc0b1f968379..c4e7ebfe4d2955c9d9eb8b0cd55e1302269d7f4b 100644
--- a/drivers/media/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb-core/dvb_frontend.c
@@ -939,7 +939,10 @@ static void dvb_frontend_get_frequency_limits(struct dvb_frontend *fe,
 static u32 dvb_frontend_get_stepsize(struct dvb_frontend *fe)
 {
 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
-	u32 step = fe->ops.info.frequency_stepsize_hz;
+	u32 fe_step = fe->ops.info.frequency_stepsize_hz;
+	u32 tuner_step = fe->ops.tuner_ops.info.frequency_step_hz;
+	u32 step = max(fe_step, tuner_step);
+
 	switch (c->delivery_system) {
 	case SYS_DVBS:
 	case SYS_DVBS2: