亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lnb.c

?? 機頂盒Hamaro解調器驅動。包含自動搜臺
?? C
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************************/
/*                   CONEXANT PROPRIETARY AND CONFIDENTIAL                  */
/*                    Conexant Systems Inc. (c) 2002-2004                   */
/*                              Austin, TX                                  */
/*                         All Rights Reserved                              */
/****************************************************************************/
/*
 * Filename: lnb.c
 *
 * Description: This file contains the implementation of the driver support
 *              code to deal with setting the LNB for the Hamaro family of
 *              demod chips (CX24121 and CX24130).
 *
 * Author: Billy Jackman
 *
 ****************************************************************************/
/*
 $Id: lnb.c,v 1.4, 2006-09-15 17:33:48Z, Xiao Dong Zhang$
 *
 ****************************************************************************/

#include "stbcfg.h"
#include "basetype.h"
#include "demod_types.h"
#include "trace.h"
#include "retcodes.h"
#include "kal.h"
#include "gpio.h"
#include "hamaro.h"
#include "lnb.h"


extern void FCopy(char *pDest, char *pSrc, u_int32 len);
   	
/* I2C LNB Setup Macros */
#if defined (I2C_ADDR_LNBH21PD) && (I2C_ADDR_LNBH21PD != NOT_PRESENT)
   #define LNBH21PD_ENABLED (TRUE)
#else
   #define LNBH21PD_ENABLED (FALSE)
#endif

#if defined (I2C_ADDR_LNBISL6421) && (I2C_ADDR_LNBISL6421 != NOT_PRESENT)
   #define LNBISL6421_ENABLED (TRUE)
#else
   #define LNBISL6421_ENABLED (FALSE)
#endif

/* Sanity Check */
#if (LNBH21PD_ENABLED == TRUE) && (LNBISL6421_ENABLED == TRUE)
   #error "Cannot Have two I2C LNB Devices"
#endif


#if (LNBH21PD_ENABLED == TRUE) || (LNBISL6421_ENABLED == TRUE)
    #if RTOS != NOOS
        #include "iic.h"
    #else
        #include "miic.h"
    #endif
#endif

LNB_SETTINGS lnb_parameters;

static struct {
    bool enabled;
    NIM_SATELLITE_POLARISATION polarization;
    bool tone_enabled;
} lnb_state = { FALSE };

/* Some handy tags for trace level specifications. */
#define TL_ALWAYS  (TRACE_LEVEL_ALWAYS | TRACE_DMD)
#define TL_ERROR   (TRACE_LEVEL_ALWAYS | TRACE_DMD)
#define TL_INFO    (TRACE_LEVEL_3 | TRACE_DMD)
#define TL_FUNC    (TRACE_LEVEL_2 | TRACE_DMD)
#define TL_VERBOSE (TRACE_LEVEL_1 | TRACE_DMD)

#if (LNBH21PD_ENABLED == TRUE)
   /*****************************************************************************/
   /*  FUNCTION:    write_lnb21                                                 */
   /*                                                                           */
   /*  PARAMETERS:  byte to write the the lnb control register                  */
   /*                                                                           */
   /*  DESCRIPTION: This function will abstract the implementation of the iic   */
   /*               interface used to setup the lnb device.                     */
   /*                                                                           */
   /*  RETURNS:     None                                                        */
   /*                                                                           */
   /*  CONTEXT:     Must be called from a non-interrupt context.                */
   /*                                                                           */
   /*****************************************************************************/
   static void write_lnb21 ( u_int8 uData )
   {
       #if (RTOS != NOOS)
           iicWriteReg(I2C_ADDR_LNBH21PD, uData, I2C_BUS_LNBH21PD);
       #else
           MIIC_Write(I2C_ADDR_LNBH21PD, &uData, 1, I2C_BUS_LNBH21PD);
       #endif
   }


   /*****************************************************************************/
   /*  FUNCTION:    read_lnb21                                                  */
   /*                                                                           */
   /*  PARAMETERS:  pointer to location to store the lnb control register data  */
   /*                                                                           */
   /*  DESCRIPTION: This function will abstract the implementation of the iic   */
   /*               interface used to setup the lnb device.                     */
   /*                                                                           */
   /*  RETURNS:     None                                                        */
   /*                                                                           */
   /*  CONTEXT:     Must be called from a non-interrupt context.                */
   /*                                                                           */
   /*****************************************************************************/
   static void read_lnb21 ( u_int8 *puData )
   {
       #if (RTOS != NOOS)
           iicReadReg(I2C_ADDR_LNBH21PD, puData, I2C_BUS_LNBH21PD);
       #else
           MIIC_Read(I2C_ADDR_LNBH21PD, puData, 1, I2C_BUS_LNBH21PD);
       #endif
   }
#endif /* #if (LNBH21PD_ENABLED == TRUE) */

#if (LNBISL6421_ENABLED == TRUE)
   /*****************************************************************************/
   /*  FUNCTION:    write_lnb6421                                               */
   /*                                                                           */
   /*  PARAMETERS:  byte to write the the lnb control register                  */
   /*                                                                           */
   /*  DESCRIPTION: This function will abstract the implementation of the iic   */
   /*               interface used to setup the lnb device.                     */
   /*                                                                           */
   /*  RETURNS:     None                                                        */
   /*                                                                           */
   /*  CONTEXT:     Must be called from a non-interrupt context.                */
   /*                                                                           */
   /*****************************************************************************/
   static void write_lnb6421 ( u_int8 uData )
   {
       #if (RTOS != NOOS)
           iicWriteReg(I2C_ADDR_LNBISL6421, uData, I2C_BUS_LNBISL6421);
       #else
           MIIC_Write(I2C_ADDR_LNBISL6421, &uData, 1, I2C_BUS_LNBISL6421);
       #endif
   }


   #if 0    /* Not used for now, but leave here for completeness */
      /*****************************************************************************/
      /*  FUNCTION:    read_lnb6421                                                */
      /*                                                                           */
      /*  PARAMETERS:  pointer to location to store the lnb control register data  */
      /*                                                                           */
      /*  DESCRIPTION: This function will abstract the implementation of the iic   */
      /*               interface used to setup the lnb device.                     */
      /*                                                                           */
      /*  RETURNS:     None                                                        */
      /*                                                                           */
      /*  CONTEXT:     Must be called from a non-interrupt context.                */
      /*                                                                           */
      /*****************************************************************************/
      static void read_lnb6421 ( u_int8 *puData )
      {
          #if (RTOS != NOOS)
              iicReadReg(I2C_ADDR_LNBISL6421, puData, I2C_BUS_LNBISL6421);
          #else
              MIIC_Read(I2C_ADDR_LNBISL6421, puData, 1, I2C_BUS_LNBISL6421);
          #endif
      }
   #endif
#endif /* #if (LNBH21PD_ENABLED == TRUE) */

/*****************************************************************************/
/*  FUNCTION:    cnxt_lnb_set_parameters                                     */
/*                                                                           */
/*  PARAMETERS:  lnb - pointer to the LNB_SETTINGS structure defining the    */
/*                   LNB settings to be used.                                */
/*                                                                           */
/*  DESCRIPTION: This function makes a local copy of the LNB settings to be  */
/*               used in future tuning operations.                           */
/*                                                                           */
/*  RETURNS:     DEMOD_SUCCESS - the function completed successfully.        */
/*                                                                           */
/*  CONTEXT:     Must be called from a non-interrupt context.                */
/*                                                                           */
/*****************************************************************************/
DEMOD_STATUS cnxt_lnb_set_parameters( LNB_SETTINGS *lnb )
{
    FCopy ( (char *)&lnb_parameters, (char *)lnb, sizeof ( LNB_SETTINGS ) );
    return DEMOD_SUCCESS;
}

/*****************************************************************************/
/*  FUNCTION:    cnxt_lnb_get_parameters                                     */
/*                                                                           */
/*  PARAMETERS:  lnb - pointer to the LNB_SETTINGS structure to be filled in */
/*                   with a copy of the LNB settings in use.                 */
/*                                                                           */
/*  DESCRIPTION: This function fills in the LNB_SETTINGS structure from the  */
/*               local copy.                                                 */
/*                                                                           */
/*  RETURNS:     DEMOD_SUCCESS - the function completed successfully.        */
/*                                                                           */
/*  CONTEXT:     Must be called from a non-interrupt context.                */
/*                                                                           */
/*****************************************************************************/
DEMOD_STATUS cnxt_lnb_get_parameters( LNB_SETTINGS *lnb )
{
    FCopy ( (char *)lnb, (char *)&lnb_parameters, sizeof ( LNB_SETTINGS ) );
    return DEMOD_SUCCESS;
}

/*****************************************************************************/
/*  FUNCTION:    cnxt_set_lnb                                                */
/*                                                                           */
/*  PARAMETERS:  pNIM - pointer to the Hamaro driver NIM structure for the    */
/*                   NIM the LNB is to be set for.                           */
/*               tuning - pointer to the TUNING_SPEC structure containing    */
/*                   specification of the current tuning operation.          */
/*               freq - pointer to the tuner frequency resulting from the    */
/*                   tuning request and current LNB settings.                */
/*                                                                           */
/*  DESCRIPTION: This function fills in the freq parameter based on the      */
/*               contents of the tuning parameter and current LNB settings.  */
/*               This calculates the tuner frequency based on the LNB LO     */
/*               frequency and the transponder frequency.  If the LNB is     */
/*               configured as LNB_MANUAL, the input frequency is the tuner  */
/*               frequency, so it is just copied.  This function sets the    */
/*               LNB signalling voltage and tone as appropriate.             */
/*                                                                           */
/*  RETURNS:     DEMOD_SUCCESS - the function completed successfully.        */
/*                                                                           */
/*  CONTEXT:     Must be called from a non-interrupt context.                */
/*                                                                           */
/*****************************************************************************/
DEMOD_STATUS cnxt_set_lnb( NIM *pNIM, TUNING_SPEC *tuning, u_int32 *freq )
{
    int32 result_frequency;
    bool tone_enable = FALSE;

    switch ( lnb_parameters.type )
    {
        /* For a single band LNB, the resulting frequency is just the difference
           between the transponder frequency and the LNB frequency.  In all
           cases, 22 KHz signalling is off for a single band LNB. */
        case LNB_SINGLE_FREQUENCY:
            result_frequency = (int)tuning->tune.nim_satellite_tune.frequency -
                    (int)lnb_parameters.lnb_a;
            tone_enable = FALSE;
            break;

        /* For a dual band LNB, the resulting frequency is the difference
           between the transponder frequency and either the low band or the high
           band LNB frequency, determined by the switch frequency.  The 22 KHz
           signalling is set on to select high band, off to select low band. */
        case LNB_DUAL_FREQUENCY:
            if ( tuning->tune.nim_satellite_tune.frequency >=
                    lnb_parameters.lnb_switch )
            {
                result_frequency =
                        (int)tuning->tune.nim_satellite_tune.frequency -
                        (int)lnb_parameters.lnb_b;
                tone_enable = TRUE;
            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国精品在线观看| 精品国产区一区| 日韩一区二区三| 国产精品大尺度| 麻豆成人免费电影| 欧美日韩三级视频| 欧美变态口味重另类| 亚洲日本在线看| 激情综合色播五月| 9191久久久久久久久久久| 亚洲欧洲日韩在线| 国产一区二区电影| 精品国产乱码久久久久久夜甘婷婷 | 国产传媒欧美日韩成人| 欧美日本不卡视频| 一级精品视频在线观看宜春院| 久久99精品久久久久久| 日韩午夜在线观看| 亚洲电影视频在线| 在线免费不卡视频| 亚洲激情一二三区| 色吊一区二区三区 | 精品国产91乱码一区二区三区| 亚洲一区国产视频| 91国产免费看| 亚洲精品乱码久久久久久 | 亚洲免费在线电影| 色综合久久久久网| 亚洲精品日韩专区silk| 成人午夜激情影院| 国产清纯美女被跳蛋高潮一区二区久久w | 久久午夜色播影院免费高清| 亚洲午夜在线观看视频在线| 色网综合在线观看| 一区二区三区在线免费| 91麻豆免费视频| 亚洲精品中文字幕在线观看| 色噜噜夜夜夜综合网| 亚洲狠狠丁香婷婷综合久久久| 99精品黄色片免费大全| 综合网在线视频| 欧洲精品在线观看| 午夜精品视频在线观看| 欧美日韩成人综合| 喷水一区二区三区| 精品福利一二区| 国产精品自拍av| 国产精品久久久久桃色tv| 99re视频这里只有精品| 一区二区三区久久| 欧美一区二区三区婷婷月色| 国产麻豆午夜三级精品| 国产欧美一区二区在线观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 蜜桃av一区二区三区| 日韩免费观看2025年上映的电影| 国产高清精品在线| 亚洲精品水蜜桃| 欧美成人国产一区二区| 成人精品国产一区二区4080| 一级中文字幕一区二区| 精品久久久久久综合日本欧美| 成人av免费观看| 丝袜亚洲另类欧美综合| 久久久久久久国产精品影院| 日本韩国一区二区三区| 喷白浆一区二区| 国产精品九色蝌蚪自拍| 欧美日韩激情在线| 国产酒店精品激情| 亚洲午夜久久久久久久久久久| 日韩亚洲欧美综合| 99精品视频中文字幕| 日本美女一区二区| 中文字幕在线观看一区二区| 91精品国产手机| jlzzjlzz欧美大全| 精品无人区卡一卡二卡三乱码免费卡| 亚洲情趣在线观看| 国产亚洲精品7777| 欧美日韩三级一区二区| 成人免费视频一区| 久久国产夜色精品鲁鲁99| 最近中文字幕一区二区三区| 欧美一区二区在线观看| 91麻豆高清视频| 国产成人av一区二区| 日本不卡视频在线观看| 一区二区三区.www| 国产精品乱码人人做人人爱 | 91在线无精精品入口| 韩国中文字幕2020精品| 日韩精品色哟哟| 亚洲与欧洲av电影| 中文字幕制服丝袜一区二区三区 | 成人丝袜高跟foot| 国内精品国产三级国产a久久| 亚洲小说春色综合另类电影| 中文字幕在线不卡国产视频| 久久久一区二区三区捆绑**| 在线91免费看| 欧美精品久久天天躁| 欧美亚洲国产一区二区三区| 91女厕偷拍女厕偷拍高清| 丁香六月综合激情| 国产精品456| 国产精品资源在线看| 久久成人18免费观看| 老鸭窝一区二区久久精品| 午夜精品久久久久久久| 亚洲国产精品久久不卡毛片| 亚洲欧美日韩一区二区三区在线观看| 国产日韩欧美一区二区三区乱码 | 色综合久久综合| 色综合中文字幕国产| 成人免费毛片app| 粉嫩一区二区三区性色av| 在线观看成人小视频| 色综合天天综合网国产成人综合天 | www.视频一区| 99久久免费国产| 91麻豆国产精品久久| 在线观看日韩av先锋影音电影院| 欧美性猛交一区二区三区精品| 欧美在线一二三四区| 欧美日韩视频专区在线播放| 欧美日韩免费不卡视频一区二区三区| 欧美色网一区二区| 日韩一区二区精品在线观看| 欧美一区二区三区在| 久久免费电影网| 亚洲欧美中日韩| 亚洲精品欧美在线| 日本欧美大码aⅴ在线播放| 国产麻豆午夜三级精品| 成人不卡免费av| 欧美特级限制片免费在线观看| 在线播放91灌醉迷j高跟美女| 欧美一区二区三区的| 中文字幕乱码一区二区免费| 亚洲六月丁香色婷婷综合久久 | 在线不卡免费欧美| 久久蜜桃av一区精品变态类天堂 | 国产精品夜夜爽| 91视频精品在这里| 精品999在线播放| 中文字幕高清不卡| 亚洲va中文字幕| 国产激情一区二区三区| 色综合久久天天| 欧美大胆人体bbbb| 日韩精品亚洲一区| 亚洲国产日日夜夜| 五月综合激情网| 韩国欧美国产1区| 亚洲视频一二区| 亚洲制服丝袜av| 国产精品影视网| 欧美日韩色一区| 国产精品久久久久久久浪潮网站| 国产欧美精品一区二区三区四区| 午夜欧美一区二区三区在线播放| 91精品91久久久中77777| 国产精品乱人伦中文| 成人午夜看片网址| 国产精品久久久久久久久免费丝袜 | 91一区二区三区在线播放| 国产精品久久久久久久浪潮网站 | 91国在线观看| 一区二区国产盗摄色噜噜| 在线观看亚洲专区| 石原莉奈在线亚洲二区| 日韩女优视频免费观看| 国内一区二区视频| 久久蜜桃av一区二区天堂| 国产成人日日夜夜| 亚洲视频每日更新| 欧美亚洲日本国产| 日本va欧美va精品| 久久久久久一级片| 99在线精品免费| 亚洲国产欧美在线| 日韩精品一区二区三区四区| 激情综合五月婷婷| 国产精品福利一区二区三区| 色婷婷综合五月| 日本aⅴ免费视频一区二区三区| 精品久久久久久无| bt7086福利一区国产| 一区二区三区国产精华| 日韩免费电影网站| 成人禁用看黄a在线| 亚洲国产精品视频| wwwwxxxxx欧美| 日本韩国精品在线| 久久99久国产精品黄毛片色诱| 亚洲国产成人一区二区三区| 色婷婷一区二区三区四区| 日本aⅴ免费视频一区二区三区| 国产人伦精品一区二区|