From: sungmin ha Date: Tue, 14 May 2013 07:37:51 +0000 (+0900) Subject: virtio-keyboard: modified process of using virtio keyboard queue X-Git-Tag: 2.2.1_release^2~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ac050bbd3913d3e2a49883b5ccdc014c9a6bbfe;p=sdk%2Femulator%2Femulator-kernel.git virtio-keyboard: modified process of using virtio keyboard queue Signed-off-by: Sungmin Ha --- diff --git a/drivers/maru/maru_virtio_keyboard.c b/drivers/maru/maru_virtio_keyboard.c index a8e4fbf746ba..b1f8e256f3da 100644 --- a/drivers/maru/maru_virtio_keyboard.c +++ b/drivers/maru/maru_virtio_keyboard.c @@ -48,6 +48,7 @@ MODULE_DESCRIPTION("Emulator Virtio Keyboard Driver"); printk(log_level "%s: " fmt, DRIVER_NAME, ##__VA_ARGS__) #define KBD_BUF_SIZE 100 +static int vqidx = 0; struct EmulKbdEvent { @@ -77,7 +78,6 @@ static struct virtio_device_id id_table[] = { static void vq_keyboard_handle(struct virtqueue *vq) { int err = 0, len = 0; - int index = 0; void *data; struct EmulKbdEvent kbdevent; @@ -88,13 +88,10 @@ static void vq_keyboard_handle(struct virtqueue *vq) return; } - while (index < KBD_BUF_SIZE) { - memcpy(&kbdevent, &vkbd->kbdevt[index], sizeof(kbdevent)); - printk(KERN_ERR "from qemu code = %d, value = %d\n", kbdevent.code, kbdevent.value); - + while (1) { + memcpy(&kbdevent, &vkbd->kbdevt[vqidx], sizeof(kbdevent)); #if 1 if (kbdevent.code == 0) { - index++; break; } #endif @@ -102,10 +99,12 @@ static void vq_keyboard_handle(struct virtqueue *vq) input_event(vkbd->idev, EV_KEY, kbdevent.code, kbdevent.value); input_sync(vkbd->idev); printk(KERN_ERR "input_event code = %d, value = %d\n", kbdevent.code, kbdevent.value); - memset(&vkbd->kbdevt[index], 0x00, sizeof(kbdevent)); - index++; + memset(&vkbd->kbdevt[vqidx], 0x00, sizeof(kbdevent)); + vqidx++; + if (vqidx == KBD_BUF_SIZE) { + vqidx = 0; + } } - err = virtqueue_add_buf (vq, vkbd->sg, 0, KBD_BUF_SIZE, (void *)KBD_BUF_SIZE, GFP_ATOMIC); if (err < 0) { VKBD_LOG(KERN_ERR, "failed to add buffer to virtqueue.\n"); diff --git a/package/changelog b/package/changelog index 55aa5ebc6df6..8d2cd5b1be8e 100644 --- a/package/changelog +++ b/package/changelog @@ -1,3 +1,6 @@ +* 1.4.19 +- modified process of using virtio keyboard queue +== Sungmin Ha 2013-05-14 * 1.4.18 - increased virtio keyboard queue == Sungmin Ha 2013-04-06 diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index 0dde5514800d..901587676425 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -1,4 +1,4 @@ -Version: 1.4.18 +Version: 1.4.19 Maintainer: Yeong-Kyoon, Lee Source: emulator-kernel