lkml.org 
[lkml]   [1999]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Interrupts not being raised.
Date
From

OK, it gets an interrupt when I manually generate it with asm("int $42");

Applicom driver: $Id: ac.c,v 1.6 1999/02/05 16:11:55 dwmw2 Exp $
Applicom PCI board found at mem 0xf4101800, irq 10
Applicom interrupt on IRQ 10 occurred
APPLICOM 0xF4101800 - 1 card(s) installed driver V2.8.0

Should I then assume that they're lying to me, and there _is_ some magic
incantation to get their board to generate IRQs, or is there something in the
PCI setup that I (and Greg) might have missed?

philb@gnu.org said:
> Check that your card doesn't think it's in CardBus mode or anything
> of that sort.

Is this something I can do with the generic PCI handling code? I don't have
much of a spec for the card. The ISA card works OK, and I was told that the
PCI one should be identical.

As you can see, I've tried a few strange things with PCI, in case it helped...

for (i=1; i<= MAX_PCI_DEVICE_NUM && !dev; i++)
{
dev = pci_find_device(PCI_VENDOR_ID_APPLICOM,
i,
NULL);
}

if (dev)
{
/* unsigned short pcicmd; */
/* if (pci_read_config_word(dev, PCI_COMMAND, &pcicmd)) { */
/* printk("ac.o: error accessing PCI regs\n"); */
/* } */
/* else */
/* { */
/* printk("Setting IO capability and mastering\n"); */
/* pci_write_config_word(dev, PCI_COMMAND, pcicmd | PCI_COMMAND_I
O); */
/* pci_set_master(dev); */
/* } */

mem = dev->base_address[0];
irq = dev->irq;
printk(KERN_INFO "Applicom %s found at mem 0x%lx, irq %d\n",applic
om_pci_devnames[dev->device-1], mem, irq);
}
// else return ENODEV;

RamIO = (unsigned char *)ioremap(mem, LEN_RAM_IO * MAX_BOARD );

if (request_irq(irq, &ac_interrupt, SA_SHIRQ, "Applicom", &ac_open))
{
printk("Could not allocate IRQ %d for Applicom device. Exiting.\
n", irq);
iounmap((void *)RamIO);
return -ENXIO;
}

asm volatile ("int $42"); // raise IRQ10




---------------


How are interrupts handled on Intel UP machines? I always assumed that there
was a single 'IRQ' line to the CPU, and the handler for that interrogated the
PIC to find out which interrupt was raised. I can't find that code in the
kernel though - it seems as if PIC interrupts are generating INT 0x20-0x2f
directly. What am I missing?



---- ---- ----
David Woodhouse David.Woodhouse@mvhi.com Office: (+44) 1223 810302
Project Leader, Process Information Systems Mobile: (+44) 976 658355
Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.038 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site