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

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

?? ul_c950pci.c

?? linux下的RS485的驅動 值得一看
?? C
?? 第 1 頁 / 共 2 頁
字號:
 udrv->wait_time=((udrv->my_adr-u-1)&0xF)+4;  if(((u&0x180)!=0x180)||    (u==0x1FF)) udrv->wait_time+=0x10; udrv->last_ctrl=0; udrv->char_buff=0; udrv->chip_temp=(udrv->my_adr&0x3F)|0x40; UL_FCALL2(*udrv->fnc_wait,u950pci_connect_1); return UL_RC_PROC;};int u950pci_connect_1(ul_drv *udrv, int ret_code){  if(ret_code!=UL_RC_ETIMEOUT)    { UL_FRET; return UL_RC_EARBIT;}  if(u950pci_rxd_cs(udrv)|| /* check for possible collision */     (u950pci_inb(udrv->port,UART_LSR)&UART_LSR_DR))  { UL_FRET;    LOG_CHIO(" EARBIT!");    return UL_RC_EARBIT;  }  udrv->U950PCI_STATE|=U950PCI_STATE_TX;  u950pci_acr_write(udrv,U950PCI_TX_ACR(udrv));  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_ULB);  u950pci_outb(udrv->port,UART_MCR,U950PCI_TX_MCR(udrv));  UL_FNEXT(u950pci_connect_2);  /* wait to end of transfer */  u950pci_icr_write(udrv,UART_TTL,0);	/* wait for TEMT */  u950pci_outb(udrv->port,UART_TX,0);  u950pci_outb(udrv->port,UART_IER,UART_IER_THRI|UART_IER_RDI);  return UL_RC_WIRQ;};int u950pci_connect_2(ul_drv *udrv, int ret_code){  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_UL);  u950pci_outb(udrv->port,UART_MCR,U950PCI_RX_MCR(udrv));  udrv->U950PCI_STATE&=~U950PCI_STATE_TX;  u950pci_acr_write(udrv,U950PCI_RX_ACR(udrv));  if(u950pci_xfl_read(udrv,UART_RFL)>0)  { UL_FRET;    LOG_CHIO(" EARBIT1!");    return UL_RC_EARBIT;  }  if(udrv->chip_temp==1)  { LOG_CHIO(" Connected");    UL_FRET;  }else{     udrv->wait_time=(udrv->chip_temp&3)+1;    udrv->chip_temp>>=2;    UL_FCALL2(*udrv->fnc_wait,u950pci_connect_1);  }  return UL_RC_PROC;};/* UL_FNEXT(u950pci_recch); UL_FCALL(u950pci_recch); UL_FCALL2(u950pci_recch,u950pci_recch); UL_FRET;*/static char *u950pci_port_name="ulan_u950pci";/*** 16950pci initialize ports ***/int u950pci_pinit(ul_drv *udrv){  unsigned u;  int baud=udrv->baud_val;  int cpr, tcr, dl;  if (UL_REQ_IOS(udrv->port,8,u950pci_port_name)<0)   { LOG_FATAL(KERN_CRIT "uLan u950pci_pinit : cannot reguest ports !\n");    return UL_RC_EPORT;  }  /* Switch to enhanced mode */  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_EFR);  u950pci_outb(udrv->port,UART_EFR,UART_EFR_ECB);  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_UL);  /* Disable transmitter output  */  u950pci_outb(udrv->port,UART_MCR,U950PCI_RX_MCR(udrv)&3);  /* Set up ACR and state */  u950pci_acr_write(udrv,U950PCI_RX_ACR(udrv));  udrv->U950PCI_STATE=U950PCI_STATE_FLUSH;  #if 0  /* Read chip ID */  chip_id=u950pci_icr_read(udrv,UART_ID1)<<16;  chip_id|=u950pci_icr_read(udrv,UART_ID2)<<8;  chip_id|=u950pci_icr_read(udrv,UART_ID3);  chip_rev=u950pci_icr_read(udrv,UART_REV);  LOG_PORTS(KERN_INFO "uLan u950pci : chip ID %06X. rev %02x\n",chip_id,chip_rev);  #endif  udrv->chip_buff[0]=0;  /* setup baud rate */  if(!baud) baud=19200;  u=(udrv->baud_base*8+baud/2)/baud;  if (u>0xFFFFFFF) u=0xFFFFFFF;  udrv->baud_div=u;  /*{long e, tcr_err=0xFFFFFFF;    int i;    tcr=-1;    for(i=16;i>=4;i--){      if(i*0xFFFFFF<u) break;      e=u%i;      if(e<tcr_err){tcr=i;tcr_err=e;}    }  }*/  tcr=16; cpr=8;  dl=(udrv->baud_div+(cpr*tcr)/2)/(cpr*tcr);  /*LOG_PORTS*/  UL_PRINTF(KERN_INFO "uLan u950pci : baud setup TCR=%d CPR=%d DL=%d baud=%ld\n",            tcr,cpr,dl,udrv->baud_base*8/(tcr*cpr*dl));  UL_PRINTF(KERN_INFO "uLan u950pci : baud=%d baud_base=%ld baud_div=%d\n",            baud,udrv->baud_base,udrv->baud_div);  u950pci_icr_write(udrv,UART_CPR,cpr);	/* prescaller 1 to 31.875 step 0.125*/  u950pci_icr_write(udrv,UART_TCR,tcr);	/* 4 to 16 times per clock */  u950pci_outb(udrv->port,UART_LCR,UART_LCR_DLAB);  u950pci_outb(udrv->port,(uchar)UART_DLL,(uchar)dl);  u950pci_outb(udrv->port,(uchar)UART_DLM,(uchar)(dl>>8));  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_UL);  /* setup initial FIFO levels */  u950pci_icr_write(udrv,UART_NMR,U950PCI_NMR_EN); /* 9-bit mode enable */  u950pci_outb(udrv->port,UART_IER,0);	/* disable interrupt sources */  u950pci_outb(udrv->port,UART_FCR,UART_FCR_ENABLE_FIFO|	 UART_FCR_CLEAR_RCVR|UART_FCR_CLEAR_XMIT); /* enable and clear FIFOs */  u950pci_icr_write(udrv,UART_TTL,1);	/* transmittion FIFO treshold */  u950pci_icr_write(udrv,UART_RTL,1);	/* receive FIFO treshold */  u950pci_inb(udrv->port,UART_LSR);	/* reset errors */  u950pci_inb(udrv->port,UART_RX);	/* and other irq */  u950pci_outb(udrv->port,UART_MCR,U950PCI_RX_MCR(udrv)); /* Enable interrupts */  return UL_RC_PROC;};/*** 16950pci deinitialize ports ***/int u950pci_pdone(ul_drv *udrv){  u950pci_outb(udrv->port,UART_IER, 0);	/* disable interrupts */  /* Switch enhanced mode off */  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_EFR);  u950pci_outb(udrv->port,UART_EFR,0);  u950pci_outb(udrv->port,UART_LCR,U950PCI_LCR_UL);  /* clean up */  u950pci_outb(udrv->port,UART_IER,0);	/* disable interrupts */  u950pci_outb(udrv->port,UART_MCR,U950PCI_RX_MCR(udrv)&3); /* transmitter off */  u950pci_inb(udrv->port,UART_IIR);	/* flush irq */  u950pci_inb(udrv->port,UART_LSR);	/* flush irq */  UL_REL_IOS(udrv->port,8);  return UL_RC_PROC;};/*** 16950pci generate irq for irq_probe */int u950pci_genirq(ul_drv *udrv,int param){  if(param){    u950pci_outb(udrv->port,UART_MCR, U950PCI_RX_MCR(udrv)); /* transmitter off */    u950pci_outb(udrv->port,UART_IER, UART_IER_MSI);	/* enable interrupts */    u950pci_outb(udrv->port,UART_LCR, U950PCI_LCR_ULB);	/* trig break */  }else{    u950pci_outb(udrv->port,UART_IER, 0);		/* disable interrupts */    u950pci_outb(udrv->port,UART_MCR, U950PCI_RX_MCR(udrv)&3); /* transmitter off */    u950pci_outb(udrv->port,UART_LCR, U950PCI_LCR_UL); /* no break */    u950pci_inb(udrv->port,UART_MSR);		/* flush irq */  }  return UL_RC_PROC;};#if 0/*** 16950pci request IRQ handling */int u950pci_rqirq(ul_drv *udrv,int param){  return UL_RC_PROC;};/*** 16950pci release IRQ handling */int u950pci_freeirq(ul_drv *udrv,int param){  if(uldrv->irq)    free_irq(udrv->irq, udrv);  return UL_RC_PROC;};#endif/* support for hardware tests */int u950pci_hwtest(ul_drv *udrv,int param){  unsigned char uc;  switch(param)  {    case 0x10:    case 0x11:	  u950pci_outb(udrv->port,UART_IER, 0); /* disable interrupts */	  u950pci_outb(udrv->port,UART_MCR, U950PCI_TX_MCR(udrv)); /* transmitter on */	  u950pci_outb(udrv->port,UART_LCR, param&1?	               U950PCI_LCR_UL:U950PCI_LCR_ULB); /* set TD lines */    case 0x12:	  uc=u950pci_inb(udrv->port,UART_MSR);	  return u950pci_inb(udrv->port,UART_LSR)|(uc<<8)|		 (uc&(U950pci_MSR_RxD)?0:0x10000);    case 0x13:	  u950pci_outb(udrv->port,UART_MCR, U950PCI_RX_MCR(udrv)); /* transmitter off */	  uc=u950pci_inb(udrv->port,UART_MSR);	  return u950pci_inb(udrv->port,UART_LSR)|(uc<<8)|		 (uc&(U950pci_MSR_RxD)?0:0x10000);  }  return UL_RC_ENOFNC;};/*** Control functions of chip driver  ***/int u950pci_cctrl(ul_drv *udrv, int ctrl_fnc, int param){  switch (ctrl_fnc)  {    case UL_CC_DIN:	/* switch off line transmitter */	  u950pci_outb(udrv->port,UART_MCR, U950PCI_RX_MCR(udrv)); 	  u950pci_outb(udrv->port,UART_LCR, U950PCI_LCR_UL);	  u950pci_acr_write(udrv,U950PCI_RX_ACR(udrv));	  return UL_RC_PROC;    case UL_CC_DOUT:	/* switch on line transmitter */	  u950pci_outb(udrv->port,UART_MCR, U950PCI_TX_MCR(udrv));	  u950pci_outb(udrv->port,UART_LCR, U950PCI_LCR_UL);	  u950pci_acr_write(udrv,U950PCI_RX_ACR(udrv));	  return UL_RC_PROC;    case UL_CC_PINIT:	/* initialize ports (parameter baud)*/  	  return u950pci_pinit(udrv);    case UL_CC_PDONE:	/* deinitialize ports */  	  return u950pci_pdone(udrv);    case UL_CC_GENIRQ:	/* generate irq for irq_probe */  	  return u950pci_genirq(udrv,param);   #if 0    case UL_CC_RQIRQ:	/* request IRQ handling */  	  return u950pci_rqirq(udrv,param);    case UL_CC_FREEIRQ:	/* release IRQ handling */  	  return u950pci_freeirq(udrv,param);   #endif    case UL_CC_HWTEST:	/* support for hardware testing */  	  return u950pci_hwtest(udrv,param);  };  return UL_RC_ENOFNC;};/*** 16950pci chip driver initialize ***/int u950pci_init(ul_drv *udrv, int port, int irq, int baud, long baudbase, int options){  unsigned u;  unsigned old_mcr, mcr_ie;  unsigned chip_id, chip_rev;  if(!irq||!port){    LOG_FATAL(KERN_CRIT "uLan u950pci_init : port or irq unknown\n");    return UL_RC_EPORT;  }  UL_PRINTF(KERN_INFO "uLan u950pci_init : irq %d port 0x%x\n",irq,port);  if (UL_REQ_IOS(port,8,u950pci_port_name)<0)   { LOG_FATAL(KERN_CRIT "uLan u950pci_init : cannot reguest ports !\n");    return UL_RC_EPORT;  }  old_mcr=u950pci_inb(port,UART_MCR);  /* find right value for mcr_ie */  mcr_ie=U950PCI_MCR_IE;  if(options&U950PCI_CHOPT_TXDTRNEG)    mcr_ie^=U950PCI_MCR_TXDTRPOL;  /* Disable output buffer */  u950pci_outb(port,UART_MCR,mcr_ie&3);  /* Switch to enhanced mode */  u950pci_outb(port,UART_LCR,U950PCI_LCR_EFR);  u950pci_outb(port,UART_EFR,UART_EFR_ECB);  u950pci_outb(port,UART_LCR,U950PCI_LCR_UL);  /* Disable transmitter output  */  u950pci_outb(port,UART_MCR,mcr_ie&3);  /* Set up ACR and state */  u950pci_outb(port,UART_SCR,UART_ACR);  u950pci_outb(port,UART_ICR,U950PCI_ACR_UL|UART_ACR_ICRRD);  /* Read chip ID */  u950pci_outb(port,UART_SCR,UART_ID1);  chip_id=u950pci_inb(port,UART_ICR)<<16;  u950pci_outb(port,UART_SCR,UART_ID2);  chip_id|=u950pci_inb(port,UART_ICR)<<8;  u950pci_outb(port,UART_SCR,UART_ID3);  chip_id|=u950pci_inb(port,UART_ICR);  u950pci_outb(port,UART_SCR,UART_REV);  chip_rev=u950pci_inb(port,UART_ICR);  LOG_PORTS(KERN_INFO "uLan u950pci : chip ID %06X. rev %02x\n",chip_id,chip_rev);  /* Switch enhancements off */  u950pci_outb(port,UART_LCR,U950PCI_LCR_EFR);  u950pci_outb(port,UART_EFR,0);  u950pci_outb(port,UART_LCR,U950PCI_LCR_UL);  { LOG_PORTS(KERN_INFO "uLan u950pci_init : init OK\n");    udrv->chip_options=options;    udrv->baud_base=baudbase;    /* setup configurations for RX/TX */    udrv->U950PCI_RX_ACRMCR=U950PCI_ACR_UL|(U950PCI_MCR_IE<<8);    udrv->U950PCI_TX_ACRMCR=U950PCI_ACR_ULTX|(U950PCI_MCR_OE<<8);    if(udrv->chip_options&U950PCI_CHOPT_TXDTRNEG){      udrv->U950PCI_RX_ACRMCR^=U950PCI_MCR_TXDTRPOL<<8;      udrv->U950PCI_TX_ACRMCR^=U950PCI_ACR_TXDTRPOL|(U950PCI_MCR_TXDTRPOL<<8);    }    /* check and setup baud base oscilator frequency */    if(!udrv->baud_base){     if(udrv->chip_options&U950PCI_CHOPT_HSPDOSC)       udrv->baud_base=14745600;     else       udrv->baud_base=1843200;    }    if(!baud) baud=19200;    udrv->baud_val=baud;    u=(udrv->baud_base*8+baud/2)/baud;    if (u>0xFFFFFFF) u=0xFFFFFFF;    udrv->baud_div=u;    udrv->port=port;    udrv->irq=irq;     udrv->fnc_recch=&u950pci_recch;    udrv->fnc_sndch=&u950pci_sndch;    udrv->fnc_wait=&u950pci_wait;    udrv->fnc_pool=&u950pci_pool;    udrv->fnc_connect=&u950pci_connect;    udrv->fnc_cctrl=&u950pci_cctrl;    UL_REL_IOS(port,8);    return 0;  }  LOG_PORTS(KERN_ERR "uLan u950pci_init : MCR test Error\n");  UL_REL_IOS(port,8);  return UL_RC_EPORT;};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲一区二区av在线| 精品av久久707| 免费一级片91| 国产欧美1区2区3区| 在线视频一区二区免费| 久久99久久99| 亚洲精品videosex极品| 3d动漫精品啪啪一区二区竹菊| 国产高清在线观看免费不卡| 亚洲一二三区在线观看| 欧美xxxxx牲另类人与| 欧美性一级生活| 日韩欧美在线影院| 国产精品网站在线观看| 日韩国产一二三区| 国产三级精品在线| 欧美少妇一区二区| 丰满白嫩尤物一区二区| 亚洲v中文字幕| 亚洲国产精品99久久久久久久久| 欧美日本在线观看| 91麻豆精东视频| 国产一区二区三区电影在线观看| 欧美国产精品一区二区| 欧美在线视频你懂得| 国产不卡视频在线观看| 久99久精品视频免费观看| 夜夜精品视频一区二区| 国产精品网曝门| 日韩三区在线观看| 在线免费观看日本欧美| eeuss鲁片一区二区三区 | 精品久久久久久久久久久院品网| 97精品电影院| 成人免费高清在线观看| 从欧美一区二区三区| 狠狠网亚洲精品| 日韩av高清在线观看| 亚洲一二三四区| 亚洲视频免费观看| 国产精品久久二区二区| 久久久99免费| 久久伊人中文字幕| 91麻豆精品国产91久久久久 | 国产在线国偷精品产拍免费yy| 午夜电影网一区| 午夜久久久久久久久久一区二区| 国产精品久久国产精麻豆99网站 | 欧美片网站yy| 欧美中文字幕一区二区三区 | 激情六月婷婷久久| 日韩专区在线视频| 三级精品在线观看| 亚洲男人电影天堂| 国产欧美日韩麻豆91| 中文字幕不卡在线观看| 国产日产欧产精品推荐色 | 不卡电影一区二区三区| 成人高清免费观看| 国产一区二区三区在线看麻豆| 黄色资源网久久资源365| 极品美女销魂一区二区三区| 极品少妇xxxx偷拍精品少妇| 国产精品综合一区二区三区| 国产精品一区二区91| 国产成a人亚洲| 丁香天五香天堂综合| 福利电影一区二区| 91丨porny丨户外露出| 色激情天天射综合网| 欧美精选在线播放| 欧美成人国产一区二区| 国产日韩欧美综合一区| 中文字幕制服丝袜成人av| 国产精品乱码一区二区三区软件 | 91精品国产乱码| 欧美日韩在线观看一区二区| 欧美一级黄色大片| 久久网站最新地址| 欧美国产一区二区在线观看| 中文字幕精品一区二区精品绿巨人 | 国产午夜精品一区二区三区视频 | 欧美精品日韩一区| 337p粉嫩大胆噜噜噜噜噜91av | 色就色 综合激情| 91麻豆精品91久久久久同性| 亚洲精品在线观| 亚洲欧洲av在线| 亚洲午夜激情av| 国产乱人伦精品一区二区在线观看 | 美女诱惑一区二区| 国产999精品久久| 在线观看成人免费视频| 日韩视频永久免费| 国产视频在线观看一区二区三区 | 在线观看av一区| 欧美tk—视频vk| 综合电影一区二区三区| 日韩福利视频导航| 国产福利91精品| 色国产精品一区在线观看| 欧美日韩aaaaa| 国产精品网曝门| 男人的天堂亚洲一区| 99久久久久久99| 精品日本一线二线三线不卡| 中文字幕一区二区三中文字幕| 日韩中文字幕91| 不卡视频免费播放| 精品久久久久久久一区二区蜜臀| 亚洲免费在线看| 黑人巨大精品欧美黑白配亚洲| av电影一区二区| 2019国产精品| 日韩综合一区二区| 一本久久a久久精品亚洲| 精品国产a毛片| 一区二区三区在线看| 国产福利一区二区三区| 日韩一区二区三区免费看| 亚洲精品国久久99热| 不卡一区二区三区四区| 欧美激情一区二区三区全黄| 国产电影精品久久禁18| 国产午夜精品美女毛片视频| 国产在线麻豆精品观看| 欧美成人乱码一区二区三区| 久久精品国产免费| 欧美v日韩v国产v| 国产呦萝稀缺另类资源| 久久―日本道色综合久久| 国产一区二区三区在线观看免费| 精品国产99国产精品| 国产精品一二三四区| 国产亚洲精品福利| 国产福利精品一区二区| 国产精品美女一区二区在线观看| 成人国产视频在线观看| 亚洲美女电影在线| 欧美中文字幕一区| 日韩中文字幕不卡| 欧美大胆一级视频| 韩国精品主播一区二区在线观看 | 亚洲欧洲99久久| 一本到一区二区三区| 亚洲国产精品久久一线不卡| 在线综合亚洲欧美在线视频| 久久精品国产成人一区二区三区| 精品国产一区久久| 国产成人鲁色资源国产91色综| 国产精品免费丝袜| 欧美伊人精品成人久久综合97| 日韩国产欧美在线视频| 精品欧美乱码久久久久久| 岛国av在线一区| 一区二区三区美女视频| 欧美一区二区三区在| 国产激情一区二区三区| 亚洲欧美成人一区二区三区| 欧美精品少妇一区二区三区| 国产一区二区三区久久久| 日韩美女精品在线| 欧美久久久久久久久久| 国产麻豆欧美日韩一区| 亚洲欧美一区二区三区久本道91 | 久久久久免费观看| 色婷婷综合久久久久中文一区二区 | 91视频www| 日韩av中文在线观看| 国产婷婷色一区二区三区在线| 色噜噜狠狠色综合中国| 蜜桃视频免费观看一区| 国产精品不卡在线观看| 91精品国产91久久久久久一区二区 | 麻豆91小视频| 国产精品网站在线| 欧美精品自拍偷拍动漫精品| 丰满亚洲少妇av| 视频一区二区欧美| 中文字幕亚洲精品在线观看| 欧美一区二区视频在线观看 | 国产乱码精品一区二区三| 一二三四社区欧美黄| 久久久久久久久久久99999| 精品视频免费看| 成人深夜在线观看| 免费一级片91| 亚洲图片欧美色图| 国产午夜精品一区二区三区视频| 欧美色图第一页| 成人av电影观看| 韩国一区二区三区| 天天综合色天天综合色h| 亚洲欧洲一区二区在线播放| 精品毛片乱码1区2区3区 | 久久老女人爱爱| 51精品久久久久久久蜜臀| 色婷婷综合久久久久中文 | 91成人国产精品| 成人激情文学综合网|