[pso] tema 2 linux dev_id
Razvan Deaconescu
razvand at cs.pub.ro
Fri Apr 13 20:29:51 EEST 2007
Luis Cazacu wrote:
> In handler-ul pt intrerupere
>
> irqreturn_t my_handler(int irq_no,void *dev_id,struct pt_regs *regs)
>
> putem sa folosim dev_id in loc de serial[0] sau serial [1] ?
>
> unde serial [0] de exemplu este :
>
> err =
> request_irq(MY_IRQ1,my_handler,SA_INTERRUPT,"4uart16550",&my_serial[0]);
poti sa inregistrezi acelasi handler pentru ambele intreruperi (si
MY_IRQ1 si MY_IRQ2); spre exemplu:
request_irq(MY_IRQ1,my_handler,SA_INTERRUPT,"4uart16550",&my_serial[0]);
request_irq(MY_IRQ2,my_handler,SA_INTERRUPT,"4uart16550",&my_serial[1]);
in acest caz membrul dev_id va fi &my_serial[0] sau &my_serial[1] dupa
cum s-a transmis intreruperea MY_IRQ1 sau MY_IRQ2
> Si cum am putea afla pt ce COM este intreruperea (adresa mai exact ,
> adik 0x3f8 sau 0x2f8) (fara sa citim registrul IIR) ?
if (irq_no == MY_IRQ1) {
/* intrerupere COM1 -> base_port = 0x3f8 */
}
else {
/* intrerupere COM2 -> base_port = 0x2f8 */
}
altfel poti sa adaugi in camp in structura ta my_serial si afli cu
ajutorul dev_id ce base_port folosesti
Razvan
More information about the pso
mailing list