[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] keyboard



hi,

I added this keyboard interrupt handler in the linux/drivers/char.

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tqueue.h>
#include <linux/init.h>
#include <linux/kbd_kern.h>
#include <asm/irq.h>
#include <asm/io.h>

#ifdef CONFIG_MICROBLAZE
#include <asm/mbvanilla.h>
#include <asm/microblaze_gpio.h>
#include <asm/xparameters.h>
#endif

static void got_char(unsigned long *scancode)
{
        enable_irq(4);
        printk("Scan Code %x %s.\n",
            (int) *((char *) scancode) & 0x7F,
              *((char *) scancode) & 0x80 ? "Released" : "Pressed");
}
EXPORT_SYMBOL(keyboard_tasklet);
DECLARE_TASKLET_DISABLED(keyboard_tasklet,got_char,0);

void ps2irq_handler(int irq, void *dev_id, struct pt_regs *regs)
{

   static unsigned char scancode;
   unsigned char status;

   microblaze_gpio_write(MICROBLAZE_GPIO_BASE_ADDR,0x06);
   microblaze_gpio_write(MICROBLAZE_GPIO_BASE_ADDR,0x00);
   microblaze_gpio_write(MICROBLAZE_GPIO_BASE_ADDR,0x06);
   
   /* Read keyboard status */
   status = inb(XPAR_MY_PS2_BASEADDR+0x08);
   scancode = inb(XPAR_MY_PS2_BASEADDR+0x00);
    printk("%x",scancode); 
}
int __init ps2kbd_init(void)
{
        int irq;
        irq = request_irq (4, ps2irq_handler, SA_INTERRUPT, "keyboard", NULL);
        if (irq)
               printk("Keyboard irq not registered.  Error: %d\n", irq);
        printk("keyboard initialised on IRQ 4 successfully\n");
        tasklet_enable(&keyboard_tasklet);
        tasklet_schedule(&keyboard_tasklet);
        return 0;
}

while booting I am getting
enable_irq(4) unbalanced from 801202d08
keyboard initialised on IRQ 4 successfully
Scancode 38 released.

ps2irq_handler is not getting executed when I enable the irq.why did it shows unbalanced from a particular address.Any idea.



Regards
Devi




___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/