Lines Matching refs:cnf
53 process_line(struct conf_writedata *cnf) in process_line() argument
55 unsigned char *cp = cnf->conf_line; in process_line()
58 if (cnf->card->debug_flags & LOG_CNF_LINE) in process_line()
59 hysdn_addlog(cnf->card, "conf line: %s", cp); in process_line()
70 if (cnf->card->debug_flags & LOG_CNF_MISC) in process_line()
71 hysdn_addlog(cnf->card, "conf channel invalid %d", i); in process_line()
74 cnf->channel = i & 0xFFFF; /* set new channel number */ in process_line()
78 if (cnf->card->debug_flags & LOG_CNF_DATA) in process_line()
79 hysdn_addlog(cnf->card, "conf chan=%d %s", cnf->channel, cp); in process_line()
80 return (hysdn_tx_cfgline(cnf->card, cnf->conf_line + 1, in process_line()
81 cnf->channel)); /* send the line without * */ in process_line()
96 struct conf_writedata *cnf; in hysdn_conf_write() local
103 if (!(cnf = file->private_data)) in hysdn_conf_write()
106 if (cnf->state == CONF_STATE_DETECT) { /* auto detect cnf or pof data */ in hysdn_conf_write()
112 if ((cnf->needed_size = pof_write_open(cnf->card, &cnf->pof_buffer)) <= 0) in hysdn_conf_write()
113 return (cnf->needed_size); /* an error occurred -> exit */ in hysdn_conf_write()
114 cnf->buf_size = 0; /* buffer is empty */ in hysdn_conf_write()
115 cnf->state = CONF_STATE_POF; /* new state */ in hysdn_conf_write()
118 cnf->buf_size = 0; /* buffer is empty */ in hysdn_conf_write()
119 cnf->state = CONF_STATE_CONF; /* requested conf data write */ in hysdn_conf_write()
120 if (cnf->card->state != CARD_STATE_RUN) in hysdn_conf_write()
122 cnf->conf_line[CONF_LINE_LEN - 1] = 0; /* limit string length */ in hysdn_conf_write()
123 cnf->channel = 4098; /* default channel for output */ in hysdn_conf_write()
126 if (cnf->state == CONF_STATE_POF) { /* pof write active */ in hysdn_conf_write()
127 i = cnf->needed_size - cnf->buf_size; /* bytes still missing for write */ in hysdn_conf_write()
133 if (copy_from_user(cnf->pof_buffer + cnf->buf_size, buf, count)) in hysdn_conf_write()
135 cnf->buf_size += count; in hysdn_conf_write()
137 if (cnf->needed_size == cnf->buf_size) { in hysdn_conf_write()
138 cnf->needed_size = pof_write_buffer(cnf->card, cnf->buf_size); /* write data */ in hysdn_conf_write()
139 if (cnf->needed_size <= 0) { in hysdn_conf_write()
140 cnf->card->state = CARD_STATE_BOOTERR; /* show boot error */ in hysdn_conf_write()
141 return (cnf->needed_size); /* an error occurred */ in hysdn_conf_write()
143 cnf->buf_size = 0; /* buffer is empty again */ in hysdn_conf_write()
149 if (cnf->card->state != CARD_STATE_RUN) { in hysdn_conf_write()
150 if (cnf->card->debug_flags & LOG_CNF_MISC) in hysdn_conf_write()
151 hysdn_addlog(cnf->card, "cnf write denied -> not booted"); in hysdn_conf_write()
154 i = (CONF_LINE_LEN - 1) - cnf->buf_size; /* bytes available in buffer */ in hysdn_conf_write()
160 if (copy_from_user(cnf->conf_line + cnf->buf_size, buf, count)) in hysdn_conf_write()
164 cp = cnf->conf_line + cnf->buf_size; in hysdn_conf_write()
182 cnf->buf_size = 0; /* buffer is empty after transfer */ in hysdn_conf_write()
183 if ((i = process_line(cnf)) < 0) /* handle the line */ in hysdn_conf_write()
188 cnf->buf_size += count; /* add chars to string */ in hysdn_conf_write()
189 if (cnf->buf_size >= CONF_LINE_LEN - 1) { in hysdn_conf_write()
190 if (cnf->card->debug_flags & LOG_CNF_MISC) in hysdn_conf_write()
191 hysdn_addlog(cnf->card, "cnf line too long %d chars pos %d", cnf->buf_size, count); in hysdn_conf_write()
199 if (cnf->card->debug_flags & LOG_CNF_MISC) in hysdn_conf_write()
200 hysdn_addlog(cnf->card, "cnf line too long"); in hysdn_conf_write()
232 struct conf_writedata *cnf; in hysdn_conf_open() local
246 if (!(cnf = kmalloc(sizeof(struct conf_writedata), GFP_KERNEL))) { in hysdn_conf_open()
250 cnf->card = card; in hysdn_conf_open()
251 cnf->buf_size = 0; /* nothing buffered */ in hysdn_conf_open()
252 cnf->state = CONF_STATE_DETECT; /* start auto detect */ in hysdn_conf_open()
253 filep->private_data = cnf; in hysdn_conf_open()
307 struct conf_writedata *cnf; in hysdn_conf_close() local
320 cnf = filep->private_data; in hysdn_conf_close()
322 if (cnf->state == CONF_STATE_POF) in hysdn_conf_close()
323 retval = pof_write_close(cnf->card); /* close the pof write */ in hysdn_conf_close()