Lines Matching defs:swnodes
53 struct acpi_device_software_nodes *swnodes;
157 kfree(csi2->swnodes);
203 struct acpi_device_software_nodes *swnodes;
212 if (check_mul_overflow(sizeof(*swnodes->ports) +
213 sizeof(*swnodes->nodes) * 2 +
214 sizeof(*swnodes->nodeptrs) * 2,
216 check_add_overflow(sizeof(*swnodes) +
217 sizeof(*swnodes->nodes) +
218 sizeof(*swnodes->nodeptrs) * 2,
226 swnodes = kmalloc(alloc_size, GFP_KERNEL);
227 if (!swnodes)
230 swnodes->ports = (struct acpi_device_software_node_port *)(swnodes + 1);
231 swnodes->nodes = (struct software_node *)(swnodes->ports + port_count);
232 swnodes->nodeptrs = (const struct software_node **)(swnodes->nodes + 1 +
234 swnodes->num_ports = port_count;
237 swnodes->nodeptrs[i] = &swnodes->nodes[i];
239 swnodes->nodeptrs[i] = NULL;
242 swnodes->ports[i].port_nr = NO_CSI2_PORT;
244 csi2->swnodes = swnodes;
250 static unsigned int next_csi2_port_index(struct acpi_device_software_nodes *swnodes,
255 for (i = 0; i < swnodes->num_ports; i++) {
256 struct acpi_device_software_node_port *port = &swnodes->ports[i];
293 remote_swnodes = remote_csi2->swnodes;
371 struct acpi_device_software_nodes *local_swnodes = csi2->swnodes;
375 /* Bail out if the allocation of swnodes has failed. */
426 * relies on the availability of swnodes memory for each list entry.
484 struct acpi_device_software_nodes *swnodes,
498 swnodes->nodes[ACPI_DEVICE_SWNODE_PORT(port_index)] =
500 &swnodes->nodes[ACPI_DEVICE_SWNODE_ROOT]);
572 swnodes->nodes[ACPI_DEVICE_SWNODE_EP(port_index)] =
573 SOFTWARE_NODE("endpoint@0", swnodes->ports[port_index].ep_props,
574 &swnodes->nodes[ACPI_DEVICE_SWNODE_PORT(port_index)]);
597 struct acpi_device_software_nodes *swnodes = csi2->swnodes;
608 * Bail out if the swnodes are not available (either they have not been
611 if (!swnodes)
628 swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_ROTATION)] =
636 swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_CLOCK_FREQUENCY)] =
640 swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_LED_MAX_MICROAMP)] =
644 swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_MICROAMP)] =
648 swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_TIMEOUT_US)] =
657 swnodes->nodes[ACPI_DEVICE_SWNODE_ROOT] =
658 SOFTWARE_NODE(buffer.pointer, swnodes->dev_props, NULL);
660 for (i = 0; i < swnodes->num_ports; i++) {
661 struct acpi_device_software_node_port *port = &swnodes->ports[i];
679 init_csi2_port(adev, swnodes, port, port_fwnode, i);
684 ret = software_node_register_node_group(swnodes->nodeptrs);
691 adev->swnodes = swnodes;
692 adev_fwnode->secondary = software_node_fwnode(swnodes->nodes);
695 * Prevents the swnodes from this csi2 entry from being assigned again
698 csi2->swnodes = NULL;