virtio: apply new initialization of nfc driver
authormunkyu.im <munkyu.im@samsung.com>
Thu, 25 Jul 2013 13:13:45 +0000 (22:13 +0900)
committermunkyu.im <munkyu.im@samsung.com>
Thu, 25 Jul 2013 13:13:45 +0000 (22:13 +0900)
Signed-off-by: munkyu.im <munkyu.im@samsung.com>
hw/virtio/virtio-pci.c
hw/virtio/virtio-pci.h
tizen/src/hw/maru_virtio_nfc.c
tizen/src/hw/maru_virtio_nfc.h

index d9fd427..29a8b9a 100644 (file)
@@ -1794,6 +1794,48 @@ static TypeInfo virtio_sensor_pci_info = {
     .class_init    = virtio_sensor_pci_class_init,
 };
 
+/* virtio NFC */
+
+static int virtio_nfc_pci_init(VirtIOPCIProxy *vpci_dev)
+{
+    VirtIONFCPCI *dev = VIRTIO_NFC_PCI(vpci_dev);
+    DeviceState *vdev = DEVICE(&dev->vdev);
+
+    qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+    if (qdev_init(vdev) < 0) {
+        return -1;
+    }
+    return 0;
+}
+
+static void virtio_nfc_pci_class_init(ObjectClass *klass, void *data)
+{
+    VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+    PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+    k->init = virtio_nfc_pci_init;
+    pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+    pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_NFC;
+    pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+    pcidev_k->class_id = PCI_CLASS_OTHERS;
+}
+
+static void virtio_nfc_pci_instance_init(Object *obj)
+{
+    VirtIONFCPCI *dev = VIRTIO_NFC_PCI(obj);
+    object_initialize(OBJECT(&dev->vdev), TYPE_VIRTIO_NFC);
+    object_property_add_child(obj, "virtio-backend", OBJECT(&dev->vdev), NULL);
+}
+
+static TypeInfo virtio_nfc_pci_info = {
+    .name          = TYPE_VIRTIO_NFC_PCI,
+    .parent        = TYPE_VIRTIO_PCI,
+    .instance_size = sizeof(VirtIONFCPCI),
+       .instance_init = virtio_nfc_pci_instance_init,
+    .class_init    = virtio_nfc_pci_class_init,
+};
+
+
 #endif
 
 /* virtio-pci-bus */
@@ -1859,6 +1901,7 @@ static void virtio_pci_register_types(void)
     type_register_static(&virtio_touchscreen_pci_info);
     type_register_static(&virtio_gl_pci_info);
     type_register_static(&virtio_sensor_pci_info);
+    type_register_static(&virtio_nfc_pci_info);
 #endif
 }
 
index 6c5104a..e9a6d79 100644 (file)
@@ -44,6 +44,7 @@
 #include "../tizen/src/hw/maru_virtio_touchscreen.h"
 #include "../tizen/src/hw/virtio-gl.h"
 #include "../tizen/src/hw/maru_virtio_sensor.h"
+#include "../tizen/src/hw/maru_virtio_nfc.h"
 #endif
 
 typedef struct VirtIOPCIProxy VirtIOPCIProxy;
@@ -63,6 +64,7 @@ typedef struct VirtIOESMPCI VirtIOESMPCI;
 typedef struct VirtIOHWKeyPCI VirtIOHWKeyPCI;
 typedef struct VirtIOKeyboardPCI VirtIOKeyboardPCI;
 typedef struct VirtIOSENSORPCI VirtIOSENSORPCI;
+typedef struct VirtIONFCPCI VirtIONFCPCI;
 #endif
 
 /* virtio-pci-bus */
@@ -308,6 +310,19 @@ struct VirtIOSENSORPCI {
     VirtIOPCIProxy parent_obj;
     VirtIOSENSOR vdev;
 };
+
+/*
+ * virtio-nfc-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_NFC_PCI "virtio-nfc-pci"
+#define VIRTIO_NFC_PCI(obj) \
+        OBJECT_CHECK(VirtIONFCPCI, (obj), TYPE_VIRTIO_NFC_PCI)
+
+struct VirtIONFCPCI {
+    VirtIOPCIProxy parent_obj;
+    VirtIONFC vdev;
+};
+
 #endif
 
 /* Virtio ABI version, if we increment this, we break the guest driver. */
index 059877d..9321e08 100755 (executable)
@@ -4,7 +4,7 @@
  * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
  *\r
  * Contact:\r
- *  DaiYoung Kim <munkyu.im@samsung.com>\r
+ *  Munkyu Im <munkyu.im@samsung.com>\r
  *  YeongKyoon Lee <yeongkyoon.lee@samsung.com>\r
  *\r
  * This program is free software; you can redistribute it and/or\r
@@ -85,13 +85,13 @@ static QTAILQ_HEAD(MsgInfoSendHead , MsgInfo) nfc_send_msg_queue =
 \r
 //\r
 \r
-typedef struct EvdiBuf {\r
+typedef struct NFCBuf {\r
     VirtQueueElement elem;\r
 \r
-    QTAILQ_ENTRY(EvdiBuf) next;\r
-} EvdiBuf;\r
+    QTAILQ_ENTRY(NFCBuf) next;\r
+} NFCBuf;\r
 \r
-static QTAILQ_HEAD(EvdiMsgHead , EvdiBuf) nfc_in_queue =\r
+static QTAILQ_HEAD(NFCMsgHead , NFCBuf) nfc_in_queue =\r
     QTAILQ_HEAD_INITIALIZER(nfc_in_queue);\r
 \r
 static int count = 0;\r
index 5e78400..69eb2f8 100755 (executable)
@@ -4,7 +4,7 @@
  * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
  *\r
  * Contact:\r
- *  DaiYoung Kim <munkyu.im@samsung.com>\r
+ *  Munkyu Im <munkyu.im@samsung.com>\r
  *  YeongKyoon Lee <yeongkyoon.lee@samsung.com>\r
  *\r
  * This program is free software; you can redistribute it and/or\r