Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751835AbdGRL2F (ORCPT ); Tue, 18 Jul 2017 07:28:05 -0400 Received: from mail.izt-labs.de ([82.135.25.162]:50252 "EHLO mail.izt-labs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751530AbdGRL1U (ORCPT ); Tue, 18 Jul 2017 07:27:20 -0400 From: Johannes Poehlmann To: linux-kernel@vger.kernel.org Cc: Johannes Poehlmann , Evgeniy Polyakov , Greg Kroah-Hartman Subject: [PATCH v3 3/4] w1: ds1wm: silence interrupts on HW before claiming the interrupt Date: Tue, 18 Jul 2017 13:26:52 +0200 Message-Id: <1500377213-1117-4-git-send-email-johannes.poehlmann@izt-labs.de> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1500377213-1117-1-git-send-email-johannes.poehlmann@izt-labs.de> References: <1500377213-1117-1-git-send-email-johannes.poehlmann@izt-labs.de> In-Reply-To: <6a03463f-7e93-8ee7-d56f-aaed1e2befba@izt-labs.de> References: <6a03463f-7e93-8ee7-d56f-aaed1e2befba@izt-labs.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1113 Lines: 32 Signed-off-by: Johannes Poehlmann Acked-by: Evgeniy Polyakov --- drivers/w1/masters/ds1wm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/w1/masters/ds1wm.c b/drivers/w1/masters/ds1wm.c index 1b37def..7cb4460 100644 --- a/drivers/w1/masters/ds1wm.c +++ b/drivers/w1/masters/ds1wm.c @@ -510,6 +510,7 @@ static int ds1wm_probe(struct platform_device *pdev) struct ds1wm_driver_data *plat; struct resource *res; int ret; + u8 inten; if (!pdev) return -ENODEV; @@ -563,6 +564,11 @@ static int ds1wm_probe(struct platform_device *pdev) ds1wm_data->int_en_reg_none = (plat->active_high ? DS1WM_INTEN_IAS : 0); ds1wm_data->reset_recover_delay = plat->reset_recover_delay; + /* Mask interrupts, set IAS before claiming interrupt */ + inten = ds1wm_read_register(ds1wm_data, DS1WM_INT_EN); + ds1wm_write_register(ds1wm_data, + DS1WM_INT_EN, ds1wm_data->int_en_reg_none); + if (res->flags & IORESOURCE_IRQ_HIGHEDGE) irq_set_irq_type(ds1wm_data->irq, IRQ_TYPE_EDGE_RISING); if (res->flags & IORESOURCE_IRQ_LOWEDGE) -- 2.1.4