Changeset f817d3a in mainline for kernel/arch/ppc32/src/drivers/cuda.c


Ignore:
Timestamp:
2009-01-29T17:24:35Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
43d6401
Parents:
26c67a8
Message:

use macio optionally

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/src/drivers/cuda.c

    r26c67a8 rf817d3a  
    237237int cuda_get_scancode(void)
    238238{
    239         uint8_t kind;
    240         uint8_t data[4];
    241        
    242         receive_packet(&kind, 4, data);
    243        
    244         if ((kind == PACKET_ADB) && (data[0] == 0x40) && (data[1] == 0x2c))
    245                 return data[2];
     239        if (cuda) {
     240                uint8_t kind;
     241                uint8_t data[4];
     242               
     243                receive_packet(&kind, 4, data);
     244               
     245                if ((kind == PACKET_ADB) && (data[0] == 0x40) && (data[1] == 0x2c))
     246                        return data[2];
     247        }
    246248       
    247249        return -1;
     
    272274void cuda_grab(void)
    273275{
    274         ipl_t ipl = interrupts_disable();
    275         spinlock_lock(&cuda_irq.lock);
    276         cuda_irq.notif_cfg.notify = false;
    277         spinlock_unlock(&cuda_irq.lock);
    278         interrupts_restore(ipl);
     276        if (cuda) {
     277                ipl_t ipl = interrupts_disable();
     278                spinlock_lock(&cuda_irq.lock);
     279                cuda_irq.notif_cfg.notify = false;
     280                spinlock_unlock(&cuda_irq.lock);
     281                interrupts_restore(ipl);
     282        }
    279283}
    280284
     
    283287void cuda_release(void)
    284288{
    285         ipl_t ipl = interrupts_disable();
    286         spinlock_lock(&cuda_irq.lock);
    287         if (cuda_irq.notif_cfg.answerbox)
    288                 cuda_irq.notif_cfg.notify = true;
    289         spinlock_unlock(&cuda_irq.unlock);
    290         interrupts_restore(ipl);
     289        if (cuda) {
     290                ipl_t ipl = interrupts_disable();
     291                spinlock_lock(&cuda_irq.lock);
     292                if (cuda_irq.notif_cfg.answerbox)
     293                        cuda_irq.notif_cfg.notify = true;
     294                spinlock_unlock(&cuda_irq.unlock);
     295                interrupts_restore(ipl);
     296        }
    291297}
    292298
     
    294300void cuda_init(devno_t devno, uintptr_t base, size_t size)
    295301{
    296         cuda = (uint8_t *) hw_map(base, size); 
     302        cuda = (uint8_t *) hw_map(base, size);
    297303       
    298304        chardev_initialize("cuda_kbd", &kbrd, &ops);
     
    307313       
    308314        pic_enable_interrupt(CUDA_IRQ);
    309 
     315       
    310316        sysinfo_set_item_val("kbd", NULL, true);
    311317        sysinfo_set_item_val("kbd.devno", NULL, devno);
     
    346352
    347353void arch_reboot(void) {
    348         send_packet(PACKET_CUDA, 1, CUDA_RESET);
     354        if (cuda)
     355                send_packet(PACKET_CUDA, 1, CUDA_RESET);
     356       
    349357        asm volatile (
    350358                "b 0\n"
Note: See TracChangeset for help on using the changeset viewer.