Ignore:
Timestamp:
2006-10-14T19:31:03Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e3890b3f
Parents:
7dcf22a
Message:

Changes in ns16550 and z8530 drivers.
Add some stuff for IRQ notifications to irq_t.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/drivers/kbd.c

    r7dcf22a r63530c62  
    5050#include <print.h>
    5151
    52 volatile uint8_t *kbd_virt_address = NULL;
    53 
    5452kbd_type_t kbd_type = KBD_UNKNOWN;
    55 
    56 static irq_t kbd_irq;
    5753
    5854/** Initialize keyboard.
     
    10399        uintptr_t pa;
    104100        size_t size;
    105         int inr;
    106        
    107         irq_initialize(&kbd_irq);
     101        inr_t inr;
     102        devno_t devno = device_assign_devno();
    108103       
    109104        switch (kbd_type) {
     
    117112                        printf("Failed to determine keyboard interrupt.\n");
    118113                        return;
    119                 } else {
    120                         kbd_irq.inr = inr;
    121                         kbd_irq.devno = device_assign_devno();
    122                         kbd_irq.trigger = IRQ_TRIGGER_LEVEL;
    123                         kbd_irq.claim = z8530_claim;
    124                         kbd_irq.handler = z8530_irq_handler;
    125                         irq_register(&kbd_irq);
    126114                }
    127115                break;
     
    136124                        printf("Failed to determine keyboard interrupt.\n");
    137125                        return;
    138                 } else {
    139                         kbd_irq.inr = inr;
    140                         kbd_irq.devno = device_assign_devno();
    141                         kbd_irq.trigger = IRQ_TRIGGER_LEVEL;
    142                         kbd_irq.claim = ns16550_claim;
    143                         kbd_irq.handler = ns16550_irq_handler;
    144                         irq_register(&kbd_irq);
    145                 }
     126                };
    146127                break;
    147128
     
    158139        aligned_addr = ALIGN_DOWN(pa, PAGE_SIZE);
    159140        offset = pa - aligned_addr;
    160         kbd_virt_address = (uint8_t *) hw_map(aligned_addr, offset + size) + offset;
     141        uintptr_t vaddr = hw_map(aligned_addr, offset + size) + offset;
    161142
    162143        switch (kbd_type) {
    163144#ifdef CONFIG_Z8530
    164145        case KBD_Z8530:
    165                 z8530_init();
     146                z8530_init(devno, inr, vaddr);
    166147                break;
    167148#endif
    168149#ifdef CONFIG_NS16550
    169150        case KBD_NS16550:
    170                 ns16550_init();
     151                ns16550_init(devno, inr, vaddr);
    171152                break;
    172153#endif
Note: See TracChangeset for help on using the changeset viewer.