driver: support blocking read operation