On Wed, May 21, 2025 at 06:12:34PM +0200, Eric Auger wrote:
> Hi Gustavo,
> 
> On 5/20/25 4:09 PM, Gustavo Romero wrote:
> > Hi Eric,
> >
> > On 5/14/25 14:00, Eric Auger wrote:
> >> gpex build_host_bridge_osc() and x86 originated
> >> build_pci_host_bridge_osc_method() are mostly identical.
> >>
> >> In GPEX, SUPP is set to CDW2 but is not further used. CTRL
> >> is same as Local0.
> >>
> >> So let gpex code reuse build_pci_host_bridge_osc_method()
> >> and remove build_host_bridge_osc().
> >>
> >> Signed-off-by: Eric Auger <eric.au...@redhat.com>
> >>
> >> ---
> >>
> >> The DSDT diff  is given below:
> >> diff --git a/dsdt.dsl_before b/dsdt.dsl_after_osc_change
> >> index 3224a56..fa7558e 100644
> >> --- a/dsdt.dsl_before
> >> +++ b/dsdt.dsl_after_osc_change
> >> @@ -5,13 +5,13 @@
> >>    *
> >>    * Disassembling to symbolic ASL+ operators
> >>    *
> >> - * Disassembly of dsdt.dat, Mon Apr  7 05:33:06 2025
> >> + * Disassembly of dsdt.dat, Mon Apr  7 05:37:20 2025
> >>    *
> >>    * Original Table Header:
> >>    *     Signature        "DSDT"
> >> - *     Length           0x00001A4F (6735)
> >> + *     Length           0x00001A35 (6709)
> >>    *     Revision         0x02
> >> - *     Checksum         0xBF
> >> + *     Checksum         0xDD
> >>    *     OEM ID           "BOCHS "
> >>    *     OEM Table ID     "BXPC    "
> >>    *     OEM Revision     0x00000001 (1)
> >> @@ -1849,27 +1849,26 @@ DefinitionBlock ("", "DSDT", 2, "BOCHS ",
> >> "BXPC    ", 0x00000001)
> >>                   {
> >>                       CreateDWordField (Arg3, 0x04, CDW2)
> >>                       CreateDWordField (Arg3, 0x08, CDW3)
> >> -                    SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
> >> -                    CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
> >> -                    CTRL &= 0x1F
> >> +                    Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
> >> +                    Local0 &= 0x1F
> >>                       If ((Arg1 != One))
> >>                       {
> >>                           CDW1 |= 0x08
> >>                       }
> >>
> >> -                    If ((CDW3 != CTRL))
> >> +                    If ((CDW3 != Local0))
> >>                       {
> >>                           CDW1 |= 0x10
> >>                       }
> >>
> >> -                    CDW3 = CTRL /* \_SB_.PCI0.CTRL */
> >> -                    Return (Arg3)
> >> +                    CDW3 = Local0
> >>                   }
> >>                   Else
> >>                   {
> >>                       CDW1 |= 0x04
> >> -                    Return (Arg3)
> >>                   }
> >> +
> >> +                Return (Arg3)
> >>               }
> >>
> >>               Method (_DSM, 4, NotSerialized)  // _DSM:
> >> Device-Specific Method
> >
> > The problem I face with diffs in the commit body is that tools like
> > b4, which are
> > based on git am, get very confused on how to handle it. I'm surprised
> > nobody ever
> > complained about it. I'm wondering if there is any catch on it,
> > because I have to
> > edit commits like this manually, removing the diff, to make it finally
> > apply to
> > the series. Anyways, do you mind at least removing the valid diff
> > header, like:
> >
> >> diff --git a/dsdt.dsl_before b/dsdt.dsl_after_osc_change
> >> index 3224a56..fa7558e 100644
> >> --- a/dsdt.dsl_before
> >> +++ b/dsdt.dsl_after_osc_change
> >
> > from the commit message so it doesn't confuse b4?
> Thank you for reporting the issue. in tests/qtest/bios-tables-test.c it
> is written at the top that we shall put the diffs in disasembled ACPI
> content in the commit msg. I will look for previously landed patches and
> see whether the current layout can be fixed.
> 
> Cheers
> 
> Eric


Eric, to clarify, the diff is supposed to go into commit log,
not after ---.
This will make it apply cleanly.
Also, removing the "index" line as well as date diff at least is a good
idea: the diff should be clean, not include irrelevant information.

Pls feel free to clarify the text in tests/qtest/bios-tables-test.c



> >
> >
> >> ---
> >>   hw/pci-host/gpex-acpi.c | 60 +++--------------------------------------
> >>   1 file changed, 4 insertions(+), 56 deletions(-)
> >>
> >> diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
> >> index f1ab30f3d5..98c9868c3f 100644
> >> --- a/hw/pci-host/gpex-acpi.c
> >> +++ b/hw/pci-host/gpex-acpi.c
> >> @@ -50,60 +50,7 @@ static void acpi_dsdt_add_pci_route_table(Aml
> >> *dev, uint32_t irq,
> >>       }
> >>   }
> >>   -static Aml *build_host_bridge_osc(bool enable_native_pcie_hotplug)
> >> -{
> >> -    Aml *method, *UUID, *ifctx, *ifctx1, *elsectx;
> >> -
> >> -    method = aml_method("_OSC", 4, AML_NOTSERIALIZED);
> >> -    aml_append(method,
> >> -        aml_create_dword_field(aml_arg(3), aml_int(0), "CDW1"));
> >> -
> >> -    /* PCI Firmware Specification 3.0
> >> -     * 4.5.1. _OSC Interface for PCI Host Bridge Devices
> >> -     * The _OSC interface for a PCI/PCI-X/PCI Express hierarchy is
> >> -     * identified by the Universal Unique IDentifier (UUID)
> >> -     * 33DB4D5B-1FF7-401C-9657-7441C03DD766
> >> -     */
> >> -    UUID = aml_touuid("33DB4D5B-1FF7-401C-9657-7441C03DD766");
> >> -    ifctx = aml_if(aml_equal(aml_arg(0), UUID));
> >> -    aml_append(ifctx,
> >> -        aml_create_dword_field(aml_arg(3), aml_int(4), "CDW2"));
> >> -    aml_append(ifctx,
> >> -        aml_create_dword_field(aml_arg(3), aml_int(8), "CDW3"));
> >> -    aml_append(ifctx, aml_store(aml_name("CDW2"), aml_name("SUPP")));
> >> -    aml_append(ifctx, aml_store(aml_name("CDW3"), aml_name("CTRL")));
> >> -
> >> -    /*
> >> -     * Allow OS control for SHPCHotplug, PME, AER, PCIeCapability,
> >> -     * and PCIeHotplug depending on enable_native_pcie_hotplug
> >> -     */
> >> -    aml_append(ifctx, aml_and(aml_name("CTRL"),
> >> -               aml_int(0x1E | (enable_native_pcie_hotplug ? 0x1 :
> >> 0x0)),
> >> -               aml_name("CTRL")));
> >> -
> >> -    ifctx1 = aml_if(aml_lnot(aml_equal(aml_arg(1), aml_int(0x1))));
> >> -    aml_append(ifctx1, aml_or(aml_name("CDW1"), aml_int(0x08),
> >> -                              aml_name("CDW1")));
> >> -    aml_append(ifctx, ifctx1);
> >> -
> >> -    ifctx1 = aml_if(aml_lnot(aml_equal(aml_name("CDW3"),
> >> aml_name("CTRL"))));
> >> -    aml_append(ifctx1, aml_or(aml_name("CDW1"), aml_int(0x10),
> >> -                              aml_name("CDW1")));
> >> -    aml_append(ifctx, ifctx1);
> >> -
> >> -    aml_append(ifctx, aml_store(aml_name("CTRL"), aml_name("CDW3")));
> >> -    aml_append(ifctx, aml_return(aml_arg(3)));
> >> -    aml_append(method, ifctx);
> >> -
> >> -    elsectx = aml_else();
> >> -    aml_append(elsectx, aml_or(aml_name("CDW1"), aml_int(4),
> >> -                               aml_name("CDW1")));
> >> -    aml_append(elsectx, aml_return(aml_arg(3)));
> >> -    aml_append(method, elsectx);
> >> -    return method;
> >> -}
> >> -
> >> -static Aml *build_host_bridge_dsm(void)
> >> +static Aml *build_pci_host_bridge_dsm_method(void)
> >>   {
> >>       Aml *method = aml_method("_DSM", 4, AML_NOTSERIALIZED);
> >>       Aml *UUID, *ifctx, *ifctx1, *buf;
> >> @@ -134,8 +81,9 @@ static void acpi_dsdt_add_host_bridge_methods(Aml
> >> *dev,
> >>       aml_append(dev, aml_name_decl("SUPP", aml_int(0)));
> >>       aml_append(dev, aml_name_decl("CTRL", aml_int(0)));
> >>       /* Declare an _OSC (OS Control Handoff) method */
> >> -    aml_append(dev, build_host_bridge_osc(enable_native_pcie_hotplug));
> >> -    aml_append(dev, build_host_bridge_dsm());
> >> +    aml_append(dev,
> >> +              
> >> build_pci_host_bridge_osc_method(enable_native_pcie_hotplug));
> >> +    aml_append(dev, build_pci_host_bridge_dsm_method());
> >>   }
> >>     void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
> >
> > Otherwise:
> >
> > Reviewed-by: Gustavo Romero <gustavo.rom...@linaro.org>
> >
> >
> > Cheers,
> > Gustavo
> >


Reply via email to