<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/media/dvb-frontends, branch linux-4.16.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.16.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-05-25T14:46:17+00:00</updated>
<entry>
<title>media: lgdt3306a: Fix a double kfree on i2c device remove</title>
<updated>2018-05-25T14:46:17+00:00</updated>
<author>
<name>Brad Love</name>
<email>brad@nextdimension.cc</email>
</author>
<published>2018-01-05T14:57:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ac186fd7985640e949f3e26f1faaf7641239990b'/>
<id>urn:sha1:ac186fd7985640e949f3e26f1faaf7641239990b</id>
<content type='text'>
[ Upstream commit 94448e21cf08b10f7dc7acdaca387594370396b0 ]

Both lgdt33606a_release and lgdt3306a_remove kfree state, but _release is
called first, then _remove operates on states members before kfree'ing it.
This can lead to random oops/GPF/etc on USB disconnect.

Signed-off-by: Brad Love &lt;brad@nextdimension.cc&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>media: lgdt3306a: Fix module count mismatch on usb unplug</title>
<updated>2018-05-25T14:46:10+00:00</updated>
<author>
<name>Brad Love</name>
<email>brad@nextdimension.cc</email>
</author>
<published>2018-01-05T14:57:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f66e184db1387d3c243a7f6968845e11972a4643'/>
<id>urn:sha1:f66e184db1387d3c243a7f6968845e11972a4643</id>
<content type='text'>
[ Upstream commit 835d66173a38538c072a7c393d02360dcfac8582 ]

When used as an i2c device there is a module usage count mismatch on
removal, preventing the driver from being used thereafter. dvb_attach
increments the usage count so it is properly balanced on removal.

On disconnect of Hauppauge SoloHD/DualHD before:

lsmod | grep lgdt3306a
lgdt3306a              28672  -1
i2c_mux                16384  1 lgdt3306a

On disconnect of Hauppauge SoloHD/DualHD after:

lsmod | grep lgdt3306a
lgdt3306a              28672  0
i2c_mux                16384  1 lgdt3306a

Signed-off-by: Brad Love &lt;brad@nextdimension.cc&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>media: m88ds3103: don't call a non-initalized function</title>
<updated>2018-02-23T10:22:32+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2018-02-10T11:14:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b9c97c67fd19262c002d94ced2bfb513083e161e'/>
<id>urn:sha1:b9c97c67fd19262c002d94ced2bfb513083e161e</id>
<content type='text'>
If m88d3103 chip ID is not recognized, the device is not initialized.

However, it returns from probe without any error, causing this OOPS:

[    7.689289] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[    7.689297] pgd = 7b0bd7a7
[    7.689302] [00000000] *pgd=00000000
[    7.689318] Internal error: Oops: 80000005 [#1] SMP ARM
[    7.689322] Modules linked in: dvb_usb_dvbsky(+) m88ds3103 dvb_usb_v2 dvb_core videobuf2_vmalloc videobuf2_memops videobuf2_core crc32_arm_ce videodev media
[    7.689358] CPU: 3 PID: 197 Comm: systemd-udevd Not tainted 4.15.0-mcc+ #23
[    7.689361] Hardware name: BCM2835
[    7.689367] PC is at 0x0
[    7.689382] LR is at m88ds3103_attach+0x194/0x1d0 [m88ds3103]
[    7.689386] pc : [&lt;00000000&gt;]    lr : [&lt;bf0ae1ec&gt;]    psr: 60000013
[    7.689391] sp : ed8e5c20  ip : ed8c1e00  fp : ed8945c0
[    7.689395] r10: ed894000  r9 : ed894378  r8 : eda736c0
[    7.689400] r7 : ed894070  r6 : ed8e5c44  r5 : bf0bb040  r4 : eda77600
[    7.689405] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : eda77600
[    7.689412] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    7.689417] Control: 10c5383d  Table: 2d8e806a  DAC: 00000051
[    7.689423] Process systemd-udevd (pid: 197, stack limit = 0xe9dbfb63)
[    7.689428] Stack: (0xed8e5c20 to 0xed8e6000)
[    7.689439] 5c20: ed853a80 eda73640 ed894000 ed8942c0 ed853a80 bf0b9e98 ed894070 bf0b9f10
[    7.689449] 5c40: 00000000 00000000 bf08c17c c08dfc50 00000000 00000000 00000000 00000000
[    7.689459] 5c60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.689468] 5c80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.689479] 5ca0: 00000000 00000000 ed8945c0 ed8942c0 ed894000 ed894830 bf0b9e98 00000000
[    7.689490] 5cc0: ed894378 bf0a3cb4 bf0bc3b0 0000533b ed920540 00000000 00000034 bf0a6434
[    7.689500] 5ce0: ee952070 ed826600 bf0a7038 bf0a2dd8 00000001 bf0a6768 bf0a2f90 ed8943c0
[    7.689511] 5d00: 00000000 c08eca68 ed826620 ed826620 00000000 ee952070 bf0bc034 ee952000
[    7.689521] 5d20: ed826600 bf0bb080 ffffffed c0aa9e9c c0aa9dac ed826620 c16edf6c c168c2c8
[    7.689531] 5d40: c16edf70 00000000 bf0bc034 0000000d 00000000 c08e268c bf0bb080 ed826600
[    7.689541] 5d60: bf0bc034 ed826654 ed826620 bf0bc034 c164c8bc 00000000 00000001 00000000
[    7.689553] 5d80: 00000028 c08e2948 00000000 bf0bc034 c08e2848 c08e0778 ee9f0a58 ed88bab4
[    7.689563] 5da0: bf0bc034 ed90ba80 c168c1f0 c08e1934 bf0bb3bc c17045ac bf0bc034 c164c8bc
[    7.689574] 5dc0: bf0bc034 bf0bb3bc ed91f564 c08e34ec bf0bc000 c164c8bc bf0bc034 c0aa8dc4
[    7.689584] 5de0: ffffe000 00000000 bf0bf000 ed91f600 ed91f564 c03021e4 00000001 00000000
[    7.689595] 5e00: c166e040 8040003f ed853a80 bf0bc448 00000000 c1678174 ed853a80 f0f22000
[    7.689605] 5e20: f0f21fff 8040003f 014000c0 ed91e700 ed91e700 c16d8e68 00000001 ed91e6c0
[    7.689615] 5e40: bf0bc400 00000001 bf0bc400 ed91f564 00000001 00000000 00000028 c03c9a24
[    7.689625] 5e60: 00000001 c03c8c94 ed8e5f50 ed8e5f50 00000001 bf0bc400 ed91f540 c03c8cb0
[    7.689637] 5e80: bf0bc40c 00007fff bf0bc400 c03c60b0 00000000 bf0bc448 00000028 c0e09684
[    7.689647] 5ea0: 00000002 bf0bc530 c1234bf8 bf0bc5dc bf0bc514 c10ebbe8 ffffe000 bf000000
[    7.689657] 5ec0: 00011538 00000000 ed8e5f48 00000000 00000000 00000000 00000000 00000000
[    7.689666] 5ee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.689676] 5f00: 00000000 00000000 7fffffff 00000000 00000013 b6e55a18 0000017b c0309104
[    7.689686] 5f20: ed8e4000 00000000 00510af0 c03c9430 7fffffff 00000000 00000003 00000000
[    7.689697] 5f40: 00000000 f0f0f000 00011538 00000000 f0f107b0 f0f0f000 00011538 f0f1fdb8
[    7.689707] 5f60: f0f1fbe8 f0f1b974 00004000 000041e0 bf0bc3d0 00000001 00000000 000024c4
[    7.689717] 5f80: 0000002d 0000002e 00000019 00000000 00000010 00000000 16894000 00000000
[    7.689727] 5fa0: 00000000 c0308f20 16894000 00000000 00000013 b6e55a18 00000000 b6e5652c
[    7.689737] 5fc0: 16894000 00000000 00000000 0000017b 00020000 00508110 00000000 00510af0
[    7.689748] 5fe0: bef68948 bef68938 b6e4d3d0 b6d32590 60000010 00000013 00000000 00000000
[    7.689790] [&lt;bf0ae1ec&gt;] (m88ds3103_attach [m88ds3103]) from [&lt;bf0b9f10&gt;] (dvbsky_s960c_attach+0x78/0x280 [dvb_usb_dvbsky])
[    7.689821] [&lt;bf0b9f10&gt;] (dvbsky_s960c_attach [dvb_usb_dvbsky]) from [&lt;bf0a3cb4&gt;] (dvb_usbv2_probe+0xa3c/0x1024 [dvb_usb_v2])
[    7.689849] [&lt;bf0a3cb4&gt;] (dvb_usbv2_probe [dvb_usb_v2]) from [&lt;c0aa9e9c&gt;] (usb_probe_interface+0xf0/0x2a8)
[    7.689869] [&lt;c0aa9e9c&gt;] (usb_probe_interface) from [&lt;c08e268c&gt;] (driver_probe_device+0x2f8/0x4b4)
[    7.689881] [&lt;c08e268c&gt;] (driver_probe_device) from [&lt;c08e2948&gt;] (__driver_attach+0x100/0x11c)
[    7.689895] [&lt;c08e2948&gt;] (__driver_attach) from [&lt;c08e0778&gt;] (bus_for_each_dev+0x4c/0x9c)
[    7.689909] [&lt;c08e0778&gt;] (bus_for_each_dev) from [&lt;c08e1934&gt;] (bus_add_driver+0x1c0/0x264)
[    7.689919] [&lt;c08e1934&gt;] (bus_add_driver) from [&lt;c08e34ec&gt;] (driver_register+0x78/0xf4)
[    7.689931] [&lt;c08e34ec&gt;] (driver_register) from [&lt;c0aa8dc4&gt;] (usb_register_driver+0x70/0x134)
[    7.689946] [&lt;c0aa8dc4&gt;] (usb_register_driver) from [&lt;c03021e4&gt;] (do_one_initcall+0x44/0x168)
[    7.689963] [&lt;c03021e4&gt;] (do_one_initcall) from [&lt;c03c9a24&gt;] (do_init_module+0x64/0x1f4)
[    7.689979] [&lt;c03c9a24&gt;] (do_init_module) from [&lt;c03c8cb0&gt;] (load_module+0x20a0/0x25c8)
[    7.689993] [&lt;c03c8cb0&gt;] (load_module) from [&lt;c03c9430&gt;] (SyS_finit_module+0xb4/0xec)
[    7.690007] [&lt;c03c9430&gt;] (SyS_finit_module) from [&lt;c0308f20&gt;] (ret_fast_syscall+0x0/0x54)
[    7.690018] Code: bad PC value

This may happen on normal circumstances, if, for some reason, the demod
hangs and start returning an invalid chip ID:

[   10.394395] m88ds3103 3-0068: Unknown device. Chip_id=00

So, change the logic to cause probe to fail with -ENODEV, preventing
the OOPS.

Detected while testing DVB MMAP patches on Raspberry Pi 3 with
DVBSky S960CI.

Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: ts2020: avoid integer overflows on 32 bit machines</title>
<updated>2018-01-29T12:46:46+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2018-01-10T12:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=81742be14b6a90c9fd0ff6eb4218bdf696ad8e46'/>
<id>urn:sha1:81742be14b6a90c9fd0ff6eb4218bdf696ad8e46</id>
<content type='text'>
Before this patch, when compiled for arm32, the signal strength
were reported as:

Lock   (0x1f) Signal= 4294908.66dBm C/N= 12.79dB

Because of a 32 bit integer overflow. After it, it is properly
reported as:

	Lock   (0x1f) Signal= -58.64dBm C/N= 12.79dB

Cc: stable@vger.kernel.org
Fixes: 0f91c9d6bab9 ("[media] TS2020: Calculate tuner gain correctly")
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: replace all &lt;spaces&gt;&lt;tab&gt; occurrences</title>
<updated>2018-01-04T18:15:05+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2018-01-04T18:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6e6a8b5a38cb04d5ef35d4eb57836126b954e7c8'/>
<id>urn:sha1:6e6a8b5a38cb04d5ef35d4eb57836126b954e7c8</id>
<content type='text'>
There are a lot of places where sequences of space/tabs are
found. Get rid of all spaces before tabs.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: fix usage of whitespaces and on indentation</title>
<updated>2018-01-04T18:12:01+00:00</updated>
<author>
<name>Mauro Carvalho Chehab</name>
<email>mchehab@s-opensource.com</email>
</author>
<published>2018-01-04T11:47:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4a3fad709bbc74c85fffff8903d17b5e35723365'/>
<id>urn:sha1:4a3fad709bbc74c85fffff8903d17b5e35723365</id>
<content type='text'>
On several places, whitespaces are being used for indentation,
or even at the end of the line.

Fix them.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: dvb-frontends/stv0910: cleanup init_search_param() and enable PLS</title>
<updated>2018-01-03T09:48:50+00:00</updated>
<author>
<name>Daniel Scheller</name>
<email>d.scheller@gmx.net</email>
</author>
<published>2017-12-26T23:37:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6392bc2e6cd9651f98abf55c4ccaa812d3e60c17'/>
<id>urn:sha1:6392bc2e6cd9651f98abf55c4ccaa812d3e60c17</id>
<content type='text'>
Cleanup the mess in init_search_param() by utilising the new register
access macros and functions. And while at it, move the ISI and PLS setup
into separate functions, and pass the new scrambling_sequence_index (aka.
physical layer scrambling) value to set_pls.

Picked up from the dddvb upstream, adapted to the different naming of the
pls property (pls vs. scrambling_sequence_index).

Cc: Ralph Metzler &lt;rjkm@metzlerbros.de&gt;
Signed-off-by: Daniel Scheller &lt;d.scheller@gmx.net&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: dvb-frontends/stv0910: field and register access helpers</title>
<updated>2018-01-03T09:48:07+00:00</updated>
<author>
<name>Daniel Scheller</name>
<email>d.scheller@gmx.net</email>
</author>
<published>2017-12-26T23:37:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bdd7682b16988a0fac07f9cf630e4fddb73e161c'/>
<id>urn:sha1:bdd7682b16988a0fac07f9cf630e4fddb73e161c</id>
<content type='text'>
Add a write_field() function that acts as helper to update specific bits
specified in the field defines (FSTV0910_*) in stv0910_regs.h, which was
recently updated to carry the missing offset values. With that, add the
SET_FIELD(), SET_REG() and GET_REG() macros that wrap the write_field(),
write_reg() and read_reg() functions to allow for making all demod
access code cleaner.

The write_field() function is annotated with __maybe_unused temporarily
to silence eventual compile warnings.

Picked up from the dddvb upstream, with the macro names made uppercase
so they are distinguishable as such.

Cc: Ralph Metzler &lt;rjkm@metzlerbros.de&gt;
Signed-off-by: Daniel Scheller &lt;d.scheller@gmx.net&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: dvb-frontends/stv0910: cleanup I2C access functions</title>
<updated>2018-01-03T09:46:59+00:00</updated>
<author>
<name>Daniel Scheller</name>
<email>d.scheller@gmx.net</email>
</author>
<published>2017-12-26T23:37:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8042e98c387b02fc4239eee0075d0f318efcf1d7'/>
<id>urn:sha1:8042e98c387b02fc4239eee0075d0f318efcf1d7</id>
<content type='text'>
write_reg() and i2c_write_reg16() only act as a proxy to i2c_write(), which
isn't called from anywhere else throughout the driver. Clean this up by
moving the message setup and the i2c_transfer() into write_reg() so it
becomes the only I2C write function. While touching those parts, fix the
error codes from EREMOTEIO to EIO.

The I2C cleanup is picked from the upstream dddvb.

Cc: Ralph Metzler &lt;rjkm@metzlerbros.de&gt;
Signed-off-by: Daniel Scheller &lt;d.scheller@gmx.net&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
<entry>
<title>media: dvb-frontends/stv0910: deduplicate writes in enable_puncture_rate()</title>
<updated>2018-01-03T09:45:45+00:00</updated>
<author>
<name>Daniel Scheller</name>
<email>d.scheller@gmx.net</email>
</author>
<published>2017-12-26T23:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4b596bd70a396dfeb55f38b6bd1c21b8e77ebe77'/>
<id>urn:sha1:4b596bd70a396dfeb55f38b6bd1c21b8e77ebe77</id>
<content type='text'>
For all code rates, the same write is performed, only with a differing
value. Clean this up by putting that value into a variable instead and
perform the write at the end with that value.

Picked up from the dddvb upstream.

Cc: Ralph Metzler &lt;rjkm@metzlerbros.de&gt;
Signed-off-by: Daniel Scheller &lt;d.scheller@gmx.net&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
</content>
</entry>
</feed>
