Lines Matching refs:bc
159 static void __inline__ baycom_int_freq(struct baycom_state *bc) in baycom_int_freq() argument
166 bc->debug_vals.cur_intcnt++; in baycom_int_freq()
167 if (time_after_eq(cur_jiffies, bc->debug_vals.last_jiffies + HZ)) { in baycom_int_freq()
168 bc->debug_vals.last_jiffies = cur_jiffies; in baycom_int_freq()
169 bc->debug_vals.last_intcnt = bc->debug_vals.cur_intcnt; in baycom_int_freq()
170 bc->debug_vals.cur_intcnt = 0; in baycom_int_freq()
171 bc->debug_vals.last_pllcorr = bc->debug_vals.cur_pllcorr; in baycom_int_freq()
172 bc->debug_vals.cur_pllcorr = 0; in baycom_int_freq()
195 static __inline__ void par96_tx(struct net_device *dev, struct baycom_state *bc) in par96_tx() argument
198 unsigned int data = hdlcdrv_getbits(&bc->hdrv); in par96_tx()
199 struct parport *pp = bc->pdev->port; in par96_tx()
203 bc->modem.par96.scram = ((bc->modem.par96.scram << 1) | in par96_tx()
204 (bc->modem.par96.scram & 1)); in par96_tx()
206 bc->modem.par96.scram ^= 1; in par96_tx()
207 if (bc->modem.par96.scram & (PAR96_SCRAM_TAP1 << 1)) in par96_tx()
208 bc->modem.par96.scram ^= in par96_tx()
210 if (bc->modem.par96.scram & (PAR96_SCRAM_TAP1 << 2)) in par96_tx()
219 static __inline__ void par96_rx(struct net_device *dev, struct baycom_state *bc) in par96_rx() argument
223 struct parport *pp = bc->pdev->port; in par96_rx()
229 bc->modem.par96.descram = (bc->modem.par96.descram << 1); in par96_rx()
231 bc->modem.par96.descram |= 1; in par96_rx()
232 descx = bc->modem.par96.descram ^ in par96_rx()
233 (bc->modem.par96.descram >> 1); in par96_rx()
243 hdlcdrv_putbits(&bc->hdrv, data); in par96_rx()
247 if (bc->options & BAYCOM_OPTIONS_SOFTDCD) { in par96_rx()
248 bc->modem.par96.dcd_shreg = (bc->modem.par96.dcd_shreg >> 16) in par96_rx()
253 if ((bc->modem.par96.dcd_shreg & mask) == mask2) in par96_rx()
254 bc->modem.par96.dcd_count = HDLCDRV_MAXFLEN+4; in par96_rx()
258 if (((bc->modem.par96.dcd_shreg & mask) == mask2) && in par96_rx()
259 (bc->modem.par96.dcd_count >= 0)) in par96_rx()
260 bc->modem.par96.dcd_count -= HDLCDRV_MAXFLEN-10; in par96_rx()
262 if (bc->modem.par96.dcd_count >= 0) in par96_rx()
263 bc->modem.par96.dcd_count -= 2; in par96_rx()
264 hdlcdrv_setdcd(&bc->hdrv, bc->modem.par96.dcd_count > 0); in par96_rx()
266 hdlcdrv_setdcd(&bc->hdrv, !!(pp->ops->read_status(pp) & PAR96_DCD)); in par96_rx()
275 struct baycom_state *bc = netdev_priv(dev); in par96_interrupt() local
277 baycom_int_freq(bc); in par96_interrupt()
281 if (hdlcdrv_ptt(&bc->hdrv)) in par96_interrupt()
282 par96_tx(dev, bc); in par96_interrupt()
284 par96_rx(dev, bc); in par96_interrupt()
285 if (--bc->modem.arb_divider <= 0) { in par96_interrupt()
286 bc->modem.arb_divider = 6; in par96_interrupt()
288 hdlcdrv_arbitrate(dev, &bc->hdrv); in par96_interrupt()
292 hdlcdrv_transmitter(dev, &bc->hdrv); in par96_interrupt()
293 hdlcdrv_receiver(dev, &bc->hdrv); in par96_interrupt()
302 struct baycom_state *bc = netdev_priv(dev); in par96_wakeup() local
305 if (!parport_claim(bc->pdev)) in par96_wakeup()
313 struct baycom_state *bc = netdev_priv(dev); in par96_open() local
316 if (!dev || !bc) in par96_open()
333 memset(&bc->modem, 0, sizeof(bc->modem)); in par96_open()
334 bc->hdrv.par.bitrate = 9600; in par96_open()
335 bc->pdev = parport_register_device(pp, dev->name, NULL, par96_wakeup, in par96_open()
338 if (!bc->pdev) { in par96_open()
342 if (parport_claim(bc->pdev)) { in par96_open()
344 parport_unregister_device(bc->pdev); in par96_open()
347 pp = bc->pdev->port; in par96_open()
350 bc->hdrv.par.bitrate = 9600; in par96_open()
354 bc_drvname, dev->base_addr, dev->irq, bc->options); in par96_open()
362 struct baycom_state *bc = netdev_priv(dev); in par96_close() local
365 if (!dev || !bc) in par96_close()
367 pp = bc->pdev->port; in par96_close()
372 parport_release(bc->pdev); in par96_close()
373 parport_unregister_device(bc->pdev); in par96_close()
399 static int baycom_setmode(struct baycom_state *bc, const char *modestr) in baycom_setmode() argument
402 bc->options = 0; in baycom_setmode()
404 bc->options = BAYCOM_OPTIONS_SOFTDCD; in baycom_setmode()
406 bc->options = !!strchr(modestr, '*'); in baycom_setmode()
415 struct baycom_state *bc; in baycom_ioctl() local
421 bc = netdev_priv(dev); in baycom_ioctl()
422 BUG_ON(bc->hdrv.magic != HDLCDRV_MAGIC); in baycom_ioctl()
431 strcpy(hi->data.modename, bc->options ? "par96" : "picpar"); in baycom_ioctl()
440 return baycom_setmode(bc, hi->data.modename); in baycom_ioctl()
461 bi.data.dbg.debug1 = bc->hdrv.ptt_keyed; in baycom_ioctl()
462 bi.data.dbg.debug2 = bc->debug_vals.last_intcnt; in baycom_ioctl()
463 bi.data.dbg.debug3 = bc->debug_vals.last_pllcorr; in baycom_ioctl()
504 struct baycom_state *bc; in init_baycompar() local
520 bc = netdev_priv(dev); in init_baycompar()
521 if (set_hw && baycom_setmode(bc, mode[i])) in init_baycompar()