Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp10407828ybi; Wed, 24 Jul 2019 22:40:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqxQ1Xq1Fc1+Dy05pID7EBXRyYM3W/9Ij1CrOpAq4Qx+P+K7+qgOMCwIe9vl+tlsCQyobrXR X-Received: by 2002:a62:874d:: with SMTP id i74mr14573873pfe.94.1564033224596; Wed, 24 Jul 2019 22:40:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564033224; cv=none; d=google.com; s=arc-20160816; b=hx/Rs6bGWvdNd35PK2OBawN2Rj/jU7QtOXWltMIAz3/wZ/a5Tmzks3ssy92KsxZBXa OTk1q+d+qfyrOV5dw3LjX092gfSASHwYLmFUgwfPvjauncHBeNU4A/REFoRedaoFh78q O5L8j0lTJW0W13WQJbnHVkmsa+9UEmu5kN+5VM/8lsqWVOUeyfURTzk7p5D3gPjEP5V4 MdLV7ZMgG+hKJcwJScrYhsMS43aXF/+7kC65UTTc4sPbJrqUlP2o8LkKSNk+YwZxgobc zdV1skZSIhL3M0sQ+W81Jh2Kqpe3MV7T89QVrD4k1W6owduQP0RiUY3NlMYdKxRTxv2q THwQ== 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=iyBfIWnFEoD8qncmqkAJTzevcuKCC5Q/gQwHsNym9ZA=; b=UqlP9E7sG2ilDAsjQV8OEL77lB9PSYY+LRHgUQdpjwNPAQH9QKKqpTkzFMngkBoKCC 6Jgx7nh4FMa5xirkVHFM+EiDexXQRxT+4Z6RGY79V8f2fAHJnFabw35MMV63wxf7GnhU jmhOaGBQ0lGivAmaDWkZzq/SDel9+bjPUVANG24qNSLUw1cBdSmL7KvzijHyRRIIcD2D VjduumYF8q6B2Dmure4QcQOEtNCgNYjaizDsE1ty9129IOFZ3zFHItSAm/fP2Qj6IspL cJ3XGmcjXEso5AxWqx3MQ9P8fDxctU4E5wRf3h3rM1ret4eXn+sQfRb3dzl+bvgiL5q8 24hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="qk1BjP/h"; 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 v8si14799267plg.122.2019.07.24.22.40.09; Wed, 24 Jul 2019 22:40:24 -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="qk1BjP/h"; 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 S2392345AbfGXUBw (ORCPT + 99 others); Wed, 24 Jul 2019 16:01:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:51014 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392322AbfGXUBu (ORCPT ); Wed, 24 Jul 2019 16:01:50 -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 DE0C721855; Wed, 24 Jul 2019 20:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1563998509; bh=zAhXo+XxwekVmP5ztzPpytOVBqraW1kB57TckRhR+Ts=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qk1BjP/hGpspSFZNOQSHZKCTAs7D3OtxDKZ1oV9IGmoly/zMRbLKzqBDK/ayRqrZ/ ktxsV+LrlBp8zb0VwnC46j3CX/mvEIghUN8DHd1Ewd9hh0qcBR06Ri41wEX6jvFiDA asxfY3yUgBV1vDpm3nc/166teSo9Q5AcQ2et3IMg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lubomir Rintel , Sakari Ailus , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 4.19 019/271] media: marvell-ccic: fix DMA s/g desc number calculation Date: Wed, 24 Jul 2019 21:18:08 +0200 Message-Id: <20190724191656.889248302@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190724191655.268628197@linuxfoundation.org> References: <20190724191655.268628197@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 0c7aa32966dab0b8a7424e1b34c7f206817953ec ] The commit d790b7eda953 ("[media] vb2-dma-sg: move dma_(un)map_sg here") left dma_desc_nent unset. It previously contained the number of DMA descriptors as returned from dma_map_sg(). We can now (since the commit referred to above) obtain the same value from the sg_table and drop dma_desc_nent altogether. Tested on OLPC XO-1.75 machine. Doesn't affect the OLPC XO-1's Cafe driver, since that one doesn't do DMA. [mchehab+samsung@kernel.org: fix a checkpatch warning] Fixes: d790b7eda953 ("[media] vb2-dma-sg: move dma_(un)map_sg here") Signed-off-by: Lubomir Rintel Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/platform/marvell-ccic/mcam-core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c b/drivers/media/platform/marvell-ccic/mcam-core.c index dfdbd4354b74..eeee15ff007d 100644 --- a/drivers/media/platform/marvell-ccic/mcam-core.c +++ b/drivers/media/platform/marvell-ccic/mcam-core.c @@ -200,7 +200,6 @@ struct mcam_vb_buffer { struct list_head queue; struct mcam_dma_desc *dma_desc; /* Descriptor virtual address */ dma_addr_t dma_desc_pa; /* Descriptor physical address */ - int dma_desc_nent; /* Number of mapped descriptors */ }; static inline struct mcam_vb_buffer *vb_to_mvb(struct vb2_v4l2_buffer *vb) @@ -608,9 +607,11 @@ static void mcam_dma_contig_done(struct mcam_camera *cam, int frame) static void mcam_sg_next_buffer(struct mcam_camera *cam) { struct mcam_vb_buffer *buf; + struct sg_table *sg_table; buf = list_first_entry(&cam->buffers, struct mcam_vb_buffer, queue); list_del_init(&buf->queue); + sg_table = vb2_dma_sg_plane_desc(&buf->vb_buf.vb2_buf, 0); /* * Very Bad Not Good Things happen if you don't clear * C1_DESC_ENA before making any descriptor changes. @@ -618,7 +619,7 @@ static void mcam_sg_next_buffer(struct mcam_camera *cam) mcam_reg_clear_bit(cam, REG_CTRL1, C1_DESC_ENA); mcam_reg_write(cam, REG_DMA_DESC_Y, buf->dma_desc_pa); mcam_reg_write(cam, REG_DESC_LEN_Y, - buf->dma_desc_nent*sizeof(struct mcam_dma_desc)); + sg_table->nents * sizeof(struct mcam_dma_desc)); mcam_reg_write(cam, REG_DESC_LEN_U, 0); mcam_reg_write(cam, REG_DESC_LEN_V, 0); mcam_reg_set_bit(cam, REG_CTRL1, C1_DESC_ENA); -- 2.20.1