Lines Matching +full:0 +full:x21
45 #if 0
51 #define SNAKES_EEPROM_BASE_ADDR 0xF0810400
52 #define MIRAGE_EEPROM_BASE_ADDR 0xF00C0400
71 if (port & 0x300) { in eisa_permute()
72 return 0xfc000000 | ((port & 0xfc00) >> 6) in eisa_permute()
73 | ((port & 0x3f8) << 9) | (port & 7); in eisa_permute()
75 return 0xfc000000 | port; in eisa_permute()
83 return 0xff; in eisa_in8()
90 return 0xffff; in eisa_in16()
97 return 0xffffffff; in eisa_in32()
139 /* irq 13,8,2,1,0 must be edge */
154 eisa_out8(slave_mask, 0xa1); in eisa_mask_irq()
157 eisa_out8(master_mask, 0x21); in eisa_mask_irq()
160 EISA_DBG("pic0 mask %02x\n", eisa_in8(0x21)); in eisa_mask_irq()
161 EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); in eisa_mask_irq()
174 eisa_out8(slave_mask, 0xa1); in eisa_unmask_irq()
177 eisa_out8(master_mask, 0x21); in eisa_unmask_irq()
180 EISA_DBG("pic0 mask %02x\n", eisa_in8(0x21)); in eisa_unmask_irq()
181 EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); in eisa_unmask_irq()
192 int irq = gsc_readb(0xfc01f000); /* EISA supports 16 irqs */ in eisa_irq()
197 eisa_out8(0x0a, 0x20); in eisa_irq()
198 eisa_out8(0x0a, 0xa0); in eisa_irq()
201 irq, eisa_in8(0x20), eisa_in8(0xa0)); in eisa_irq()
204 eisa_out8(0x0a, 0x20); in eisa_irq()
205 eisa_out8(0x0a, 0xa0); in eisa_irq()
207 eisa_in8(0x20), eisa_in8(0x21), eisa_in8(0xa0), eisa_in8(0xa1)); in eisa_irq()
209 irq &= 0xf; in eisa_irq()
214 eisa_out8(slave_mask, 0xa1); in eisa_irq()
215 eisa_out8(0x60 | (irq&7),0xa0);/* 'Specific EOI' to slave */ in eisa_irq()
216 eisa_out8(0x62, 0x20); /* 'Specific EOI' to master-IRQ2 */ in eisa_irq()
220 eisa_out8(master_mask, 0x21); in eisa_irq()
221 eisa_out8(0x60|irq, 0x20); /* 'Specific EOI' to master */ in eisa_irq()
231 eisa_out8(slave_mask, 0xa1); in eisa_irq()
234 eisa_out8(master_mask, 0x21); in eisa_irq()
252 eisa_out8(0xff, 0x21); /* mask during init */ in init_eisa_pic()
253 eisa_out8(0xff, 0xa1); /* mask during init */ in init_eisa_pic()
256 eisa_out8(0x11, 0x20); /* ICW1 */ in init_eisa_pic()
257 eisa_out8(0x00, 0x21); /* ICW2 */ in init_eisa_pic()
258 eisa_out8(0x04, 0x21); /* ICW3 */ in init_eisa_pic()
259 eisa_out8(0x01, 0x21); /* ICW4 */ in init_eisa_pic()
260 eisa_out8(0x40, 0x20); /* OCW2 */ in init_eisa_pic()
263 eisa_out8(0x11, 0xa0); /* ICW1 */ in init_eisa_pic()
264 eisa_out8(0x08, 0xa1); /* ICW2 */ in init_eisa_pic()
265 eisa_out8(0x02, 0xa1); /* ICW3 */ in init_eisa_pic()
266 eisa_out8(0x01, 0xa1); /* ICW4 */ in init_eisa_pic()
267 eisa_out8(0x40, 0xa0); /* OCW2 */ in init_eisa_pic()
271 slave_mask = 0xff; in init_eisa_pic()
272 master_mask = 0xfb; in init_eisa_pic()
273 eisa_out8(slave_mask, 0xa1); /* OCW1 */ in init_eisa_pic()
274 eisa_out8(master_mask, 0x21); /* OCW1 */ in init_eisa_pic()
279 eisa_out8(eisa_irq_level&0xff, 0x4d0); /* Set all irq's to edge */ in init_eisa_pic()
280 eisa_out8((eisa_irq_level >> 8) & 0xff, 0x4d1); in init_eisa_pic()
282 EISA_DBG("pic0 mask %02x\n", eisa_in8(0x21)); in init_eisa_pic()
283 EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); in init_eisa_pic()
284 EISA_DBG("pic0 edge/level %02x\n", eisa_in8(0x4d0)); in init_eisa_pic()
285 EISA_DBG("pic1 edge/level %02x\n", eisa_in8(0x4d1)); in init_eisa_pic()
292 #define is_mongoose(dev) (dev->id.sversion == 0x00076)
300 printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n", in eisa_probe()
307 eisa_dev.hba.lmmio_space.start = F_EXTEND(0xfc000000); in eisa_probe()
308 eisa_dev.hba.lmmio_space.end = F_EXTEND(0xffbfffff); in eisa_probe()
311 if (result < 0) { in eisa_probe()
316 eisa_dev.hba.io_space.start = 0; in eisa_probe()
317 eisa_dev.hba.io_space.end = 0xffff; in eisa_probe()
320 if (result < 0) { in eisa_probe()
333 if (request_irq(2, dummy_irq2_handler, 0, "cascade", NULL)) in eisa_probe()
335 for (i = 0; i < 16; i++) { in eisa_probe()
344 eisa_dev.eeprom_addr = dev->addr[0]; in eisa_probe()
363 if (result >= 0) { in eisa_probe()
367 eisa_dev.root.bus_base_addr = 0; in eisa_probe()
370 eisa_dev.root.dma_mask = 0xffffffff; /* wild guess */ in eisa_probe()
378 return 0; in eisa_probe()
390 { HPHW_BA, HVERSION_REV_ANY_ID, HVERSION_ANY_ID, 0x00076 }, /* Mongoose */
391 { HPHW_BA, HVERSION_REV_ANY_ID, HVERSION_ANY_ID, 0x00090 }, /* Wax EISA */
392 { 0, }
442 val = (int) simple_strtoul(cur, &pe, 0); in eisa_irq_setup()
443 if (val > 15 || val < 0) { in eisa_irq_setup()
444 printk(KERN_ERR "eisa: EISA irq value are 0-15\n"); in eisa_irq_setup()