diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2009-11-12 14:58:31 +0900 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2009-12-01 17:51:21 +0200 |
commit | 4677d8ed9db8564fb0b02c1d012d4b25de633290 (patch) | |
tree | 4e3e32499b56626875e43864468716dc0ea7c7b9 /hw/pcie_host.c | |
parent | b6243d991a4d073b2c8c16737fec9ee74274bfeb (diff) |
pci: simplify (pci_/pcie_mmcfg_)data_read()
Remove switch on length: we don't care about
high bits for value, so just return all ones
if no device. And add one assert().
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Isaku Yamahata <yamahata@valinux.co.jp>
Diffstat (limited to 'hw/pcie_host.c')
-rw-r--r-- | hw/pcie_host.c | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/hw/pcie_host.c b/hw/pcie_host.c index b52fec6813..1dbc94ef6e 100644 --- a/hw/pcie_host.c +++ b/hw/pcie_host.c @@ -65,31 +65,15 @@ static void pcie_mmcfg_data_write(PCIBus *s, PCIE_MMCFG_CONFOFFSET(mmcfg_addr), val, len); } -static uint32_t pcie_mmcfg_data_read(PCIBus *s, - uint32_t mmcfg_addr, int len) +static uint32_t pcie_mmcfg_data_read(PCIBus *s, uint32_t addr, int len) { - PCIDevice *pci_dev = pcie_mmcfg_addr_to_dev(s, mmcfg_addr); - uint32_t val; + PCIDevice *pci_dev = pcie_mmcfg_addr_to_dev(s, addr); + assert(len == 1 || len == 2 || len == 4); if (!pci_dev) { - switch(len) { - case 1: - val = 0xff; - break; - case 2: - val = 0xffff; - break; - default: - case 4: - val = 0xffffffff; - break; - } - } else { - val = pci_dev->config_read(pci_dev, - PCIE_MMCFG_CONFOFFSET(mmcfg_addr), len); + return ~0x0; } - - return val; + return pci_dev->config_read(pci_dev, PCIE_MMCFG_CONFOFFSET(addr), len); } static void pcie_mmcfg_data_writeb(void *opaque, |