More fields in the spi packet(s) have been identified, and the
structures reworked accordingly. In particular several fields in the
overall header of the spi packet, as well the message header have been
clarified. However, a number of fields are still unknown or have "magic"
values; and perforce there's some random guesswork such as whether
something is two 1-byte fields or a single 2-byte field.
This lays the groundwork for improving the packet handling in the next
commits.
This is mainly for new hardware, where we don't have the dimensions of
the touchpad yet - with this users can explicitly set the dimensions
until such time as they have been added to the internal list.
The write_active flag was not being cleared, making the module
unremovable unless a subsequent write command succeeded. And similarly
if this happened during a drain the notification was never sent. So
perform a full cleanup after an error.
Replaced raw __set_bit()'s with input_set_capability() for consistency.
With this the explicit setting of evbit is not necessary.
Also, removed duplicate BTN_LEFT setting.
Put all the module notes together in their respective paragraphs.
Added note about ensuring the modules are put in the initrd and that
doing so appears to solve the irqpoll issue on these machines.
Simplified instructions for setting up the modules in the initrd.