Locking is changed.

Since device methods require to sleep, sx is employed to serialize.
Nevertheless, sx is unavailable in a interrupt handler since it
is not allowed to sleep.
In order to protect softc in even unsleepable context,
Mutex (mtx) is also used and mtx is unlocked when sleeping.