Skip to content

Commit e2b7441

Browse files
jwrdegoedeandy-shev
authored andcommitted
pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output
Suspending Goodix touchscreens requires changing the interrupt pin to output before sending them a power-down command. Followed by wiggling the interrupt pin to wake the device up, after which it is put back in input mode. On Cherry Trail device the interrupt pin is listed as a GpioInt ACPI resource so we can do this without problems as long as we release the IRQ before changing the pin to output mode. On Bay Trail devices with a Goodix touchscreen direct-irq mode is used in combination with listing the pin as a normal GpioIo resource. This works fine, but this triggers the WARN in byt_gpio_set_direction-s output path because direct-irq support is enabled on the pin. This commit replaces the WARN call with a dev_info_once call, fixing a bunch of WARN splats in dmesg on each suspend/resume cycle. Signed-off-by: Hans de Goede <[email protected]> Acked-by: Mika Westerberg <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]>
1 parent a236805 commit e2b7441

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

drivers/pinctrl/intel/pinctrl-baytrail.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -817,15 +817,15 @@ static int byt_gpio_set_direction(struct pinctrl_dev *pctl_dev,
817817
value &= ~BYT_DIR_MASK;
818818
if (input)
819819
value |= BYT_OUTPUT_EN;
820-
else
820+
else if (readl(conf_reg) & BYT_DIRECT_IRQ_EN)
821821
/*
822822
* Before making any direction modifications, do a check if gpio
823823
* is set for direct IRQ. On baytrail, setting GPIO to output
824-
* does not make sense, so let's at least warn the caller before
824+
* does not make sense, so let's at least inform the caller before
825825
* they shoot themselves in the foot.
826826
*/
827-
WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
828-
"Potential Error: Setting GPIO with direct_irq_en to output");
827+
dev_info_once(vg->dev, "Potential Error: Setting GPIO with direct_irq_en to output");
828+
829829
writel(value, val_reg);
830830

831831
raw_spin_unlock_irqrestore(&byt_lock, flags);

0 commit comments

Comments
 (0)