Ignore:
Timestamp:
2008-12-17T16:24:02Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8231246
Parents:
04de765
Message:

do not waist resources if no keyboard driver is used

File:
1 edited

Legend:

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

    r04de765 r64c7e14  
    8787        uint32_t interrupts;
    8888        prop = ofw_tree_getprop(node, "interrupts");
    89         if (!prop || !prop->value)
     89        if ((!prop) || (!prop->value))
    9090                panic("Can't find \"interrupts\" property.\n");
    9191        interrupts = *((uint32_t *) prop->value);
    92 
     92       
    9393        /*
    9494         * Read 'reg' property.
    9595         */
    9696        prop = ofw_tree_getprop(node, "reg");
    97         if (!prop || !prop->value)
     97        if ((!prop) || (!prop->value))
    9898                panic("Can't find \"reg\" property.\n");
    9999       
     
    101101        size_t size;
    102102        inr_t inr;
    103         devno_t devno = device_assign_devno();
    104103       
    105104        switch (kbd_type) {
     
    133132                };
    134133                break;
    135 
     134               
    136135        default:
    137                 panic("Unexpected type.\n");
     136                panic("Unexpected keyboard type.\n");
    138137        }
    139138       
     
    146145        aligned_addr = ALIGN_DOWN(pa, PAGE_SIZE);
    147146        offset = pa - aligned_addr;
    148         uintptr_t vaddr = hw_map(aligned_addr, offset + size) + offset;
    149 
     147       
    150148        switch (kbd_type) {
    151149#ifdef CONFIG_Z8530
    152150        case KBD_Z8530:
    153                 z8530_init(devno, vaddr, inr, cir, cir_arg);
     151                z8530_init(device_assign_devno(),
     152                    hw_map(aligned_addr, offset + size) + offset, inr, cir, cir_arg);
    154153                break;
    155154#endif
    156155#ifdef CONFIG_NS16550
    157156        case KBD_NS16550:
    158                 ns16550_init(devno, (ioport_t)vaddr, inr, cir, cir_arg);
     157                ns16550_init(device_assign_devno(),
     158                    (ioport_t) (hw_map(aligned_addr, offset + size) + offset), inr, cir, cir_arg);
    159159                break;
    160160#endif
Note: See TracChangeset for help on using the changeset viewer.