Commit 5ae9ce13 authored by Andy Shevchenko's avatar Andy Shevchenko
Browse files

platform/x86: intel_cht_int33fe: Accept errors of i2c_acpi_new_device()



In the future i2c_acpi_new_device() will return error pointer in some cases.
Prepare intel_cht_int33fe driver to support that.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 67344896
Loading
Loading
Loading
Loading
+23 −5
Original line number Diff line number Diff line
@@ -168,8 +168,14 @@ static int cht_int33fe_probe(struct platform_device *pdev)
		board_info.dev_name = "max17047";
		board_info.properties = max17047_props;
		data->max17047 = i2c_acpi_new_device(dev, 1, &board_info);
		if (!data->max17047)
			return -EPROBE_DEFER; /* Wait for i2c-adapter to load */
		if (IS_ERR(data->max17047))
			ret = PTR_ERR(data->max17047);
		else if (!data->max17047)
			ret = -EPROBE_DEFER; /* Wait for i2c-adapter to load */
		else
			ret = 0;
		if (ret)
			return ret;
	}

	data->connections[0].endpoint[0] = "port0";
@@ -194,7 +200,13 @@ static int cht_int33fe_probe(struct platform_device *pdev)
	board_info.irq = fusb302_irq;

	data->fusb302 = i2c_acpi_new_device(dev, 2, &board_info);
	if (!data->fusb302)
	if (IS_ERR(data->fusb302))
		ret = PTR_ERR(data->fusb302);
	else if (!data->fusb302)
		ret = -EPROBE_DEFER; /* Wait for the i2c-adapter to load */
	else
		ret = 0;
	if (ret)
		goto out_unregister_max17047;

	memset(&board_info, 0, sizeof(board_info));
@@ -202,7 +214,13 @@ static int cht_int33fe_probe(struct platform_device *pdev)
	strlcpy(board_info.type, "pi3usb30532", I2C_NAME_SIZE);

	data->pi3usb30532 = i2c_acpi_new_device(dev, 3, &board_info);
	if (!data->pi3usb30532)
	if (IS_ERR(data->pi3usb30532))
		ret = PTR_ERR(data->pi3usb30532);
	else if (!data->pi3usb30532)
		ret = -EPROBE_DEFER; /* Wait for the i2c-adapter to load */
	else
		ret = 0;
	if (ret)
		goto out_unregister_fusb302;

	platform_set_drvdata(pdev, data);
@@ -217,7 +235,7 @@ out_unregister_max17047:

	device_connections_remove(data->connections);

	return -EPROBE_DEFER; /* Wait for the i2c-adapter to load */
	return ret;
}

static int cht_int33fe_remove(struct platform_device *pdev)