qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 03/13] sdhci: refactor same sysbus/pci proper


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH v6 03/13] sdhci: refactor same sysbus/pci properties into a common one
Date: Fri, 12 Jan 2018 15:45:10 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2

Hi Peter,

On 01/12/2018 02:20 PM, Philippe Mathieu-Daudé wrote:
> On Fri, Jan 12, 2018 at 2:05 PM, Peter Maydell <address@hidden> wrote:
>> On 11 January 2018 at 19:30, Philippe Mathieu-Daudé <address@hidden> wrote:
>>> Now both sysbus/pci classes inherit of the 'pending-insert-quirk' property,
>>> which is a HCI dependent property (regardless if accessed through a MMIO
>>> sysbus or a PCI bus).
>>> So far only the BCM implementation has to use it.
>>>
>>> Add sysbus/pci/sdbus comments to have clearer code blocks separation.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
>>> Reviewed-by: Alistair Francis <address@hidden>
>>
>> I'm not sure about this patch, because it means that we now have
>> no mechanism for having a property which exists on the sysbus
>> device but not on the PCI device (and as per my comments on the
>> last patch in this set, we do need to be able to do that).

Does this look OK to you?

static Property sdhci_sysbus_pending_insert_quirk_property =
     DEFINE_PROP_BOOL("pending-insert-quirk",
           SDHCIState, pending_insert_quirk, false);

static Property sdhci_sysbus_dma_mr_property =
     DEFINE_PROP_LINK("dma",
         SDHCIState, dma_mr, TYPE_MEMORY_REGION, MemoryRegion *);

static void sdhci_sysbus_post_init(Object *obj)
{
    SDHCIState *s = SYSBUS_SDHCI(obj);

    sdhci_common_post_init(obj); /* add common properties */
    qdev_property_add_static(DEVICE(obj),
        &sdhci_sysbus_pending_insert_quirk_property, &error_abort);
    qdev_property_add_static(DEVICE(obj),
        &sdhci_sysbus_dma_mr_property, &error_abort);
}

static const TypeInfo sdhci_sysbus_info = {
    .name = TYPE_SYSBUS_SDHCI,
    .parent = TYPE_SYS_BUS_DEVICE,
    .instance_size = sizeof(SDHCIState),
    .instance_init = sdhci_sysbus_init,
    .instance_post_init = sdhci_sysbus_post_init,
    ...
};

This way we can have a property which exists on the sysbus
device but not on the PCI device, and keep the common one in the same
piece of code (I later add a few common properties).

Regards,

Phil.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]