Re: [PATCH 16/34] brcmfmac: acpi: Add support for fetching Apple ACPI properties
From: Hector Martin
Date: Mon Jan 03 2022 - 12:23:08 EST
On 2022/01/04 1:20, Andy Shevchenko wrote:
> +void brcmf_acpi_probe(struct device *dev, enum brcmf_bus_type bus_type,
> + struct brcmf_mp_device *settings)
> +{
> + acpi_status status;
> + struct acpi_device *adev = ACPI_COMPANION(dev);
>
>
> Please, move the assignment closer to its first user
So... two lines down? :-)
>
>
> + const union acpi_object *o;
> + struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL};
> +
> + if (!adev)
> + return;
> +
> + if (!ACPI_FAILURE(acpi_dev_get_property(adev, "module-instance",
> + ACPI_TYPE_STRING,
> &o))) {
> + const char *prefix = "apple,";
> + int len = strlen(prefix) + o->string.length + 1;
> + char *board_type = devm_kzalloc(dev, len, GFP_KERNEL);
> +
> + strscpy(board_type, prefix, len);
> + strlcat(board_type, o->string.pointer,
>
>
> NIH devm_kasprintf()?
That sounds useful, didn't know that existed. Thanks!
>
>
> + brcmf_dbg(INFO, "ACPI module-instance=%s\n",
> o->string.pointer);
> + settings->board_type = board_type;
> + } else {
> + brcmf_dbg(INFO, "No ACPI module-instance\n");
> + }
> +
> + status = acpi_evaluate_object(adev->handle, "RWCV", NULL, &buf);
> + o = buf.pointer;
> + if (!ACPI_FAILURE(status) && o && o->type == ACPI_TYPE_BUFFER &&
> + o->buffer.length >= 2) {
> + char *antenna_sku = devm_kzalloc(dev, 3, GFP_KERNEL);
> +
> + memcpy(antenna_sku, o->buffer.pointer, 2);
>
>
> NIH devm_kmemdup()?
Not *quite*. I take the first two bytes of the returned buffer and turn
them into a null-terminated 3-byte string. kmemdup wouldn't
null-terminate or would copy too much, depending on length.
--
Hector Martin (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub