On Fri, Feb 2, 2024 at 11:10 AM AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> wrote: > > Il 01/02/24 20:51, Rafael J. Wysocki ha scritto: > > On Tue, Jan 30, 2024 at 12:13 PM AngeloGioacchino Del Regno > > <angelogioacchino.delregno@xxxxxxxxxxxxx> wrote: > >> > >> The thermal API has a new thermal_zone_device_register() function which > >> is deprecating the older thermal_zone_device_register_with_trips() and > >> thermal_tripless_zone_device_register(). > >> > >> Migrate to the new thermal zone device registration function. > >> > >> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > >> --- > >> drivers/thermal/intel/intel_pch_thermal.c | 12 ++++++++---- > >> 1 file changed, 8 insertions(+), 4 deletions(-) > >> > >> diff --git a/drivers/thermal/intel/intel_pch_thermal.c b/drivers/thermal/intel/intel_pch_thermal.c > >> index b3905e34c507..73d7c2ac7dbc 100644 > >> --- a/drivers/thermal/intel/intel_pch_thermal.c > >> +++ b/drivers/thermal/intel/intel_pch_thermal.c > >> @@ -160,6 +160,7 @@ static int intel_pch_thermal_probe(struct pci_dev *pdev, > >> const struct pci_device_id *id) > >> { > >> enum pch_board_ids board_id = id->driver_data; > >> + struct thermal_zone_device_params tzdp; > >> struct pch_thermal_device *ptd; > >> int nr_trips = 0; > >> u16 trip_temp; > >> @@ -233,10 +234,13 @@ static int intel_pch_thermal_probe(struct pci_dev *pdev, > >> > >> nr_trips += pch_wpt_add_acpi_psv_trip(ptd, nr_trips); > >> > >> - ptd->tzd = thermal_zone_device_register_with_trips(board_names[board_id], > >> - ptd->trips, nr_trips, > >> - 0, ptd, &tzd_ops, > >> - NULL, 0, 0); > >> + tzdp.tzp.type = board_names[board_id]; > >> + tzdp.tzp.devdata = ptd; > >> + tzdp.tzp.trips = ptd->trips; > >> + tzdp.tzp.num_trips = nr_trips; > >> + tzdp.tzp.ops = &tzd_ops; > >> + > >> + ptd->tzd = thermal_zone_device_register(&tzdp); > > > > IMV, this should be > > > > ptd->tzd = thermal_zone_device_register(board_names[board_id], > > ptd->trips, nr_trips, &tzd_ops, ptd, NULL); > > > > and the tzdp variable is not necessary even. > > > > The whole point of thermal_zone_device_register() taking just one parameter was > that those older functions were taking a bit too many params, and with the > introduction of Thermal Zone name we'd be adding even more. That's fair. However, as indicated elsewhere, there are at least a few arguments of the registration function that fit into the argument list: trips[], num_trips, ops, devdata. I'd add the name to that list and put the rest (including type) into the params struct. > For intel_pch_thermal, things are more or less the same, assignments are done there > line by line... but for most of the others, IMO it's easier and schematized as a > single stack-initialized structure that could even be constified in the future. Well, it's copied into the struct thermal_zone_device, so it's better to put it one the stack, so the memory occupied by it gets freed when not needed any more.