From nobody Sat May 10 05:23:47 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=1606216043; cv=none; d=zohomail.com; s=zohoarc; b=JjXU+JXXn1hnvdFxUIQ2zquIW86jHhIWKrGc3Sh22bgPp9mEYmAI1d9raodEgt7NzLm3+CAwfGUhRJQ8JTtQkxWEV32Bn4s4Pbgiog5rx/Q1+A1BVsQ/Gl2WvwrcD5IHnzEk6rSdzhQzuFz9F6/Jk+9CtrqWHVgiMMqLNzFbzvM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1606216043; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Sender:Subject:To; bh=P2/PJ1K5Cd1UDGDr5qRbn7EieEJcfNM3pmTQfa9RbHk=; b=UrrHQKOnjIFLVIjUhrnHDixZCZ7844GAtApd3/fwvxDzC5w9j3JbR0xpy++e00yGyb8Gacv/5YK8WhLG8GOBQqwaP/3e1NSvEVmtCHeqU7dTCyh/4KFs6Diqks/HOlH3SyUg9zAlUb5B9afzP64D+gMCVhB8U/Mi/sJOs5/Uhng= 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 1606216043686167.83664875099203; Tue, 24 Nov 2020 03:07:23 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732656AbgKXLHE (ORCPT ); Tue, 24 Nov 2020 06:07:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:33792 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732504AbgKXLGg (ORCPT ); Tue, 24 Nov 2020 06:06:36 -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 4093E221EB; Tue, 24 Nov 2020 11:06:31 +0000 (UTC) Received: from mchehab by mail.kernel.org with local (Exim 4.94) (envelope-from ) id 1khW9V-000FaS-8t; Tue, 24 Nov 2020 12:06:29 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606215991; bh=+jZzZC+Lv638cKmRSSgEOuv/zUcuFka/FHuiKGg8Lx4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=efA56DHAW6mJhV5CODEmo20BASI15LkeKUQ3ovCD04NZoBpC7o6o0uzBX2k5LBzin AnrCF7MxbJ/hntCOuCkM2U158SL9/uAQWYXTD+UWgGTL+mldU8mvrQQbOZFLEg6GdI ESeSJSxZHHt4f0ZFDdaT6t0+kh4sU1kAONgxgH9E= 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 25/31] media: vidtv: cleanup PMT write table function Date: Tue, 24 Nov 2020 12:06:21 +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" - Pass struct vidtv_psi_pmt_write_args as a pointer; - Avoid initializing structs multiple times. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/test-drivers/vidtv/vidtv_mux.c | 2 +- drivers/media/test-drivers/vidtv/vidtv_psi.c | 91 ++++++++++---------- drivers/media/test-drivers/vidtv/vidtv_psi.h | 2 +- 3 files changed, 46 insertions(+), 49 deletions(-) diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.c b/drivers/media/t= est-drivers/vidtv/vidtv_mux.c index 200a8000603f..239e0a242b6e 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_mux.c +++ b/drivers/media/test-drivers/vidtv/vidtv_mux.c @@ -193,7 +193,7 @@ static u32 vidtv_mux_push_si(struct vidtv_mux *m) pmt_args.continuity_counter =3D &pmt_ctx->cc; =20 /* write each section into buffer */ - m->mux_buf_offset +=3D vidtv_psi_pmt_write_into(pmt_args); + m->mux_buf_offset +=3D vidtv_psi_pmt_write_into(&pmt_args); } =20 sdt_args.offset =3D m->mux_buf_offset; diff --git a/drivers/media/test-drivers/vidtv/vidtv_psi.c b/drivers/media/t= est-drivers/vidtv/vidtv_psi.c index 29f35d5faf25..ab349654ba54 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_psi.c +++ b/drivers/media/test-drivers/vidtv/vidtv_psi.c @@ -1159,54 +1159,58 @@ struct vidtv_psi_table_pmt *vidtv_psi_pmt_table_ini= t(u16 program_number, return pmt; } =20 -u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args args) +u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args *args) { - struct vidtv_psi_desc *table_descriptor =3D args.pmt->descriptor; - struct vidtv_psi_table_pmt_stream *stream =3D args.pmt->stream; + struct vidtv_psi_desc *table_descriptor =3D args->pmt->descriptor; + struct vidtv_psi_table_pmt_stream *stream =3D args->pmt->stream; struct vidtv_psi_desc *stream_descriptor; - struct header_write_args h_args =3D {}; - struct psi_write_args psi_args =3D {}; - struct desc_write_args d_args =3D {}; - struct crc32_write_args c_args =3D {}; + struct header_write_args h_args =3D { + .dest_buf =3D args->buf, + .dest_offset =3D args->offset, + .h =3D &args->pmt->header, + .pid =3D args->pid, + .continuity_counter =3D args->continuity_counter, + .dest_buf_sz =3D args->buf_sz, + }; + struct psi_write_args psi_args =3D { + .dest_buf =3D args->buf, + .from =3D &args->pmt->bitfield, + .len =3D sizeof_field(struct vidtv_psi_table_pmt, bitfield) + + sizeof_field(struct vidtv_psi_table_pmt, bitfield2), + .pid =3D args->pid, + .new_psi_section =3D false, + .is_crc =3D false, + .dest_buf_sz =3D args->buf_sz, + }; + struct desc_write_args d_args =3D { + .dest_buf =3D args->buf, + .desc =3D table_descriptor, + .pid =3D args->pid, + .dest_buf_sz =3D args->buf_sz, + }; + struct crc32_write_args c_args =3D { + .dest_buf =3D args->buf, + .pid =3D args->pid, + .dest_buf_sz =3D args->buf_sz, + }; u32 crc =3D INITIAL_CRC; u32 nbytes =3D 0; =20 - vidtv_psi_pmt_table_update_sec_len(args.pmt); + vidtv_psi_pmt_table_update_sec_len(args->pmt); =20 - h_args.dest_buf =3D args.buf; - h_args.dest_offset =3D args.offset; - h_args.h =3D &args.pmt->header; - h_args.pid =3D args.pid; - h_args.continuity_counter =3D args.continuity_counter; - h_args.dest_buf_sz =3D args.buf_sz; h_args.crc =3D &crc; =20 nbytes +=3D vidtv_psi_table_header_write_into(&h_args); =20 /* write the two bitfields */ - psi_args.dest_buf =3D args.buf; - psi_args.from =3D &args.pmt->bitfield; - psi_args.len =3D sizeof_field(struct vidtv_psi_table_pmt, bitfield) + - sizeof_field(struct vidtv_psi_table_pmt, bitfield2); - - psi_args.dest_offset =3D args.offset + nbytes; - psi_args.pid =3D args.pid; - psi_args.new_psi_section =3D false; - psi_args.continuity_counter =3D args.continuity_counter; - psi_args.is_crc =3D false; - psi_args.dest_buf_sz =3D args.buf_sz; - psi_args.crc =3D &crc; - + psi_args.dest_offset =3D args->offset + nbytes; + psi_args.continuity_counter =3D args->continuity_counter; nbytes +=3D vidtv_psi_ts_psi_write_into(&psi_args); =20 while (table_descriptor) { /* write the descriptors, if any */ - d_args.dest_buf =3D args.buf; - d_args.dest_offset =3D args.offset + nbytes; - d_args.desc =3D table_descriptor; - d_args.pid =3D args.pid; - d_args.continuity_counter =3D args.continuity_counter; - d_args.dest_buf_sz =3D args.buf_sz; + d_args.dest_offset =3D args->offset + nbytes; + d_args.continuity_counter =3D args->continuity_counter; d_args.crc =3D &crc; =20 nbytes +=3D vidtv_psi_desc_write_into(&d_args); @@ -1214,13 +1218,12 @@ u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_w= rite_args args) table_descriptor =3D table_descriptor->next; } =20 + psi_args.len +=3D sizeof_field(struct vidtv_psi_table_pmt_stream, type); while (stream) { /* write the streams, if any */ psi_args.from =3D stream; - psi_args.len =3D sizeof_field(struct vidtv_psi_table_pmt_stream, type) + - sizeof_field(struct vidtv_psi_table_pmt_stream, bitfield) + - sizeof_field(struct vidtv_psi_table_pmt_stream, bitfield2); - psi_args.dest_offset =3D args.offset + nbytes; + psi_args.dest_offset =3D args->offset + nbytes; + psi_args.continuity_counter =3D args->continuity_counter; =20 nbytes +=3D vidtv_psi_ts_psi_write_into(&psi_args); =20 @@ -1228,12 +1231,9 @@ u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_wr= ite_args args) =20 while (stream_descriptor) { /* write the stream descriptors, if any */ - d_args.dest_buf =3D args.buf; - d_args.dest_offset =3D args.offset + nbytes; + d_args.dest_offset =3D args->offset + nbytes; d_args.desc =3D stream_descriptor; - d_args.pid =3D args.pid; - d_args.continuity_counter =3D args.continuity_counter; - d_args.dest_buf_sz =3D args.buf_sz; + d_args.continuity_counter =3D args->continuity_counter; d_args.crc =3D &crc; =20 nbytes +=3D vidtv_psi_desc_write_into(&d_args); @@ -1244,12 +1244,9 @@ u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_wr= ite_args args) stream =3D stream->next; } =20 - c_args.dest_buf =3D args.buf; - c_args.dest_offset =3D args.offset + nbytes; + c_args.dest_offset =3D args->offset + nbytes; c_args.crc =3D cpu_to_be32(crc); - c_args.pid =3D args.pid; - c_args.continuity_counter =3D args.continuity_counter; - c_args.dest_buf_sz =3D args.buf_sz; + c_args.continuity_counter =3D args->continuity_counter; =20 /* Write the CRC32 at the end */ nbytes +=3D table_section_crc32_write_into(&c_args); diff --git a/drivers/media/test-drivers/vidtv/vidtv_psi.h b/drivers/media/t= est-drivers/vidtv/vidtv_psi.h index ba5c91a0d387..b72635bcdae7 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_psi.h +++ b/drivers/media/test-drivers/vidtv/vidtv_psi.h @@ -621,7 +621,7 @@ struct vidtv_psi_pmt_write_args { * equal to the size of the PMT section, since more space is needed for TS= headers * during TS encapsulation. */ -u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args args); +u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args *args); =20 /** * vidtv_psi_find_pmt_sec - Finds the PMT section for 'program_num' --=20 2.28.0