From nobody Sat May 10 06:18:10 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1606216114; cv=none; d=zohomail.com; s=zohoarc; b=f1J7OYFD16num4ErtmlMsdkAf95Tf0r3yoTi0xmYRHkgxJ044YhPXU4ocknjHHQ10h3ixj6tEgaLrfgCljNjN5mm+9tQErDY4qFUutPMbJ4AOEOD3LeZOXeTdW3R7W+OGmt4lMvEo6ORcVBBjo6Fys9Se5e0d8BHlN3K2phurNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606216114; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=I0PUtumvAG1SSgFgEUPMH9xDY/3ptb80A32Pjj4+Nfs=; b=R+MOst70JwNQ5QkMEIULAlLTTgi+jT66rUyHtbr/sI5WmIN6BvyOUu2aW1VJjrTFZpQguVvPUwS3JJSs8nMoguSJRgO2WxoBj2DVKTWyVLVy9ewio/50SoHYRfiJrTNkPPpsnAz2DDbE1PBik5DWny0GyDpP80TDgtqI+xsZOhE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1606216114687480.44445476094245; Tue, 24 Nov 2020 03:08:34 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732815AbgKXLIS (ORCPT ); Tue, 24 Nov 2020 06:08:18 -0500 Received: from mail.kernel.org ([198.145.29.99]:33634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732014AbgKXLGc (ORCPT ); Tue, 24 Nov 2020 06:06:32 -0500 Received: from mail.kernel.org (ip5f5ad5c3.dynamic.kabel-deutschland.de [95.90.213.195]) (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 D0C4D20782; Tue, 24 Nov 2020 11:06:30 +0000 (UTC) Received: from mchehab by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1khW9U-000FZb-OF; Tue, 24 Nov 2020 12:06:28 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606215991; bh=+o4sKZpfph5wf9xaM5xJDLWPdI132bLuOkXE3mw2ky4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zktEnhA++bfbTNFgMMRqQxjQ64qJdwPRoqZAXlNLV+mHNd+yREPRiaIAyd/lBkrS9 1BafuvA+Txaf/7etHlkUM31La2i/LptcE1wUNabF+6rNg7kudVrPEfjuuZ25mxS311 GXQxVtGDHV3hWrNtCJ7nl8Oa6b5CJGbjb1mUrF0k= From: Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , "Daniel W. S. Almeida" , Mauro Carvalho Chehab , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH 07/31] media: vidtv: avoid data copy when initializing the multiplexer Date: Tue, 24 Nov 2020 12:06:03 +0100 Message-Id: X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: Mauro Carvalho Chehab To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Initialize the fields of the arguments directly when declaring it, and pass the args as a pointer, instead of copying them. Signed-off-by: Mauro Carvalho Chehab --- .../media/test-drivers/vidtv/vidtv_bridge.c | 28 ++++++++++--------- drivers/media/test-drivers/vidtv/vidtv_mux.c | 28 +++++++++---------- drivers/media/test-drivers/vidtv/vidtv_mux.h | 2 +- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/drivers/media/test-drivers/vidtv/vidtv_bridge.c b/drivers/medi= a/test-drivers/vidtv/vidtv_bridge.c index e846aaab2c44..3fc7bf00a3e5 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_bridge.c +++ b/drivers/media/test-drivers/vidtv/vidtv_bridge.c @@ -161,7 +161,17 @@ vidtv_bridge_on_new_pkts_avail(void *priv, u8 *buf, u3= 2 npkts) =20 static int vidtv_start_streaming(struct vidtv_dvb *dvb) { - struct vidtv_mux_init_args mux_args =3D {0}; + struct vidtv_mux_init_args mux_args =3D { + .mux_rate_kbytes_sec =3D mux_rate_kbytes_sec, + .on_new_packets_available_cb =3D vidtv_bridge_on_new_pkts_avail, + .pcr_period_usecs =3D pcr_period_msec * USEC_PER_MSEC, + .si_period_usecs =3D si_period_msec * USEC_PER_MSEC, + .pcr_pid =3D pcr_pid, + .transport_stream_id =3D VIDTV_DEFAULT_TS_ID, + .network_id =3D VIDTV_DEFAULT_NETWORK_ID, + .network_name =3D VIDTV_DEFAULT_NETWORK_NAME, + .priv =3D dvb, + }; struct device *dev =3D &dvb->pdev->dev; u32 mux_buf_sz; =20 @@ -170,21 +180,13 @@ static int vidtv_start_streaming(struct vidtv_dvb *dv= b) return 0; } =20 - mux_buf_sz =3D (mux_buf_sz_pkts) ? mux_buf_sz_pkts : vidtv_bridge_mux_buf= _sz_for_mux_rate(); + mux_buf_sz =3D (mux_buf_sz_pkts) ? mux_buf_sz_pkts : + vidtv_bridge_mux_buf_sz_for_mux_rate(); =20 - mux_args.mux_rate_kbytes_sec =3D mux_rate_kbytes_sec; - mux_args.on_new_packets_available_cb =3D vidtv_bridge_on_new_pkts_avail; - mux_args.mux_buf_sz =3D mux_buf_sz; - mux_args.pcr_period_usecs =3D pcr_period_msec * 1000; - mux_args.si_period_usecs =3D si_period_msec * 1000; - mux_args.pcr_pid =3D pcr_pid; - mux_args.transport_stream_id =3D VIDTV_DEFAULT_TS_ID; - mux_args.network_id =3D VIDTV_DEFAULT_NETWORK_ID, - mux_args.network_name =3D VIDTV_DEFAULT_NETWORK_NAME, - mux_args.priv =3D dvb; + mux_args.mux_buf_sz =3D mux_buf_sz; =20 dvb->streaming =3D true; - dvb->mux =3D vidtv_mux_init(dvb->fe[0], dev, mux_args); + dvb->mux =3D vidtv_mux_init(dvb->fe[0], dev, &mux_args); if (!dvb->mux) return -ENOMEM; vidtv_mux_start_thread(dvb->mux); diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.c b/drivers/media/t= est-drivers/vidtv/vidtv_mux.c index bba3f2315531..89b19f0844b8 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_mux.c +++ b/drivers/media/test-drivers/vidtv/vidtv_mux.c @@ -466,7 +466,7 @@ void vidtv_mux_stop_thread(struct vidtv_mux *m) =20 struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe, struct device *dev, - struct vidtv_mux_init_args args) + struct vidtv_mux_init_args *args) { struct vidtv_mux *m; =20 @@ -476,28 +476,28 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend = *fe, =20 m->dev =3D dev; m->fe =3D fe; - m->timing.pcr_period_usecs =3D args.pcr_period_usecs; - m->timing.si_period_usecs =3D args.si_period_usecs; + m->timing.pcr_period_usecs =3D args->pcr_period_usecs; + m->timing.si_period_usecs =3D args->si_period_usecs; =20 - m->mux_rate_kbytes_sec =3D args.mux_rate_kbytes_sec; + m->mux_rate_kbytes_sec =3D args->mux_rate_kbytes_sec; =20 - m->on_new_packets_available_cb =3D args.on_new_packets_available_cb; + m->on_new_packets_available_cb =3D args->on_new_packets_available_cb; =20 - m->mux_buf =3D vzalloc(args.mux_buf_sz); + m->mux_buf =3D vzalloc(args->mux_buf_sz); if (!m->mux_buf) goto free_mux; =20 - m->mux_buf_sz =3D args.mux_buf_sz; + m->mux_buf_sz =3D args->mux_buf_sz; =20 - m->pcr_pid =3D args.pcr_pid; - m->transport_stream_id =3D args.transport_stream_id; - m->priv =3D args.priv; - m->network_id =3D args.network_id; - m->network_name =3D kstrdup(args.network_name, GFP_KERNEL); + m->pcr_pid =3D args->pcr_pid; + m->transport_stream_id =3D args->transport_stream_id; + m->priv =3D args->priv; + m->network_id =3D args->network_id; + m->network_name =3D kstrdup(args->network_name, GFP_KERNEL); m->timing.current_jiffies =3D get_jiffies_64(); =20 - if (args.channels) - m->channels =3D args.channels; + if (args->channels) + m->channels =3D args->channels; else if (vidtv_channels_init(m) < 0) goto free_mux_buf; diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.h b/drivers/media/t= est-drivers/vidtv/vidtv_mux.h index 005b707f1445..e186094c4fb7 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_mux.h +++ b/drivers/media/test-drivers/vidtv/vidtv_mux.h @@ -170,7 +170,7 @@ struct vidtv_mux_init_args { =20 struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe, struct device *dev, - struct vidtv_mux_init_args args); + struct vidtv_mux_init_args *args); void vidtv_mux_destroy(struct vidtv_mux *m); =20 void vidtv_mux_start_thread(struct vidtv_mux *m); --=20 2.28.0