Browse Source

[media] DVB: dvb_frontend: fix stale parameters on initial frontend event

  Modify it to use the data given by the user.

Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andreas Oberritter 14 years ago
parent
commit
56ce5ac41a
1 changed files with 7 additions and 0 deletions
  1. 7 0
      drivers/media/dvb/dvb-core/dvb_frontend.c

+ 7 - 0
drivers/media/dvb/dvb-core/dvb_frontend.c

@@ -1827,6 +1827,13 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
 			dtv_property_cache_sync(fe, c, &fepriv->parameters_in);
 		}
 
+		/*
+		 * Initialize output parameters to match the values given by
+		 * the user. FE_SET_FRONTEND triggers an initial frontend event
+		 * with status = 0, which copies output parameters to userspace.
+		 */
+		fepriv->parameters_out = fepriv->parameters_in;
+
 		memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings));
 		memcpy(&fetunesettings.parameters, parg,
 		       sizeof (struct dvb_frontend_parameters));