• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/hamradio/

Lines Matching refs:ser12

4  *	baycom_ser_hdx.c  -- baycom ser12 halfduplex radio modem driver.
29 * ser12: This is a very simple 1200 baud AFSK modem. The modem consists only
40 * mode ser12 hardware DCD
41 * ser12* software DCD
42 * ser12@ hardware/software DCD, i.e. no explicit DCD signal but hardware
44 * ser12+ hardware DCD, inverted signal at DCD pin
53 * 0.4 08.07.1997 alternative ser12 decoding algorithm (uses delta CTS ints)
54 * 0.5 11.11.1997 ser12/par96 split into separate files
130 } ser12;
207 outb(0x0e | (!!bc->modem.ser12.tx_bit), MCR(dev->base_addr));
210 bc->modem.ser12.tx_bit = !(bc->modem.ser12.tx_bit ^
225 bc->modem.ser12.dcd_shreg = (bc->modem.ser12.dcd_shreg << 1) |
226 (cur_s != bc->modem.ser12.last_sample);
227 bc->modem.ser12.last_sample = cur_s;
228 if(bc->modem.ser12.dcd_shreg & 1) {
233 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
234 if (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
236 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
237 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
238 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
240 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
242 bc->modem.ser12.dcd_sum0--;
244 if(!bc->modem.ser12.dcd_time) {
245 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
246 bc->modem.ser12.dcd_sum1 +
247 bc->modem.ser12.dcd_sum2) < 0);
248 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
249 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
251 bc->modem.ser12.dcd_sum0 = 2;
252 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
254 bc->modem.ser12.dcd_time--;
259 if (bc->modem.ser12.interm_sample) {
268 switch (bc->modem.ser12.dcd_shreg & 7) {
286 if (bc->modem.ser12.last_sample ==
287 bc->modem.ser12.last_rxbit)
289 bc->modem.ser12.last_rxbit =
290 bc->modem.ser12.last_sample;
292 if (++bc->modem.ser12.interm_sample >= 3)
293 bc->modem.ser12.interm_sample = 0;
297 if (bc->modem.ser12.dcd_shreg & 1) {
301 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
302 dcdspos += (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
304 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
305 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
306 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
308 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
314 if (bc->modem.ser12.interm_sample) {
323 switch (bc->modem.ser12.dcd_shreg & 3) {
341 if (bc->modem.ser12.last_sample ==
342 bc->modem.ser12.last_rxbit)
344 bc->modem.ser12.last_rxbit =
345 bc->modem.ser12.last_sample;
347 bc->modem.ser12.interm_sample = !bc->modem.ser12.interm_sample;
351 bc->modem.ser12.dcd_sum0 -= (bc->modem.ser12.dcd_shreg & 1);
358 if(!bc->modem.ser12.dcd_time) {
362 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
363 bc->modem.ser12.dcd_sum1 +
364 bc->modem.ser12.dcd_sum2) < 0);
365 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
366 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
368 bc->modem.ser12.dcd_sum0 = 2;
369 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
371 bc->modem.ser12.dcd_time--;
506 printk(KERN_INFO "%s: ser12 at iobase 0x%lx irq %u uart %s\n",
526 printk(KERN_INFO "%s: close ser12 at iobase 0x%lx irq %u\n",
587 strcpy(hi->data.modename, "ser12");
601 strcpy(hi->data.modename, "ser12");
637 static char *mode[NR_PORTS] = { "ser12*", };
649 MODULE_DESCRIPTION("Baycom ser12 half duplex amateur radio modem driver");
714 * mode: ser12 hardware DCD
715 * ser12* software DCD
716 * ser12@ hardware/software DCD, i.e. no explicit DCD signal but hardware
718 * ser12+ hardware DCD, inverted signal at DCD pin