<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/media/dvb-frontends/au8522_common.c, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2019-05-24T15:36:45Z</updated>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61</title>
<updated>2019-05-24T15:36:45Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-05-20T07:19:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=74ba9207e1adf1966c57450340534ae9742d00af'/>
<id>urn:sha1:74ba9207e1adf1966c57450340534ae9742d00af</id>
<content type='text'>
Based on 1 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license or at
  your option any later version this program is distributed in the
  hope that it will be useful but without any warranty without even
  the implied warranty of merchantability or fitness for a particular
  purpose see the gnu general public license for more details you
  should have received a copy of the gnu general public license along
  with this program if not write to the free software foundation inc
  675 mass ave cambridge ma 02139 usa

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 441 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt; (powerpc)
Reviewed-by: Richard Fontana &lt;rfontana@redhat.com&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190520071858.739733335@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>media: move dvb kAPI headers to include/media</title>
<updated>2017-12-28T18:16:01Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2017-12-28T18:03:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fada1935590f66dc6784981e0d557ca09013c847'/>
<id>urn:sha1:fada1935590f66dc6784981e0d557ca09013c847</id>
<content type='text'>
Except for DVB, all media kAPI headers are at include/media.

Move the headers to it.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>[media] au8522: Set the initial modulation</title>
<updated>2017-06-06T10:51:33Z</updated>
<author>
<name>Devin Heitmueller</name>
<email>dheitmueller@kernellabs.com</email>
</author>
<published>2017-04-19T23:13:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d7590b5704d6489ec5e6c7f65e90f8126a910b23'/>
<id>urn:sha1:d7590b5704d6489ec5e6c7f65e90f8126a910b23</id>
<content type='text'>
We need to set the initial modulation on driver setup, or else any
calls to GET_FRONTEND prior to the first SET_FRONTEND call will get
back garbage.

Signed-off-by: Devin Heitmueller &lt;dheitmueller@kernellabs.com&gt;
Signed-off-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>[media] dvb-frontends: don't break long lines</title>
<updated>2016-10-21T12:01:56Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2016-10-18T19:44:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4bd69e7b9c1b8c1a5b6cfc50a126ae0a1d926e57'/>
<id>urn:sha1:4bd69e7b9c1b8c1a5b6cfc50a126ae0a1d926e57</id>
<content type='text'>
Due to the 80-cols restrictions, and latter due to checkpatch
warnings, several strings were broken into multiple lines. This
is not considered a good practice anymore, as it makes harder
to grep for strings at the source code.

As we're right now fixing other drivers due to KERN_CONT, we need
to be able to identify what printk strings don't end with a "\n".
It is a way easier to detect those if we don't break long lines.

So, join those continuation lines.

The patch was generated via the script below, and manually
adjusted if needed.

&lt;/script&gt;
use Text::Tabs;
while (&lt;&gt;) {
	if ($next ne "") {
		$c=$_;
		if ($c =~ /^\s+\"(.*)/) {
			$c2=$1;
			$next =~ s/\"\n$//;
			$n = expand($next);
			$funpos = index($n, '(');
			$pos = index($c2, '",');
			if ($funpos &amp;&amp; $pos &gt; 0) {
				$s1 = substr $c2, 0, $pos + 2;
				$s2 = ' ' x ($funpos + 1) . substr $c2, $pos + 2;
				$s2 =~ s/^\s+//;

				$s2 = ' ' x ($funpos + 1) . $s2 if ($s2 ne "");

				print unexpand("$next$s1\n");
				print unexpand("$s2\n") if ($s2 ne "");
			} else {
				print "$next$c2\n";
			}
			$next="";
			next;
		} else {
			print $next;
		}
		$next="";
	} else {
		if (m/\"$/) {
			if (!m/\\n\"$/) {
				$next=$_;
				next;
			}
		}
	}
	print $_;
}
&lt;/script&gt;

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>[media] au8522: Avoid memory leak for device config data</title>
<updated>2015-12-21T19:39:32Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@osg.samsung.com</email>
</author>
<published>2015-12-21T16:38:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=aa37763fa4b2545a6d517333aacc98ad757a4ccd'/>
<id>urn:sha1:aa37763fa4b2545a6d517333aacc98ad757a4ccd</id>
<content type='text'>
As reported by kmemleak:

	unreferenced object 0xffff880321e1da40 (size 32):
	  comm "modprobe", pid 3309, jiffies 4295019569 (age 2359.636s)
	  hex dump (first 32 bytes):
	    47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  G...............
	    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
	  backtrace:
	    [&lt;ffffffff82278c8e&gt;] kmemleak_alloc+0x4e/0xb0
	    [&lt;ffffffff8153c08c&gt;] kmem_cache_alloc_trace+0x1ec/0x280
	    [&lt;ffffffffa13a896a&gt;] au8522_probe+0x19a/0xa30 [au8522_decoder]
	    [&lt;ffffffff81de0032&gt;] i2c_device_probe+0x2b2/0x490
	    [&lt;ffffffff81ca7004&gt;] driver_probe_device+0x454/0xd90
	    [&lt;ffffffff81ca7c1b&gt;] __device_attach_driver+0x17b/0x230
	    [&lt;ffffffff81ca15da&gt;] bus_for_each_drv+0x11a/0x1b0
	    [&lt;ffffffff81ca6a4d&gt;] __device_attach+0x1cd/0x2c0
	    [&lt;ffffffff81ca7d43&gt;] device_initial_probe+0x13/0x20
	    [&lt;ffffffff81ca451f&gt;] bus_probe_device+0x1af/0x250
	    [&lt;ffffffff81c9e0f3&gt;] device_add+0x943/0x13b0
	    [&lt;ffffffff81c9eb7a&gt;] device_register+0x1a/0x20
	    [&lt;ffffffff81de8626&gt;] i2c_new_device+0x5d6/0x8f0
	    [&lt;ffffffffa0d88ea4&gt;] v4l2_i2c_new_subdev_board+0x1e4/0x250 [v4l2_common]
	    [&lt;ffffffffa0d88fe7&gt;] v4l2_i2c_new_subdev+0xd7/0x110 [v4l2_common]
	    [&lt;ffffffffa13b2f76&gt;] au0828_card_analog_fe_setup+0x2e6/0x3f0 [au0828]

Checking where the error happens:
	(gdb) list *au8522_probe+0x19a
	0x99a is in au8522_probe (drivers/media/dvb-frontends/au8522_decoder.c:761).
	756			printk(KERN_INFO "au8522_decoder attach existing instance.\n");
	757			break;
	758		}
	759
	760		demod_config = kzalloc(sizeof(struct au8522_config), GFP_KERNEL);
	761		if (demod_config == NULL) {
	762			if (instance == 1)
	763				kfree(state);
	764			return -ENOMEM;
	765		}

Shows that the error path is not being handled properly.

The are actually several issues here:

1) config free should have been calling hybrid_tuner_release_state()
function, by calling au8522_release_state();

2) config is only allocated at the digital part. On the analog one,
it is received from the caller.

A complex logic could be added to address it, however, it is simpler
to just embeed config inside the state.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] move the dvb/frontends to drivers/media/dvb-frontends</title>
<updated>2012-08-14T02:13:41Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@redhat.com</email>
</author>
<published>2012-08-14T02:13:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9a0bf528b4d66b605f02634236da085595c22101'/>
<id>urn:sha1:9a0bf528b4d66b605f02634236da085595c22101</id>
<content type='text'>
Raise the DVB frontends one level up, as the intention is to remove
the drivers/media/dvb directory.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
</content>
</entry>
</feed>
