mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
media fixes for v4.20-rc4
-----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJcBW/HAAoJEAhfPr2O5OEVr1YP/Rggag8uQS365rYzRlau1tQY VeCuYsmW4IZTRLk7IgLctRDJ6XShwnwpWJCfo8Uvf0LHk1q1dxPyJMZ/ycNujG/B AxAZlURF4Kqx1iMaG8thwJt5LqT2yzpas34mmSvX7Xxa9FnV7tb3FyadclVW3tjL Dg8P/6ryY2I0UtzzFGtepXoWz0G76xNEjPqpyVMzjQzzpdmtX1GX/ObtmnjkNQmS qFRTJ+TFL4i61vdmz64ReVHJ5yMXo32wOxbYtSB7xiU8ZZvRrrD//Z5/15QUIz3p rQO2zUsnUaqMFx3qdnMRYY//BYo/WVTATIxOeAEjOyinc3Op03IRV4FYGTlb9mqG RLnhl6PAxN2En9KQBBSunaf9/iJtjSH1EWyAfrAM1gUsYQmnSmFf0P+EogNMCbbR hZGCzp9nr35OZ02g5XroMZ4DlqqGDqY6uvbeH7fm7eCDQ67O2yPynPzSWYBbymP4 q/vIrxIBAQRq/3PGO4kgwUn+d6T8B3O1GnufPLJvHAoXHfDZ32ahlv6JcKN0qf0q IYyCXW0m2rTmkZRkmmkFmCUx0T8U4jen9pFEd6iRVAp3hrU9mgdv90R7Cjn7w/KC A0S1EcCUOiz7mt20U0fypWt0oyj6se8ltLy0wyNd/TePuFJfJ4n7pnC3rFojHCyN ejprmuE8ft9DC6W6hIrP =44JZ -----END PGP SIGNATURE----- Merge tag 'media/v4.20-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - Revert a dt-bindings patch whose driver didn't make for 4.20 - fix a kernel oops at vicodec driver - fix a frame overflow at gspca with was causing regressions on some cameras, making them to not work - use the proper type for wait_queue head - make media request API compatible with 32-bit userspace on 64-bit kernel - fix a regression on Kernel 4.19 at dvb-pll - don't use SPDX headers yet for GFDL * tag 'media/v4.20-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: mediactl docs: Fix licensing message media: dvb-pll: don't re-validate tuner frequencies media: dvb-pll: fix tuner frequency ranges media: Revert "media: dt-bindings: Document the Rockchip VPU bindings" media: gspca: fix frame overflow error media: vicodec: fix memchr() kernel oops media: cedrus: add action item to the TODO media: media-request: Add compat ioctl media: Use wait_queue_head_t for media_request
This commit is contained in:
commit
0072a0c14d
@ -1,29 +0,0 @@
|
||||
device-tree bindings for rockchip VPU codec
|
||||
|
||||
Rockchip (Video Processing Unit) present in various Rockchip platforms,
|
||||
such as RK3288 and RK3399.
|
||||
|
||||
Required properties:
|
||||
- compatible: value should be one of the following
|
||||
"rockchip,rk3288-vpu";
|
||||
"rockchip,rk3399-vpu";
|
||||
- interrupts: encoding and decoding interrupt specifiers
|
||||
- interrupt-names: should be "vepu" and "vdpu"
|
||||
- clocks: phandle to VPU aclk, hclk clocks
|
||||
- clock-names: should be "aclk" and "hclk"
|
||||
- power-domains: phandle to power domain node
|
||||
- iommus: phandle to a iommu node
|
||||
|
||||
Example:
|
||||
SoC-specific DT entry:
|
||||
vpu: video-codec@ff9a0000 {
|
||||
compatible = "rockchip,rk3288-vpu";
|
||||
reg = <0x0 0xff9a0000 0x0 0x800>;
|
||||
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "vepu", "vdpu";
|
||||
clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
|
||||
clock-names = "aclk", "hclk";
|
||||
power-domains = <&power RK3288_PD_VIDEO>;
|
||||
iommus = <&vpu_mmu>;
|
||||
};
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _media_ioc_request_alloc:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _media_request_ioc_queue:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _media_request_ioc_reinit:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _media-request-api:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _request-func-close:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _request-func-ioctl:
|
||||
|
||||
|
@ -1,4 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
.. This file is dual-licensed: you can use it either under the terms
|
||||
.. of the GPL or the GFDL 1.1+ license, at your option. Note that this
|
||||
.. dual licensing only applies to this file, and not this project as a
|
||||
.. whole.
|
||||
..
|
||||
.. a) This file 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 file 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.
|
||||
..
|
||||
.. Or, alternatively,
|
||||
..
|
||||
.. b) Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/media/uapi/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _request-func-poll:
|
||||
|
||||
|
@ -80,8 +80,8 @@ struct dvb_pll_desc {
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_thomson_dtt7579 = {
|
||||
.name = "Thomson dtt7579",
|
||||
.min = 177000000,
|
||||
.max = 858000000,
|
||||
.min = 177 * MHz,
|
||||
.max = 858 * MHz,
|
||||
.iffreq= 36166667,
|
||||
.sleepdata = (u8[]){ 2, 0xb4, 0x03 },
|
||||
.count = 4,
|
||||
@ -102,8 +102,8 @@ static void thomson_dtt759x_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_thomson_dtt759x = {
|
||||
.name = "Thomson dtt759x",
|
||||
.min = 177000000,
|
||||
.max = 896000000,
|
||||
.min = 177 * MHz,
|
||||
.max = 896 * MHz,
|
||||
.set = thomson_dtt759x_bw,
|
||||
.iffreq= 36166667,
|
||||
.sleepdata = (u8[]){ 2, 0x84, 0x03 },
|
||||
@ -126,8 +126,8 @@ static void thomson_dtt7520x_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_thomson_dtt7520x = {
|
||||
.name = "Thomson dtt7520x",
|
||||
.min = 185000000,
|
||||
.max = 900000000,
|
||||
.min = 185 * MHz,
|
||||
.max = 900 * MHz,
|
||||
.set = thomson_dtt7520x_bw,
|
||||
.iffreq = 36166667,
|
||||
.count = 7,
|
||||
@ -144,8 +144,8 @@ static const struct dvb_pll_desc dvb_pll_thomson_dtt7520x = {
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_lg_z201 = {
|
||||
.name = "LG z201",
|
||||
.min = 174000000,
|
||||
.max = 862000000,
|
||||
.min = 174 * MHz,
|
||||
.max = 862 * MHz,
|
||||
.iffreq= 36166667,
|
||||
.sleepdata = (u8[]){ 2, 0xbc, 0x03 },
|
||||
.count = 5,
|
||||
@ -160,8 +160,8 @@ static const struct dvb_pll_desc dvb_pll_lg_z201 = {
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_unknown_1 = {
|
||||
.name = "unknown 1", /* used by dntv live dvb-t */
|
||||
.min = 174000000,
|
||||
.max = 862000000,
|
||||
.min = 174 * MHz,
|
||||
.max = 862 * MHz,
|
||||
.iffreq= 36166667,
|
||||
.count = 9,
|
||||
.entries = {
|
||||
@ -182,8 +182,8 @@ static const struct dvb_pll_desc dvb_pll_unknown_1 = {
|
||||
*/
|
||||
static const struct dvb_pll_desc dvb_pll_tua6010xs = {
|
||||
.name = "Infineon TUA6010XS",
|
||||
.min = 44250000,
|
||||
.max = 858000000,
|
||||
.min = 44250 * kHz,
|
||||
.max = 858 * MHz,
|
||||
.iffreq= 36125000,
|
||||
.count = 3,
|
||||
.entries = {
|
||||
@ -196,8 +196,8 @@ static const struct dvb_pll_desc dvb_pll_tua6010xs = {
|
||||
/* Panasonic env57h1xd5 (some Philips PLL ?) */
|
||||
static const struct dvb_pll_desc dvb_pll_env57h1xd5 = {
|
||||
.name = "Panasonic ENV57H1XD5",
|
||||
.min = 44250000,
|
||||
.max = 858000000,
|
||||
.min = 44250 * kHz,
|
||||
.max = 858 * MHz,
|
||||
.iffreq= 36125000,
|
||||
.count = 4,
|
||||
.entries = {
|
||||
@ -220,8 +220,8 @@ static void tda665x_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_tda665x = {
|
||||
.name = "Philips TDA6650/TDA6651",
|
||||
.min = 44250000,
|
||||
.max = 858000000,
|
||||
.min = 44250 * kHz,
|
||||
.max = 858 * MHz,
|
||||
.set = tda665x_bw,
|
||||
.iffreq= 36166667,
|
||||
.initdata = (u8[]){ 4, 0x0b, 0xf5, 0x85, 0xab },
|
||||
@ -254,8 +254,8 @@ static void tua6034_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_tua6034 = {
|
||||
.name = "Infineon TUA6034",
|
||||
.min = 44250000,
|
||||
.max = 858000000,
|
||||
.min = 44250 * kHz,
|
||||
.max = 858 * MHz,
|
||||
.iffreq= 36166667,
|
||||
.count = 3,
|
||||
.set = tua6034_bw,
|
||||
@ -278,8 +278,8 @@ static void tded4_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_tded4 = {
|
||||
.name = "ALPS TDED4",
|
||||
.min = 47000000,
|
||||
.max = 863000000,
|
||||
.min = 47 * MHz,
|
||||
.max = 863 * MHz,
|
||||
.iffreq= 36166667,
|
||||
.set = tded4_bw,
|
||||
.count = 4,
|
||||
@ -296,8 +296,8 @@ static const struct dvb_pll_desc dvb_pll_tded4 = {
|
||||
*/
|
||||
static const struct dvb_pll_desc dvb_pll_tdhu2 = {
|
||||
.name = "ALPS TDHU2",
|
||||
.min = 54000000,
|
||||
.max = 864000000,
|
||||
.min = 54 * MHz,
|
||||
.max = 864 * MHz,
|
||||
.iffreq= 44000000,
|
||||
.count = 4,
|
||||
.entries = {
|
||||
@ -313,8 +313,8 @@ static const struct dvb_pll_desc dvb_pll_tdhu2 = {
|
||||
*/
|
||||
static const struct dvb_pll_desc dvb_pll_samsung_tbmv = {
|
||||
.name = "Samsung TBMV30111IN / TBMV30712IN1",
|
||||
.min = 54000000,
|
||||
.max = 860000000,
|
||||
.min = 54 * MHz,
|
||||
.max = 860 * MHz,
|
||||
.iffreq= 44000000,
|
||||
.count = 6,
|
||||
.entries = {
|
||||
@ -332,8 +332,8 @@ static const struct dvb_pll_desc dvb_pll_samsung_tbmv = {
|
||||
*/
|
||||
static const struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = {
|
||||
.name = "Philips SD1878",
|
||||
.min = 950000,
|
||||
.max = 2150000,
|
||||
.min = 950 * MHz,
|
||||
.max = 2150 * MHz,
|
||||
.iffreq= 249, /* zero-IF, offset 249 is to round up */
|
||||
.count = 4,
|
||||
.entries = {
|
||||
@ -398,8 +398,8 @@ static void opera1_bw(struct dvb_frontend *fe, u8 *buf)
|
||||
|
||||
static const struct dvb_pll_desc dvb_pll_opera1 = {
|
||||
.name = "Opera Tuner",
|
||||
.min = 900000,
|
||||
.max = 2250000,
|
||||
.min = 900 * MHz,
|
||||
.max = 2250 * MHz,
|
||||
.initdata = (u8[]){ 4, 0x08, 0xe5, 0xe1, 0x00 },
|
||||
.initdata2 = (u8[]){ 4, 0x08, 0xe5, 0xe5, 0x00 },
|
||||
.iffreq= 0,
|
||||
@ -445,8 +445,8 @@ static void samsung_dtos403ih102a_set(struct dvb_frontend *fe, u8 *buf)
|
||||
/* unknown pll used in Samsung DTOS403IH102A DVB-C tuner */
|
||||
static const struct dvb_pll_desc dvb_pll_samsung_dtos403ih102a = {
|
||||
.name = "Samsung DTOS403IH102A",
|
||||
.min = 44250000,
|
||||
.max = 858000000,
|
||||
.min = 44250 * kHz,
|
||||
.max = 858 * MHz,
|
||||
.iffreq = 36125000,
|
||||
.count = 8,
|
||||
.set = samsung_dtos403ih102a_set,
|
||||
@ -465,8 +465,8 @@ static const struct dvb_pll_desc dvb_pll_samsung_dtos403ih102a = {
|
||||
/* Samsung TDTC9251DH0 DVB-T NIM, as used on AirStar 2 */
|
||||
static const struct dvb_pll_desc dvb_pll_samsung_tdtc9251dh0 = {
|
||||
.name = "Samsung TDTC9251DH0",
|
||||
.min = 48000000,
|
||||
.max = 863000000,
|
||||
.min = 48 * MHz,
|
||||
.max = 863 * MHz,
|
||||
.iffreq = 36166667,
|
||||
.count = 3,
|
||||
.entries = {
|
||||
@ -479,8 +479,8 @@ static const struct dvb_pll_desc dvb_pll_samsung_tdtc9251dh0 = {
|
||||
/* Samsung TBDU18132 DVB-S NIM with TSA5059 PLL, used in SkyStar2 DVB-S 2.3 */
|
||||
static const struct dvb_pll_desc dvb_pll_samsung_tbdu18132 = {
|
||||
.name = "Samsung TBDU18132",
|
||||
.min = 950000,
|
||||
.max = 2150000, /* guesses */
|
||||
.min = 950 * MHz,
|
||||
.max = 2150 * MHz, /* guesses */
|
||||
.iffreq = 0,
|
||||
.count = 2,
|
||||
.entries = {
|
||||
@ -500,8 +500,8 @@ static const struct dvb_pll_desc dvb_pll_samsung_tbdu18132 = {
|
||||
/* Samsung TBMU24112 DVB-S NIM with SL1935 zero-IF tuner */
|
||||
static const struct dvb_pll_desc dvb_pll_samsung_tbmu24112 = {
|
||||
.name = "Samsung TBMU24112",
|
||||
.min = 950000,
|
||||
.max = 2150000, /* guesses */
|
||||
.min = 950 * MHz,
|
||||
.max = 2150 * MHz, /* guesses */
|
||||
.iffreq = 0,
|
||||
.count = 2,
|
||||
.entries = {
|
||||
@ -521,8 +521,8 @@ static const struct dvb_pll_desc dvb_pll_samsung_tbmu24112 = {
|
||||
* 822 - 862 1 * 0 0 1 0 0 0 0x88 */
|
||||
static const struct dvb_pll_desc dvb_pll_alps_tdee4 = {
|
||||
.name = "ALPS TDEE4",
|
||||
.min = 47000000,
|
||||
.max = 862000000,
|
||||
.min = 47 * MHz,
|
||||
.max = 862 * MHz,
|
||||
.iffreq = 36125000,
|
||||
.count = 4,
|
||||
.entries = {
|
||||
@ -537,8 +537,8 @@ static const struct dvb_pll_desc dvb_pll_alps_tdee4 = {
|
||||
/* CP cur. 50uA, AGC takeover: 103dBuV, PORT3 on */
|
||||
static const struct dvb_pll_desc dvb_pll_tua6034_friio = {
|
||||
.name = "Infineon TUA6034 ISDB-T (Friio)",
|
||||
.min = 90000000,
|
||||
.max = 770000000,
|
||||
.min = 90 * MHz,
|
||||
.max = 770 * MHz,
|
||||
.iffreq = 57000000,
|
||||
.initdata = (u8[]){ 4, 0x9a, 0x50, 0xb2, 0x08 },
|
||||
.sleepdata = (u8[]){ 4, 0x9a, 0x70, 0xb3, 0x0b },
|
||||
@ -553,8 +553,8 @@ static const struct dvb_pll_desc dvb_pll_tua6034_friio = {
|
||||
/* Philips TDA6651 ISDB-T, used in Earthsoft PT1 */
|
||||
static const struct dvb_pll_desc dvb_pll_tda665x_earth_pt1 = {
|
||||
.name = "Philips TDA6651 ISDB-T (EarthSoft PT1)",
|
||||
.min = 90000000,
|
||||
.max = 770000000,
|
||||
.min = 90 * MHz,
|
||||
.max = 770 * MHz,
|
||||
.iffreq = 57000000,
|
||||
.initdata = (u8[]){ 5, 0x0e, 0x7f, 0xc1, 0x80, 0x80 },
|
||||
.count = 10,
|
||||
@ -610,9 +610,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
|
||||
u32 div;
|
||||
int i;
|
||||
|
||||
if (frequency && (frequency < desc->min || frequency > desc->max))
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < desc->count; i++) {
|
||||
if (frequency > desc->entries[i].limit)
|
||||
continue;
|
||||
@ -799,7 +796,6 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,
|
||||
struct dvb_pll_priv *priv = NULL;
|
||||
int ret;
|
||||
const struct dvb_pll_desc *desc;
|
||||
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
|
||||
|
||||
b1 = kmalloc(1, GFP_KERNEL);
|
||||
if (!b1)
|
||||
@ -845,18 +841,12 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,
|
||||
|
||||
strncpy(fe->ops.tuner_ops.info.name, desc->name,
|
||||
sizeof(fe->ops.tuner_ops.info.name));
|
||||
switch (c->delivery_system) {
|
||||
case SYS_DVBS:
|
||||
case SYS_DVBS2:
|
||||
case SYS_TURBO:
|
||||
case SYS_ISDBS:
|
||||
fe->ops.tuner_ops.info.frequency_min_hz = desc->min * kHz;
|
||||
fe->ops.tuner_ops.info.frequency_max_hz = desc->max * kHz;
|
||||
break;
|
||||
default:
|
||||
fe->ops.tuner_ops.info.frequency_min_hz = desc->min;
|
||||
fe->ops.tuner_ops.info.frequency_max_hz = desc->max;
|
||||
}
|
||||
|
||||
fe->ops.tuner_ops.info.frequency_min_hz = desc->min;
|
||||
fe->ops.tuner_ops.info.frequency_max_hz = desc->max;
|
||||
|
||||
dprintk("%s tuner, frequency range: %u...%u\n",
|
||||
desc->name, desc->min, desc->max);
|
||||
|
||||
if (!desc->initdata)
|
||||
fe->ops.tuner_ops.init = NULL;
|
||||
|
@ -238,6 +238,9 @@ static const struct file_operations request_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.poll = media_request_poll,
|
||||
.unlocked_ioctl = media_request_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_ioctl = media_request_ioctl,
|
||||
#endif /* CONFIG_COMPAT */
|
||||
.release = media_request_close,
|
||||
};
|
||||
|
||||
|
@ -304,7 +304,8 @@ restart:
|
||||
for (; p < p_out + sz; p++) {
|
||||
u32 copy;
|
||||
|
||||
p = memchr(p, magic[ctx->comp_magic_cnt], sz);
|
||||
p = memchr(p, magic[ctx->comp_magic_cnt],
|
||||
p_out + sz - p);
|
||||
if (!p) {
|
||||
ctx->comp_magic_cnt = 0;
|
||||
break;
|
||||
|
@ -426,10 +426,10 @@ void gspca_frame_add(struct gspca_dev *gspca_dev,
|
||||
|
||||
/* append the packet to the frame buffer */
|
||||
if (len > 0) {
|
||||
if (gspca_dev->image_len + len > gspca_dev->pixfmt.sizeimage) {
|
||||
if (gspca_dev->image_len + len > PAGE_ALIGN(gspca_dev->pixfmt.sizeimage)) {
|
||||
gspca_err(gspca_dev, "frame overflow %d > %d\n",
|
||||
gspca_dev->image_len + len,
|
||||
gspca_dev->pixfmt.sizeimage);
|
||||
PAGE_ALIGN(gspca_dev->pixfmt.sizeimage));
|
||||
packet_type = DISCARD_PACKET;
|
||||
} else {
|
||||
/* !! image is NULL only when last pkt is LAST or DISCARD
|
||||
@ -1297,18 +1297,19 @@ static int gspca_queue_setup(struct vb2_queue *vq,
|
||||
unsigned int sizes[], struct device *alloc_devs[])
|
||||
{
|
||||
struct gspca_dev *gspca_dev = vb2_get_drv_priv(vq);
|
||||
unsigned int size = PAGE_ALIGN(gspca_dev->pixfmt.sizeimage);
|
||||
|
||||
if (*nplanes)
|
||||
return sizes[0] < gspca_dev->pixfmt.sizeimage ? -EINVAL : 0;
|
||||
return sizes[0] < size ? -EINVAL : 0;
|
||||
*nplanes = 1;
|
||||
sizes[0] = gspca_dev->pixfmt.sizeimage;
|
||||
sizes[0] = size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gspca_buffer_prepare(struct vb2_buffer *vb)
|
||||
{
|
||||
struct gspca_dev *gspca_dev = vb2_get_drv_priv(vb->vb2_queue);
|
||||
unsigned long size = gspca_dev->pixfmt.sizeimage;
|
||||
unsigned long size = PAGE_ALIGN(gspca_dev->pixfmt.sizeimage);
|
||||
|
||||
if (vb2_plane_size(vb, 0) < size) {
|
||||
gspca_err(gspca_dev, "buffer too small (%lu < %lu)\n",
|
||||
|
@ -5,3 +5,8 @@ Before this stateless decoder driver can leave the staging area:
|
||||
* Userspace support for the Request API needs to be reviewed;
|
||||
* Another stateless decoder driver should be submitted;
|
||||
* At least one stateless encoder driver should be submitted.
|
||||
* When queueing a request containing references to I frames, the
|
||||
refcount of the memory for those I frames needs to be incremented
|
||||
and decremented when the request is completed. This will likely
|
||||
require some help from vb2. The driver should fail the request
|
||||
if the memory/buffer is gone.
|
||||
|
@ -68,7 +68,7 @@ struct media_request {
|
||||
unsigned int access_count;
|
||||
struct list_head objects;
|
||||
unsigned int num_incomplete_objects;
|
||||
struct wait_queue_head poll_wait;
|
||||
wait_queue_head_t poll_wait;
|
||||
spinlock_t lock;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user