Re: [PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()

2024-02-25 Thread Thomas Huth

On 25/02/2024 18.21, Philippe Mathieu-Daudé wrote:

On 25/2/24 18:16, Philippe Mathieu-Daudé wrote:

Use ahci_ide_create_devs() instead of open-coding it.
Not accessing AHCIDevice internals anymore allows to
remove "hw/ide/ahci_internal.h" (which isn't really a
public header).

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/arm/sbsa-ref.c | 9 +
  1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
index 5d3a574664..995c7be23e 100644
--- a/hw/arm/sbsa-ref.c
+++ b/hw/arm/sbsa-ref.c
@@ -37,7 +37,6 @@
  #include "hw/block/flash.h"
  #include "hw/boards.h"
  #include "hw/ide/internal.h"
-#include "hw/ide/ahci_internal.h"
  #include "hw/ide/ahci-sysbus.h"
  #include "hw/intc/arm_gicv3_common.h"
  #include "hw/intc/arm_gicv3_its_common.h"
@@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms)
  DriveInfo *hd[NUM_SATA_PORTS];
  SysbusAHCIState *sysahci;
  AHCIState *ahci;
-    int i;
  dev = qdev_new("sysbus-ahci");
  qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS);
@@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms)
  sysahci = SYSBUS_AHCI(dev);
  ahci = >ahci;


Bah, we can even remove that 'ahci' variable.


  ide_drive_get(hd, ARRAY_SIZE(hd));
-    for (i = 0; i < ahci->ports; i++) {
-    if (hd[i] == NULL) {
-    continue;
-    }
-    ide_bus_create_drive(>dev[i].port, 0, hd[i]);
-    }
+    ahci_ide_create_devs(ahci, hd);
  }


-- >8 --
@@ -571,8 +570,6 @@ static void create_ahci(const SBSAMachineState *sms)
  DeviceState *dev;
  DriveInfo *hd[NUM_SATA_PORTS];
  SysbusAHCIState *sysahci;
-    AHCIState *ahci;
-    int i;

  dev = qdev_new("sysbus-ahci");
  qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS);
@@ -581,14 +578,8 @@ static void create_ahci(const SBSAMachineState *sms)
  sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(sms->gic, 
irq));


  sysahci = SYSBUS_AHCI(dev);
-    ahci = >ahci;
  ide_drive_get(hd, ARRAY_SIZE(hd));
-    for (i = 0; i < ahci->ports; i++) {
-    if (hd[i] == NULL) {
-    continue;
-    }
-    ide_bus_create_drive(>dev[i].port, 0, hd[i]);
-    }
+    ahci_ide_create_devs(>ahci, hd);
  }


Reviewed-by: Thomas Huth 





Re: [PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()

2024-02-25 Thread Philippe Mathieu-Daudé

On 25/2/24 18:16, Philippe Mathieu-Daudé wrote:

Use ahci_ide_create_devs() instead of open-coding it.
Not accessing AHCIDevice internals anymore allows to
remove "hw/ide/ahci_internal.h" (which isn't really a
public header).

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/arm/sbsa-ref.c | 9 +
  1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
index 5d3a574664..995c7be23e 100644
--- a/hw/arm/sbsa-ref.c
+++ b/hw/arm/sbsa-ref.c
@@ -37,7 +37,6 @@
  #include "hw/block/flash.h"
  #include "hw/boards.h"
  #include "hw/ide/internal.h"
-#include "hw/ide/ahci_internal.h"
  #include "hw/ide/ahci-sysbus.h"
  #include "hw/intc/arm_gicv3_common.h"
  #include "hw/intc/arm_gicv3_its_common.h"
@@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms)
  DriveInfo *hd[NUM_SATA_PORTS];
  SysbusAHCIState *sysahci;
  AHCIState *ahci;
-int i;
  
  dev = qdev_new("sysbus-ahci");

  qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS);
@@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms)
  sysahci = SYSBUS_AHCI(dev);
  ahci = >ahci;


Bah, we can even remove that 'ahci' variable.


  ide_drive_get(hd, ARRAY_SIZE(hd));
-for (i = 0; i < ahci->ports; i++) {
-if (hd[i] == NULL) {
-continue;
-}
-ide_bus_create_drive(>dev[i].port, 0, hd[i]);
-}
+ahci_ide_create_devs(ahci, hd);
  }


-- >8 --
@@ -571,8 +570,6 @@ static void create_ahci(const SBSAMachineState *sms)
 DeviceState *dev;
 DriveInfo *hd[NUM_SATA_PORTS];
 SysbusAHCIState *sysahci;
-AHCIState *ahci;
-int i;

 dev = qdev_new("sysbus-ahci");
 qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS);
@@ -581,14 +578,8 @@ static void create_ahci(const SBSAMachineState *sms)
 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, 
qdev_get_gpio_in(sms->gic, irq));


 sysahci = SYSBUS_AHCI(dev);
-ahci = >ahci;
 ide_drive_get(hd, ARRAY_SIZE(hd));
-for (i = 0; i < ahci->ports; i++) {
-if (hd[i] == NULL) {
-continue;
-}
-ide_bus_create_drive(>dev[i].port, 0, hd[i]);
-}
+ahci_ide_create_devs(>ahci, hd);
 }
---




[PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()

2024-02-25 Thread Philippe Mathieu-Daudé
Use ahci_ide_create_devs() instead of open-coding it.
Not accessing AHCIDevice internals anymore allows to
remove "hw/ide/ahci_internal.h" (which isn't really a
public header).

Signed-off-by: Philippe Mathieu-Daudé 
---
 hw/arm/sbsa-ref.c | 9 +
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
index 5d3a574664..995c7be23e 100644
--- a/hw/arm/sbsa-ref.c
+++ b/hw/arm/sbsa-ref.c
@@ -37,7 +37,6 @@
 #include "hw/block/flash.h"
 #include "hw/boards.h"
 #include "hw/ide/internal.h"
-#include "hw/ide/ahci_internal.h"
 #include "hw/ide/ahci-sysbus.h"
 #include "hw/intc/arm_gicv3_common.h"
 #include "hw/intc/arm_gicv3_its_common.h"
@@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms)
 DriveInfo *hd[NUM_SATA_PORTS];
 SysbusAHCIState *sysahci;
 AHCIState *ahci;
-int i;
 
 dev = qdev_new("sysbus-ahci");
 qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS);
@@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms)
 sysahci = SYSBUS_AHCI(dev);
 ahci = >ahci;
 ide_drive_get(hd, ARRAY_SIZE(hd));
-for (i = 0; i < ahci->ports; i++) {
-if (hd[i] == NULL) {
-continue;
-}
-ide_bus_create_drive(>dev[i].port, 0, hd[i]);
-}
+ahci_ide_create_devs(ahci, hd);
 }
 
 static void create_xhci(const SBSAMachineState *sms)
-- 
2.41.0