On 9/20/18 5:36 PM, Linus Walleij wrote:
What I mean is that $SUBJECT patch might not hurt Qualcomms GPIOs (not crash the platform) if and only if it is augmented to not try to get the initial direction from lines masked off in .valid_mask if .need_valid_mask is true. Whether it makes sense semantically is a different debate, but it seems possible to reintroduce calling .get_direction() without hurting anyone.
That means that all the logic for checking valid_mask needs to be added to the chip driver's .get_direction() function. We can add that logic to msm_gpio_get_direction (at one point, I had a patch that did that, but it was rejected).
My concern is: what if a driver depends on a .request call being made (in order to configure muxes, for example) before touching the hardware?
I wonder if this is something that really should be handled in the driver's .probe function. The driver should collect that information and pass it to add_data.