Lines Matching refs:rule
23 unsigned char rule,
29 /* when the resource already exists, set its resource bits from rule */
32 res->flags |= rule & IORESOURCE_BITS;
38 static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx)
42 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IO, idx);
51 res->flags = rule->flags | IORESOURCE_AUTO;
55 if (!rule->size) {
61 res->start = rule->min;
62 res->end = res->start + rule->size - 1;
65 res->start += rule->align;
66 res->end = res->start + rule->size - 1;
67 if (res->start > rule->max || !rule->align) {
70 (unsigned long long) rule->min,
71 (unsigned long long) rule->max);
81 static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx)
85 res = pnp_find_resource(dev, rule->flags, IORESOURCE_MEM, idx);
94 res->flags = rule->flags | IORESOURCE_AUTO;
98 /* ??? rule->flags restricted to 8 bits, all tests bogus ??? */
99 if (!(rule->flags & IORESOURCE_MEM_WRITEABLE))
101 if (rule->flags & IORESOURCE_MEM_RANGELENGTH)
103 if (rule->flags & IORESOURCE_MEM_SHADOWABLE)
106 if (!rule->size) {
112 res->start = rule->min;
113 res->end = res->start + rule->size - 1;
116 res->start += rule->align;
117 res->end = res->start + rule->size - 1;
118 if (res->start > rule->max || !rule->align) {
121 (unsigned long long) rule->min,
122 (unsigned long long) rule->max);
132 static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
142 res = pnp_find_resource(dev, rule->flags, IORESOURCE_IRQ, idx);
150 res->flags = rule->flags | IORESOURCE_AUTO;
154 if (bitmap_empty(rule->map.bits, PNP_IRQ_NR)) {
161 res->start = find_next_bit(rule->map.bits, PNP_IRQ_NR, 16);
167 if (test_bit(xtab[i], rule->map.bits)) {
174 if (rule->flags & IORESOURCE_IRQ_OPTIONAL) {
191 static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx)
201 res = pnp_find_resource(dev, rule->flags, IORESOURCE_DMA, idx);
209 res->flags = rule->flags | IORESOURCE_AUTO;
213 if (!rule->map) {
220 if (rule->map & (1 << xtab[i])) {