host-keyboard: added reset function 82/13282/2
authorsungmin ha <sungmin82.ha@samsung.com>
Tue, 3 Dec 2013 02:23:16 +0000 (11:23 +0900)
committersungmin ha <sungmin82.ha@samsung.com>
Tue, 3 Dec 2013 03:13:40 +0000 (12:13 +0900)
initialize index in the virtioqueue when reset state

Change-Id: I4c5a312ea0ec90c1fa7e1764b491af28db96a73f
Signed-off-by: sungmin ha <sungmin82.ha@samsung.com>
package/changelog
package/pkginfo.manifest
tizen/src/hw/maru_virtio_hwkey.c
tizen/src/hw/maru_virtio_keyboard.c

index 7c6bcba..898f854 100644 (file)
@@ -1,3 +1,7 @@
+* 1.7.2
+- added reset function for host keyboard
+- deleted blank in maru_virtio_hwkey.c
+== Sungmin Ha <sungmin82.ha@samsung.com> 2013-12-03
 * 1.7.1
 - method for initial scale factor value determining
 == GiWoong Kim <giwoong.kim@samsung.com> 2013-11-26
index 0cec2f7..394e37a 100644 (file)
@@ -1,4 +1,4 @@
-Version: 1.7.1
+Version: 1.7.2
 Maintainer: Yeong-Kyoon Lee<yeongkyoon.lee@samsung.com>
 Source: emulator
 
index 421c1e5..907f28f 100644 (file)
@@ -233,8 +233,8 @@ static int virtio_hwkey_device_exit(DeviceState *qdev)
 
 static void virtio_hwkey_device_reset(VirtIODevice *vdev)
 {
-       INFO("reset hwkey device\n");
-       vqidx = 0;
+    INFO("reset hwkey device\n");
+    vqidx = 0;
 }
 
 static void virtio_hwkey_class_init(ObjectClass *klass, void *data)
@@ -243,7 +243,7 @@ static void virtio_hwkey_class_init(ObjectClass *klass, void *data)
     VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
     dc->exit = virtio_hwkey_device_exit;
     vdc->init = virtio_hwkey_device_init;
-       vdc->reset = virtio_hwkey_device_reset;
+    vdc->reset = virtio_hwkey_device_reset;
     vdc->get_features = virtio_hwkey_get_features;
 }
 
index 5e77a65..3e2bc3b 100644 (file)
@@ -121,6 +121,11 @@ static void virtio_keyboard_event(void *opaque, int keycode)
         return;
     }
 
+    if (!virtio_queue_ready(vkbd->vq)) {
+        INFO("virtqueue is not ready.\n");
+        return;
+    }
+
     index = &(vkbd->kbdqueue.index);
     TRACE("[Enter] input_event handler. cnt %d\n", vkbd->kbdqueue.wptr);
 
@@ -269,12 +274,23 @@ static int virtio_keyboard_device_exit(DeviceState *qdev)
     return 0;
 }
 
+static void virtio_keyboard_device_reset(VirtIODevice *vdev)
+{
+    VirtIOKeyboard *vkbd;
+    vkbd = VIRTIO_KEYBOARD(vdev);
+
+    INFO("reset keyboard device\n");
+    vkbd->kbdqueue.rptr = 0;
+    vkbd->kbdqueue.index = 0;
+}
+
 static void virtio_keyboard_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
     VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
     dc->exit = virtio_keyboard_device_exit;
     vdc->init = virtio_keyboard_device_init;
+    vdc->reset = virtio_keyboard_device_reset;
     vdc->get_features = virtio_keyboard_get_features;
 }