这篇教程C++ HiSax_getrev函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中HiSax_getrev函数的典型用法代码示例。如果您正苦于以下问题:C++ HiSax_getrev函数的具体用法?C++ HiSax_getrev怎么用?C++ HiSax_getrev使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了HiSax_getrev函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: setup_enternow_pci/* called by config.c */int __devinitsetup_enternow_pci(struct IsdnCard *card){ int ret; struct IsdnCardState *cs = card->cs; char tmp[64];#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, enternow_pci_rev); printk(KERN_INFO "HiSax: Formula-n Europe AG enter:now ISDN PCI driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_ENTERNOW) return(0); test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); for ( ;; ) { if ((dev_netjet = pci_find_device(PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, dev_netjet))) { ret = en_pci_probe(dev_netjet, cs); if (!ret) return(0); } else { printk(KERN_WARNING "enter:now PCI: No PCI card found/n"); return(0); } en_cs_init(card, cs); break; } return en_cs_init_rest(card, cs);}
开发者ID:appleorange1,项目名称:asus-rt-n12-lx,代码行数:36,
示例2: setup_bkm_a4tint __devinitsetup_bkm_a4t(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; u_int pci_memaddr = 0, found = 0; int ret; strcpy(tmp, bkm_a4t_revision); printk(KERN_INFO "HiSax: T-Berkom driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ == ISDN_CTYPE_BKM_A4T) { cs->subtyp = BKM_A4T; } else return (0); while ((dev_a4t = hisax_find_pci_device(PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_a4t))) { ret = a4t_pci_probe(dev_a4t, cs, &found, &pci_memaddr); if (!ret) return (0); if (ret > 0) break; } if (!found) { printk(KERN_WARNING "HiSax: Telekom A4T: Card not found/n"); return (0); } if (!pci_memaddr) { printk(KERN_WARNING "HiSax: Telekom A4T: " "No Memory base address/n"); return (0); } return a4t_cs_init(card, cs, pci_memaddr);}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:35,
示例3: setup_sportsterint __initsetup_sportster(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, sportster_revision); printk(KERN_INFO "HiSax: USR Sportster driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_SPORTSTER) return (0); cs->hw.spt.cfg_reg = card->para[1]; cs->irq = card->para[0]; if (!get_io_range(cs)) return (0); cs->hw.spt.isac = cs->hw.spt.cfg_reg + SPORTSTER_ISAC; cs->hw.spt.hscx[0] = cs->hw.spt.cfg_reg + SPORTSTER_HSCXA; cs->hw.spt.hscx[1] = cs->hw.spt.cfg_reg + SPORTSTER_HSCXB; switch(cs->irq) { case 5: cs->hw.spt.res_irq = 1; break; case 7: cs->hw.spt.res_irq = 2; break; case 10:cs->hw.spt.res_irq = 3; break; case 11:cs->hw.spt.res_irq = 4; break; case 12:cs->hw.spt.res_irq = 5; break; case 14:cs->hw.spt.res_irq = 6; break; case 15:cs->hw.spt.res_irq = 7; break; default:release_io_sportster(cs); printk(KERN_WARNING "Sportster: wrong IRQ/n"); return(0); } printk(KERN_INFO "HiSax: %s config irq:%d cfg:0x%X/n", CardType[cs->typ], cs->irq, cs->hw.spt.cfg_reg); setup_isac(cs); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &Sportster_card_msg; cs->irq_func = &sportster_interrupt; ISACVersion(cs, "Sportster:"); if (HscxVersion(cs, "Sportster:")) { printk(KERN_WARNING "Sportster: wrong HSCX versions check IO address/n"); release_io_sportster(cs); return (0); } return (1);}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-ef_fw-20-19-8,代码行数:59,
示例4: setup_saphirint __initsetup_saphir(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, saphir_rev); printk(KERN_INFO "HiSax: HST Saphir driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_HSTSAPHIR) return (0); /* IO-Ports */ cs->hw.saphir.cfg_reg = card->para[1]; cs->hw.saphir.isac = card->para[1] + ISAC_DATA; cs->hw.saphir.hscx = card->para[1] + HSCX_DATA; cs->hw.saphir.ale = card->para[1] + ADDRESS_REG; cs->irq = card->para[0]; if (check_region((cs->hw.saphir.cfg_reg), 6)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.saphir.cfg_reg, cs->hw.saphir.cfg_reg + 5); return (0); } else request_region(cs->hw.saphir.cfg_reg,6, "saphir"); printk(KERN_INFO "HiSax: %s config irq:%d io:0x%X/n", CardType[cs->typ], cs->irq, cs->hw.saphir.cfg_reg); cs->hw.saphir.timer.function = (void *) SaphirWatchDog; cs->hw.saphir.timer.data = (long) cs; init_timer(&cs->hw.saphir.timer); cs->hw.saphir.timer.expires = jiffies + 4*HZ; add_timer(&cs->hw.saphir.timer); if (saphir_reset(cs)) { release_io_saphir(cs); return (0); } cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &saphir_card_msg; cs->irq_func = &saphir_interrupt; ISACVersion(cs, "saphir:"); if (HscxVersion(cs, "saphir:")) { printk(KERN_WARNING "saphir: wrong HSCX versions check IO address/n"); release_io_saphir(cs); return (0); } return (1);}
开发者ID:JBTech,项目名称:ralink_rt5350,代码行数:59,
示例5: setup_asuscomint __initsetup_asuscom(struct IsdnCard *card){ char tmp[64]; strcpy(tmp, Asuscom_revision); printk(KERN_INFO "HiSax: Asuscom ISDNLink driver Rev. %s/n", HiSax_getrev(tmp));#ifdef __ISAPNP__ if (!card->para[1] && isapnp_present()) { struct pnp_card *pb; struct pnp_dev *pd; while(adev->card_vendor) { if ((pb = pnp_find_card(adev->card_vendor, adev->card_device, pnp_c))) { pnp_c = pb; pd = NULL; if ((pd = pnp_find_dev(pnp_c, adev->vendor, adev->function, pd))) { printk(KERN_INFO "HiSax: %s detected/n", (char *)adev->driver_data); if (pnp_device_attach(pd) < 0) { printk(KERN_ERR "AsusPnP: attach failed/n"); return 0; } if (pnp_activate_dev(pd) < 0) { printk(KERN_ERR "AsusPnP: activate failed/n"); pnp_device_detach(pd); return 0; } if (!pnp_irq_valid(pd, 0) || !pnp_port_valid(pd, 0)) { printk(KERN_ERR "AsusPnP:some resources are missing %ld/%lx/n", pnp_irq(pd, 0), pnp_port_start(pd, 0)); pnp_device_detach(pd); return(0); } card->para[1] = pnp_port_start(pd, 0); card->para[0] = pnp_irq(pd, 0); break; } else { printk(KERN_ERR "AsusPnP: PnP error card found, no device/n"); } } adev++; pnp_c=NULL; } if (!adev->card_vendor) { printk(KERN_INFO "AsusPnP: no ISAPnP card found/n"); return(0); } }#endif if (asuscom_probe(card->cs, card) < 0) return 0; return 1;}
开发者ID:sarnobat,项目名称:knoppix,代码行数:59,
示例6: setup_avm_a1_pcmciaint __devinitsetup_avm_a1_pcmcia(struct IsdnCard *card){ u_char model, vers; struct IsdnCardState *cs = card->cs; long flags; char tmp[64]; strcpy(tmp, avm_revision); printk(KERN_INFO "HiSax: AVM A1 PCMCIA driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_A1_PCMCIA) return (0); cs->hw.avm.cfg_reg = card->para[1]; cs->irq = card->para[0]; save_flags(flags); outb(cs->hw.avm.cfg_reg+ASL1_OFFSET, ASL1_W_ENABLE_S0); sti(); byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00); HZDELAY(HZ / 5 + 1); byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,ASL0_W_RESET); HZDELAY(HZ / 5 + 1); byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,0x00); byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET, ASL0_W_TDISABLE|ASL0_W_TRESET); restore_flags(flags); model = bytein(cs->hw.avm.cfg_reg+MODREG_OFFSET); vers = bytein(cs->hw.avm.cfg_reg+VERREG_OFFSET); printk(KERN_INFO "AVM A1 PCMCIA: io 0x%x irq %d model %d version %d/n", cs->hw.avm.cfg_reg, cs->irq, model, vers); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &AVM_card_msg; cs->irq_func = &avm_a1p_interrupt; ISACVersion(cs, "AVM A1 PCMCIA:"); if (HscxVersion(cs, "AVM A1 PCMCIA:")) { printk(KERN_WARNING "AVM A1 PCMCIA: wrong HSCX versions check IO address/n"); return (0); } return (1);}
开发者ID:romanalexander,项目名称:Trickles,代码行数:57,
示例7: setup_hfcsint __initsetup_hfcs(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, hfcs_revision); printk(KERN_INFO "HiSax: HFC-S driver Rev. %s/n", HiSax_getrev(tmp)); cs->hw.hfcD.addr = card->para[1] & 0xfffe; cs->irq = card->para[0]; cs->hw.hfcD.cip = 0; cs->hw.hfcD.int_s1 = 0; cs->hw.hfcD.send = NULL; cs->bcs[0].hw.hfc.send = NULL; cs->bcs[1].hw.hfc.send = NULL; cs->hw.hfcD.dfifosize = 512; cs->dc.hfcd.ph_state = 0; cs->hw.hfcD.fifo = 255; if (cs->typ == ISDN_CTYPE_TELES3C) { cs->hw.hfcD.bfifosize = 1024 + 512; } else if (cs->typ == ISDN_CTYPE_ACERP10) { cs->hw.hfcD.bfifosize = 7*1024 + 512; } else return (0); if (check_region((cs->hw.hfcD.addr), 2)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.hfcD.addr, cs->hw.hfcD.addr + 2); return (0); } else { request_region(cs->hw.hfcD.addr, 2, "HFCS isdn"); } printk(KERN_INFO "HFCS: defined at 0x%x IRQ %d HZ %d/n", cs->hw.hfcD.addr, cs->irq, HZ); if (cs->typ == ISDN_CTYPE_TELES3C) { /* Teles 16.3c IO ADR is 0x200 | YY0U (YY Bit 15/14 address) */ outb(0x00, cs->hw.hfcD.addr); outb(0x56, cs->hw.hfcD.addr | 1); } else if (cs->typ == ISDN_CTYPE_ACERP10) { /* Acer P10 IO ADR is 0x300 */ outb(0x00, cs->hw.hfcD.addr); outb(0x57, cs->hw.hfcD.addr | 1); } set_cs_func(cs); cs->hw.hfcD.timer.function = (void *) hfcs_Timer; cs->hw.hfcD.timer.data = (long) cs; init_timer(&cs->hw.hfcD.timer); reset_hfcs(cs); cs->cardmsg = &hfcs_card_msg; cs->irq_func = &hfcs_interrupt; return (1);}
开发者ID:TitaniumBoy,项目名称:lin,代码行数:56,
示例8: __initfunc__initfunc(intsetup_ix1micro(struct IsdnCard *card)){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, ix1_revision); printk(KERN_INFO "HiSax: ITK IX1 driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_IX1MICROR2) return (0); /* IO-Ports */ cs->hw.ix1.isac_ale = card->para[1] + ISAC_COMMAND_OFFSET; cs->hw.ix1.hscx_ale = card->para[1] + HSCX_COMMAND_OFFSET; cs->hw.ix1.isac = card->para[1] + ISAC_DATA_OFFSET; cs->hw.ix1.hscx = card->para[1] + HSCX_DATA_OFFSET; cs->hw.ix1.cfg_reg = card->para[1]; cs->irq = card->para[0]; if (cs->hw.ix1.cfg_reg) { if (check_region((cs->hw.ix1.cfg_reg), 4)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.ix1.cfg_reg, cs->hw.ix1.cfg_reg + 4); return (0); } else request_region(cs->hw.ix1.cfg_reg, 4, "ix1micro cfg"); } printk(KERN_INFO "HiSax: %s config irq:%d io:0x%X/n", CardType[cs->typ], cs->irq, cs->hw.ix1.cfg_reg); ix1_reset(cs); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &ix1_card_msg; cs->irq_func = &ix1micro_interrupt; ISACVersion(cs, "ix1-Micro:"); if (HscxVersion(cs, "ix1-Micro:")) { printk(KERN_WARNING "ix1-Micro: wrong HSCX versions check IO address/n"); release_io_ix1micro(cs); return (0); } return (1);}
开发者ID:chinnyannieb,项目名称:empeg-hijack,代码行数:52,
示例9: setup_micint __initsetup_mic(struct IsdnCard *card){ int bytecnt; struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, mic_revision); printk(KERN_INFO "HiSax: mic driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_MIC) return (0); bytecnt = 8; cs->hw.mic.cfg_reg = card->para[1]; cs->irq = card->para[0]; cs->hw.mic.adr = cs->hw.mic.cfg_reg + MIC_ADR; cs->hw.mic.isac = cs->hw.mic.cfg_reg + MIC_ISAC; cs->hw.mic.hscx = cs->hw.mic.cfg_reg + MIC_HSCX; if (check_region((cs->hw.mic.cfg_reg), bytecnt)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.mic.cfg_reg, cs->hw.mic.cfg_reg + bytecnt); return (0); } else { request_region(cs->hw.mic.cfg_reg, bytecnt, "mic isdn"); } printk(KERN_INFO "mic: defined at 0x%x IRQ %d/n", cs->hw.mic.cfg_reg, cs->irq); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &mic_card_msg; cs->irq_func = &mic_interrupt; ISACVersion(cs, "mic:"); if (HscxVersion(cs, "mic:")) { printk(KERN_WARNING "mic: wrong HSCX versions check IO address/n"); release_io_mic(cs); return (0); } return (1);}
开发者ID:dmgerman,项目名称:linux-pre-history,代码行数:52,
示例10: HiSaxVersionstatic void __init HiSaxVersion(void){ char tmp[64]; printk(KERN_INFO "HiSax: Linux Driver for passive ISDN cards/n");#ifdef MODULE printk(KERN_INFO "HiSax: Version 3.5 (module)/n");#else printk(KERN_INFO "HiSax: Version 3.5 (kernel)/n");#endif strcpy(tmp, l1_revision); printk(KERN_INFO "HiSax: Layer1 Revision %s/n", HiSax_getrev(tmp)); strcpy(tmp, l2_revision); printk(KERN_INFO "HiSax: Layer2 Revision %s/n", HiSax_getrev(tmp)); strcpy(tmp, tei_revision); printk(KERN_INFO "HiSax: TeiMgr Revision %s/n", HiSax_getrev(tmp)); strcpy(tmp, l3_revision); printk(KERN_INFO "HiSax: Layer3 Revision %s/n", HiSax_getrev(tmp)); strcpy(tmp, lli_revision); printk(KERN_INFO "HiSax: LinkLayer Revision %s/n", HiSax_getrev(tmp));}
开发者ID:asmalldev,项目名称:linux,代码行数:22,
示例11: setup_saphirint __initsetup_saphir(struct IsdnCard *card){ char tmp[64]; strcpy(tmp, saphir_rev); printk(KERN_INFO "HiSax: HST Saphir driver Rev. %s/n", HiSax_getrev(tmp)); if (saphir_probe(card->cs, card) < 0) return 0; return 1;}
开发者ID:xricson,项目名称:knoppix,代码行数:13,
示例12: setup_t163cint __init setup_t163c(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, teles163c_revision); printk(KERN_INFO "HiSax: Teles 16.3c driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_TELES3C) return (0); cs->debug = 0xff; cs->hw.hfcD.addr = card->para[1] & 0xfffe; cs->irq = card->para[0]; cs->hw.hfcD.cip = 0; cs->hw.hfcD.int_s1 = 0; cs->hw.hfcD.send = NULL; cs->bcs[0].hw.hfc.send = NULL; cs->bcs[1].hw.hfc.send = NULL; cs->hw.hfcD.bfifosize = 1024 + 512; cs->hw.hfcD.dfifosize = 512; cs->ph_state = 0; cs->hw.hfcD.fifo = 255; if (check_region((cs->hw.hfcD.addr), 2)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.hfcD.addr, cs->hw.hfcD.addr + 2); return (0); } else { request_region(cs->hw.hfcD.addr, 2, "teles3c isdn"); } /* Teles 16.3c IO ADR is 0x200 | YY0U (YY Bit 15/14 address) */ outb(0x00, cs->hw.hfcD.addr); outb(0x56, cs->hw.hfcD.addr | 1); printk(KERN_INFO "teles3c: defined at 0x%x IRQ %d HZ %d/n", cs->hw.hfcD.addr, cs->irq, HZ); set_cs_func(cs); cs->hw.hfcD.timer.function = (void *) t163c_Timer; cs->hw.hfcD.timer.data = (long) cs; init_timer(&cs->hw.hfcD.timer); reset_t163c(cs); cs->cardmsg = &t163c_card_msg; return (1);}
开发者ID:davidbau,项目名称:davej,代码行数:48,
示例13: setstack_1tr6voidsetstack_1tr6(struct PStack *st){ char tmp[64]; st->lli.l4l3 = down1tr6; st->l2.l2l3 = up1tr6; st->l3.l3ml3 = man1tr6; st->l3.N303 = 0; strcpy(tmp, l3_1tr6_revision);#ifdef CONFIG_DEBUG_PRINTK printk(KERN_INFO "HiSax: 1TR6 Rev. %s/n", HiSax_getrev(tmp));#else ;#endif}
开发者ID:Epirex,项目名称:Chrono_Kernel-1,代码行数:17,
示例14: setup_netjet_sint __devinitsetup_netjet_s(struct IsdnCard *card){ int ret; struct IsdnCardState *cs = card->cs; char tmp[64];#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, NETjet_S_revision);#ifdef CONFIG_DEBUG_PRINTK printk(KERN_INFO "HiSax: Traverse Tech. NETjet-S driver Rev. %s/n", HiSax_getrev(tmp));#else ;#endif if (cs->typ != ISDN_CTYPE_NETJET_S) return(0); test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); for ( ;; ) { if ((dev_netjet = hisax_find_pci_device(PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, dev_netjet))) { ret = njs_pci_probe(dev_netjet, cs); if (!ret) return(0); } else {#ifdef CONFIG_DEBUG_PRINTK printk(KERN_WARNING "NETjet-S: No PCI card found/n");#else ;#endif return(0); } ret = njs_cs_init(card, cs); if (!ret) return(0); if (ret > 0) break; /* otherwise, ret < 0, continue looping */ } return njs_cs_init_rest(card, cs);}
开发者ID:Epirex,项目名称:Chrono_Kernel-1,代码行数:46,
示例15: setup_divaint __devinitsetup_diva(struct IsdnCard *card){ int rc, have_card = 0; struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, Diva_revision); printk(KERN_INFO "HiSax: Eicon.Diehl Diva driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_DIEHLDIVA) return(0); cs->hw.diva.status = 0; rc = setup_diva_isa(card); if (!rc) return rc; if (rc > 0) { have_card = 1; goto ready; } rc = setup_diva_isapnp(card); if (!rc) return rc; if (rc > 0) { have_card = 1; goto ready; } rc = setup_diva_pci(card); if (!rc) return rc; if (rc > 0) have_card = 1;ready: if (!have_card) { printk(KERN_WARNING "Diva: No ISA, ISAPNP or PCI card found/n"); return(0); } return setup_diva_common(card->cs);}
开发者ID:emuikernel,项目名称:WNR2000v4,代码行数:43,
示例16: setup_elsaint __devinitsetup_elsa(struct IsdnCard *card){ long flags; int bytecnt; u_char val; struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, Elsa_revision); printk(KERN_INFO "HiSax: Elsa driver Rev. %s/n", HiSax_getrev(tmp)); cs->hw.elsa.ctrl_reg = 0; cs->hw.elsa.status = 0; cs->hw.elsa.MFlag = 0; cs->subtyp = 0; if (cs->typ == ISDN_CTYPE_ELSA) { cs->hw.elsa.base = card->para[0]; printk(KERN_INFO "Elsa: Microlink IO probing/n"); if (cs->hw.elsa.base) { if (!(cs->subtyp = probe_elsa_adr(cs->hw.elsa.base, cs->typ))) { printk(KERN_WARNING "Elsa: no Elsa Microlink at %#lx/n", cs->hw.elsa.base); return (0); } } else cs->hw.elsa.base = probe_elsa(cs); if (cs->hw.elsa.base) { cs->hw.elsa.cfg = cs->hw.elsa.base + ELSA_CONFIG; cs->hw.elsa.ctrl = cs->hw.elsa.base + ELSA_CONTROL; cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE; cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC; cs->hw.elsa.itac = cs->hw.elsa.base + ELSA_ITAC; cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX; cs->hw.elsa.trig = cs->hw.elsa.base + ELSA_TRIG_IRQ; cs->hw.elsa.timer = cs->hw.elsa.base + ELSA_START_TIMER; val = bytein(cs->hw.elsa.cfg); if (cs->subtyp == ELSA_PC) { const u_char CARD_IrqTab[8] = {7, 3, 5, 9, 0, 0, 0, 0}; cs->irq = CARD_IrqTab[(val & ELSA_IRQ_IDX_PC) >> 2]; } else if (cs->subtyp == ELSA_PCC8) {
开发者ID:GunioRobot,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:43,
示例17: setup_netjet_uint __initsetup_netjet_u(struct IsdnCard *card){ char tmp[64];#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, NETjet_U_revision); printk(KERN_INFO "HiSax: Traverse Tech. NETspider-U driver Rev. %s/n", HiSax_getrev(tmp)); dev_netjet = pci_find_device(PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, dev_netjet); if (dev_netjet) { if (nj_u_probe(card->cs, dev_netjet)) return 1; return 0; } printk(KERN_WARNING "NETspider-U: No PCI card found/n"); return 0;}
开发者ID:xricson,项目名称:knoppix,代码行数:21,
示例18: setstack_1tr6voidsetstack_1tr6(struct PStack *st){ char tmp[64]; st->l4.l4l3 = down1tr6; st->l2.l2l3 = up1tr6; st->l3.t303 = 4000; st->l3.t304 = 20000; st->l3.t305 = 4000; st->l3.t308 = 4000; st->l3.t310 = 120000; st->l3.t313 = 4000; st->l3.t318 = 4000; st->l3.t319 = 4000; st->l3.n_t303 = 0; if (st->l3.channr & 1) { strcpy(tmp, l3_1tr6_revision); printk(KERN_NOTICE "HiSax: 1TR6 Rev. %s/n", HiSax_getrev(tmp)); }}
开发者ID:rohsaini,项目名称:mkunity,代码行数:22,
示例19: setup_telespciint __initsetup_telespci(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64];#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, telespci_revision); printk(KERN_INFO "HiSax: Teles/PCI driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_TELESPCI) return (0);#if CONFIG_PCI if (!pci_present()) { printk(KERN_ERR "TelesPCI: no PCI bus present/n"); return(0); } if ((dev_tel = pci_find_device (PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_tel))) { if (pci_enable_device(dev_tel)) return(0); cs->irq = dev_tel->irq; if (!cs->irq) { printk(KERN_WARNING "Teles: No IRQ for PCI card found/n"); return(0); } cs->hw.teles0.membase = (u_long) ioremap(pci_resource_start(dev_tel, 0), PAGE_SIZE); printk(KERN_INFO "Found: Zoran, base-address: 0x%lx, irq: 0x%x/n", pci_resource_start(dev_tel, 0), dev_tel->irq); } else { printk(KERN_WARNING "TelesPCI: No PCI card found/n"); return(0); }#else printk(KERN_WARNING "HiSax: Teles/PCI and NO_PCI_BIOS/n"); printk(KERN_WARNING "HiSax: Teles/PCI unable to config/n"); return (0);#endif /* CONFIG_PCI */ /* Initialize Zoran PCI controller */ writel(0x00000000, cs->hw.teles0.membase + 0x28); writel(0x01000000, cs->hw.teles0.membase + 0x28); writel(0x01000000, cs->hw.teles0.membase + 0x28); writel(0x7BFFFFFF, cs->hw.teles0.membase + 0x2C); writel(0x70000000, cs->hw.teles0.membase + 0x3C); writel(0x61000000, cs->hw.teles0.membase + 0x40); /* writel(0x00800000, cs->hw.teles0.membase + 0x200); */ printk(KERN_INFO "HiSax: %s config irq:%d mem:%lx/n", CardType[cs->typ], cs->irq, cs->hw.teles0.membase); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &TelesPCI_card_msg; cs->irq_func = &telespci_interrupt; cs->irq_flags |= SA_SHIRQ; ISACVersion(cs, "TelesPCI:"); if (HscxVersion(cs, "TelesPCI:")) { printk(KERN_WARNING "TelesPCI: wrong HSCX versions check IO/MEM addresses/n"); release_io_telespci(cs); return (0); } return (1);}
开发者ID:JBTech,项目名称:ralink_rt5350,代码行数:73,
示例20: setup_teles3int __devinitsetup_teles3(struct IsdnCard *card){ u_char val; struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, teles3_revision); printk(KERN_INFO "HiSax: Teles IO driver Rev. %s/n", HiSax_getrev(tmp)); if ((cs->typ != ISDN_CTYPE_16_3) && (cs->typ != ISDN_CTYPE_PNP) && (cs->typ != ISDN_CTYPE_TELESPCMCIA) && (cs->typ != ISDN_CTYPE_COMPAQ_ISA)) return (0);#ifdef __ISAPNP__ if (!card->para[1] && isapnp_present()) { struct pnp_dev *pnp_d; while(ipid->card_vendor) { if ((pnp_c = pnp_find_card(ipid->card_vendor, ipid->card_device, pnp_c))) { pnp_d = NULL; if ((pnp_d = pnp_find_dev(pnp_c, ipid->vendor, ipid->function, pnp_d))) { int err; printk(KERN_INFO "HiSax: %s detected/n", (char *)ipid->driver_data); pnp_disable_dev(pnp_d); err = pnp_activate_dev(pnp_d); if (err<0) { printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)/n", __FUNCTION__, err); return(0); } card->para[3] = pnp_port_start(pnp_d, 2); card->para[2] = pnp_port_start(pnp_d, 1); card->para[1] = pnp_port_start(pnp_d, 0); card->para[0] = pnp_irq(pnp_d, 0); if (!card->para[0] || !card->para[1] || !card->para[2]) { printk(KERN_ERR "Teles PnP:some resources are missing %ld/%lx/%lx/n", card->para[0], card->para[1], card->para[2]); pnp_disable_dev(pnp_d); return(0); } break; } else { printk(KERN_ERR "Teles PnP: PnP error card found, no device/n"); } } ipid++; pnp_c = NULL; } if (!ipid->card_vendor) { printk(KERN_INFO "Teles PnP: no ISAPnP card found/n"); return(0); } }#endif if (cs->typ == ISDN_CTYPE_16_3) { cs->hw.teles3.cfg_reg = card->para[1]; switch (cs->hw.teles3.cfg_reg) { case 0x180: case 0x280: case 0x380: cs->hw.teles3.cfg_reg |= 0xc00; break; } cs->hw.teles3.isac = cs->hw.teles3.cfg_reg - 0x420; cs->hw.teles3.hscx[0] = cs->hw.teles3.cfg_reg - 0xc20; cs->hw.teles3.hscx[1] = cs->hw.teles3.cfg_reg - 0x820; } else if (cs->typ == ISDN_CTYPE_TELESPCMCIA) { cs->hw.teles3.cfg_reg = 0; cs->hw.teles3.hscx[0] = card->para[1] - 0x20; cs->hw.teles3.hscx[1] = card->para[1]; cs->hw.teles3.isac = card->para[1] + 0x20; } else if (cs->typ == ISDN_CTYPE_COMPAQ_ISA) { cs->hw.teles3.cfg_reg = card->para[3]; cs->hw.teles3.isac = card->para[2] - 32; cs->hw.teles3.hscx[0] = card->para[1] - 32; cs->hw.teles3.hscx[1] = card->para[1]; } else { /* PNP */ cs->hw.teles3.cfg_reg = 0; cs->hw.teles3.isac = card->para[1] - 32; cs->hw.teles3.hscx[0] = card->para[2] - 32; cs->hw.teles3.hscx[1] = card->para[2]; } cs->irq = card->para[0]; cs->hw.teles3.isacfifo = cs->hw.teles3.isac + 0x3e; cs->hw.teles3.hscxfifo[0] = cs->hw.teles3.hscx[0] + 0x3e; cs->hw.teles3.hscxfifo[1] = cs->hw.teles3.hscx[1] + 0x3e; if (cs->typ == ISDN_CTYPE_TELESPCMCIA) { if (!request_region(cs->hw.teles3.hscx[1], 96, "HiSax Teles PCMCIA")) { printk(KERN_WARNING "HiSax: %s ports %x-%x already in use/n", CardType[cs->typ], cs->hw.teles3.hscx[1], cs->hw.teles3.hscx[1] + 96); return (0); } } else { if (cs->hw.teles3.cfg_reg) {//.........这里部分代码省略.........
开发者ID:BackupTheBerlios,项目名称:tew632-brp-svn,代码行数:101,
示例21: setup_ix1microint __devinitsetup_ix1micro(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, ix1_revision); printk(KERN_INFO "HiSax: ITK IX1 driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_IX1MICROR2) return (0);#ifdef __ISAPNP__ if (!card->para[1] && isapnp_present()) { struct pnp_dev *pnp_d; while(ipid->card_vendor) { if ((pnp_c = pnp_find_card(ipid->card_vendor, ipid->card_device, pnp_c))) { pnp_d = NULL; if ((pnp_d = pnp_find_dev(pnp_c, ipid->vendor, ipid->function, pnp_d))) { int err; printk(KERN_INFO "HiSax: %s detected/n", (char *)ipid->driver_data); pnp_disable_dev(pnp_d); err = pnp_activate_dev(pnp_d); if (err<0) { printk(KERN_WARNING "%s: pnp_activate_dev ret(%d)/n", __FUNCTION__, err); return(0); } card->para[1] = pnp_port_start(pnp_d, 0); card->para[0] = pnp_irq(pnp_d, 0); if (!card->para[0] || !card->para[1]) { printk(KERN_ERR "ITK PnP:some resources are missing %ld/%lx/n", card->para[0], card->para[1]); pnp_disable_dev(pnp_d); return(0); } break; } else { printk(KERN_ERR "ITK PnP: PnP error card found, no device/n"); } } ipid++; pnp_c = NULL; } if (!ipid->card_vendor) { printk(KERN_INFO "ITK PnP: no ISAPnP card found/n"); return(0); } }#endif /* IO-Ports */ cs->hw.ix1.isac_ale = card->para[1] + ISAC_COMMAND_OFFSET; cs->hw.ix1.hscx_ale = card->para[1] + HSCX_COMMAND_OFFSET; cs->hw.ix1.isac = card->para[1] + ISAC_DATA_OFFSET; cs->hw.ix1.hscx = card->para[1] + HSCX_DATA_OFFSET; cs->hw.ix1.cfg_reg = card->para[1]; cs->irq = card->para[0]; if (cs->hw.ix1.cfg_reg) { if (!request_region(cs->hw.ix1.cfg_reg, 4, "ix1micro cfg")) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.ix1.cfg_reg, cs->hw.ix1.cfg_reg + 4); return (0); } } printk(KERN_INFO "HiSax: %s config irq:%d io:0x%X/n", CardType[cs->typ], cs->irq, cs->hw.ix1.cfg_reg); setup_isac(cs); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHSCX; cs->BC_Write_Reg = &WriteHSCX; cs->BC_Send_Data = &hscx_fill_fifo; cs->cardmsg = &ix1_card_msg; cs->irq_func = &ix1micro_interrupt; ISACVersion(cs, "ix1-Micro:"); if (HscxVersion(cs, "ix1-Micro:")) { printk(KERN_WARNING "ix1-Micro: wrong HSCX versions check IO address/n"); release_io_ix1micro(cs); return (0); } return (1);}
开发者ID:ManiacTwister,项目名称:linux-hnd,代码行数:91,
示例22: setup_bkm_a4tint __initsetup_bkm_a4t(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; u_int pci_memaddr = 0, found = 0; I20_REGISTER_FILE *pI20_Regs;#if CONFIG_PCI#endif strcpy(tmp, bkm_a4t_revision); printk(KERN_INFO "HiSax: T-Berkom driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ == ISDN_CTYPE_BKM_A4T) { cs->subtyp = BKM_A4T; } else return (0);#if CONFIG_PCI if (!pci_present()) { printk(KERN_ERR "bkm_a4t: no PCI bus present/n"); return (0); } while ((dev_a4t = pci_find_device(PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_a4t))) { u16 sub_sys; u16 sub_vendor; sub_vendor = dev_a4t->subsystem_vendor; sub_sys = dev_a4t->subsystem_device; if ((sub_sys == PCI_DEVICE_ID_BERKOM_A4T) && (sub_vendor == PCI_VENDOR_ID_BERKOM)) { if (pci_enable_device(dev_a4t)) return(0); found = 1; pci_memaddr = pci_resource_start(dev_a4t, 0); cs->irq = dev_a4t->irq; break; } } if (!found) { printk(KERN_WARNING "HiSax: %s: Card not found/n", CardType[card->typ]); return (0); } if (!cs->irq) { /* IRQ range check ?? */ printk(KERN_WARNING "HiSax: %s: No IRQ/n", CardType[card->typ]); return (0); } if (!pci_memaddr) { printk(KERN_WARNING "HiSax: %s: No Memory base address/n", CardType[card->typ]); return (0); } cs->hw.ax.base = (long) ioremap(pci_memaddr, 4096); /* Check suspecious address */ pI20_Regs = (I20_REGISTER_FILE *) (cs->hw.ax.base); if ((pI20_Regs->i20IntStatus & 0x8EFFFFFF) != 0) { printk(KERN_WARNING "HiSax: %s address %lx-%lx suspecious/n", CardType[card->typ], cs->hw.ax.base, cs->hw.ax.base + 4096); iounmap((void *) cs->hw.ax.base); cs->hw.ax.base = 0; return (0); } cs->hw.ax.isac_adr = cs->hw.ax.base + PO_OFFSET; cs->hw.ax.jade_adr = cs->hw.ax.base + PO_OFFSET; cs->hw.ax.isac_ale = GCS_1; cs->hw.ax.jade_ale = GCS_3;#else printk(KERN_WARNING "HiSax: %s: NO_PCI_BIOS/n", CardType[card->typ]); printk(KERN_WARNING "HiSax: %s: unable to configure/n", CardType[card->typ]); return (0);#endif /* CONFIG_PCI */ printk(KERN_INFO "HiSax: %s: Card configured at 0x%lX IRQ %d/n", CardType[card->typ], cs->hw.ax.base, cs->irq); reset_bkm(cs); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadJADE; cs->BC_Write_Reg = &WriteJADE; cs->BC_Send_Data = &jade_fill_fifo; cs->cardmsg = &BKM_card_msg; cs->irq_func = &bkm_interrupt; cs->irq_flags |= SA_SHIRQ; ISACVersion(cs, "Telekom A4T:"); /* Jade version */ JadeVersion(cs, "Telekom A4T:"); return (1);}
开发者ID:SimonKagstrom,项目名称:mci500h-linux-2.4.27,代码行数:88,
示例23: setup_avm_a1int __initsetup_avm_a1(struct IsdnCard *card){ u_char val; struct IsdnCardState *cs = card->cs; long flags; char tmp[64]; strcpy(tmp, avm_revision); printk(KERN_INFO "HiSax: AVM driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_A1) return (0); cs->hw.avm.cfg_reg = card->para[1] + 0x1800; cs->hw.avm.isac = card->para[1] + 0x1400 - 0x20; cs->hw.avm.hscx[0] = card->para[1] + 0x400 - 0x20; cs->hw.avm.hscx[1] = card->para[1] + 0xc00 - 0x20; cs->hw.avm.isacfifo = card->para[1] + 0x1000; cs->hw.avm.hscxfifo[0] = card->para[1]; cs->hw.avm.hscxfifo[1] = card->para[1] + 0x800; cs->irq = card->para[0]; if (check_region((cs->hw.avm.cfg_reg), 8)) { printk(KERN_WARNING "HiSax: %s config port %x-%x already in use/n", CardType[card->typ], cs->hw.avm.cfg_reg, cs->hw.avm.cfg_reg + 8); return (0); } else { request_region(cs->hw.avm.cfg_reg, 8, "avm cfg"); } if (check_region((cs->hw.avm.isac + 32), 32)) { printk(KERN_WARNING "HiSax: %s isac ports %x-%x already in use/n", CardType[cs->typ], cs->hw.avm.isac + 32, cs->hw.avm.isac + 64); release_ioregs(cs, 0); return (0); } else { request_region(cs->hw.avm.isac + 32, 32, "HiSax isac"); } if (check_region((cs->hw.avm.isacfifo), 1)) { printk(KERN_WARNING "HiSax: %s isac fifo port %x already in use/n", CardType[cs->typ], cs->hw.avm.isacfifo); release_ioregs(cs, 1); return (0); } else { request_region(cs->hw.avm.isacfifo, 1, "HiSax isac fifo"); } if (check_region((cs->hw.avm.hscx[0]) + 32, 32)) { printk(KERN_WARNING "HiSax: %s hscx A ports %x-%x already in use/n", CardType[cs->typ], cs->hw.avm.hscx[0] + 32, cs->hw.avm.hscx[0] + 64); release_ioregs(cs, 3); return (0); } else { request_region(cs->hw.avm.hscx[0] + 32, 32, "HiSax hscx A"); } if (check_region(cs->hw.avm.hscxfifo[0], 1)) { printk(KERN_WARNING "HiSax: %s hscx A fifo port %x already in use/n", CardType[cs->typ], cs->hw.avm.hscxfifo[0]); release_ioregs(cs, 7); return (0); } else { request_region(cs->hw.avm.hscxfifo[0], 1, "HiSax hscx A fifo"); } if (check_region(cs->hw.avm.hscx[1] + 32, 32)) { printk(KERN_WARNING "HiSax: %s hscx B ports %x-%x already in use/n", CardType[cs->typ], cs->hw.avm.hscx[1] + 32, cs->hw.avm.hscx[1] + 64); release_ioregs(cs, 0xf); return (0); } else { request_region(cs->hw.avm.hscx[1] + 32, 32, "HiSax hscx B"); } if (check_region(cs->hw.avm.hscxfifo[1], 1)) { printk(KERN_WARNING "HiSax: %s hscx B fifo port %x already in use/n", CardType[cs->typ], cs->hw.avm.hscxfifo[1]); release_ioregs(cs, 0x1f); return (0); } else { request_region(cs->hw.avm.hscxfifo[1], 1, "HiSax hscx B fifo"); } save_flags(flags); byteout(cs->hw.avm.cfg_reg, 0x0); sti(); HZDELAY(HZ / 5 + 1); byteout(cs->hw.avm.cfg_reg, 0x1); HZDELAY(HZ / 5 + 1);//.........这里部分代码省略.........
开发者ID:fgeraci,项目名称:cs518-sched,代码行数:101,
示例24: setup_netjet_uint __initsetup_netjet_u(struct IsdnCard *card){ int bytecnt; struct IsdnCardState *cs = card->cs; char tmp[64];#ifdef CONFIG_PCI#endif#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, NETjet_U_revision); printk(KERN_INFO "HiSax: Traverse Tech. NETspider-U driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_NETJET_U) return(0); test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags);#ifdef CONFIG_PCI for ( ;; ) { if ((dev_netjet = pci_find_device(PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, dev_netjet))) { if (pci_enable_device(dev_netjet)) return(0); pci_set_master(dev_netjet); cs->irq = dev_netjet->irq; if (!cs->irq) { printk(KERN_WARNING "NETspider-U: No IRQ for PCI card found/n"); return(0); } cs->hw.njet.base = pci_resource_start(dev_netjet, 0); if (!cs->hw.njet.base) { printk(KERN_WARNING "NETspider-U: No IO-Adr for PCI card found/n"); return(0); } } else { printk(KERN_WARNING "NETspider-U: No PCI card found/n"); return(0); } cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; mdelay(10); cs->hw.njet.ctrl_reg = 0xff; /* Reset On */ byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); mdelay(10); cs->hw.njet.ctrl_reg = 0x00; /* Reset Off and status read clear */ byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); mdelay(10); cs->hw.njet.auxd = 0xC0; cs->hw.njet.dmactrl = 0; byteout(cs->hw.njet.auxa, 0); byteout(cs->hw.njet.base + NETJET_AUXCTRL, ~NETJET_ISACIRQ); byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ); byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); switch ( ( ( NETjet_ReadIC( cs, ICC_RBCH ) >> 5 ) & 3 ) ) { case 3 : break; case 0 : printk( KERN_WARNING "NETspider-U: NETjet-S PCI card found/n" ); continue; default : printk( KERN_WARNING "NETspider-U: No PCI card found/n" ); return 0; } break; }#else printk(KERN_WARNING "NETspider-U: NO_PCI_BIOS/n"); printk(KERN_WARNING "NETspider-U: unable to config NETspider-U PCI/n"); return (0);#endif /* CONFIG_PCI */ bytecnt = 256; printk(KERN_INFO "NETspider-U: PCI card configured at %#lx IRQ %d/n", cs->hw.njet.base, cs->irq); if (!request_region(cs->hw.njet.base, bytecnt, "netspider-u isdn")) { printk(KERN_WARNING "HiSax: %s config port %#lx-%#lx already in use/n", CardType[card->typ], cs->hw.njet.base, cs->hw.njet.base + bytecnt); return (0); } setup_icc(cs); cs->readisac = &NETjet_ReadIC; cs->writeisac = &NETjet_WriteIC;//.........这里部分代码省略.........
开发者ID:ena30,项目名称:snake-os,代码行数:101,
示例25: setup_TeleIntint __devinitsetup_TeleInt(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, TeleInt_revision); printk(KERN_INFO "HiSax: TeleInt driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_TELEINT) return (0); cs->hw.hfc.addr = card->para[1] & 0x3fe; cs->irq = card->para[0]; cs->hw.hfc.cirm = HFC_CIRM; cs->hw.hfc.isac_spcr = 0x00; cs->hw.hfc.cip = 0; cs->hw.hfc.ctmt = HFC_CTMT | HFC_CLTIMER; cs->bcs[0].hw.hfc.send = NULL; cs->bcs[1].hw.hfc.send = NULL; cs->hw.hfc.fifosize = 7 * 1024 + 512; cs->hw.hfc.timer.function = (void *) TeleInt_Timer; cs->hw.hfc.timer.data = (long) cs; init_timer(&cs->hw.hfc.timer); if (!request_region(cs->hw.hfc.addr, 2, "TeleInt isdn")) { printk(KERN_WARNING "HiSax: TeleInt config port %x-%x already in use/n", cs->hw.hfc.addr, cs->hw.hfc.addr + 2); return (0); } /* HW IO = IO */ byteout(cs->hw.hfc.addr, cs->hw.hfc.addr & 0xff); byteout(cs->hw.hfc.addr | 1, ((cs->hw.hfc.addr & 0x300) >> 8) | 0x54); switch (cs->irq) { case 3: cs->hw.hfc.cirm |= HFC_INTA; break; case 4: cs->hw.hfc.cirm |= HFC_INTB; break; case 5: cs->hw.hfc.cirm |= HFC_INTC; break; case 7: cs->hw.hfc.cirm |= HFC_INTD; break; case 10: cs->hw.hfc.cirm |= HFC_INTE; break; case 11: cs->hw.hfc.cirm |= HFC_INTF; break; default: printk(KERN_WARNING "TeleInt: wrong IRQ/n"); release_io_TeleInt(cs); return (0); } byteout(cs->hw.hfc.addr | 1, cs->hw.hfc.cirm); byteout(cs->hw.hfc.addr | 1, cs->hw.hfc.ctmt); printk(KERN_INFO "TeleInt: defined at 0x%x IRQ %d/n", cs->hw.hfc.addr, cs->irq); setup_isac(cs); cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadHFC; cs->BC_Write_Reg = &WriteHFC; cs->cardmsg = &TeleInt_card_msg; cs->irq_func = &TeleInt_interrupt; ISACVersion(cs, "TeleInt:"); return (1);}
开发者ID:274914765,项目名称:C,代码行数:75,
示例26: setup_isurfint __devinitsetup_isurf(struct IsdnCard *card){ int ver; struct IsdnCardState *cs = card->cs; char tmp[64]; strcpy(tmp, ISurf_revision); printk(KERN_INFO "HiSax: ISurf driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_ISURF) return(0); if (card->para[1] && card->para[2]) { cs->hw.isurf.reset = card->para[1]; cs->hw.isurf.phymem = card->para[2]; cs->irq = card->para[0]; } else {#ifdef __ISAPNP__ if (isapnp_present()) { struct pnp_dev *pnp_d = NULL; int err; cs->subtyp = 0; if ((pnp_c = pnp_find_card( ISAPNP_VENDOR('S', 'I', 'E'), ISAPNP_FUNCTION(0x0010), pnp_c))) { if (!(pnp_d = pnp_find_dev(pnp_c, ISAPNP_VENDOR('S', 'I', 'E'), ISAPNP_FUNCTION(0x0010), pnp_d))) { printk(KERN_ERR "ISurfPnP: PnP error card found, no device/n"); return (0); } pnp_disable_dev(pnp_d); err = pnp_activate_dev(pnp_d); cs->hw.isurf.reset = pnp_port_start(pnp_d, 0); cs->hw.isurf.phymem = pnp_mem_start(pnp_d, 1); cs->irq = pnp_irq(pnp_d, 0); if (!cs->irq || !cs->hw.isurf.reset || !cs->hw.isurf.phymem) { printk(KERN_ERR "ISurfPnP:some resources are missing %d/%x/%lx/n", cs->irq, cs->hw.isurf.reset, cs->hw.isurf.phymem); pnp_disable_dev(pnp_d); return(0); } } else { printk(KERN_INFO "ISurfPnP: no ISAPnP card found/n"); return(0); } } else { printk(KERN_INFO "ISurfPnP: no ISAPnP bus found/n"); return(0); }#else printk(KERN_WARNING "HiSax: Siemens I-Surf port/mem not set/n"); return (0);#endif } if (!request_region(cs->hw.isurf.reset, 1, "isurf isdn")) { printk(KERN_WARNING "HiSax: Siemens I-Surf config port %x already in use/n", cs->hw.isurf.reset); return (0); } if (!request_region(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE, "isurf iomem")) { printk(KERN_WARNING "HiSax: Siemens I-Surf memory region " "%lx-%lx already in use/n", cs->hw.isurf.phymem, cs->hw.isurf.phymem + ISURF_IOMEM_SIZE); release_region(cs->hw.isurf.reset, 1); return (0); } cs->hw.isurf.isar = ioremap(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE); cs->hw.isurf.isac = cs->hw.isurf.isar + ISURF_ISAC_OFFSET; printk(KERN_INFO "ISurf: defined at 0x%x 0x%lx IRQ %d/n", cs->hw.isurf.reset, cs->hw.isurf.phymem, cs->irq); setup_isac(cs); cs->cardmsg = &ISurf_card_msg; cs->irq_func = &isurf_interrupt; cs->auxcmd = &isurf_auxcmd; cs->readisac = &ReadISAC; cs->writeisac = &WriteISAC; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->bcs[0].hw.isar.reg = &cs->hw.isurf.isar_r; cs->bcs[1].hw.isar.reg = &cs->hw.isurf.isar_r; test_and_set_bit(HW_ISAR, &cs->HW_Flags); ISACVersion(cs, "ISurf:"); cs->BC_Read_Reg = &ReadISAR; cs->BC_Write_Reg = &WriteISAR; cs->BC_Send_Data = &isar_fill_fifo; ver = ISARVersion(cs, "ISurf:"); if (ver < 0) { printk(KERN_WARNING "ISurf: wrong ISAR version (ret = %d)/n", ver); release_io_isurf(cs); return (0); }//.........这里部分代码省略.........
开发者ID:robacklin,项目名称:ts4700,代码行数:101,
示例27: setup_w6692int __init setup_w6692(struct IsdnCard *card){ struct IsdnCardState *cs = card->cs; char tmp[64]; u_char found = 0; u_char pci_irq = 0; u_int pci_ioaddr = 0;#ifdef __BIG_ENDIAN#error "not running on big endian machines now"#endif strcpy(tmp, w6692_revision); printk(KERN_INFO "HiSax: W6692 driver Rev. %s/n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_W6692) return (0);#if CONFIG_PCI if (!pci_present()) { printk(KERN_ERR "W6692: no PCI bus present/n"); return (0); } while (id_list[id_idx].vendor_id) { dev_w6692 = pci_find_device(id_list[id_idx].vendor_id, id_list[id_idx].device_id, dev_w6692); if (dev_w6692) { if (pci_enable_device(dev_w6692)) continue; cs->subtyp = id_idx; break; } id_idx++; } if (dev_w6692) { found = 1; pci_irq = dev_w6692->irq; /* I think address 0 is allways the configuration area */ /* and address 1 is the real IO space KKe 03.09.99 */ pci_ioaddr = pci_resource_start(dev_w6692, 1); /* USR ISDN PCI card TA need some special handling */ if (cs->subtyp == W6692_WINBOND) { if ((W6692_SV_USR == dev_w6692->subsystem_vendor) && (W6692_SD_USR == dev_w6692->subsystem_device)) { cs->subtyp = W6692_USR; } } } if (!found) { printk(KERN_WARNING "W6692: No PCI card found/n"); return (0); } cs->irq = pci_irq; if (!cs->irq) { printk(KERN_WARNING "W6692: No IRQ for PCI card found/n"); return (0); } if (!pci_ioaddr) { printk(KERN_WARNING "W6692: NO I/O Base Address found/n"); return (0); } cs->hw.w6692.iobase = pci_ioaddr; printk(KERN_INFO "Found: %s %s, I/O base: 0x%x, irq: %d/n", id_list[cs->subtyp].vendor_name, id_list[cs->subtyp].card_name, pci_ioaddr, pci_irq); if (check_region((cs->hw.w6692.iobase), 256)) { printk(KERN_WARNING "HiSax: %s I/O ports %x-%x already in use/n", id_list[cs->subtyp].card_name, cs->hw.w6692.iobase, cs->hw.w6692.iobase + 255); return (0); } else { request_region(cs->hw.w6692.iobase, 256, id_list[cs->subtyp].card_name); }#else printk(KERN_WARNING "HiSax: W6692 and NO_PCI_BIOS/n"); printk(KERN_WARNING "HiSax: W6692 unable to config/n"); return (0);#endif /* CONFIG_PCI */ printk(KERN_INFO "HiSax: %s config irq:%d I/O:%x/n", id_list[cs->subtyp].card_name, cs->irq, cs->hw.w6692.iobase); cs->readW6692 = &ReadW6692; cs->writeW6692 = &WriteW6692; cs->readisacfifo = &ReadISACfifo; cs->writeisacfifo = &WriteISACfifo; cs->BC_Read_Reg = &ReadW6692B; cs->BC_Write_Reg = &WriteW6692B; cs->BC_Send_Data = &W6692B_fill_fifo; cs->cardmsg = &w6692_card_msg; cs->irq_func = &W6692_interrupt; cs->irq_flags |= SA_SHIRQ; W6692Version(cs, "W6692:"); printk(KERN_INFO "W6692 ISTA=0x%X/n", ReadW6692(cs, W_ISTA)); printk(KERN_INFO "W6692 IMASK=0x%X/n", ReadW6692(cs, W_IMASK)); printk(KERN_INFO "W6692 D_EXIR=0x%X/n", ReadW6692(cs, W_D_EXIR));//.........这里部分代码省略.........
开发者ID:jameshilliard,项目名称:actiontec_opensource_mi424wr-rev-acd-56-0-10-14-4,代码行数:101,
注:本文中的HiSax_getrev函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ Hide函数代码示例 C++ HexDump函数代码示例 |