sync with latest tizen_2.1
authorsungmin ha <sungmin82.ha@samsung.com>
Tue, 14 May 2013 08:51:26 +0000 (17:51 +0900)
committersungmin ha <sungmin82.ha@samsung.com>
Tue, 14 May 2013 08:51:26 +0000 (17:51 +0900)
drivers/maru/maru_virtio_keyboard.c
package/changelog
package/pkginfo.manifest

index a8e4fbf746ba576aab6741cf6d28f4cc2e4ab0ed..b1f8e256f3da1a2e46184b58bea5a292a96dd58c 100644 (file)
@@ -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");
index 55aa5ebc6df6230a84c43726e03bd3ad27459993..8d2cd5b1be8e6bbfd1bca7cb0358b27a470e8110 100644 (file)
@@ -1,3 +1,6 @@
+* 1.4.19
+- modified process of using virtio keyboard queue
+== Sungmin Ha <sungmin82.ha@samsung.com> 2013-05-14
 * 1.4.18
 - increased virtio keyboard queue
 == Sungmin Ha <sungmin82.ha@samsung.com> 2013-04-06
index 0dde5514800d395946d00042ff7b9529be90e098..901587676425a9867bc468a36a2020f191d479ce 100644 (file)
@@ -1,4 +1,4 @@
-Version: 1.4.18
+Version: 1.4.19
 Maintainer: Yeong-Kyoon, Lee <yeongkyoon.lee@samsung.com>
 Source: emulator-kernel