Lines Matching refs:rule
22 unsigned char rule, in pnp_find_resource() argument
31 res->flags |= rule & IORESOURCE_BITS; in pnp_find_resource()
37 static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) in pnp_assign_port() argument
41 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IO, idx); in pnp_assign_port()
50 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_port()
54 if (!rule->size) { in pnp_assign_port()
60 res->start = rule->min; in pnp_assign_port()
61 res->end = res->start + rule->size - 1; in pnp_assign_port()
64 res->start += rule->align; in pnp_assign_port()
65 res->end = res->start + rule->size - 1; in pnp_assign_port()
66 if (res->start > rule->max || !rule->align) { in pnp_assign_port()
69 (unsigned long long) rule->min, in pnp_assign_port()
70 (unsigned long long) rule->max); in pnp_assign_port()
80 static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) in pnp_assign_mem() argument
84 res = pnp_find_resource(dev, rule->flags, IORESOURCE_MEM, idx); in pnp_assign_mem()
93 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_mem()
98 if (!(rule->flags & IORESOURCE_MEM_WRITEABLE)) in pnp_assign_mem()
100 if (rule->flags & IORESOURCE_MEM_RANGELENGTH) in pnp_assign_mem()
102 if (rule->flags & IORESOURCE_MEM_SHADOWABLE) in pnp_assign_mem()
105 if (!rule->size) { in pnp_assign_mem()
111 res->start = rule->min; in pnp_assign_mem()
112 res->end = res->start + rule->size - 1; in pnp_assign_mem()
115 res->start += rule->align; in pnp_assign_mem()
116 res->end = res->start + rule->size - 1; in pnp_assign_mem()
117 if (res->start > rule->max || !rule->align) { in pnp_assign_mem()
120 (unsigned long long) rule->min, in pnp_assign_mem()
121 (unsigned long long) rule->max); in pnp_assign_mem()
131 static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) in pnp_assign_irq() argument
141 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IRQ, idx); in pnp_assign_irq()
149 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_irq()
153 if (bitmap_empty(rule->map.bits, PNP_IRQ_NR)) { in pnp_assign_irq()
160 res->start = find_next_bit(rule->map.bits, PNP_IRQ_NR, 16); in pnp_assign_irq()
166 if (test_bit(xtab[i], rule->map.bits)) { in pnp_assign_irq()
173 if (rule->flags & IORESOURCE_IRQ_OPTIONAL) { in pnp_assign_irq()
190 static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) in pnp_assign_dma() argument
200 res = pnp_find_resource(dev, rule->flags, IORESOURCE_DMA, idx); in pnp_assign_dma()
208 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_dma()
212 if (!rule->map) { in pnp_assign_dma()
219 if (rule->map & (1 << xtab[i])) { in pnp_assign_dma()