USB: storage: Allow UICC cards to perform house keeping operations

Some UICC cards needs to perform the flash related operations during idle
time. The idle time is detected by the card by counting the consecutive
TEST_UNIT_READY commands. If the card does not find idle time, it perform
them while processing a WRITE(10) command. If the card is kept busy which
happens during continuous mass storage interfaces, it takes lot of time to
respond to the commands on the CCID interface.

Introduce a quirk called US_FL_TUR_AFTER_WRITE for sending 5 consecutive
TEST_UNIT_READY commands for every 8 WRITE(10) commands. This approach
forces the card to perform house keeping operations during continuous
mass storage transfers. The test result indicate no degradation in
the performance.

CRs-Fixed: 639155
Change-Id: Icff9ac232973d2adceb7d968dca5a2c987031384
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
5 files changed