drivers/generic/max98357a: Don't write device if HID is missing

If the device is missing the HID, the code would previously leave an
open scope and device on the stack.

BUG=b:154756391
TEST=Verify stack ACPI stack does not exceed limit on Trembyle.

Fixes: a1c82c5ebee ("drivers/generic/max98357a: Allow custom _HID from config")
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I798ed08ef0a0575def12937a66a7ce99f743e60d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42014
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
diff --git a/src/drivers/generic/max98357a/max98357a.c b/src/drivers/generic/max98357a/max98357a.c
index bd45296..575548b 100644
--- a/src/drivers/generic/max98357a/max98357a.c
+++ b/src/drivers/generic/max98357a/max98357a.c
@@ -26,15 +26,15 @@
 	if (!scope || !name)
 		return;
 
-	/* Device */
-	acpigen_write_scope(scope);
-	acpigen_write_device(name);
-
 	if (!config->hid) {
 		printk(BIOS_ERR, "%s: ERROR: _HID required\n", dev_path(dev));
 		return;
 	}
 
+	/* Device */
+	acpigen_write_scope(scope);
+	acpigen_write_device(name);
+
 	acpigen_write_name_string("_HID", config->hid);
 	acpigen_write_name_integer("_UID", 0);
 	acpigen_write_name_string("_DDN", dev->chip_ops->name);