I'm not sure that the battery consumption stats are accurate with the modem.
Though given the big battery consomation that you report it is worth verifying that the modem is off.
In samsung-ipc/devices/n7100/n7100.c line 79 , we currently have:
ipc_client_log(client, "Opened modem link device");
rc = xmm626_kernel_smdk4412_hci_power(client, 0);
if (rc < 0) {
ipc_client_log(client, "Turning the modem off failed");
goto error;
}
ipc_client_log(client, "Turned the modem off");
rc = xmm626_kernel_smdk4412_power(client, modem_boot_fd, 1);
if (rc < 0) {
ipc_client_log(client, "Powering on the modem failed");
goto error;
}
The functions used above are in samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.c and XMM626_SEC_MODEM_EHCI_POWER_SYSFS and XMM626_SEC_MODEM_OHCI_POWER_SYSFS are defined in samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h .
So for xmm626_kernel_smdk4412_hci_power, we can simply read and write 0 and 1 in /sys/devices/platform/s5p-ehci/ehci_power and /sys/devices/platform/s5p-ohci/ohci_power to see if the link between the modem and the SOC (the Exynos) is on.
For xmm626_kernel_smdk4412_power, it uses an ioctl so that's not very convenient. But behind the hood it toggles some GPIOs, especially the GPIOs to power on the modem (among other GPIOs), so we might be able to get that either from debugfs (/sys/kernel/debug) or by talking to the GPIO controller directly from userspace with tools like exynos-gpio-tool .