rendered paste bodydiff -urNp v4l-dvb.org/linux/drivers/media/dvb/dvb-core/dvb_frontend.c v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
--- v4l-dvb.org/linux/drivers/media/dvb/dvb-core/dvb_frontend.c 2007-02-24 11:57:13.000000000 +0100
+++ v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.c 2007-05-21 19:16:42.000000000 +0200
@@ -460,8 +460,8 @@ int newapi_to_olddrv(struct dvbfe_params
case DVBFE_DELSYS_DVBS2:
case DVBFE_DELSYS_DSS:
case DVBFE_DELSYS_DVBH:
- printk("%s: SORRY ! Backward compatibility unavailable for these delivery systems !!\n", __func__);
- break;
+/* printk("%s: SORRY ! Backward compatibility unavailable for these delivery systems !!\n", __func__);
+*/ break;
default:
dprintk("%s: Unsupported delivery system\n", __func__);
return -EINVAL;
@@ -1559,10 +1559,20 @@ static int dvb_frontend_ioctl(struct ino
struct dvb_frontend_tune_settings fetunesettings;
fe->legacy = 1;
+
+ memset(&fepriv->fe_info, 0, sizeof (struct dvbfe_info));
+ fepriv->fe_info.delivery = DVBFE_DELSYS_DVBS;
+ fe->ops.get_info(fe, &fepriv->fe_info);
+
memcpy(&fepriv->parameters, parg, sizeof (struct dvb_frontend_parameters));
memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings));
memcpy(&fetunesettings.parameters, parg, sizeof (struct dvb_frontend_parameters));
+ olddrv_to_newapi(fe,&fepriv->fe_params, &fepriv->parameters, FE_QPSK);
+
+ /* Request the search algorithm to search */
+ fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
+
/* force auto frequency inversion if requested */
if (dvb_force_auto_inversion) {
fepriv->parameters.inversion = INVERSION_AUTO;
@@ -1710,8 +1720,8 @@ static int dvb_frontend_ioctl(struct ino
fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000;
fepriv->state = FESTATE_RETUNE;
- printk("%s: FESTATE_RETUNE: fepriv->state=%d\n", __func__, fepriv->state);
- dvb_frontend_wakeup(fe);
+/* printk("%s: FESTATE_RETUNE: fepriv->state=%d\n", __func__, fepriv->state);
+*/ dvb_frontend_wakeup(fe);
dvb_frontend_add_event(fe, 0);
fepriv->status = 0;
err = 0;
@@ -1737,8 +1747,8 @@ static int dvb_frontend_ioctl(struct ino
}
break;
case DVBFE_GET_INFO:
- printk("%s: DVBFE_GET_INFO\n", __func__);
- fe->legacy = 0;
+/* printk("%s: DVBFE_GET_INFO\n", __func__);
+*/ fe->legacy = 0;
if (fe->ops.get_info) {
memcpy(&fepriv->fe_info, (struct dvbfe_info *) parg, sizeof (struct dvbfe_info));
err = fe->ops.get_info(fe, &fepriv->fe_info);
@@ -1893,13 +1903,15 @@ void dvb_frontend_detach(struct dvb_fron
{
void *ptr;
- if (fe->ops.release_sec) {
+ ptr = (void*)fe->ops.release_sec;
+ if (ptr) {
fe->ops.release_sec(fe);
- symbol_put_addr(fe->ops.release_sec);
+ symbol_put_addr(ptr);
}
- if (fe->ops.tuner_ops.release) {
+ ptr = (void*)fe->ops.tuner_ops.release;
+ if (ptr) {
fe->ops.tuner_ops.release(fe);
- symbol_put_addr(fe->ops.tuner_ops.release);
+ symbol_put_addr(ptr);
}
ptr = (void*)fe->ops.release;
if (ptr) {