All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: vidtv: fix build on 32bit architectures
@ 2020-09-15 18:05 ` Daniel W. S. Almeida
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel W. S. Almeida @ 2020-09-15 18:05 UTC (permalink / raw)
  To: mchehab
  Cc: Daniel W . S . Almeida, geert, r.verdejo, linux-media, nicolas,
	skhan, linux-kernel-mentees, linux-kernel, rdunlap

From: Daniel W. S. Almeida <dwlsalmeida@gmail.com>

Fix the following error for builds on 32bit architectures:

ERROR: modpost: "__udivdi3"
[drivers/media/test-drivers/vidtv/dvb-vidtv-bridge.ko] undefined!

Which is due to 64bit divisions that did not go through the helpers
in linux/math64.h

As vidtv_mux_check_mux_rate was not operational in its current form,
drop the entire function  while it is not fixed properly.

For now, call vidtv_mux_pad_with_nulls with a constant number of packets
to avoid warnings due to unused functions when building this driver.

Fixes: f90cf6079bf67988 ("media: vidtv: add a bridge driver")
Signed-off-by: Daniel W. S. Almeida <dwlsalmeida@gmail.com>
---
 drivers/media/test-drivers/vidtv/vidtv_mux.c  | 34 +------------------
 .../media/test-drivers/vidtv/vidtv_s302m.c    |  4 +--
 2 files changed, 3 insertions(+), 35 deletions(-)

diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.c b/drivers/media/test-drivers/vidtv/vidtv_mux.c
index 5d1a275d504b..6e402a880fdc 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_mux.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_mux.c
@@ -336,38 +336,6 @@ static u32 vidtv_mux_pad_with_nulls(struct vidtv_mux *m, u32 npkts)
 	return nbytes;
 }
 
-static u32 vidtv_mux_check_mux_rate(struct vidtv_mux *m)
-{
-	/*
-	 * attempt to maintain a constant mux rate, padding with null packets
-	 * if needed
-	 */
-
-	u32 nbytes = 0;  /* the number of bytes written by this function */
-
-	u64 nbytes_expected; /* the number of bytes we should have written */
-	u64 nbytes_streamed; /* the number of bytes we actually wrote */
-	u32 num_null_pkts; /* number of null packets to bridge the gap */
-
-	u64 elapsed_time_msecs = jiffies_to_usecs(m->timing.current_jiffies -
-						  m->timing.past_jiffies);
-
-	elapsed_time_msecs = min(elapsed_time_msecs, (u64)VIDTV_MAX_SLEEP_USECS / 1000);
-	nbytes_expected = div64_u64(m->mux_rate_kbytes_sec * 1000, MSEC_PER_SEC);
-	nbytes_expected *= elapsed_time_msecs;
-
-	nbytes_streamed = m->mux_buf_offset;
-
-	if (nbytes_streamed < nbytes_expected) {
-		/* can't write half a packet: roundup to a 188 multiple */
-		nbytes_expected  = roundup(nbytes_expected - nbytes_streamed, TS_PACKET_LEN);
-		num_null_pkts    = nbytes_expected / TS_PACKET_LEN;
-		nbytes          += vidtv_mux_pad_with_nulls(m, num_null_pkts);
-	}
-
-	return nbytes;
-}
-
 static void vidtv_mux_clear(struct vidtv_mux *m)
 {
 	/* clear the packets currently in the mux */
@@ -397,7 +365,7 @@ static void vidtv_mux_tick(struct work_struct *work)
 			nbytes += vidtv_mux_push_si(m);
 
 		nbytes += vidtv_mux_poll_encoders(m);
-		nbytes += vidtv_mux_check_mux_rate(m);
+		nbytes += vidtv_mux_pad_with_nulls(m, 256);
 
 		npkts = nbytes / TS_PACKET_LEN;
 
diff --git a/drivers/media/test-drivers/vidtv/vidtv_s302m.c b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
index f8049cdf564a..e3290facf57b 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_s302m.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
@@ -285,12 +285,12 @@ static void vidtv_s302m_compute_pts(struct vidtv_encoder *e)
 {
 	u64 count = e->sample_count;
 	struct vidtv_access_unit *au = e->access_units;
+	u32 duration = CLOCK_UNIT_90KHZ / e->sampling_rate_hz;
 
 	while (au) {
 		count += au->num_samples;
 
-		au->pts = count *
-			  CLOCK_UNIT_90KHZ / e->sampling_rate_hz;
+		au->pts = count * duration;
 
 		au = au->next;
 	}
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-09-16 19:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-15 18:05 [PATCH] media: vidtv: fix build on 32bit architectures Daniel W. S. Almeida
2020-09-15 18:05 ` [Linux-kernel-mentees] " Daniel W. S. Almeida
2020-09-15 19:25 ` Randy Dunlap
2020-09-15 19:25   ` [Linux-kernel-mentees] " Randy Dunlap
2020-09-16  6:40 ` Mauro Carvalho Chehab
2020-09-16  6:40   ` [Linux-kernel-mentees] " Mauro Carvalho Chehab
2020-09-16  7:06   ` Geert Uytterhoeven
2020-09-16  7:06     ` [Linux-kernel-mentees] " Geert Uytterhoeven
2020-09-16 13:43     ` Daniel W. S. Almeida
2020-09-16 13:43       ` [Linux-kernel-mentees] " Daniel W. S. Almeida

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.