Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1001010yba; Thu, 4 Apr 2019 02:08:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqzoBP/5uYvPjIDj3QDTgOokt46ZYkNvJeCZdyGsLaMkTRg4TM45jMS29buCCCiCta7zbntj X-Received: by 2002:a63:e304:: with SMTP id f4mr4417625pgh.374.1554368886899; Thu, 04 Apr 2019 02:08:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554368886; cv=none; d=google.com; s=arc-20160816; b=CpItnfE+m0+HoyFJBhxQRX7M1hFzKOBwRxb9T7CH7QKHeWG9zoHzZWpXXFIu3BMOwc 3k5NHz6YEXURo0U8lxw+vZZZiI2p0cxqicL23vy0TprA+3fL6hXfowwGqc1TA+TxMUt5 9UYqp58GttpXlEhO3VucyYlbM/CM8EsxwHYLUaw67hr5fZ6XmunAZ52bwyY6V2Z81I/E OaOOs8e0n5wM0A/Z1b6tDi7m803rOckmGo5DhEplfLoppEnI89bshAbwbbC8cEusI9vC h/0RQf+7FLWcmpWj7LZtQKg13MBn13/deXh0psP+wrDY4+TJHgqTiJn9CT8cJAlF05uM jwYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=u7m11Z32SWPgq5PAOYK6NVu6IuA3hTmbrw0DsOHHCow=; b=pPP7IbDFIDYW5M3GpUA0bR5DRlXtR45K/VHYUK2mcAyotFvKaKcTQ9peK1aM4QJeIN dczVozIFxwRKAUd44OaifJUkfJCaMnw2iJt8F4P2yVjkG76iA1Bug+KP7ytCyqs5e2Ko L9t/1HIqTDOH2ycy4ZNbB8yIsLKankJ654ZLn9lO3ZiH9fRAePZQWTgK5kRU4VG1pJsD EKRTjGqwAJ/hjuaiVa3TKayVRNBCnFyXAd6H8ucX2e18MdR0seUyv311BSB3oxUikjuo +L8ru6JNU28og+evWHhd6YTMBOnU1eVw5MnAZ9lT5XczPWbFFMgwN2sfuDUHhrn5Yj+x r9+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=n7p91In5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u9si7617137plq.162.2019.04.04.02.07.51; Thu, 04 Apr 2019 02:08:06 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=n7p91In5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732453AbfDDJHH (ORCPT + 99 others); Thu, 4 Apr 2019 05:07:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:45842 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732441AbfDDJHE (ORCPT ); Thu, 4 Apr 2019 05:07:04 -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 DE33621741; Thu, 4 Apr 2019 09:07:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554368823; bh=vSt3M3YXWkrgabKgx1LG/SgLsaLATUHWXcZt3/Mo5EQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n7p91In55/6zDFTEBY/9Y4oflpH6PAL/2653BOXD7uUjw/Dj27MYpXZ0qLLc+Rbwo HY0nKIP/pdJ6zSY8RUoUwXtjkmf9PfjyRYrWv4AIzoEhDUQtStHQ0922tmJd8WPwV2 KwBI1PWUM9ULGmOfqfWE+tG/L8Q78EEOzR2e+vnY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Steve Longerbeam , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 4.19 167/187] media: rcar-vin: Allow independent VIN link enablement Date: Thu, 4 Apr 2019 10:48:24 +0200 Message-Id: <20190404084610.950421775@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084603.119654039@linuxfoundation.org> References: <20190404084603.119654039@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit c5ff0edb8e2270a75935c73217fb0de1abd2d910 ] There is a block of code in rvin_group_link_notify() that prevents enabling a link to a VIN node if any entity in the media graph is in use. This prevents enabling a VIN link even if there is an in-use entity somewhere in the graph that is independent of the link's pipeline. For example, the code block will prevent enabling a link from the first rcar-csi2 receiver to a VIN node even if there is an enabled link somewhere far upstream on the second independent rcar-csi2 receiver pipeline. If this code block is meant to prevent modifying a link if any entity in the graph is actively involved in streaming (because modifying the CHSEL register fields can disrupt any/all running streams), then the entities stream counts should be checked rather than the use counts. (There is already such a check in __media_entity_setup_link() that verifies the stream_count of the link's source and sink entities are both zero, but that is insufficient, since there should be no running streams in the entire graph). Modify the code block to check the entity stream_count instead of the use_count (and elaborate on the comment). VIN node links can now be enabled even if there are other independent in-use entities that are not streaming. Fixes: c0cc5aef31 ("media: rcar-vin: add link notify for Gen3") Signed-off-by: Steve Longerbeam Reviewed-by: Niklas Söderlund Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/platform/rcar-vin/rcar-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index ce09799976ef..e1085e3ab3cc 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -131,9 +131,13 @@ static int rvin_group_link_notify(struct media_link *link, u32 flags, !is_media_entity_v4l2_video_device(link->sink->entity)) return 0; - /* If any entity is in use don't allow link changes. */ + /* + * Don't allow link changes if any entity in the graph is + * streaming, modifying the CHSEL register fields can disrupt + * running streams. + */ media_device_for_each_entity(entity, &group->mdev) - if (entity->use_count) + if (entity->stream_count) return -EBUSY; mutex_lock(&group->lock); -- 2.19.1