Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b186b124 authored by Chanwoo Choi's avatar Chanwoo Choi Committed by Samuel Ortiz
Browse files

mfd: MAX77693: Fix NULL pointer error when initializing irqs



This patch initialize register map of MUIC device because mfd driver
of Maxim MAX77693 use regmap-muic instance of MUIC device when irqs of
Maxim MAX77693 is initialized before call max77693-muic probe() function.

Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: default avatarMyungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Reported-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent d51f42d2
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -669,7 +669,11 @@ static int __devinit max77693_muic_probe(struct platform_device *pdev)
	}
	info->dev = &pdev->dev;
	info->max77693 = max77693;
	info->max77693->regmap_muic = regmap_init_i2c(info->max77693->muic,
	if (info->max77693->regmap_muic)
		dev_dbg(&pdev->dev, "allocate register map\n");
	else {
		info->max77693->regmap_muic = devm_regmap_init_i2c(
						info->max77693->muic,
						&max77693_muic_regmap_config);
		if (IS_ERR(info->max77693->regmap_muic)) {
			ret = PTR_ERR(info->max77693->regmap_muic);
@@ -677,6 +681,7 @@ static int __devinit max77693_muic_probe(struct platform_device *pdev)
				"failed to allocate register map: %d\n", ret);
			goto err_regmap;
		}
	}
	platform_set_drvdata(pdev, info);
	mutex_init(&info->mutex);

+14 −0
Original line number Diff line number Diff line
@@ -152,6 +152,20 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
	max77693->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC);
	i2c_set_clientdata(max77693->haptic, max77693);

	/*
	 * Initialize register map for MUIC device because use regmap-muic
	 * instance of MUIC device when irq of max77693 is initialized
	 * before call max77693-muic probe() function.
	 */
	max77693->regmap_muic = devm_regmap_init_i2c(max77693->muic,
					 &max77693_regmap_config);
	if (IS_ERR(max77693->regmap_muic)) {
		ret = PTR_ERR(max77693->regmap_muic);
		dev_err(max77693->dev,
			"failed to allocate register map: %d\n", ret);
		goto err_regmap;
	}

	ret = max77693_irq_init(max77693);
	if (ret < 0)
		goto err_irq;