• Home
  • Raw
  • Download

Lines Matching refs:fepriv

146 	struct dvb_frontend_private *fepriv = fe->frontend_priv;  in __dvb_frontend_free()  local
148 if (fepriv) in __dvb_frontend_free()
149 dvb_free_device(fepriv->dvbdev); in __dvb_frontend_free()
153 if (fepriv) in __dvb_frontend_free()
154 kfree(fepriv); in __dvb_frontend_free()
248 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_add_event() local
250 struct dvb_fe_events *events = &fepriv->events; in dvb_frontend_add_event()
257 dtv_get_frontend(fe, c, &fepriv->parameters_out); in dvb_frontend_add_event()
269 e->parameters = fepriv->parameters_out; in dvb_frontend_add_event()
278 static int dvb_frontend_test_event(struct dvb_frontend_private *fepriv, in dvb_frontend_test_event() argument
283 up(&fepriv->sem); in dvb_frontend_test_event()
285 down(&fepriv->sem); in dvb_frontend_test_event()
293 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_get_event() local
294 struct dvb_fe_events *events = &fepriv->events; in dvb_frontend_get_event()
310 dvb_frontend_test_event(fepriv, events)); in dvb_frontend_get_event()
326 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_clear_events() local
327 struct dvb_fe_events *events = &fepriv->events; in dvb_frontend_clear_events()
353 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_reinitialise() local
355 fepriv->reinitialise = 1; in dvb_frontend_reinitialise()
360 static void dvb_frontend_swzigzag_update_delay(struct dvb_frontend_private *fepriv, int locked) in dvb_frontend_swzigzag_update_delay() argument
363 struct dvb_frontend *fe = fepriv->dvbdev->priv; in dvb_frontend_swzigzag_update_delay()
368 (fepriv->quality) = (fepriv->quality * 220 + 36*256) / 256; in dvb_frontend_swzigzag_update_delay()
370 (fepriv->quality) = (fepriv->quality * 220 + 0) / 256; in dvb_frontend_swzigzag_update_delay()
372 q2 = fepriv->quality - 128; in dvb_frontend_swzigzag_update_delay()
375 fepriv->delay = fepriv->min_delay + q2 * HZ / (128*128); in dvb_frontend_swzigzag_update_delay()
390 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_swzigzag_autotune() local
402 fepriv->lnb_drift = fepriv->auto_step * fepriv->step_size; in dvb_frontend_swzigzag_autotune()
405 if (fepriv->lnb_drift > fepriv->max_drift) { in dvb_frontend_swzigzag_autotune()
406 fepriv->auto_step = 0; in dvb_frontend_swzigzag_autotune()
407 fepriv->auto_sub_step = 0; in dvb_frontend_swzigzag_autotune()
408 fepriv->lnb_drift = 0; in dvb_frontend_swzigzag_autotune()
412 switch(fepriv->auto_sub_step) { in dvb_frontend_swzigzag_autotune()
421 fepriv->inversion = (fepriv->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF; in dvb_frontend_swzigzag_autotune()
426 if (fepriv->lnb_drift == 0) break; in dvb_frontend_swzigzag_autotune()
428 fepriv->lnb_drift = -fepriv->lnb_drift; in dvb_frontend_swzigzag_autotune()
433 if (fepriv->lnb_drift == 0) break; in dvb_frontend_swzigzag_autotune()
436 fepriv->inversion = (fepriv->inversion == INVERSION_OFF) ? INVERSION_ON : INVERSION_OFF; in dvb_frontend_swzigzag_autotune()
437 fepriv->lnb_drift = -fepriv->lnb_drift; in dvb_frontend_swzigzag_autotune()
442 fepriv->auto_step++; in dvb_frontend_swzigzag_autotune()
443 fepriv->auto_sub_step = -1; /* it'll be incremented to 0 in a moment */ in dvb_frontend_swzigzag_autotune()
447 if (!ready) fepriv->auto_sub_step++; in dvb_frontend_swzigzag_autotune()
452 if ((fepriv->auto_step == fepriv->started_auto_step) && in dvb_frontend_swzigzag_autotune()
453 (fepriv->auto_sub_step == 0) && check_wrapped) { in dvb_frontend_swzigzag_autotune()
459 __func__, fepriv->lnb_drift, fepriv->inversion, in dvb_frontend_swzigzag_autotune()
460 fepriv->auto_step, fepriv->auto_sub_step, in dvb_frontend_swzigzag_autotune()
461 fepriv->started_auto_step); in dvb_frontend_swzigzag_autotune()
464 c->frequency += fepriv->lnb_drift; in dvb_frontend_swzigzag_autotune()
466 c->inversion = fepriv->inversion; in dvb_frontend_swzigzag_autotune()
472 fepriv->state = FESTATE_ERROR; in dvb_frontend_swzigzag_autotune()
479 fepriv->auto_sub_step++; in dvb_frontend_swzigzag_autotune()
487 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_swzigzag() local
491 if (fepriv->state & FESTATE_IDLE) { in dvb_frontend_swzigzag()
492 fepriv->delay = 3*HZ; in dvb_frontend_swzigzag()
493 fepriv->quality = 0; in dvb_frontend_swzigzag()
498 if (fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT) { in dvb_frontend_swzigzag()
499 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_swzigzag()
505 fepriv->state = FESTATE_ERROR; in dvb_frontend_swzigzag()
507 fepriv->state = FESTATE_TUNED; in dvb_frontend_swzigzag()
509 fepriv->delay = 3*HZ; in dvb_frontend_swzigzag()
510 fepriv->quality = 0; in dvb_frontend_swzigzag()
515 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_swzigzag()
520 if (s != fepriv->status) { in dvb_frontend_swzigzag()
522 fepriv->status = s; in dvb_frontend_swzigzag()
527 if ((fepriv->state & FESTATE_WAITFORLOCK) && (s & FE_HAS_LOCK)) { in dvb_frontend_swzigzag()
528 dvb_frontend_swzigzag_update_delay(fepriv, s & FE_HAS_LOCK); in dvb_frontend_swzigzag()
529 fepriv->state = FESTATE_TUNED; in dvb_frontend_swzigzag()
534 c->inversion = fepriv->inversion; in dvb_frontend_swzigzag()
540 if (fepriv->state & FESTATE_TUNED) { in dvb_frontend_swzigzag()
541 dvb_frontend_swzigzag_update_delay(fepriv, s & FE_HAS_LOCK); in dvb_frontend_swzigzag()
547 fepriv->state = FESTATE_ZIGZAG_FAST; in dvb_frontend_swzigzag()
548 fepriv->started_auto_step = fepriv->auto_step; in dvb_frontend_swzigzag()
549 fepriv->check_wrapped = 0; in dvb_frontend_swzigzag()
555 if ((fepriv->state & FESTATE_LOSTLOCK) && in dvb_frontend_swzigzag()
556 (fe->ops.info.caps & FE_CAN_RECOVER) && (fepriv->max_drift == 0)) { in dvb_frontend_swzigzag()
557 dvb_frontend_swzigzag_update_delay(fepriv, s & FE_HAS_LOCK); in dvb_frontend_swzigzag()
564 if (fepriv->state & FESTATE_DISEQC) { in dvb_frontend_swzigzag()
565 dvb_frontend_swzigzag_update_delay(fepriv, s & FE_HAS_LOCK); in dvb_frontend_swzigzag()
572 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_swzigzag()
573 fepriv->lnb_drift = 0; in dvb_frontend_swzigzag()
574 fepriv->auto_step = 0; in dvb_frontend_swzigzag()
575 fepriv->auto_sub_step = 0; in dvb_frontend_swzigzag()
576 fepriv->started_auto_step = 0; in dvb_frontend_swzigzag()
577 fepriv->check_wrapped = 0; in dvb_frontend_swzigzag()
581 if ((fepriv->state & FESTATE_SEARCHING_FAST) || (fepriv->state & FESTATE_RETUNE)) { in dvb_frontend_swzigzag()
582 fepriv->delay = fepriv->min_delay; in dvb_frontend_swzigzag()
586 fepriv->check_wrapped); in dvb_frontend_swzigzag()
592 fepriv->state = FESTATE_SEARCHING_SLOW; in dvb_frontend_swzigzag()
593 fepriv->started_auto_step = fepriv->auto_step; in dvb_frontend_swzigzag()
596 fepriv->check_wrapped = 1; in dvb_frontend_swzigzag()
602 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_swzigzag()
603 fepriv->state = FESTATE_TUNING_FAST; in dvb_frontend_swzigzag()
608 if (fepriv->state & FESTATE_SEARCHING_SLOW) { in dvb_frontend_swzigzag()
609 dvb_frontend_swzigzag_update_delay(fepriv, s & FE_HAS_LOCK); in dvb_frontend_swzigzag()
619 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_is_exiting() local
624 if (fepriv->dvbdev->writers == 1) in dvb_frontend_is_exiting()
625 if (time_after_eq(jiffies, fepriv->release_jiffies + in dvb_frontend_is_exiting()
634 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_should_wakeup() local
636 if (fepriv->wakeup) { in dvb_frontend_should_wakeup()
637 fepriv->wakeup = 0; in dvb_frontend_should_wakeup()
645 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_wakeup() local
647 fepriv->wakeup = 1; in dvb_frontend_wakeup()
648 wake_up_interruptible(&fepriv->wait_queue); in dvb_frontend_wakeup()
655 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_thread() local
663 fepriv->check_wrapped = 0; in dvb_frontend_thread()
664 fepriv->quality = 0; in dvb_frontend_thread()
665 fepriv->delay = 3*HZ; in dvb_frontend_thread()
666 fepriv->status = 0; in dvb_frontend_thread()
667 fepriv->wakeup = 0; in dvb_frontend_thread()
668 fepriv->reinitialise = 0; in dvb_frontend_thread()
674 up(&fepriv->sem); /* is locked when we enter the thread... */ in dvb_frontend_thread()
676 wait_event_interruptible_timeout(fepriv->wait_queue, in dvb_frontend_thread()
679 fepriv->delay); in dvb_frontend_thread()
683 if (!down_interruptible(&fepriv->sem)) in dvb_frontend_thread()
692 if (down_interruptible(&fepriv->sem)) in dvb_frontend_thread()
695 if (fepriv->reinitialise) { in dvb_frontend_thread()
697 if (fe->ops.set_tone && fepriv->tone != -1) in dvb_frontend_thread()
698 fe->ops.set_tone(fe, fepriv->tone); in dvb_frontend_thread()
699 if (fe->ops.set_voltage && fepriv->voltage != -1) in dvb_frontend_thread()
700 fe->ops.set_voltage(fe, fepriv->voltage); in dvb_frontend_thread()
701 fepriv->reinitialise = 0; in dvb_frontend_thread()
711 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_thread()
714 fepriv->state = FESTATE_TUNED; in dvb_frontend_thread()
720 fe->ops.tune(fe, re_tune, fepriv->tune_mode_flags, &fepriv->delay, &s); in dvb_frontend_thread()
722 if (s != fepriv->status && !(fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT)) { in dvb_frontend_thread()
725 fepriv->status = s; in dvb_frontend_thread()
733 …dev_dbg(fe->dvb->device, "%s: Frontend ALGO = DVBFE_ALGO_CUSTOM, state=%d\n", __func__, fepriv->st… in dvb_frontend_thread()
734 if (fepriv->state & FESTATE_RETUNE) { in dvb_frontend_thread()
736 fepriv->state = FESTATE_TUNED; in dvb_frontend_thread()
742 if (fepriv->algo_status & DVBFE_ALGO_SEARCH_AGAIN) { in dvb_frontend_thread()
744 fepriv->algo_status = fe->ops.search(fe); in dvb_frontend_thread()
749 fepriv->algo_status &= ~DVBFE_ALGO_SEARCH_AGAIN; in dvb_frontend_thread()
753 if (fepriv->algo_status != DVBFE_ALGO_SEARCH_SUCCESS) { in dvb_frontend_thread()
754 fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; in dvb_frontend_thread()
755 fepriv->delay = HZ / 2; in dvb_frontend_thread()
757 dtv_property_legacy_params_sync(fe, c, &fepriv->parameters_out); in dvb_frontend_thread()
759 if (s != fepriv->status) { in dvb_frontend_thread()
761 fepriv->status = s; in dvb_frontend_thread()
763 fepriv->delay = HZ / 10; in dvb_frontend_thread()
764 fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; in dvb_frontend_thread()
766 fepriv->delay = 60 * HZ; in dvb_frontend_thread()
793 fepriv->thread = NULL; in dvb_frontend_thread()
801 up(&fepriv->sem); in dvb_frontend_thread()
808 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_stop() local
816 if (!fepriv->thread) in dvb_frontend_stop()
819 kthread_stop(fepriv->thread); in dvb_frontend_stop()
821 sema_init(&fepriv->sem, 1); in dvb_frontend_stop()
822 fepriv->state = FESTATE_IDLE; in dvb_frontend_stop()
825 if (fepriv->thread) in dvb_frontend_stop()
828 fepriv->thread); in dvb_frontend_stop()
856 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_start() local
861 if (fepriv->thread) { in dvb_frontend_start()
870 if (down_interruptible (&fepriv->sem)) in dvb_frontend_start()
873 fepriv->state = FESTATE_IDLE; in dvb_frontend_start()
875 fepriv->thread = NULL; in dvb_frontend_start()
885 up(&fepriv->sem); in dvb_frontend_start()
888 fepriv->thread = fe_thread; in dvb_frontend_start()
1956 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_ioctl() local
1960 if (down_interruptible(&fepriv->sem)) in dvb_frontend_ioctl()
1964 up(&fepriv->sem); in dvb_frontend_ioctl()
1971 up(&fepriv->sem); in dvb_frontend_ioctl()
1982 up(&fepriv->sem); in dvb_frontend_ioctl()
1991 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_ioctl_properties() local
2045 if (fepriv->state != FESTATE_IDLE) { in dvb_frontend_ioctl_properties()
2073 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dtv_set_frontend() local
2086 dtv_property_legacy_params_sync(fe, c, &fepriv->parameters_out); in dtv_set_frontend()
2156 fepriv->min_delay = (fetunesettings.min_delay_ms * HZ) / 1000; in dtv_set_frontend()
2157 fepriv->max_drift = fetunesettings.max_drift; in dtv_set_frontend()
2158 fepriv->step_size = fetunesettings.step_size; in dtv_set_frontend()
2168 fepriv->min_delay = HZ / 20; in dtv_set_frontend()
2169 fepriv->step_size = c->symbol_rate / 16000; in dtv_set_frontend()
2170 fepriv->max_drift = c->symbol_rate / 2000; in dtv_set_frontend()
2176 fepriv->min_delay = HZ / 20; in dtv_set_frontend()
2177 fepriv->step_size = fe->ops.info.frequency_stepsize * 2; in dtv_set_frontend()
2178 fepriv->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; in dtv_set_frontend()
2185 fepriv->min_delay = HZ / 20; in dtv_set_frontend()
2186 fepriv->step_size = 0; /* no zigzag */ in dtv_set_frontend()
2187 fepriv->max_drift = 0; in dtv_set_frontend()
2192 fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000; in dtv_set_frontend()
2194 fepriv->state = FESTATE_RETUNE; in dtv_set_frontend()
2197 fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; in dtv_set_frontend()
2202 fepriv->status = 0; in dtv_set_frontend()
2213 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_ioctl_legacy() local
2258 if (!(fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT)) in dvb_frontend_ioctl_legacy()
2269 if (fepriv->state == FESTATE_RETUNE || in dvb_frontend_ioctl_legacy()
2270 fepriv->state == FESTATE_ERROR) { in dvb_frontend_ioctl_legacy()
2283 if (fepriv->thread) in dvb_frontend_ioctl_legacy()
2292 if (fepriv->thread) in dvb_frontend_ioctl_legacy()
2301 if (fepriv->thread) in dvb_frontend_ioctl_legacy()
2310 if (fepriv->thread) in dvb_frontend_ioctl_legacy()
2320 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2321 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2334 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2335 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2343 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2344 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2352 fepriv->tone = (enum fe_sec_tone_mode)parg; in dvb_frontend_ioctl_legacy()
2353 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2354 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2362 fepriv->voltage = (enum fe_sec_voltage)parg; in dvb_frontend_ioctl_legacy()
2363 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2364 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2372 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2373 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2428 fepriv->state = FESTATE_DISEQC; in dvb_frontend_ioctl_legacy()
2429 fepriv->status = 0; in dvb_frontend_ioctl_legacy()
2470 fepriv->tune_mode_flags = (unsigned long) parg; in dvb_frontend_ioctl_legacy()
2483 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_poll() local
2487 poll_wait (file, &fepriv->events.wait_queue, wait); in dvb_frontend_poll()
2489 if (fepriv->events.eventw != fepriv->events.eventr) in dvb_frontend_poll()
2499 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_open() local
2556 fepriv->reinitialise = 1; in dvb_frontend_open()
2564 fepriv->tune_mode_flags &= ~FE_TUNE_MODE_ONESHOT; in dvb_frontend_open()
2565 fepriv->tone = -1; in dvb_frontend_open()
2566 fepriv->voltage = -1; in dvb_frontend_open()
2574 &fepriv->pipe); in dvb_frontend_open()
2588 fepriv->events.eventr = fepriv->events.eventw = 0; in dvb_frontend_open()
2621 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_release() local
2627 fepriv->release_jiffies = jiffies; in dvb_frontend_release()
2634 wake_up(&fepriv->wait_queue); in dvb_frontend_release()
2684 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_frontend_resume() local
2699 if (fe->ops.set_tone && fepriv->tone != -1) in dvb_frontend_resume()
2700 fe->ops.set_tone(fe, fepriv->tone); in dvb_frontend_resume()
2701 if (fe->ops.set_voltage && fepriv->voltage != -1) in dvb_frontend_resume()
2702 fe->ops.set_voltage(fe, fepriv->voltage); in dvb_frontend_resume()
2705 fepriv->state = FESTATE_RETUNE; in dvb_frontend_resume()
2715 struct dvb_frontend_private *fepriv; in dvb_register_frontend() local
2737 fepriv = fe->frontend_priv; in dvb_register_frontend()
2748 sema_init(&fepriv->sem, 1); in dvb_register_frontend()
2749 init_waitqueue_head (&fepriv->wait_queue); in dvb_register_frontend()
2750 init_waitqueue_head (&fepriv->events.wait_queue); in dvb_register_frontend()
2751 mutex_init(&fepriv->events.mtx); in dvb_register_frontend()
2753 fepriv->inversion = INVERSION_OFF; in dvb_register_frontend()
2759 dvb_register_device (fe->dvb, &fepriv->dvbdev, &dvbdev_template, in dvb_register_frontend()
2777 struct dvb_frontend_private *fepriv = fe->frontend_priv; in dvb_unregister_frontend() local
2782 dvb_remove_device(fepriv->dvbdev); in dvb_unregister_frontend()