qemu-arm
[Top][All Lists]
Advanced

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

Re: [PATCH 3/4] hw/arm/stellaris: Add missing QOM 'machine' parent


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 3/4] hw/arm/stellaris: Add missing QOM 'machine' parent
Date: Tue, 13 Feb 2024 16:40:04 +0100
User-agent: Mozilla Thunderbird

On 1/2/24 17:28, Peter Maydell wrote:
On Tue, 30 Jan 2024 at 19:03, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:

QDev objects created with qdev_new() need to manually add
their parent relationship with object_property_add_child().

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/arm/stellaris.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
index 284b95005f..bb88b3ebde 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -1247,10 +1247,13 @@ static void stellaris_init(MachineState *ms, 
stellaris_board_info *board)
                                     &error_fatal);

              ssddev = qdev_new("ssd0323");
+            object_property_add_child(OBJECT(ms), "oled", OBJECT(ssddev));
              qdev_prop_set_uint8(ssddev, "cs", 1);
              qdev_realize_and_unref(ssddev, bus, &error_fatal);

              gpio_d_splitter = qdev_new(TYPE_SPLIT_IRQ);
+            object_property_add_child(OBJECT(ms), "splitter",
+                                      OBJECT(gpio_d_splitter));
              qdev_prop_set_uint32(gpio_d_splitter, "num-lines", 2);
              qdev_realize_and_unref(gpio_d_splitter, NULL, &error_fatal);
              qdev_connect_gpio_out(
@@ -1287,6 +1290,7 @@ static void stellaris_init(MachineState *ms, 
stellaris_board_info *board)
          DeviceState *gpad;

          gpad = qdev_new(TYPE_STELLARIS_GAMEPAD);
+        object_property_add_child(OBJECT(ms), "gamepad", OBJECT(gpad));
          for (i = 0; i < ARRAY_SIZE(gpad_keycode); i++) {
              qlist_append_int(gpad_keycode_list, gpad_keycode[i]);
          }
--

We create almost all the devices in this board with
qdev_new(), and we don't use object_property_add_child()
on any of them. What is it about these three devices in
particular that means we need to call that function?

In v2 I added to the description:

    This commit plug the devices which aren't part of the SoC;
    they will be plugged into a SoC container in the next one.



reply via email to

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