Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[worker] Enable android usb before starting mtpd. JB#41748
While in configfs we must start mtpd (so that it writes endpoint config)
before we can enable udc, apparently the reverse applies at least in
some devices utilizing android usb.

When android usb backend is in use, do the gadget configuration before
starting mtpd.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed Sep 12, 2018
1 parent 9ee51c1 commit 171d582
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/usb_moded-worker.c
Expand Up @@ -531,7 +531,9 @@ worker_switch_to_mode(const char *mode)
* as they will use the worker_get_usb_mode_data function */
worker_set_usb_mode_data(data);

if( worker_mode_is_mtp_mode(mode) ) {
/* When dealing with configfs, we can't enable UDC without
* already having mtpd running */
if( worker_mode_is_mtp_mode(mode) && configfs_in_use() ) {
if( !worker_start_mtpd() )
goto FAILED;
}
Expand All @@ -542,6 +544,14 @@ worker_switch_to_mode(const char *mode)
if( !modesetting_enter_dynamic_mode() )
goto FAILED;

/* When dealing with android usb, it must be enabled before
* we can start mtpd. Assumption is that the same applies
* when using kernel modules. */
if( worker_mode_is_mtp_mode(mode) && !configfs_in_use() ) {
if( !worker_start_mtpd() )
goto FAILED;
}

goto SUCCESS;
}

Expand Down

0 comments on commit 171d582

Please sign in to comment.