The primary motivation behind this patch is to allow TTY drivers to sleep while holding the TTY lock. This is particularly necessary in order to allow TTY drivers to operate asynchronously if they wish, e.g. ucom, without breaking one of the most basic assumptions of the TTY layer that operations should generally have complete or at least been submitted to hardware before we've returned to userland.
The changes in this patch are, for the most part, mechanical. TTY drivers are almost universally converted to using the new ttydisc lock, which is still a mutex. The TTY sx is still held across many calls into the driver, but for the most part they no longer need to be overtly aware of it since it's sleepable.