Yes we do need it. The request does some initialization that is not done by the gpio keyboard driver. But, the keyboard driver cannot take ownership of the gpios unless we call free here. I know it looks weird, but that was the only way I found to make it work.