usb_master: Fix trivial error to allow compiling with clang

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
NFM: usb_master: Allow buffer overflow in readn()

The number of USB transfers was determined by a round-down division. This
meant that whenever we are asked to read data with a size not a multiple of
the endpoint size, we would read less.

Switch to using a round-up division. This will cause the destination buffer
to overflow in a number of situations. The overflows will be fixed in
subsequent commits.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Store maximum packet size for bulk endpoints

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Use endpoint size for bulk transfer size

Do not hardcode the packet size to 64 bytes, but instead use the value from
the endpoint descriptor.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Create buffer for storing leftover data

The device will send data in chunks of the endpoint size until it finishes
sending the entire range given in set_address(). When we are requested to
read less than that, we need to store the excess data until the next read.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Invalidate read buffer on set_address calls

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>