• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/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
131 } ser12;
208 outb(0x0e | (!!bc->modem.ser12.tx_bit), MCR(dev->base_addr));
211 bc->modem.ser12.tx_bit = !(bc->modem.ser12.tx_bit ^
226 bc->modem.ser12.dcd_shreg = (bc->modem.ser12.dcd_shreg << 1) |
227 (cur_s != bc->modem.ser12.last_sample);
228 bc->modem.ser12.last_sample = cur_s;
229 if(bc->modem.ser12.dcd_shreg & 1) {
234 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
235 if (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
237 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
238 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
239 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
241 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
243 bc->modem.ser12.dcd_sum0--;
245 if(!bc->modem.ser12.dcd_time) {
246 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
247 bc->modem.ser12.dcd_sum1 +
248 bc->modem.ser12.dcd_sum2) < 0);
249 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
250 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
252 bc->modem.ser12.dcd_sum0 = 2;
253 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
255 bc->modem.ser12.dcd_time--;
260 if (bc->modem.ser12.interm_sample) {
269 switch (bc->modem.ser12.dcd_shreg & 7) {
287 if (bc->modem.ser12.last_sample ==
288 bc->modem.ser12.last_rxbit)
290 bc->modem.ser12.last_rxbit =
291 bc->modem.ser12.last_sample;
293 if (++bc->modem.ser12.interm_sample >= 3)
294 bc->modem.ser12.interm_sample = 0;
298 if (bc->modem.ser12.dcd_shreg & 1) {
302 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
303 dcdspos += (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
305 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
306 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
307 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
309 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
315 if (bc->modem.ser12.interm_sample) {
324 switch (bc->modem.ser12.dcd_shreg & 3) {
342 if (bc->modem.ser12.last_sample ==
343 bc->modem.ser12.last_rxbit)
345 bc->modem.ser12.last_rxbit =
346 bc->modem.ser12.last_sample;
348 bc->modem.ser12.interm_sample = !bc->modem.ser12.interm_sample;
352 bc->modem.ser12.dcd_sum0 -= (bc->modem.ser12.dcd_shreg & 1);
359 if(!bc->modem.ser12.dcd_time) {
363 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
364 bc->modem.ser12.dcd_sum1 +
365 bc->modem.ser12.dcd_sum2) < 0);
366 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
367 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
369 bc->modem.ser12.dcd_sum0 = 2;
370 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
372 bc->modem.ser12.dcd_time--;
507 printk(KERN_INFO "%s: ser12 at iobase 0x%lx irq %u uart %s\n",
527 printk(KERN_INFO "%s: close ser12 at iobase 0x%lx irq %u\n",
588 strcpy(hi->data.modename, "ser12");
602 strcpy(hi->data.modename, "ser12");
638 static char *mode[NR_PORTS] = { "ser12*", };
650 MODULE_DESCRIPTION("Baycom ser12 half duplex amateur radio modem driver");
715 * mode: ser12 hardware DCD
716 * ser12* software DCD
717 * ser12@ hardware/software DCD, i.e. no explicit DCD signal but hardware
719 * ser12+ hardware DCD, inverted signal at DCD pin