Hi, I'm using Microchip's MCP23S17 as a GPIO expander on a board of mine and I've run into an issue with the driver. One of my coworkers today discovered that if you switch on two inputs on the GPIO expander at once, only one will show up as changed from poll()(the code waits for the GPIO change as described in the documentation: https://www.kernel.org/doc/Documentation/gpio/sysfs.txt). Looking at the driver, I eventually tracked it down to the fact that the MCP23S17 seems to only set 1 bit in the INTF register, so if multiple inputs are changed at the same time the kernel will only process the first one. I fixed this on my side by reading the MCP_GPIO register when the interrupt comes in, but this changes the logic slightly for how the IRQ is handled(in mcp23s08_irq). In my particular case, it doesn't seem to matter but I'm also running an older kernel(4.4.11). Two questions with this: 1. Is the IRQ handler the correct place to handle this? It seems like it to me, but one of the comments in mcp23s08_get says "REVISIT reading this clears any IRQ ..." when reading the GPIO register. 2. If that is the right place to fix it, where is the correct place to send a patch/what is the process? My understanding is that I would do a git send-email to this list, but I wanted to make sure my understanding is correct. My current patch is on github, if that's easy for people to look at. -Robert Middleton -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html