linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Stephan Gerhold <stephan@gerhold.net>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.9 28/91] extcon: sm5502: Reset registers during initialization
Date: Tue, 10 Dec 2019 17:29:32 -0500	[thread overview]
Message-ID: <20191210223035.14270-28-sashal@kernel.org> (raw)
In-Reply-To: <20191210223035.14270-1-sashal@kernel.org>

From: Stephan Gerhold <stephan@gerhold.net>

[ Upstream commit 6942635032cfd3e003e980d2dfa4e6323a3ce145 ]

On some devices (e.g. Samsung Galaxy A5 (2015)), the bootloader
seems to keep interrupts enabled for SM5502 when booting Linux.
Changing the cable state (i.e. plugging in a cable) - until the driver
is loaded - will therefore produce an interrupt that is never read.

In this situation, the cable state will be stuck forever on the
initial state because SM5502 stops sending interrupts.
This can be avoided by clearing those pending interrupts after
the driver has been loaded.

One way to do this is to reset all registers to default state
by writing to SM5502_REG_RESET. This ensures that we start from
a clean state, with all interrupts disabled.

Suggested-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/extcon/extcon-sm5502.c | 4 ++++
 drivers/extcon/extcon-sm5502.h | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
index b223256885033..9d2d8a6673c88 100644
--- a/drivers/extcon/extcon-sm5502.c
+++ b/drivers/extcon/extcon-sm5502.c
@@ -69,6 +69,10 @@ struct sm5502_muic_info {
 /* Default value of SM5502 register to bring up MUIC device. */
 static struct reg_data sm5502_reg_data[] = {
 	{
+		.reg = SM5502_REG_RESET,
+		.val = SM5502_REG_RESET_MASK,
+		.invert = true,
+	}, {
 		.reg = SM5502_REG_CONTROL,
 		.val = SM5502_REG_CONTROL_MASK_INT_MASK,
 		.invert = false,
diff --git a/drivers/extcon/extcon-sm5502.h b/drivers/extcon/extcon-sm5502.h
index 974b53222f568..12f8b01e57538 100644
--- a/drivers/extcon/extcon-sm5502.h
+++ b/drivers/extcon/extcon-sm5502.h
@@ -241,6 +241,8 @@ enum sm5502_reg {
 #define DM_DP_SWITCH_UART			((DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
 						| (DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
 
+#define SM5502_REG_RESET_MASK			(0x1)
+
 /* SM5502 Interrupts */
 enum sm5502_irq {
 	/* INT1 */
-- 
2.20.1


  parent reply	other threads:[~2019-12-10 22:31 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-10 22:29 [PATCH AUTOSEL 4.9 01/91] drm: mst: Fix query_payload ack reply struct Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 02/91] drm/bridge: analogix-anx78xx: silence -EPROBE_DEFER warnings Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 03/91] iio: light: bh1750: Resolve compiler warning and make code more readable Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 04/91] iio: tcs3414: fix iio_triggered_buffer_{pre,post}enable positions Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 05/91] spi: Add call to spi_slave_abort() function when spidev driver is released Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 06/91] staging: rtl8192u: fix multiple memory leaks on error path Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 07/91] staging: rtl8188eu: fix possible null dereference Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 08/91] objtool: add kunit_try_catch_throw to the noreturn list Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 09/91] rtlwifi: prevent memory leak in rtl_usb_probe Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 10/91] libertas: fix a potential NULL pointer dereference Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 11/91] IB/iser: bound protection_sg size by data_sg size Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 12/91] media: am437x-vpfe: Setting STD to current value is not an error Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 13/91] media: i2c: ov2659: fix s_stream return value Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 14/91] media: i2c: ov2659: Fix missing 720p register config Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 15/91] media: ov6650: Fix stored frame format not in sync with hardware Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 16/91] tools/power/cpupower: Fix initializer override in hsw_ext_cstates Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 17/91] usb: renesas_usbhs: add suspend event support in gadget mode Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 18/91] hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if not idled Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 19/91] regulator: max8907: Fix the usage of uninitialized variable in max8907_regulator_probe() Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 20/91] media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init() Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 21/91] media: cec-funcs.h: add status_req checks Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 22/91] samples: pktgen: fix proc_cmd command result check logic Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 23/91] iio: proximity: sx9500: fix iio_triggered_buffer_{predisable,postenable} positions Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 24/91] mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 25/91] media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid pixel format Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 26/91] media: ti-vpe: vpe: fix a v4l2-compliance failure about frame sequence number Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 27/91] media: ti-vpe: vpe: Make sure YUYV is set as default format Sasha Levin
2019-12-10 22:29 ` Sasha Levin [this message]
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 29/91] x86/mm: Use the correct function type for native_set_fixmap() Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 30/91] iio: chemical: atlas-ph-sensor: fix iio_triggered_buffer_predisable() position Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 31/91] perf test: Report failure for mmap events Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 32/91] perf report: Add warning when libunwind not compiled in Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 33/91] usb: usbfs: Suppress problematic bind and unbind uevents Sasha Levin
2019-12-11  7:46   ` Greg Kroah-Hartman
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 34/91] iio: adc: max1027: Reset the device at probe time Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 35/91] iio: dac: ad7303: replace mlock with own lock Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 36/91] Bluetooth: hci_core: fix init for HCI_USER_CHANNEL Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 37/91] x86/mce: Lower throttling MCE messages' priority to warning Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 38/91] drm/gma500: fix memory disclosures due to uninitialized bytes Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 39/91] iio: pressure: zpa2326: fix iio_triggered_buffer_postenable position Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 40/91] rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 41/91] x86/ioapic: Prevent inconsistent state when moving an interrupt Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 42/91] arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill() Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 43/91] ALSA: hda - Fix pending unsol events at shutdown Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 44/91] libata: Ensure ata_port probe has completed before detach Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 45/91] ata: sata_mv, avoid trigerrable BUG_ON Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 46/91] pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 47/91] Bluetooth: Fix advertising duplicated flags Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 48/91] bnx2x: Fix PF-VF communication over multi-cos queues Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 49/91] spi: img-spfi: fix potential double release Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 50/91] ALSA: timer: Limit max amount of slave instances Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 51/91] rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt() Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 52/91] perf probe: Fix to find range-only function instance Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 53/91] perf probe: Fix to list probe event with correct line number Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 54/91] perf probe: Walk function lines in lexical blocks Sasha Levin
2019-12-10 22:29 ` [PATCH AUTOSEL 4.9 55/91] perf probe: Fix to probe an inline function which has no entry pc Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 56/91] perf probe: Fix to show ranges of variables in functions without entry_pc Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 57/91] perf probe: Fix to show inlined function callsite " Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 58/91] perf probe: Fix to probe a function which has no entry pc Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 59/91] perf probe: Skip overlapped location on searching variables Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 60/91] perf probe: Return a better scope DIE if there is no best scope Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 61/91] perf probe: Fix to show calling lines of inlined functions Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 62/91] perf probe: Skip end-of-sequence and non statement lines Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 63/91] perf probe: Filter out instances except for inlined subroutine and subprogram Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 64/91] ath10k: fix get invalid tx rate for Mesh metric Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 65/91] media: pvrusb2: Fix oops on tear-down when radio support is not present Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 66/91] media: si470x-i2c: add missed operations in remove Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 67/91] EDAC/ghes: Fix grain calculation Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 68/91] spi: pxa2xx: Add missed security checks Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 69/91] ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 70/91] s390/disassembler: don't hide instruction addresses Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 71/91] net: bcmgenet: Add RGMII_RXID support Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 72/91] parport: load lowlevel driver if ports not found Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 73/91] cpufreq: Register drivers only after CPU devices have been registered Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 74/91] x86/crash: Add a forward declaration of struct kimage Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 75/91] RDMA/qib: Validate ->show()/store() callbacks before calling them Sasha Levin
2019-12-11  7:45   ` Greg Kroah-Hartman
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 76/91] iwlwifi: mvm: fix unaligned read of rx_pkt_status Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 77/91] spi: tegra20-slink: add missed clk_unprepare Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 78/91] mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 79/91] btrfs: don't prematurely free work in end_workqueue_fn() Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 80/91] btrfs: don't prematurely free work in run_ordered_work() Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 81/91] spi: st-ssc4: add missed pm_runtime_disable Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 82/91] x86/insn: Add some Intel instructions to the opcode map Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 83/91] iwlwifi: check kasprintf() return value Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 84/91] fbtft: Make sure string is NULL terminated Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 85/91] debugfs: Fix !DEBUG_FS debugfs_create_automount Sasha Levin
2019-12-11  7:44   ` Greg Kroah-Hartman
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 86/91] crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 87/91] crypto: vmx - Avoid weird build failures Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 88/91] libtraceevent: Fix memory leakage in copy_filter_type Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 89/91] perf parse: Fix potential memory leak when handling tracepoint errors Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 90/91] perf intel-bts: Does not support AUX area sampling Sasha Levin
2019-12-10 22:30 ` [PATCH AUTOSEL 4.9 91/91] net: phy: initialise phydev speed and duplex sanely Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191210223035.14270-28-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=cw00.choi@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stephan@gerhold.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).