Hi Andy On 24/12/2020 12:54, Andy Shevchenko wrote: > On Thu, Dec 24, 2020 at 3:12 AM Daniel Scally <djrscally@xxxxxxxxx> wrote: >> >> Currently on platforms designed for Windows, connections between CIO2 and >> sensors are not properly defined in DSDT. This patch extends the ipu3-cio2 >> driver to compensate by building software_node connections, parsing the >> connection properties from the sensor's SSDB buffer. > > Few nitpicks below, after addressing them > Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> Thanks, and for all the time you've put into this series >> +/* >> + * Extend this array with ACPI Hardware ID's of devices known to be working > > ID's -> IDs ? Yes, turns out I'm pretty bad at apostrophes. >> +static void cio2_bridge_create_fwnode_properties(struct cio2_sensor *sensor, >> + const struct cio2_sensor_config *cfg) >> +{ >> + unsigned int i; >> + >> + sensor->prop_names = prop_names; >> + >> + for (i = 0; i < 4; i++) > > 4 here and below, can we have a local define for them, like > > #define CIO2_MAX_LANES 4 Done and for the other place it's mentioned below. >> +static int cio2_bridge_connect_sensors(struct cio2_bridge *bridge, >> + struct pci_dev *cio2) >> +{ >> + struct fwnode_handle *fwnode; >> + struct cio2_sensor *sensor; >> + struct acpi_device *adev; >> + unsigned int i; >> + int ret = 0; > > You may drop this assignment and... > ... > >> + return ret; > > ...use here > > return 0; > > directly. Done >> +enum cio2_sensor_swnodes { >> + SWNODE_SENSOR_HID, >> + SWNODE_SENSOR_PORT, >> + SWNODE_SENSOR_ENDPOINT, >> + SWNODE_CIO2_PORT, >> + SWNODE_CIO2_ENDPOINT, > >> + SWNODE_COUNT, > > No comma? Done >> @@ -1715,6 +1732,23 @@ static int cio2_pci_probe(struct pci_dev *pci_dev, >> return -ENOMEM; >> cio2->pci_dev = pci_dev; >> >> + /* >> + * On some platforms no connections to sensors are defined in firmware, >> + * if the device has no endpoints then we can try to build those as >> + * software_nodes parsed from SSDB. >> + */ >> + if (!cio2_check_fwnode_graph(fwnode)) { >> + if (fwnode && !IS_ERR_OR_NULL(fwnode->secondary)) { > >> + dev_err(&pci_dev->dev, >> + "fwnode graph has no endpoints connected\n"); > > One line? Done