Thread (1 message) 1 message, 1 author, 2022-01-03

Re: [PATCH 16/34] brcmfmac: acpi: Add support for fetching Apple ACPI properties

From: Hector Martin <hidden>
Date: 2022-01-03 17:23:07
Also in: linux-acpi, linux-devicetree, linux-wireless, lkml

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@marcan.st)
Public Key: https://mrcn.st/pub
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help