usb: add support for hardware handled SET ADDR/CONFIG

Some USB controllers like the one of the Rockchip 27xx handle some
requests in pure hardware. This is especially a problem for two
of them:
- SET ADDR which is used by our core to track the DEFAULT/ADDRESS
  state and is required for the drivers to work properly
- SET CONFIG which is used by our core to initialise the drivers
  by calling init_connection()
In these cases we need a way to notify the core that such requests
happened.
We do this by exporting two functions which directly notify the
core about these requests and perform the necessary init steps
required without doing the actual USB transfers. Special care is
needed because these functions could be called from an interrupt
handler. For this reason we still use the usb_queue and introduce
new IDs so that they are processed in order and safely.

No functional change is intended, both in the usbstack and on
targets without such quirks.

Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
FS#12785 - ukr translation

Change-Id: Ib52e6e588815b341457126792fbfa81acc1017de
Signed-off-by: Bertrik Sikken <bertrik@sikken.nl>
9 segment bitmap drawing:

Use %x9(id) to draw an image in the whole current viewport using the
9 segment drawer (which draws the corners as normal and *tiles*
the middle segments to the needed width/height).

Future work is to make it scale instead of tile

Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
fix the manual for image wps tags

Change-Id: Ie39dfe2ba13e4c7e84c59f84b786b54dd36ea7fa
Add the 9 segment lcd funciton to remote lcds

Change-Id: I00f9a067522624a87befcf95a811b49ad685029c
si4700: fix typo

Change-Id: I3ebeaf8188fc330921089a148cac1f3ea5740e23
Reviewed-on: http://gerrit.rockbox.org/370
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
newtools/scsitool: fix typo

Change-Id: I882956c0022db846882c68f8aac7f9d8fe49dfa8
imxtools: introduce the new scsitool

It appears that all devices based on the Sigmaltel SDK support a
common vendor specific SCSI interface when in UMS mode. This
applies to the STMP36xx and the STMP37xx. This interface supports
many operations:
- get device info
- get device paritionning
- get janus/drm info
- read/write/allocate/erase any partition
- reset (chip or to updater and/or recovery)
This includes the ability to do a firmware upgrade by rewriting
the firmware partition. The tool currently does mostly nothing
but will be enhanced depending on the reverse engineering efforts
and the use of it. It has been tested on the Fuze+ and the Zen
X-Fi2/3.

Change-Id: Ibd4b2ad364c03ada4f9001573ef4cc87cfb041d1
sbootls/rsrc: fix warnings

Change-Id: Id756cab14c9151ea74d628d002e1a203c5fbf01a
imxtools/scsitool: retrieve the minimum amount of inquiry data

Some device only report the minimum (36 bytes) amount of inquiry
data so don't ask for more

Change-Id: Ie74d659f6e27b077acba160aeb87d1e7edf82e66
sbtools/sbload: prepare support for the stmp36xx

Change-Id: I13147009f2573d80c2c3dca2852a6d7b45174e9d
imxtools/sbloader: implement stmp36xx recovery support

Change-Id: I6cfb432cd474ca00d7dff77577c0aa499b78fe2d
imxtools/hwemul: remove useless code (pwm)

The PWM code was for testing only the Zen X-Fi and should be
present in general because it could touch pins by error and
without producing any result.

Change-Id: Id20e2940cd7a057941d241254d0a867f5451e2db
imxtools/elftosb: remove duplicate include

Change-Id: I34776ba3608bb5d25ce0d0fb3c6f228a4c9effc0
imxtools/sbtools: implement sb1 write

Change-Id: Ic36d3a8fcf09350dff5988eb860d76eb11608cc2
imxtools/sbtoelf: use new method to get default xor key

Change-Id: Ie00306a3c78e7490afe9964bd55ce53019e603ed
root menu setting: make the setting handles whitespace

Change-Id: Id981bb518017e272dd7a230ae7d799ef0f55847c
rk27xx: Add status led (icon) support to SD driver

Change-Id: I47a36c0cf7319c2b100b813fdcbea024c7ae0b0a
imx233: simplify sdmmc led handling, fix typo

Change-Id: Iffbb05afd41bd0accfac9c127ea3a26fd33f1387
imxtools/sbtools: update misc with MIN

Change-Id: I17daaff068fcd3a8c70c52db5fa209082461173f