mm/hmm: improve driver API to work and wait over a range