summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dvb-core
diff options
context:
space:
mode:
authorAndrew de Quincy <devnull@localhost>2004-03-14 13:46:59 +0000
committerAndrew de Quincy <devnull@localhost>2004-03-14 13:46:59 +0000
commitaf1df40642bd545afee9fa5a31cfe6c49d4fe116 (patch)
treece876967f369fcfac1cabaac245a2218de43515c /linux/drivers/media/dvb/dvb-core
parent88b768d2c49c62fcaa4dacae229d83b91629b70e (diff)
downloadmediapointer-dvb-s2-af1df40642bd545afee9fa5a31cfe6c49d4fe116.tar.gz
mediapointer-dvb-s2-af1df40642bd545afee9fa5a31cfe6c49d4fe116.tar.bz2
Converted 8space->1tabs (formatting)
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c436
1 files changed, 218 insertions, 218 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
index 37d296e2f..ae3d3c906 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -2,9 +2,9 @@
* dvb-core.c: DVB core driver
*
* Copyright (C) 1999-2001 Ralph Metzler
- * Marcus Metzler
- * Holger Waechtler
- * for convergence integrated media GmbH
+ * Marcus Metzler
+ * Holger Waechtler
+ * for convergence integrated media GmbH
*
* Copyright (C) 2004 Andrew de Quincey (tuning thread cleanup)
*
@@ -15,7 +15,7 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
@@ -81,11 +81,11 @@ static int do_frequency_bending = 0;
struct dvb_fe_events {
struct dvb_frontend_event events[MAX_EVENT];
- int eventw;
- int eventr;
- int overflow;
- wait_queue_head_t wait_queue;
- struct semaphore sem;
+ int eventw;
+ int eventr;
+ int overflow;
+ wait_queue_head_t wait_queue;
+ struct semaphore sem;
};
@@ -100,19 +100,19 @@ struct dvb_frontend_data {
wait_queue_head_t wait_queue;
pid_t thread_pid;
unsigned long release_jiffies;
- int state;
+ int state;
int bending;
int lnb_drift;
- int inversion;
- int auto_step;
- int auto_sub_step;
- int started_auto_step;
- int min_delay;
- int max_drift;
- int step_size;
+ int inversion;
+ int auto_step;
+ int auto_sub_step;
+ int started_auto_step;
+ int min_delay;
+ int max_drift;
+ int step_size;
int exit;
- int wakeup;
- fe_status_t status;
+ int wakeup;
+ fe_status_t status;
};
@@ -210,7 +210,7 @@ static void dvb_bend_frequency (struct dvb_frontend_data *this_fe, int recursive
frequency += this_fe->bending;
if (this_fe != fe && (fe->state != FESTATE_IDLE) &&
- frequency > f - stepsize && frequency < f + stepsize)
+ frequency > f - stepsize && frequency < f + stepsize)
{
if (recursive % 2)
this_fe->bending += stepsize;
@@ -289,44 +289,44 @@ static void dvb_frontend_add_event (struct dvb_frontend_data *fe, fe_status_t st
static int dvb_frontend_get_event (struct dvb_frontend_data *fe,
struct dvb_frontend_event *event, int flags)
{
- struct dvb_fe_events *events = &fe->events;
+ struct dvb_fe_events *events = &fe->events;
dprintk ("%s\n", __FUNCTION__);
if (events->overflow) {
- events->overflow = 0;
- return -EOVERFLOW;
- }
+ events->overflow = 0;
+ return -EOVERFLOW;
+ }
- if (events->eventw == events->eventr) {
+ if (events->eventw == events->eventr) {
int ret;
- if (flags & O_NONBLOCK)
- return -EWOULDBLOCK;
+ if (flags & O_NONBLOCK)
+ return -EWOULDBLOCK;
up(&fe->sem);
- ret = wait_event_interruptible (events->wait_queue,
- events->eventw != events->eventr);
+ ret = wait_event_interruptible (events->wait_queue,
+ events->eventw != events->eventr);
- if (down_interruptible (&fe->sem))
+ if (down_interruptible (&fe->sem))
return -ERESTARTSYS;
- if (ret < 0)
- return ret;
- }
+ if (ret < 0)
+ return ret;
+ }
- if (down_interruptible (&events->sem))
+ if (down_interruptible (&events->sem))
return -ERESTARTSYS;
- memcpy (event, &events->events[events->eventr],
+ memcpy (event, &events->events[events->eventr],
sizeof(struct dvb_frontend_event));
- events->eventr = (events->eventr + 1) % MAX_EVENT;
+ events->eventr = (events->eventr + 1) % MAX_EVENT;
- up (&events->sem);
+ up (&events->sem);
- return 0;
+ return 0;
}
static void dvb_frontend_init (struct dvb_frontend_data *fe)
@@ -342,19 +342,19 @@ static void dvb_frontend_init (struct dvb_frontend_data *fe)
static void update_delay (int *quality, int *delay, int min_delay, int locked)
{
- int q2;
+ int q2;
- dprintk ("%s\n", __FUNCTION__);
+ dprintk ("%s\n", __FUNCTION__);
- if (locked)
- (*quality) = (*quality * 220 + 36*256) / 256;
- else
- (*quality) = (*quality * 220 + 0) / 256;
+ if (locked)
+ (*quality) = (*quality * 220 + 36*256) / 256;
+ else
+ (*quality) = (*quality * 220 + 0) / 256;
- q2 = *quality - 128;
- q2 *= q2;
+ q2 = *quality - 128;
+ q2 *= q2;
- *delay = min_delay + q2 * HZ / (128*128);
+ *delay = min_delay + q2 * HZ / (128*128);
}
/**
@@ -366,89 +366,89 @@ static void update_delay (int *quality, int *delay, int min_delay, int locked)
*/
static int dvb_frontend_autotune(struct dvb_frontend_data *fe, int check_wrapped)
{
- int autoinversion;
- int ready = 0;
- int original_inversion = fe->parameters.inversion;
- u32 original_frequency = fe->parameters.frequency;
-
- // are we using autoinversion?
- autoinversion = ((!(fe->info->caps & FE_CAN_INVERSION_AUTO)) && (fe->parameters.inversion == INVERSION_AUTO));
-
- // setup parameters correctly
- while(!ready) {
- // calculate the lnb_drift
- fe->lnb_drift = fe->auto_step * fe->step_size;
-
- // wrap the auto_step if we've exceeded the maximum drift
- if (fe->lnb_drift > fe->max_drift) {
- fe->auto_step = 0;
- fe->auto_sub_step = 0;
- fe->lnb_drift = 0;
+ int autoinversion;
+ int ready = 0;
+ int original_inversion = fe->parameters.inversion;
+ u32 original_frequency = fe->parameters.frequency;
+
+ // are we using autoinversion?
+ autoinversion = ((!(fe->info->caps & FE_CAN_INVERSION_AUTO)) && (fe->parameters.inversion == INVERSION_AUTO));
+
+ // setup parameters correctly
+ while(!ready) {
+ // calculate the lnb_drift
+ fe->lnb_drift = fe->auto_step * fe->step_size;
+
+ // wrap the auto_step if we've exceeded the maximum drift
+ if (fe->lnb_drift > fe->max_drift) {
+ fe->auto_step = 0;
+ fe->auto_sub_step = 0;
+ fe->lnb_drift = 0;
}
- // perform inversion and +/- zigzag
- switch(fe->auto_sub_step) {
+ // perform inversion and +/- zigzag
+ switch(fe->auto_sub_step) {
case 0:
- // try with the current inversion and current drift setting
- ready = 1;
- break;
+ // try with the current inversion and current drift setting
+ ready = 1;
+ break;
case 1:
- if (!autoinversion) break;
+ if (!autoinversion) break;
- fe->inversion = (fe->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF;
- ready = 1;
- break;
+ fe->inversion = (fe->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF;
+ ready = 1;
+ break;
case 2:
- if (fe->lnb_drift == 0) break;
+ if (fe->lnb_drift == 0) break;
- fe->lnb_drift = -fe->lnb_drift;
- ready = 1;
- break;
+ fe->lnb_drift = -fe->lnb_drift;
+ ready = 1;
+ break;
case 3:
- if (fe->lnb_drift == 0) break;
- if (!autoinversion) break;
+ if (fe->lnb_drift == 0) break;
+ if (!autoinversion) break;
- fe->inversion = (fe->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF;
- fe->lnb_drift = -fe->lnb_drift;
- ready = 1;
- break;
+ fe->inversion = (fe->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF;
+ fe->lnb_drift = -fe->lnb_drift;
+ ready = 1;
+ break;
default:
- fe->auto_step++;
- fe->auto_sub_step = -1; // it'll be incremented to 0 in a moment
- break;
+ fe->auto_step++;
+ fe->auto_sub_step = -1; // it'll be incremented to 0 in a moment
+ break;
}
- if (!ready) fe->auto_sub_step++;
+ if (!ready) fe->auto_sub_step++;
}
- // if this attempt would hit where we started, indicate a complete iteration has occurred
- if ((fe->auto_step == fe->started_auto_step) && (fe->auto_sub_step == 0) && check_wrapped) {
- return 1;
+ // if this attempt would hit where we started, indicate a complete iteration has occurred
+ if ((fe->auto_step == fe->started_auto_step) && (fe->auto_sub_step == 0) && check_wrapped) {
+ return 1;
}
- // perform frequency bending if necessary
- if ((dvb_override_frequency_bending != 1) && do_frequency_bending)
- dvb_bend_frequency(fe, 0);
+ // perform frequency bending if necessary
+ if ((dvb_override_frequency_bending != 1) && do_frequency_bending)
+ dvb_bend_frequency(fe, 0);
- // instrumentation
- dprintk("%s: drift:%i bending:%i inversion:%i auto_step:%i auto_sub_step:%i started_auto_step:%i\n",
+ // instrumentation
+ dprintk("%s: drift:%i bending:%i inversion:%i auto_step:%i auto_sub_step:%i started_auto_step:%i\n",
__FUNCTION__, fe->lnb_drift, fe->bending, fe->inversion, fe->auto_step, fe->auto_sub_step,
fe->started_auto_step);
- // set the frontend itself
+ // set the frontend itself
fe->parameters.frequency += fe->lnb_drift + fe->bending;
- if (autoinversion) fe->parameters.inversion = fe->inversion;
+ if (autoinversion) fe->parameters.inversion = fe->inversion;
dvb_frontend_internal_ioctl (&fe->frontend, FE_SET_FRONTEND, &fe->parameters);
fe->parameters.frequency = original_frequency;
- fe->parameters.inversion = original_inversion;
+ fe->parameters.inversion = original_inversion;
// normal return
- fe->auto_sub_step++;
- return 0;
+ fe->auto_sub_step++;
+ return 0;
}
@@ -468,15 +468,15 @@ static int dvb_frontend_is_exiting (struct dvb_frontend_data *fe)
static int dvb_frontend_should_wakeup (struct dvb_frontend_data *fe)
{
if (fe->wakeup) {
- fe->wakeup = 0;
+ fe->wakeup = 0;
return 1;
}
- return dvb_frontend_is_exiting(fe);
+ return dvb_frontend_is_exiting(fe);
}
static void dvb_frontend_wakeup (struct dvb_frontend_data *fe) {
- fe->wakeup = 1;
- wake_up_interruptible(&fe->wait_queue);
+ fe->wakeup = 1;
+ wake_up_interruptible(&fe->wait_queue);
}
static int dvb_frontend_thread (void *data)
@@ -486,7 +486,7 @@ static int dvb_frontend_thread (void *data)
char name [15];
int quality = 0, delay = 3*HZ;
fe_status_t s;
- int check_wrapped = 0;
+ int check_wrapped = 0;
dprintk ("%s\n", __FUNCTION__);
@@ -497,10 +497,10 @@ static int dvb_frontend_thread (void *data)
dvb_call_frontend_notifiers (fe, 0);
dvb_frontend_init (fe);
- fe->wakeup = 0;
+ fe->wakeup = 0;
while (1) {
- up (&fe->sem); /* is locked when we enter the thread... */
+ up (&fe->sem); /* is locked when we enter the thread... */
timeout = wait_event_interruptible_timeout(fe->wait_queue,0 != dvb_frontend_should_wakeup (fe), delay);
if (-ERESTARTSYS == timeout || 0 != dvb_frontend_is_exiting (fe)) {
@@ -511,103 +511,103 @@ static int dvb_frontend_thread (void *data)
if (down_interruptible (&fe->sem))
break;
- // if we've got no parameters, just keep idling
+ // if we've got no parameters, just keep idling
if (fe->state & FESTATE_IDLE) {
- delay = 3*HZ;
- quality = 0;
- continue;
+ delay = 3*HZ;
+ quality = 0;
+ continue;
}
- // get the frontend status
+ // get the frontend status
dvb_frontend_internal_ioctl (&fe->frontend, FE_READ_STATUS, &s);
if (s != fe->status)
dvb_frontend_add_event (fe, s);
- // if we're not tuned, and we have a lock, move to the TUNED state
+ // if we're not tuned, and we have a lock, move to the TUNED state
if ((fe->state & FESTATE_WAITFORLOCK) && (s & FE_HAS_LOCK)) {
- update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
- fe->state = FESTATE_TUNED;
+ update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
+ fe->state = FESTATE_TUNED;
- // if we're tuned, then we have determined the correct inversion
- if ((!(fe->info->caps & FE_CAN_INVERSION_AUTO)) && (fe->parameters.inversion == INVERSION_AUTO)) {
- fe->parameters.inversion = fe->inversion;
+ // if we're tuned, then we have determined the correct inversion
+ if ((!(fe->info->caps & FE_CAN_INVERSION_AUTO)) && (fe->parameters.inversion == INVERSION_AUTO)) {
+ fe->parameters.inversion = fe->inversion;
}
- continue;
+ continue;
}
- // if we are tuned already, check we're still locked
- if (fe->state & FESTATE_TUNED) {
- update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
+ // if we are tuned already, check we're still locked
+ if (fe->state & FESTATE_TUNED) {
+ update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
- // we're tuned, and the lock is still good...
- if (s & FE_HAS_LOCK) {
- continue;
+ // we're tuned, and the lock is still good...
+ if (s & FE_HAS_LOCK) {
+ continue;
} else {
- // if we _WERE_ tuned, but now don't have a lock, need to zigzag
- fe->state = FESTATE_ZIGZAG_FAST;
- fe->started_auto_step = fe->auto_step;
- check_wrapped = 0;
- // fallthrough
+ // if we _WERE_ tuned, but now don't have a lock, need to zigzag
+ fe->state = FESTATE_ZIGZAG_FAST;
+ fe->started_auto_step = fe->auto_step;
+ check_wrapped = 0;
+ // fallthrough
}
}
- // don't actually do anything if we're in the LOSTLOCK state, the frontend is set to
+ // don't actually do anything if we're in the LOSTLOCK state, the frontend is set to
// FE_CAN_RECOVER, and the max_drift is 0
- if ((fe->state & FESTATE_LOSTLOCK) &&
+ if ((fe->state & FESTATE_LOSTLOCK) &&
(fe->info->caps & FE_CAN_RECOVER) && (fe->max_drift == 0)) {
- update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
- continue;
+ update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
+ continue;
}
- // don't do anything if we're in the DISEQC state, since this might be someone
+ // don't do anything if we're in the DISEQC state, since this might be someone
// with a motorized dish controlled by DISEQC. If its actually a re-tune, there will
// be a SET_FRONTEND soon enough.
- if (fe->state & FESTATE_DISEQC) {
- update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
- continue;
+ if (fe->state & FESTATE_DISEQC) {
+ update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
+ continue;
}
- // if we're in the RETUNE state, set everything up for a brand new scan,
+ // if we're in the RETUNE state, set everything up for a brand new scan,
// keeping the current inversion setting, as the next tune is _very_ likely
// to require the same
- if (fe->state & FESTATE_RETUNE) {
- fe->lnb_drift = 0;
- fe->auto_step = 0;
- fe->auto_sub_step = 0;
- fe->started_auto_step = 0;
- check_wrapped = 0;
+ if (fe->state & FESTATE_RETUNE) {
+ fe->lnb_drift = 0;
+ fe->auto_step = 0;
+ fe->auto_sub_step = 0;
+ fe->started_auto_step = 0;
+ check_wrapped = 0;
}
- // fast zigzag.
+ // fast zigzag.
if ((fe->state & FESTATE_SEARCHING_FAST) || (fe->state & FESTATE_RETUNE)) {
- delay = fe->min_delay;
-
- // peform a tune
- if (dvb_frontend_autotune(fe, check_wrapped)) {
- // OK, if we've run out of trials at the fast speed. Drop back to
- // slow for the _next_ attempt
- fe->state = FESTATE_SEARCHING_SLOW;
- fe->started_auto_step = fe->auto_step;
- continue;
+ delay = fe->min_delay;
+
+ // peform a tune
+ if (dvb_frontend_autotune(fe, check_wrapped)) {
+ // OK, if we've run out of trials at the fast speed. Drop back to
+ // slow for the _next_ attempt
+ fe->state = FESTATE_SEARCHING_SLOW;
+ fe->started_auto_step = fe->auto_step;
+ continue;
}
- check_wrapped = 1;
+ check_wrapped = 1;
- // if we've just retuned, enter the ZIGZAG_FAST state. This ensures
+ // if we've just retuned, enter the ZIGZAG_FAST state. This ensures
// we cannot return from an FE_SET_FRONTEND ioctl before the first frontend
// tune occurs
if (fe->state & FESTATE_RETUNE) {
- fe->state = FESTATE_TUNING_FAST;
- wake_up_interruptible(&fe->wait_queue);
+ fe->state = FESTATE_TUNING_FAST;
+ wake_up_interruptible(&fe->wait_queue);
}
}
- // slow zigzag
+ // slow zigzag
if (fe->state & FESTATE_SEARCHING_SLOW) {
- update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
+ update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
- // Note: don't bother checking for wrapping; we stay in this state
- // until we get a lock
- dvb_frontend_autotune(fe, 0);
+ // Note: don't bother checking for wrapping; we stay in this state
+ // until we get a lock
+ dvb_frontend_autotune(fe, 0);
}
};
@@ -619,14 +619,14 @@ static int dvb_frontend_thread (void *data)
fe->thread_pid = 0;
mb();
- dvb_frontend_wakeup(fe);
+ dvb_frontend_wakeup(fe);
return 0;
}
static void dvb_frontend_stop (struct dvb_frontend_data *fe)
{
- unsigned long ret;
+ unsigned long ret;
dprintk ("%s\n", __FUNCTION__);
@@ -646,15 +646,15 @@ static void dvb_frontend_stop (struct dvb_frontend_data *fe)
}
/* wake up the frontend thread, so it notices that fe->exit == 1 */
- dvb_frontend_wakeup(fe);
+ dvb_frontend_wakeup(fe);
/* wait until the frontend thread has exited */
ret = wait_event_interruptible(fe->wait_queue,0 == fe->thread_pid);
if (-ERESTARTSYS != ret) {
- fe->state = FESTATE_IDLE;
+ fe->state = FESTATE_IDLE;
return;
}
- fe->state = FESTATE_IDLE;
+ fe->state = FESTATE_IDLE;
/* paranoia check in case a signal arrived */
if (fe->thread_pid)
@@ -681,7 +681,7 @@ static int dvb_frontend_start (struct dvb_frontend_data *fe)
if (down_interruptible (&fe->sem))
return -EINTR;
- fe->state = FESTATE_IDLE;
+ fe->state = FESTATE_IDLE;
fe->exit = 0;
fe->thread_pid = 0;
mb();
@@ -719,7 +719,7 @@ static int dvb_frontend_ioctl (struct inode *inode, struct file *file,
{
struct dvb_device *dvbdev = file->private_data;
struct dvb_frontend_data *fe = dvbdev->priv;
- struct dvb_frontend_tune_settings fetunesettings;
+ struct dvb_frontend_tune_settings fetunesettings;
int err = 0;
dprintk ("%s\n", __FUNCTION__);
@@ -737,7 +737,7 @@ static int dvb_frontend_ioctl (struct inode *inode, struct file *file,
if (fe->status)
dvb_call_frontend_notifiers (fe, 0);
dvb_frontend_internal_ioctl (&fe->frontend, cmd, parg);
- fe->state = FESTATE_DISEQC;
+ fe->state = FESTATE_DISEQC;
break;
case FE_SET_FRONTEND:
@@ -746,44 +746,44 @@ static int dvb_frontend_ioctl (struct inode *inode, struct file *file,
memcpy (&fe->parameters, parg,
sizeof (struct dvb_frontend_parameters));
- memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings));
- memcpy(&fetunesettings.parameters, parg,
+ memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings));
+ memcpy(&fetunesettings.parameters, parg,
sizeof (struct dvb_frontend_parameters));
-
- // force auto frequency inversion if requested
- if (dvb_force_auto_inversion) {
- fe->parameters.inversion = INVERSION_AUTO;
- fetunesettings.parameters.inversion = INVERSION_AUTO;
+
+ // force auto frequency inversion if requested
+ if (dvb_force_auto_inversion) {
+ fe->parameters.inversion = INVERSION_AUTO;
+ fetunesettings.parameters.inversion = INVERSION_AUTO;
}
- // get frontend-specific tuning settings
- if (dvb_frontend_internal_ioctl(&fe->frontend, FE_GET_TUNE_SETTINGS, &fetunesettings) == 0) {
- fe->min_delay = (fetunesettings.min_delay_ms * HZ) / 1000;
- fe->max_drift = fetunesettings.max_drift;
- fe->step_size = fetunesettings.step_size;
+ // get frontend-specific tuning settings
+ if (dvb_frontend_internal_ioctl(&fe->frontend, FE_GET_TUNE_SETTINGS, &fetunesettings) == 0) {
+ fe->min_delay = (fetunesettings.min_delay_ms * HZ) / 1000;
+ fe->max_drift = fetunesettings.max_drift;
+ fe->step_size = fetunesettings.step_size;
} else {
- // default values
- switch(fe->info->type) {
+ // default values
+ switch(fe->info->type) {
case FE_QPSK:
- fe->min_delay = HZ/20; // default mindelay of 50ms
- fe->step_size = fe->parameters.u.qpsk.symbol_rate / 16000;
- fe->max_drift = fe->parameters.u.qpsk.symbol_rate / 2000;
- break;
+ fe->min_delay = HZ/20; // default mindelay of 50ms
+ fe->step_size = fe->parameters.u.qpsk.symbol_rate / 16000;
+ fe->max_drift = fe->parameters.u.qpsk.symbol_rate / 2000;
+ break;
case FE_QAM:
- fe->min_delay = HZ/20; // default mindelay of 50ms
- fe->step_size = 0;
- fe->max_drift = 0; // don't want any zigzagging under DVB-C frontends
- break;
+ fe->min_delay = HZ/20; // default mindelay of 50ms
+ fe->step_size = 0;
+ fe->max_drift = 0; // don't want any zigzagging under DVB-C frontends
+ break;
case FE_OFDM:
- fe->min_delay = HZ/20; // default mindelay of 50ms
- fe->step_size = fe->info->frequency_stepsize * 2;
- fe->max_drift = (fe->info->frequency_stepsize * 2) + 1;
- break;
+ fe->min_delay = HZ/20; // default mindelay of 50ms
+ fe->step_size = fe->info->frequency_stepsize * 2;
+ fe->max_drift = (fe->info->frequency_stepsize * 2) + 1;
+ break;
}
}
- if (dvb_override_tune_delay > 0) {
+ if (dvb_override_tune_delay > 0) {
fe->min_delay = (dvb_override_tune_delay * HZ) / 1000;
}
@@ -804,18 +804,18 @@ static int dvb_frontend_ioctl (struct inode *inode, struct file *file,
up (&fe->sem);
- // Force the CAN_INVERSION_AUTO bit on. If the frontend doesn't do it, it is done for it.
+ // Force the CAN_INVERSION_AUTO bit on. If the frontend doesn't do it, it is done for it.
if ((cmd == FE_GET_INFO) && (err == 0)) {
- struct dvb_frontend_info* tmp = (struct dvb_frontend_info*) parg;
- tmp->caps |= FE_CAN_INVERSION_AUTO;
+ struct dvb_frontend_info* tmp = (struct dvb_frontend_info*) parg;
+ tmp->caps |= FE_CAN_INVERSION_AUTO;
}
- // if the frontend has just been set, wait until the first tune has finished.
+ // if the frontend has just been set, wait until the first tune has finished.
// This ensures the app doesn't start reading data too quickly, perhaps from the
// previous lock, which is REALLY CONFUSING TO DEBUG!
if ((cmd == FE_SET_FRONTEND) && (err == 0)) {
- dvb_frontend_wakeup(fe);
- err = wait_event_interruptible(fe->wait_queue, fe->state & ~FESTATE_RETUNE);
+ dvb_frontend_wakeup(fe);
+ err = wait_event_interruptible(fe->wait_queue, fe->state & ~FESTATE_RETUNE);
}
return err;
@@ -879,14 +879,14 @@ static int dvb_frontend_release (struct inode *inode, struct file *file)
int
dvb_add_frontend_ioctls (struct dvb_adapter *adapter,
- int (*before_ioctl) (struct dvb_frontend *frontend,
- unsigned int cmd, void *arg),
- int (*after_ioctl) (struct dvb_frontend *frontend,
- unsigned int cmd, void *arg),
+ int (*before_ioctl) (struct dvb_frontend *frontend,
+ unsigned int cmd, void *arg),
+ int (*after_ioctl) (struct dvb_frontend *frontend,
+ unsigned int cmd, void *arg),
void *before_after_data)
{
struct dvb_frontend_ioctl_data *ioctl;
- struct list_head *entry;
+ struct list_head *entry;
dprintk ("%s\n", __FUNCTION__);
@@ -931,9 +931,9 @@ dvb_add_frontend_ioctls (struct dvb_adapter *adapter,
void
dvb_remove_frontend_ioctls (struct dvb_adapter *adapter,
int (*before_ioctl) (struct dvb_frontend *frontend,
- unsigned int cmd, void *arg),
- int (*after_ioctl) (struct dvb_frontend *frontend,
- unsigned int cmd, void *arg))
+ unsigned int cmd, void *arg),
+ int (*after_ioctl) (struct dvb_frontend *frontend,
+ unsigned int cmd, void *arg))
{
struct list_head *entry, *n;
@@ -1113,7 +1113,7 @@ dvb_register_frontend (int (*ioctl) (struct dvb_frontend *frontend,
fe->frontend.i2c = i2c;
fe->frontend.data = data;
fe->info = info;
- fe->inversion = INVERSION_OFF;
+ fe->inversion = INVERSION_OFF;
list_for_each (entry, &frontend_ioctl_list) {
struct dvb_frontend_ioctl_data *ioctl;
@@ -1153,8 +1153,8 @@ dvb_register_frontend (int (*ioctl) (struct dvb_frontend *frontend,
dvb_register_device (i2c->adapter, &fe->dvbdev, &dvbdev_template,
fe, DVB_DEVICE_FRONTEND);
- if ((info->caps & FE_NEEDS_BENDING) || (dvb_override_frequency_bending == 2))
- do_frequency_bending = 1;
+ if ((info->caps & FE_NEEDS_BENDING) || (dvb_override_frequency_bending == 2))
+ do_frequency_bending = 1;
up (&frontend_mutex);
@@ -1166,7 +1166,7 @@ int dvb_unregister_frontend (int (*ioctl) (struct dvb_frontend *frontend,
unsigned int cmd, void *arg),
struct dvb_i2c_bus *i2c)
{
- struct list_head *entry, *n;
+ struct list_head *entry, *n;
dprintk ("%s\n", __FUNCTION__);