MC7455 in X220 with ModemManager 1.6.4
Bjørn Mork
bjorn at mork.no
Fri Jun 9 20:28:01 UTC 2017
Dan Williams <dcbw at redhat.com> writes:
> On Fri, 2017-06-09 at 01:25 +0200, Dominik Strnad wrote:
>> Hello Bjorn,
>>
>> thank you. I meanwhile succeeded to get car into online mode by
>> isolating
>> pin20 on minPCIe card. But I at least confirm, that after using
>> ENTERCND
>> the PCOFFEN do not report error anymore (but the card was already not
>> in
>> disable state because of pin isolation. But I have a question - what
>> is
>> better? To use your command (probably as part of some udev rule?) or
>> keep
>> that pin isolated? Thank you.
>
> Ideally figure out why BIOS isn't letting the card be enabled :)
I still think this is a BIOS flag which needs to be set or cleared, but
I don't know the exact magic spell. Looking at the thinkpad_acpi driver
now, I get a distinct deja vu feeling... If I only had taken some notes
:-(
I wonder if I simply might have temporarily disabled the "HWPRESENT"
test in the driver, and let the default wan_shutdown() just update the
state? In any case, I do believe the solution is hidden somewhere here:
static void wan_shutdown(void)
{
/* Order firmware to save current state to NVRAM */
if (!acpi_evalf(NULL, NULL, "\\WGSV", "vd",
TP_ACPI_WGSV_SAVE_STATE))
pr_notice("failed to save WWAN state to NVRAM\n");
else
vdbg_printk(TPACPI_DBG_RFKILL,
"WWAN state saved to NVRAM\n");
}
static void wan_exit(void)
{
sysfs_remove_group(&tpacpi_pdev->dev.kobj,
&wan_attr_group);
tpacpi_destroy_rfkill(TPACPI_RFK_WWAN_SW_ID);
wan_shutdown();
}
static int __init wan_init(struct ibm_init_struct *iibm)
{
int res;
int status = 0;
vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL,
"initializing wan subdriver\n");
TPACPI_ACPIHANDLE_INIT(hkey);
tp_features.wan = hkey_handle &&
acpi_evalf(hkey_handle, &status, "GWAN", "qd");
vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL,
"wan is %s, status 0x%02x\n",
str_supported(tp_features.wan),
status);
#ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES
if (dbg_wwanemul) {
tp_features.wan = 1;
pr_info("wwan switch emulation enabled\n");
} else
#endif
if (tp_features.wan &&
!(status & TP_ACPI_WANCARD_HWPRESENT)) {
/* no wan hardware present in system */
tp_features.wan = 0;
dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL,
"wan hardware not installed\n");
}
if (!tp_features.wan)
return 1;
..
> But failing that, either PCOFFEN or the taping of pin20 are probably
> fine. PCOFFEN is likely the better solution, though that may be reset
> on firmware updates.
I don't think it will be reset. NVRAM settings are usually kept, unless
the firmware upgrade includes a specific setting. And they normally
don't touch PCOFFEN.
Bjørn
More information about the ModemManager-devel
mailing list