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

Commit d5fdfedc authored by Saurabh Sengar's avatar Saurabh Sengar Committed by Sebastian Reichel
Browse files

power: max8903_charger: set IRQF_ONESHOT if no primary handler is specified



If no primary handler is specified for threaded_irq then a
default one is assigned which always returns IRQ_WAKE_THREAD.
This handler requires the IRQF_ONESHOT, because the source of
interrupt is not disabled.

Signed-off-by: default avatarSaurabh Sengar <saurabh.truth@gmail.com>
Signed-off-by: default avatarSebastian Reichel <sre@kernel.org>
parent c4c0edfb
Loading
Loading
Loading
Loading
+12 −12
Original line number Original line Diff line number Diff line
@@ -293,7 +293,7 @@ static int max8903_probe(struct platform_device *pdev)
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->dok),
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->dok),
					NULL, max8903_dcin,
					NULL, max8903_dcin,
					IRQF_TRIGGER_FALLING |
					IRQF_TRIGGER_FALLING |
						IRQF_TRIGGER_RISING,
					IRQF_TRIGGER_RISING | IRQF_ONESHOT,
					"MAX8903 DC IN", data);
					"MAX8903 DC IN", data);
		if (ret) {
		if (ret) {
			dev_err(dev, "Cannot request irq %d for DC (%d)\n",
			dev_err(dev, "Cannot request irq %d for DC (%d)\n",
@@ -306,7 +306,7 @@ static int max8903_probe(struct platform_device *pdev)
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->uok),
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->uok),
					NULL, max8903_usbin,
					NULL, max8903_usbin,
					IRQF_TRIGGER_FALLING |
					IRQF_TRIGGER_FALLING |
						IRQF_TRIGGER_RISING,
					IRQF_TRIGGER_RISING | IRQF_ONESHOT,
					"MAX8903 USB IN", data);
					"MAX8903 USB IN", data);
		if (ret) {
		if (ret) {
			dev_err(dev, "Cannot request irq %d for USB (%d)\n",
			dev_err(dev, "Cannot request irq %d for USB (%d)\n",
@@ -319,7 +319,7 @@ static int max8903_probe(struct platform_device *pdev)
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->flt),
		ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->flt),
					NULL, max8903_fault,
					NULL, max8903_fault,
					IRQF_TRIGGER_FALLING |
					IRQF_TRIGGER_FALLING |
						IRQF_TRIGGER_RISING,
					IRQF_TRIGGER_RISING | IRQF_ONESHOT,
					"MAX8903 Fault", data);
					"MAX8903 Fault", data);
		if (ret) {
		if (ret) {
			dev_err(dev, "Cannot request irq %d for Fault (%d)\n",
			dev_err(dev, "Cannot request irq %d for Fault (%d)\n",