From d798c43cad86e1b3caba46c742cb6edd5fc8ac03 Mon Sep 17 00:00:00 2001 From: Jo Jinhyung Date: Fri, 9 Dec 2011 16:20:22 +0900 Subject: [PATCH] [Title] bug fix for interrupt [Type] Bug fix [Module] Emulator / camera [Priority] [CQ#] [Redmine#] [Problem] Host webcam image frames does not go to guest. [Cause] Device does not interrupt the normal. [Solution] Match PCI interrupt pin # & raise interrupt # [TestCase] --- tizen/hw/svcamera_linux.c | 2 +- tizen/hw/svcamera_pci.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tizen/hw/svcamera_linux.c b/tizen/hw/svcamera_linux.c index f169109..adae8e2 100644 --- a/tizen/hw/svcamera_linux.c +++ b/tizen/hw/svcamera_linux.c @@ -112,7 +112,7 @@ static int __v4l2_grab(SVCamState *state) ret = -1; pthread_mutex_lock(&state->thread->mutex_lock); if (state->streamon) { - qemu_irq_raise(state->dev.irq[0]); + qemu_irq_raise(state->dev.irq[2]); ret = 1; } pthread_mutex_unlock(&state->thread->mutex_lock); diff --git a/tizen/hw/svcamera_pci.c b/tizen/hw/svcamera_pci.c index 86d8a64..82e570f 100644 --- a/tizen/hw/svcamera_pci.c +++ b/tizen/hw/svcamera_pci.c @@ -149,7 +149,7 @@ static inline void svcam_reg_write(void *opaque, target_phys_addr_t offset, uint memset(state->thread->param, 0, sizeof(SVCamParam)); break; case SVCAM_CMD_CLRIRQ: - qemu_irq_lower(state->dev.irq[0]); + qemu_irq_lower(state->dev.irq[2]); break; default: WARN("Not supported command!!\n"); @@ -202,8 +202,8 @@ static int svcam_initfn(PCIDevice *dev) pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_SAMSUNG); pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_VIRTUAL_CAMERA); - pci_config_set_class(pci_conf, PCI_CLASS_OTHERS); - pci_config_set_interrupt_pin(pci_conf, 0x02); + pci_config_set_class(pci_conf, PCI_CLASS_MULTIMEDIA_OTHER); + pci_config_set_interrupt_pin(pci_conf, 0x03); s->mem_offset = qemu_ram_alloc(NULL, "svcamera.ram", SVCAM_MEM_SIZE); /* return a host pointer */ -- 2.7.4