Lines Matching +full:irq +full:- +full:device
1 // SPDX-License-Identifier: GPL-2.0
21 #include <asm/irq.h>
34 static unsigned long cached_irq_mask[2] = { -1, -1 };
37 takara_update_irq_hw(unsigned long irq, unsigned long mask) in takara_update_irq_hw() argument
41 mask = (irq >= 64 ? mask << 16 : mask >> ((irq - 16) & 0x30)); in takara_update_irq_hw()
42 regaddr = 0x510 + (((irq - 16) >> 2) & 0x0c); in takara_update_irq_hw()
49 unsigned int irq = d->irq; in takara_enable_irq() local
51 mask = (cached_irq_mask[irq >= 64] &= ~(1UL << (irq & 63))); in takara_enable_irq()
52 takara_update_irq_hw(irq, mask); in takara_enable_irq()
58 unsigned int irq = d->irq; in takara_disable_irq() local
60 mask = (cached_irq_mask[irq >= 64] |= 1UL << (irq & 63)); in takara_disable_irq()
61 takara_update_irq_hw(irq, mask); in takara_disable_irq()
111 int irq = (vector - 0x800) >> 4; in takara_srm_device_interrupt() local
112 handle_irq(irq); in takara_srm_device_interrupt()
127 /* Return to non-accelerated mode. */ in takara_init_irq()
137 takara_update_irq_hw(i, -1); in takara_init_irq()
154 * doesn't explicitly generate PCI-type interrupts, so we can
155 * assign it whatever the hell IRQ we like and it doesn't matter.
162 { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 6 == device 3 */ in takara_map_irq_srm()
163 { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 7 == device 2 */ in takara_map_irq_srm()
164 { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 8 == device 1 */ in takara_map_irq_srm()
165 { -1, -1, -1, -1, -1}, /* slot 9 == nothing */ in takara_map_irq_srm()
166 { -1, -1, -1, -1, -1}, /* slot 10 == nothing */ in takara_map_irq_srm()
167 { -1, -1, -1, -1, -1}, /* slot 11 == nothing */ in takara_map_irq_srm()
173 { -1, -1, -1, -1, -1}, /* slot 16 == nothing */ in takara_map_irq_srm()
174 {64+ 0, 64+0, 64+1, 64+2, 64+3}, /* slot 17= device 4 */ in takara_map_irq_srm()
175 {48+ 0, 48+0, 48+1, 48+2, 48+3}, /* slot 18= device 3 */ in takara_map_irq_srm()
176 {32+ 0, 32+0, 32+1, 32+2, 32+3}, /* slot 19= device 2 */ in takara_map_irq_srm()
177 {16+ 0, 16+0, 16+1, 16+2, 16+3}, /* slot 20= device 1 */ in takara_map_irq_srm()
180 int irq = COMMON_TABLE_LOOKUP; in takara_map_irq_srm() local
181 if (irq >= 0 && irq < 16) { in takara_map_irq_srm()
183 unsigned int busslot = PCI_SLOT(dev->bus->self->devfn); in takara_map_irq_srm()
184 irq += irq_tab[busslot-min_idsel][0]; in takara_map_irq_srm()
186 return irq; in takara_map_irq_srm()
193 { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 6 == device 3 */ in takara_map_irq()
194 { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 7 == device 2 */ in takara_map_irq()
195 { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 8 == device 1 */ in takara_map_irq()
196 { -1, -1, -1, -1, -1}, /* slot 9 == nothing */ in takara_map_irq()
197 { -1, -1, -1, -1, -1}, /* slot 10 == nothing */ in takara_map_irq()
198 { -1, -1, -1, -1, -1}, /* slot 11 == nothing */ in takara_map_irq()
199 { -1, -1, -1, -1, -1}, /* slot 12 == nothing */ in takara_map_irq()
200 { -1, -1, -1, -1, -1}, /* slot 13 == nothing */ in takara_map_irq()
201 { -1, -1, -1, -1, -1}, /* slot 14 == nothing */ in takara_map_irq()
202 { -1, -1, -1, -1, -1}, /* slot 15 == nothing */ in takara_map_irq()
203 { -1, -1, -1, -1, -1}, /* slot 16 == nothing */ in takara_map_irq()
204 { -1, -1, -1, -1, -1}, /* slot 17 == nothing */ in takara_map_irq()
205 { 16+3, 16+3, 16+3, 16+3, 16+3}, /* slot 18 == device 3 */ in takara_map_irq()
206 { 16+2, 16+2, 16+2, 16+2, 16+2}, /* slot 19 == device 2 */ in takara_map_irq()
207 { 16+1, 16+1, 16+1, 16+1, 16+1}, /* slot 20 == device 1 */ in takara_map_irq()
216 int slot = PCI_SLOT(dev->devfn); in takara_swizzle()
221 if (!dev->bus->self) in takara_swizzle()
224 busslot = PCI_SLOT(dev->bus->self->devfn); in takara_swizzle()
225 /* Check for built-in bridges. */ in takara_swizzle()
226 if (dev->bus->number != 0 in takara_swizzle()
228 && ((1<<(36-busslot)) & ctlreg)) { in takara_swizzle()
230 pin += (20 - busslot); in takara_swizzle()
233 "handle cards with INTA IRQ pin.\n"); in takara_swizzle()
236 /* Must be a card-based bridge. */ in takara_swizzle()
238 "card-bridge behind builtin bridge yet.\n"); in takara_swizzle()
253 if (pc873xx_probe() == -1) { in takara_init_pci()