[Samsung Captivate Glide] nemo.:
This would be nice but I didn't try yet (about to do).

You're welcome to try for yourself of course.

bubor was so kind to offer a list of available modems at dualhoki.vim.hu/bubor/dev/modem/ (can't prefix links with http yet...).

According to him, the device to flash to is /dev/block/mmcblk0p7, so backup your current modem and

flash a new one:

# dd if=/dev/block/mmcblk0p7 of=/storage/sdcard0/original_modem.img
# dd if=<image> of=/dev/block/mmcblk0p7

Update:

Tried new modem firmwares myself, here are the results.

Note that I'm not testing UCLJ3.bin as this was my default firmware.

Tested:

- UCLH2.bin

- UCKL1.bin

- UCKI3.bin

- RUXKJ5.bin

No change with all of them. However, I noticed that now

(even with the 1:1 backup of /dev/block/mmcblk0p7) the

following line is appearing in `logcat -b radio`:

E/RILJ ( 588): Couldn't find 'rild' socket after 8 times, continuing to retry silently

Starting rild manually (don't know if there need to be parameter):

255|root@android:/ # rild
rild
rm failed for /data/misc/radio/dlnk, No such file or directory

After leaving the phone without power for some time the rild message

disappeared after the next boot. As the modem initialization failed

independently to the used modem firmware I guess that the problem is

one step before.

Update (again):

I disabled ril and cbd:

# setprop ctl.stop ril-daemon
# setprop ctl.stop cpboot-daemon

This removed the annoying modem queries from RILd as well as the initialization

attemps of cbd, leaving me with the kernel messages:

<6>[ 3284.355176] tegra_usb_phy_bus_reset
<3>[ 3284.385524] tegra_usb_phy_bus_reset: timeout waiting hsic high speed configuration
<6>[ 3284.924738] tegra_usb_phy_bus_reset
<6>[ 3284.930115] tegra_usb_phy_bus_reset:4:USBMODE:3 USBCMD:10005 USBPORTSC1:8001205 USBSTS:88
<3>[ 3285.194729] usb 1-1: device descriptor read/64, error -110
<6>[ 3285.305022] tegra_usb_phy_bus_reset
<3>[ 3285.335600] tegra_usb_phy_bus_reset: timeout waiting hsic high speed configuration
<6>[ 3285.874732] tegra_usb_phy_bus_reset
<6>[ 3285.880343] tegra_usb_phy_bus_reset:4:USBMODE:3 USBCMD:10005 USBPORTSC1:8001205 USBSTS:88
<6>[ 3286.144379] usb 1-1: new high speed USB device number 5 using tegra-ehci
<6>[ 3301.174482] tegra_usb_phy_bus_reset
<3>[ 3301.204835] tegra_usb_phy_bus_reset: timeout waiting hsic high speed configuration
<6>[ 3301.754370] tegra_usb_phy_bus_reset
<6>[ 3301.759737] tegra_usb_phy_bus_reset:4:USBMODE:3 USBCMD:10005 USBPORTSC1:8001205 USBSTS:88
<3>[ 3302.024418] usb 1-1: device descriptor read/64, error -110
<6>[ 4845.854766] usb 1-1: new high speed USB device number 2 using tegra-ehci
<3>[ 4846.104607] xmm_gpio_revers_bias_restore
<6>[ 4846.104984] Wake12 for irq=370
<3>[ 4846.105809] mif: misc_release: iod = umts_boot0
<3>[ 4846.324659] usb 1-1: device not accepting address 2, error -71
<6>[ 4846.325272] tegra_usb_phy_bus_reset
<3>[ 4846.355821] tegra_usb_phy_bus_reset: timeout waiting hsic high speed configuration

Most of the time failing to wait for high speed negotiation. The process is explained here:

usbmadesimple.co.uk/ums_6.htm#negotiating_high_speed

When starting cbd again, there's stuff like this again:

<6>[ 5040.754854] tegra_usb_phy_bus_reset
<6>[ 5040.760229] tegra_usb_phy_bus_reset:4:USBMODE:3 USBCMD:10005 USBPORTSC1:8001205 USBSTS:88
<6>[ 5040.932534] mif: link_pm_ioctl: 6f33
<3>[ 5040.932930] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5041.025203] usb 1-1: new high speed USB device number 3 using tegra-ehci
<6>[ 5041.434003] mif: link_pm_ioctl: 6f33
<3>[ 5041.435306] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5041.935831] mif: link_pm_ioctl: 6f33
<3>[ 5041.936478] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5042.437021] mif: link_pm_ioctl: 6f33
<3>[ 5042.437429] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5042.938414] mif: link_pm_ioctl: 6f33
<3>[ 5042.938820] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5043.442034] mif: link_pm_ioctl: 6f33
<3>[ 5043.442447] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5043.945663] mif: link_pm_ioctl: 6f33
<3>[ 5043.946070] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<6>[ 5044.447136] mif: link_pm_ioctl: 6f33
<3>[ 5044.447541] cbd: /hsic_xmit_boot: check [BOOTROM] link connected = [0]
<3>[ 5044.999469] mif: usb_tx_work: link not avail, retry reconnect.
<3>[ 5050.005780] mif: misc_release: iod = umts_boot0
<3>[ 5050.018987] cbd: /main: start cp boot
<3>[ 5050.021958] cbd: /main: Default Modem type = 1
<3>[ 5050.022303] cbd: /main: Default Boot link = 4
<3>[ 5050.022859] cbd: /main: Default Main link = 4
<3>[ 5050.025094] cbd: /main: [MODEM_IF] ggg
<3>[ 5050.027862] mif: misc_open: iod = umts_boot0
<6>[ 5050.028425] mif: usb_init_communication: 1953:cbd
<6>[ 5050.031879] tegra-ehci tegra-ehci.1: remove, state 1
<6>[ 5050.032529] usb usb1: USB disconnect, device number 1
<3>[ 5051.444731] usb 1-1: device not accepting address 3, error -110
<3>[ 5051.445340] hub 1-0:1.0: cannot disable port 1 (err = -19)
<3>[ 5051.445844] hub 1-0:1.0: cannot reset port 1 (err = -19)
<3>[ 5051.446176] hub 1-0:1.0: cannot disable port 1 (err = -19)
<3>[ 5051.446800] hub 1-0:1.0: cannot reset port 1 (err = -19)
<3>[ 5051.447131] hub 1-0:1.0: cannot disable port 1 (err = -19)
<3>[ 5051.447681] hub 1-0:1.0: unable to enumerate USB device on port 1
<3>[ 5051.447998] hub 1-0:1.0: cannot disable port 1 (err = -19)
<6>[ 5051.606881] tegra-ehci tegra-ehci.1: USB bus 1 deregistered
<6>[ 5051.644745] uhsic_phy_power_off

To me, this looks like a timing problem with the usb controller or the clock in general.

Maybe the clock is bad (anybody noticed some heavy time drifting?), which would

make udelay() be shorter/longer than expected. Maybe the hardware has some fault

and takes longer to initialize. Maybe the code (android.googlesource.com/kernel/tegra/+/e27e3bdc185813462a6c8f5b1b3622c1ae073d1b/arch/arm/mach-tegra/usb_phy.c)

is broken?