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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zl5011xtif.c

?? Zalink50114----TDMoIP芯片驅(qū)動(dòng)源碼
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   Does not reset the Lock status. To do this call zl5011xTifBerDisableReceiver
   followed by zl5011xTifBerConfigureReceiver

*******************************************************************************/

zlStatusE zl5011xTifBerResetReceiver(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerResetReceiver:",
         0, 0, 0, 0, 0, 0);

   /* toggle the bits 0 to 1 to reset the receiver */
   status = zl5011xReadModWrite(zl5011xParams, ZL5011X_TIF_BER_RX_REG,
         0,
         ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_RESET_BIT);

   if (status == ZL5011X_OK)
   {
      status = zl5011xReadModWrite(zl5011xParams, ZL5011X_TIF_BER_RX_REG,
            ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_RESET_BIT,
            ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_RESET_BIT);
   }

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifBerGetStatsReceiver

 Description:
   Used to get the BER receiver status

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

 Outputs:
   lock        set to ZL5011X_TRUE when BER is locked, ZL5011X_FALSE otherwise
   errorCount  returns the current error count

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifBerGetStatsReceiver(zl5011xParamsS *zl5011xParams,
      zl5011xBooleanE *lock, Uint16T *errorCount)
{
   Uint32T readValue;
   zlStatusE status =  ZL5011X_OK;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifBerGetStatsReceiver:",
         0, 0, 0, 0, 0, 0);

   /* set the enable bit to 0 to reset the receiver */
   status = zl5011xRead(zl5011xParams, ZL5011X_TIF_BER_STATUS_REG,
         &readValue);

   if ((readValue & (ZL5011X_1BIT_MASK << ZL5011X_TIF_BER_LOCK_BIT)) != 0)
   {
      *lock = ZL5011X_TRUE;
   }
   else
   {
      *lock = ZL5011X_FALSE;
   }

   *errorCount = (Uint16T)((readValue >> ZL5011X_TIF_BER_ERROR_COUNT_BITS) & ZL5011X_TIF_BER_ERROR_COUNT_MASK);

   return(status);
}

/*******************************************************************************

 Function:
   zl5011xTifSetInterfaceType

 Description:
   Sets the TIF options to default settings for the required Wan mode.
   The clock polarities etc. may be changed later.

 Inputs:
   zl5011xParams      Pointer to the structure for this device instance
   wanMode           sets the interface mode for the TDM streams
   wanLiuFreq        the LIU interface speed
   wanLiuFreqHz      the LIU speed if OTHER is selected by the enum

 Outputs:
   None

 Returns:
   zlStatusE

 Remarks:
   None

*******************************************************************************/

zlStatusE zl5011xTifSetInterfaceType(zl5011xParamsS *zl5011xParams,
      zl5011xWanIfTypeE wanMode, zl5011xWanLiuFreqE wanLiuFreqIn, Uint32T wanLiuFreqHz)
{
   zl5011xWanIfSamplePointE sample;
   zl5011xWanIfFramePulseTypeE framePulseType;
   zl5011xPolarityE framePolarity;
   zl5011xWanIfClockRateE clkMultiply;
   zl5011xWanIfDataRateE dataRate;
   zl5011xWanIfConnectionTypeE connectionMode;
   zl5011xBooleanE enableBitStuffing;
   Uint32T numChannels, numStreams;
   zlStatusE status = ZL5011X_OK;
   Uint32T freq;
   zl5011xWanLiuFreqE wanLiuFreq;

   ZL5011X_TRACE(ZL5011X_TIF_FN_ID,
         "zl5011xTifSetInterfaceType: mode %d, liu %d, liu Hz %d",
         wanMode, wanLiuFreq, wanLiuFreqHz, 0, 0, 0);

   if (wanLiuFreqIn == ZL5011X_WAN_LIU_FREQ_OTHER)
   {
      /* using a freely set frequency to determine the stream clock rate.
         So, choose the nearest standard setting so as to determine the
         number of allowed streams etc. */
      if (wanLiuFreqHz <= (2048000 + 1000000))
      {
         wanLiuFreq = ZL5011X_WAN_LIU_FREQ_2_048M;
      }
      else
      {
         if (wanLiuFreqHz <= (8192000 + 1000000))
         {
            wanLiuFreq = ZL5011X_WAN_LIU_FREQ_6_312M;
         }
         else
         {
            if (wanLiuFreqHz <= (zl5011xParams->systemClockFreq / 2))
            {
               wanLiuFreq = ZL5011X_WAN_LIU_FREQ_44_736M;
            }
            else
            {
               /* stream frequency is too high */
               status = ZL5011X_PARAMETER_INVALID;
            }
         }
      }
   }
   else
   {
      wanLiuFreq = wanLiuFreqIn;
   }

   /* translate the LIU rate enum into a number for the bit rate.
      Also, set the number of streams to the values for LIU mode */
   if (status == ZL5011X_OK)
   {
      switch (wanLiuFreq)
      {
         case ZL5011X_WAN_LIU_FREQ_1_544M :
            dataRate = ZL5011X_WAN_DATA_RATE_1_544M;
            freq = 1544000;
            numStreams = zl5011xParams->devLimits.wanNumStreamsDS1;
            break;

         case ZL5011X_WAN_LIU_FREQ_2_048M :
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            freq = 2048000;
            numStreams = zl5011xParams->devLimits.wanNumStreamsE1;
            break;

         case ZL5011X_WAN_LIU_FREQ_6_312M :
            dataRate = ZL5011X_WAN_DATA_RATE_6_312M;
            freq = 6312000;
            numStreams = zl5011xParams->devLimits.wanNumStreamsJ2;
            break;

         case ZL5011X_WAN_LIU_FREQ_34_368M :
            dataRate = ZL5011X_WAN_DATA_RATE_34_368M;
            freq = 34368000;
            numStreams = zl5011xParams->devLimits.wanNumStreamsE3;
            break;

         case ZL5011X_WAN_LIU_FREQ_44_736M :
            dataRate = ZL5011X_WAN_DATA_RATE_44_736M;
            freq = 44736000;
            numStreams = zl5011xParams->devLimits.wanNumStreamsDS3;
            break;

         case ZL5011X_WAN_LIU_FREQ_OTHER :
         default:
            dataRate = 0;
            freq = 0;
            numStreams = 0;
            status = ZL5011X_PARAMETER_INVALID;
      }
   }

   if (status == ZL5011X_OK)
   {
      if (zl5011xParams->devLimits.cesAvailable == ZL5011X_FALSE)
      {
         /* non CES part, so the stream number limit is actually the maximum number of streams */
         numStreams = zl5011xParams->devLimits.wanNumStreamsE1;

         /* also need to set the data rate correspondingly */
         dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
      }
   }

   if (status == ZL5011X_OK)
   {
      if (wanLiuFreqIn == ZL5011X_WAN_LIU_FREQ_OTHER)
      {
         freq = wanLiuFreqHz;
      }

      connectionMode = ZL5011X_WAN_CONNECTION_FRAMED_CLK_SLAVE;
      sample = ZL5011X_WAN_SAMPLE_HALF_BIT;
      clkMultiply = ZL5011X_WAN_CLK_DATA_RATE;
      framePulseType = ZL5011X_WAN_FRAME_FULL_BIT_ALIGNED;
      enableBitStuffing = ZL5011X_FALSE;
      framePolarity = ZL5011X_NEGATIVE;

      switch (wanMode)
      {
         case ZL5011X_WAN_UNFRAMED :
            numChannels = 1;
            connectionMode = ZL5011X_WAN_CONNECTION_UNFRAMED;

            /* if in DS1 or J2 mode then use bit stuffing by default */
            if ((wanLiuFreq == ZL5011X_WAN_LIU_FREQ_1_544M) ||
               (wanLiuFreq == ZL5011X_WAN_LIU_FREQ_6_312M))
            {
               enableBitStuffing = ZL5011X_TRUE;
            }
            break;

         case ZL5011X_WAN_FRAMED_2M :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed2M;
            numChannels = 32;
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            framePolarity = ZL5011X_POSITIVE;
            break;

         case ZL5011X_WAN_FRAMED_8M :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed8M;
            numChannels = 128;
            dataRate = ZL5011X_WAN_DATA_RATE_8_192M;
            framePolarity = ZL5011X_POSITIVE;
            break;

         case ZL5011X_WAN_STBUS_2M_X1_CLOCK:
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed2M;
            numChannels = 32;
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            framePulseType = ZL5011X_WAN_FRAME_HALF_BIT;
            break;

         case ZL5011X_WAN_STBUS_2M_X2_CLOCK:
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed2M;
            numChannels = 32;
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            framePulseType = ZL5011X_WAN_FRAME_HALF_BIT;
            clkMultiply = ZL5011X_WAN_CLK_DATA_RATE_X_2;
            break;

         case ZL5011X_WAN_STBUS_8M :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed8M;
            numChannels = 128;
            dataRate = ZL5011X_WAN_DATA_RATE_8_192M;
            framePulseType = ZL5011X_WAN_FRAME_HALF_BIT;
            clkMultiply = ZL5011X_WAN_CLK_DATA_RATE_X_2;
            break;

         case ZL5011X_WAN_MVIP_2M_X1_CLOCK :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed2M;
            numChannels = 32;
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            framePulseType = ZL5011X_WAN_FRAME_FULL_BIT_CENTRED;
            break;

         case ZL5011X_WAN_MVIP_2M_X2_CLOCK :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed2M;
            numChannels = 32;
            dataRate = ZL5011X_WAN_DATA_RATE_2_048M;
            framePulseType = ZL5011X_WAN_FRAME_FULL_BIT_CENTRED;
            clkMultiply = ZL5011X_WAN_CLK_DATA_RATE_X_2;
            break;

         case ZL5011X_WAN_HMVIP_8M :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed8M;
            numChannels = 128;
            dataRate = ZL5011X_WAN_DATA_RATE_8_192M;
            framePulseType = ZL5011X_WAN_FRAME_2_BITS_CENTRED;
            clkMultiply = ZL5011X_WAN_CLK_DATA_RATE_X_2;
            break;

         case ZL5011X_WAN_H1X0_8M_X1_CLOCK :
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed8M;
            numChannels = 128;
            dataRate = ZL5011X_WAN_DATA_RATE_8_192M;
            framePulseType = ZL5011X_WAN_FRAME_FULL_BIT_CENTRED;
            break;

         case ZL5011X_WAN_H1X0_8M_X2_CLOCK:
            numStreams = zl5011xParams->devLimits.wanNumStreamsFramed8M;
            numChannels = 128;
            dataRate = ZL5011X_WAN_DATA_RATE_8_192M;
            framePulseType = ZL5011X_WAN_FRAME_FULL_BIT_CENTRED;
            clkMultiply = ZL5011X_WAN_CLK_DATA_RATE_X_2;
            break;

         default:
            numChannels = 0;
            status = ZL5011X_PARAMETER_INVALID;
            break;
      }
   }

   if (status == ZL5011X_OK)
   {
      if (numStreams == 0)

      {
         status = ZL5011X_INVALID_MODE;
      }
      else
      {
         /* update the structure, entries may be needed by following functions */
         zl5011xParams->wanIf.wanNumStreams = (Uint8T)numStreams;
         zl5011xParams->wanIf.wanNumChannels = (Uint8T)numChannels;
         zl5011xParams->wanIf.wanMode = wanMode;
         zl5011xParams->wanIf.wanLiuFreq = wanLiuFreq;
         zl5011xParams->wanIf.maxWanFrequency = freq;
      }
   }

   if (status == ZL5011X_OK)
   {
      /* if the interface type is framed, then default the connection mode to
         backplane, since in this mode the clock is generated externally.
         The correct mode will be setup later when the clocks are configured. */
      status = zl5011xTifSetConnectionMode(zl5011xParams, connectionMode);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifSetClockRate(zl5011xParams, clkMultiply);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifSetDataRate(zl5011xParams, dataRate);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifSetDataSampleMode(zl5011xParams, sample);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifSetFramePulseType(zl5011xParams, framePulseType);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifSetFramePolarity(zl5011xParams, framePolarity);
   }

   if (status == ZL5011X_OK)
   {
      status = zl5011xTifEnableBitStuffing(zl5011xParams, enableBitStuffing);
   }

   /* if in framed or backplane mode, then set all of the channel enables to
      hi-z */
   if (status == ZL5011X_OK)
   {
      status = zl5011xTifDisableAllChannels(zl5011xParams);
   }

   /* everything has been setup, so enable the outputs */
   if (status == ZL5011X_OK)
   {
      status = zl5011xTifControlOutputs(zl5011xParams, ZL5011X_WAN_OUTPUT_ENABLE);
   }

   /* if any of the functions have failed, then reset the structure to safe values */
   if (status != ZL5011X_OK)
   {
      zl5011xParams->wanIf.wanNumStreams = 0;
      zl5011xParams->wanIf.wanNumChannels = 0;
      zl5011xParams->wanIf.wanMode = ZL5011X_WAN_INVALID_IF;
   }

   if ((status == ZL5011X_INVALID_MODE) && (zl5011xParams->deviceType == ZL_DEVICE_ZL50130))
   {
      /* special case - there is no TDM in this device, but the mode will have
         been detected as invalid above, so just return OK for this device type */
      status = ZL5011X_OK;
   }

   return(status);
}

/*****************   END   ****************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久久久久| 欧美日韩不卡视频| 午夜精品视频一区| 久久久久国产免费免费| 欧美性色黄大片| 高清视频一区二区| 久久99蜜桃精品| 亚洲成人一区在线| 国产精品久久毛片av大全日韩| 337p亚洲精品色噜噜| 一本色道久久综合亚洲91| 国产乱子伦视频一区二区三区 | 日韩精品中文字幕一区二区三区 | 北条麻妃一区二区三区| 久久激情五月婷婷| 亚洲不卡在线观看| 国产精品丝袜在线| 久久久久国产成人精品亚洲午夜| 欧美一区二区三区日韩| 日本高清免费不卡视频| 成人亚洲精品久久久久软件| 激情伊人五月天久久综合| 丝袜美腿亚洲一区| 亚洲高清视频的网址| 亚洲综合一区二区| 日韩美女视频一区二区| 亚洲欧洲一区二区三区| 国产人久久人人人人爽| 2024国产精品| 2022国产精品视频| 26uuu亚洲| 久久精品亚洲精品国产欧美kt∨| 日韩欧美一卡二卡| 精品免费一区二区三区| 日韩欧美高清一区| 欧美videos中文字幕| 欧美一区二区三区不卡| 欧美群妇大交群中文字幕| 91久久精品一区二区三区| 一本久道中文字幕精品亚洲嫩| 91麻豆自制传媒国产之光| 99re在线精品| 日本韩国视频一区二区| 欧亚洲嫩模精品一区三区| 在线日韩av片| 欧美视频日韩视频在线观看| 欧美军同video69gay| 日韩一级二级三级精品视频| 精品免费99久久| 日本一区二区三区视频视频| 国产精品美女久久久久久久久| 亚洲国产高清在线观看视频| 国产精品日韩成人| 亚洲欧美区自拍先锋| 亚洲精品伦理在线| 日韩在线观看一区二区| 久久不见久久见中文字幕免费| 国产美女精品在线| 99国产欧美久久久精品| 在线亚洲免费视频| 日韩一区二区三区三四区视频在线观看 | 专区另类欧美日韩| 亚洲国产wwwccc36天堂| 青青青伊人色综合久久| 国产麻豆视频一区| 91香蕉视频在线| 69p69国产精品| 久久综合九色综合97_久久久| 欧美激情在线看| 亚洲综合在线免费观看| 日本少妇一区二区| 成人在线视频一区| 欧美色老头old∨ideo| 精品99一区二区三区| 亚洲色图清纯唯美| 麻豆精品精品国产自在97香蕉 | 日韩欧美中文一区| 国产精品免费久久久久| 午夜天堂影视香蕉久久| 国产一区亚洲一区| 欧洲亚洲精品在线| 久久久久久日产精品| 一区二区三区不卡在线观看 | 国产传媒日韩欧美成人| 色呦呦日韩精品| 精品国产乱码久久久久久闺蜜| 中文字幕中文字幕一区| 日韩精品视频网| 91在线精品一区二区三区| 日韩一区二区电影| 亚洲免费观看高清| 久久99久久久欧美国产| 91色在线porny| 欧美精品一区二| 性久久久久久久久| av在线播放不卡| 2024国产精品| 日韩av电影天堂| 91在线免费视频观看| 久久久久久久久久久电影| 日韩和欧美一区二区三区| 91在线精品一区二区三区| 久久综合给合久久狠狠狠97色69| 一级做a爱片久久| 国产999精品久久久久久| 91精品国产综合久久精品| 亚洲精品高清在线| 成人福利视频网站| 久久精品在线观看| 久久91精品国产91久久小草| 欧美午夜片在线观看| 亚洲天堂网中文字| 国产精品2024| 精品剧情在线观看| 日韩av中文字幕一区二区| 色www精品视频在线观看| 中文字幕一区二区不卡 | 欧美影院午夜播放| 亚洲女同女同女同女同女同69| 九九国产精品视频| 欧美一区二区三区免费在线看| 亚洲r级在线视频| 一本在线高清不卡dvd| 成人欧美一区二区三区黑人麻豆| 国产一区二区不卡| 久久亚洲影视婷婷| 精品一区二区av| 精品国产乱子伦一区| 精品一区二区三区在线视频| 欧美一区二区美女| 奇米综合一区二区三区精品视频| 欧美日韩二区三区| 日韩av电影天堂| 日韩女优av电影| 国内精品在线播放| 国产喷白浆一区二区三区| 高清不卡一区二区在线| 国产欧美日韩中文久久| 成人黄色综合网站| 亚洲乱码一区二区三区在线观看| 99久久久久久99| 亚洲激情自拍视频| 欧美日韩不卡一区| 久久97超碰国产精品超碰| 久久精品一区二区三区不卡 | 国产精品久久国产精麻豆99网站| 国产成人精品综合在线观看| 国产丝袜欧美中文另类| 成人av网在线| 一区二区三区四区不卡在线| 欧美亚洲综合另类| 日本免费新一区视频 | 一区二区欧美国产| 欧美无乱码久久久免费午夜一区| 亚洲大片一区二区三区| 欧美日韩免费观看一区二区三区| 日韩国产一二三区| 精品精品欲导航| 成人黄页毛片网站| 亚洲一区二区成人在线观看| 欧美日本在线看| 久久av老司机精品网站导航| 国产精品视频yy9299一区| 色综合 综合色| 青草国产精品久久久久久| 国产亚洲美州欧州综合国| 成人av网址在线| 午夜免费欧美电影| 久久精品夜夜夜夜久久| 91福利国产成人精品照片| 美女mm1313爽爽久久久蜜臀| 久久久久久久久久美女| 色婷婷国产精品| 美女精品一区二区| 综合久久久久久| 欧美高清精品3d| 国产jizzjizz一区二区| 午夜在线电影亚洲一区| 久久久另类综合| 欧美无砖专区一中文字| 国产精品一区二区在线观看不卡 | 不卡欧美aaaaa| 蜜臀av在线播放一区二区三区| 久久久久久免费| 欧美日韩在线三区| www.综合网.com| 日本不卡一二三区黄网| 亚洲欧洲制服丝袜| 精品国产sm最大网站| 欧美亚洲免费在线一区| 懂色av一区二区在线播放| 日韩国产欧美在线视频| 亚洲婷婷在线视频| 久久久久成人黄色影片| 制服丝袜日韩国产| 91久久精品一区二区| 国产精品一级二级三级| 日韩精品福利网| 亚洲一区二区三区四区不卡| 国产精品你懂的在线欣赏|