Lines Matching +full:config +full:- +full:space

2  * SPDX-License-Identifier: BSD-2-Clause
200 pnp_set_config(void *arg, struct isa_config *config, int enable)
202 int csn = ((struct pnp_set_config_arg *) arg)->csn;
203 int ldn = ((struct pnp_set_config_arg *) arg)->ldn;
208 * key, then put our card into Config state.
221 if (config->ic_nmem > ISA_PNP_NMEM) {
223 config->ic_nmem, ISA_PNP_NMEM);
224 config->ic_nmem = ISA_PNP_NMEM;
226 if (config->ic_nport > ISA_PNP_NPORT) {
227 printf("too many ISA I/O ranges (%d > %d)\n", config->ic_nport,
229 config->ic_nport = ISA_PNP_NPORT;
231 if (config->ic_nirq > ISA_PNP_NIRQ) {
232 printf("too many ISA IRQs (%d > %d)\n", config->ic_nirq,
234 config->ic_nirq = ISA_PNP_NIRQ;
236 if (config->ic_ndrq > ISA_PNP_NDRQ) {
237 printf("too many ISA DRQs (%d > %d)\n", config->ic_ndrq,
239 config->ic_ndrq = ISA_PNP_NDRQ;
245 for (i = 0; i < config->ic_nmem; i++) {
250 if (config->ic_mem[i].ir_size == 0) {
256 start = config->ic_mem[i].ir_start;
257 size = config->ic_mem[i].ir_size;
273 for (i = 0; i < config->ic_nport; i++) {
276 if (config->ic_port[i].ir_size == 0) {
280 start = config->ic_port[i].ir_start;
290 for (i = 0; i < config->ic_nirq; i++) {
294 if (config->ic_irqmask[i] == 0) {
298 irq = ffs(config->ic_irqmask[i]) - 1;
312 for (i = 0; i < config->ic_ndrq; i++) {
315 if (config->ic_drqmask[i] == 0) {
318 drq = ffs(config->ic_drqmask[i]) - 1;
339 * Process quirks for a logical device.. The card must be in Config state.
343 struct isa_config *config)
347 for (qp = &pnp_quirks[0]; qp->vendor_id; qp++) {
348 if (qp->vendor_id == vendor_id
349 && (qp->logical_id == 0 || qp->logical_id == logical_id)) {
350 switch (qp->type) {
353 pnp_write(qp->arg1, qp->arg2);
356 if (config == NULL)
358 if (qp->arg1 != 0) {
359 config->ic_nport++;
360 config->ic_port[config->ic_nport - 1] = config->ic_port[0];
361 config->ic_port[config->ic_nport - 1].ir_start += qp->arg1;
362 config->ic_port[config->ic_nport - 1].ir_end += qp->arg1;
364 if (qp->arg2 != 0) {
365 config->ic_nport++;
366 config->ic_port[config->ic_nport - 1] = config->ic_port[0];
367 config->ic_port[config->ic_nport - 1].ir_start += qp->arg2;
368 config->ic_port[config->ic_nport - 1].ir_end += qp->arg2;
399 scanning--;
415 scanning -= large_len;
427 if (large_len > sizeof(buf) - 1)
428 large_len = sizeof(buf) - 1;
434 while (buf[large_len-1] == ' ')
435 large_len--;
451 scanning -= PNP_SRES_LEN(tag);
461 resinfo - startres - 1, ldn);
471 pnp_check_quirks(p->vendor_id, logical_id, ldn, NULL);
478 isa_set_vendorid(dev, p->vendor_id);
479 isa_set_serial(dev, p->serial);
489 csnldn->csn = csn;
490 csnldn->ldn = ldn;
506 resinfo - startres - 1, ldn);
538 int space = *spacep;
541 if (space == 0) {
542 space = 1024;
543 resources = malloc(space, M_TEMP, M_NOWAIT);
548 if (len + amount > space) {
550 while (len + amount > space + extra)
552 newres = malloc(space + extra, M_TEMP, M_NOWAIT);
560 space += extra;
568 *spacep = space;
585 int space = *spacep;
593 error = pnp_read_bytes(1, &resources, &space, &len);
596 tag = resources[len-1];
602 &resources, &space, &len);
611 error = pnp_read_bytes(2, &resources, &space, &len);
614 error = pnp_read_bytes(resources[len-2]
615 + (resources[len-1] << 8), &resources, &space,
624 *spacep = space;
646 int space = 0;
684 * (taking it to Config state) and read its
692 error = pnp_read_resources(&resources, &space, &len);
740 /* Try various READ_DATA ports from 0x203-0x3ff */