Hi all, Today's linux-next merge of the iio tree got a conflict in: drivers/iio/temperature/hid-sensor-temperature.c between commit: 73c53b592a982 ("iio: temperature: hid-sensor-temperature: Use per-instance callbacks") from the iio-fixes tree and commit: f5df16bbfbd60 ("iio: temperature: hid-sensor-temperature: convert probe and teardown to devm-managed resources") from the iio tree. I fixed it up (see below) and can carry the fix as necessary. This is now fixed as far as linux-next is concerned, but any non trivial conflicts should be mentioned to your upstream maintainer when your tree is submitted for merging. You may also want to consider cooperating with the maintainer of the conflicting tree to minimise any particularly complex conflicts. diff --cc drivers/iio/temperature/hid-sensor-temperature.c index ae67daff6df5a,ac5a287d1de32..0000000000000 --- a/drivers/iio/temperature/hid-sensor-temperature.c +++ b/drivers/iio/temperature/hid-sensor-temperature.c @@@ -233,39 -238,14 +234,17 @@@ static int hid_temperature_probe(struc platform_set_drvdata(pdev, indio_dev); - temperature_callbacks.pdev = pdev; - ret = devm_sensor_hub_register_callback(dev, hsdev, - HID_USAGE_SENSOR_TEMPERATURE, - &temperature_callbacks); + temp_st->callbacks = (struct hid_sensor_hub_callbacks) { + .send_event = temperature_proc_event, + .capture_sample = temperature_capture_sample, + .pdev = pdev, + }; - ret = sensor_hub_register_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE, ++ ret = devm_sensor_hub_register_callback(dev, hsdev, HID_USAGE_SENSOR_TEMPERATURE, + &temp_st->callbacks); if (ret) - goto error_remove_trigger; + return ret; - ret = iio_device_register(indio_dev); - if (ret) - goto error_remove_callback; - - return ret; - - error_remove_callback: - sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE); - error_remove_trigger: - hid_sensor_remove_trigger(indio_dev, &temp_st->common_attributes); - return ret; - } - - /* Function to deinitialize the processing for usage id */ - static void hid_temperature_remove(struct platform_device *pdev) - { - struct hid_sensor_hub_device *hsdev = dev_get_platdata(&pdev->dev); - struct iio_dev *indio_dev = platform_get_drvdata(pdev); - struct temperature_state *temp_st = iio_priv(indio_dev); - - iio_device_unregister(indio_dev); - sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE); - hid_sensor_remove_trigger(indio_dev, &temp_st->common_attributes); + return devm_iio_device_register(dev, indio_dev); } static const struct platform_device_id hid_temperature_ids[] = {