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_CACHEABLE) in pnp_assign_mem()
102 if (rule->flags & IORESOURCE_MEM_RANGELENGTH) in pnp_assign_mem()
104 if (rule->flags & IORESOURCE_MEM_SHADOWABLE) in pnp_assign_mem()
107 if (!rule->size) { in pnp_assign_mem()
113 res->start = rule->min; in pnp_assign_mem()
114 res->end = res->start + rule->size - 1; in pnp_assign_mem()
117 res->start += rule->align; in pnp_assign_mem()
118 res->end = res->start + rule->size - 1; in pnp_assign_mem()
119 if (res->start > rule->max || !rule->align) { in pnp_assign_mem()
122 (unsigned long long) rule->min, in pnp_assign_mem()
123 (unsigned long long) rule->max); in pnp_assign_mem()
133 static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) in pnp_assign_irq() argument
143 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IRQ, idx); in pnp_assign_irq()
151 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_irq()
155 if (bitmap_empty(rule->map.bits, PNP_IRQ_NR)) { in pnp_assign_irq()
162 res->start = find_next_bit(rule->map.bits, PNP_IRQ_NR, 16); in pnp_assign_irq()
168 if (test_bit(xtab[i], rule->map.bits)) { in pnp_assign_irq()
175 if (rule->flags & IORESOURCE_IRQ_OPTIONAL) { in pnp_assign_irq()
192 static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) in pnp_assign_dma() argument
202 res = pnp_find_resource(dev, rule->flags, IORESOURCE_DMA, idx); in pnp_assign_dma()
210 res->flags = rule->flags | IORESOURCE_AUTO; in pnp_assign_dma()
214 if (!rule->map) { in pnp_assign_dma()
221 if (rule->map & (1 << xtab[i])) { in pnp_assign_dma()