From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A3F4C76186 for ; Wed, 24 Jul 2019 20:20:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 55246206BF for ; Wed, 24 Jul 2019 20:20:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1563999654; bh=IWb1Irar8SqHksUNsC8W+2nsDh8kV/4NPrtStJsWOso=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=q0Gi3FrCgmwoivufQhQPO6Fo8dIiBXOveSJ7g3GLi19Pw9jdt+xbaYhIdeR93dXeM EhtmqikSDEZ/BpUgwBYCziTxz68cqBKf3zHNocgszaKXVrDgn82JN71T3Bz0QfCoYP jElkycZ53PfWm6GT0GVZx9zEu1osc9g/4Q7S4HZI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390659AbfGXTqD (ORCPT ); Wed, 24 Jul 2019 15:46:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:50702 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390623AbfGXTp7 (ORCPT ); Wed, 24 Jul 2019 15:45:59 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 88D6E2083B; Wed, 24 Jul 2019 19:45:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1563997558; bh=IWb1Irar8SqHksUNsC8W+2nsDh8kV/4NPrtStJsWOso=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RUv4Qxm1m69lqz15dUZUyoKAkQPL6+daVrnv6ToMJTPnyHtTzfAF+tnA4qFgQHMb+ lk34/pBPCP56RXdY5bRviGzwVvDNLVTwYF3L2kPneBDO3UG054zvDOdY4yLJa7tOQk 83jD445THFXeecp0jMCqPi7OiAUiYhzTV44ABgZQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jae Hyun Yoo , Eddie James , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.1 063/371] media: aspeed: change irq to threaded irq Date: Wed, 24 Jul 2019 21:16:55 +0200 Message-Id: <20190724191729.632271766@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190724191724.382593077@linuxfoundation.org> References: <20190724191724.382593077@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 12ae1c1bf5db2f33fcd9092a96f630291c4b181a ] Differently from other Aspeed drivers, this driver calls clock control APIs in interrupt context. Since ECLK is coupled with a reset bit in clk-aspeed module, aspeed_clk_enable will make 10ms of busy waiting delay for triggering the reset and it will eventually disturb other drivers' interrupt handling. To fix this issue, this commit changes this driver's irq to threaded irq so that the delay can be happened in a thread context. Signed-off-by: Jae Hyun Yoo Reviewed-by: Eddie James Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/platform/aspeed-video.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index 692e08ef38c0..668d8827e281 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -1600,8 +1600,9 @@ static int aspeed_video_init(struct aspeed_video *video) return -ENODEV; } - rc = devm_request_irq(dev, irq, aspeed_video_irq, IRQF_SHARED, - DEVICE_NAME, video); + rc = devm_request_threaded_irq(dev, irq, NULL, aspeed_video_irq, + IRQF_ONESHOT | IRQF_SHARED, DEVICE_NAME, + video); if (rc < 0) { dev_err(dev, "Unable to request IRQ %d\n", irq); return rc; -- 2.20.1