OS:Android4.4
Kernel: 3.4
CPU: OMAP4430
Wireless module: WL1273
problem: Bluetooth unable turn on. To trace code in kernel/drivers/misc/ti-st driver, seems can not get chip, maj_ver, min_ver information from module.
dmesg:
====================
...
[ 11.161315] android_usb: already disabled
[ 11.170074] adb_open
[ 11.173126] mtp_bind_config
[ 11.177825] adb_bind_config
[ 11.198181] EXT4-fs (mmcblk0p13): re-mounted. Opts: (null)
shell@MC18:/ $ [ 11.415679] PM_Batt: BATT_DET_START
[ 11.627197] (stk) : waiting for ver info- timed out
[ 11.627227] (stk) :kim: failed to read local ver
[ 11.627227] (stk) :download firmware failed
[ 11.627227] (stk) :ldisc_install = 0
[ 11.634552] (stc): st_tty_close
[ 11.970520] sharp_LQ0_dpi_panel display0: failed to set lcd brightness
...
======================
From: kernel/drivers/misc/ti-st/st-kim.c
=================
static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name)
{
unsigned short version = 0, chip = 0, min_ver = 0, maj_ver = 0;
const char read_ver_cmd[] = { 0x01, 0x01, 0x10, 0x00 };
pr_debug("%s", __func__);
INIT_COMPLETION(kim_gdata->kim_rcvd);
if (4 != st_int_write(kim_gdata->core_data, read_ver_cmd, 4)) {
pr_err("kim: couldn't write 4 bytes");
return -EIO;
}
if (!wait_for_completion_interruptible_timeout(
&kim_gdata->kim_rcvd, msecs_to_jiffies(CMD_RESP_TIME))) {
pr_err(" waiting for ver info- timed out ");
return -ETIMEDOUT;
}
INIT_COMPLETION(kim_gdata->kim_rcvd);
version =
MAKEWORD(kim_gdata->resp_buffer[13],
kim_gdata->resp_buffer[14]);
chip = (version & 0x7C00) >> 10;
min_ver = (version & 0x007F);
maj_ver = (version & 0x0380) >> 7;
if (version & 0x8000)
maj_ver |= 0x0008;
sprintf(bts_scr_name, "TIInit_%d.%d.%d.bts", chip, maj_ver, min_ver);
......
return 0;
}
Please help this, thanks
Johnny