qiprog: Do not use GNU old-style field designator extension

clang complains when initializing struct fields with "field: value,"
instead of ".field = value,".

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog: Move device tests to a separate file

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog: Fix copy-paste error in debug message

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog: Add test to check for buffering bugs in device or driver

These tests stress set_address/readn combinations in a number of ways which
expose seemingly innocent bugs. More details in comments.

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>