Browse Source

remove obsolet sources

master
mango 3 years ago
parent
commit
6394dec911
100 changed files with 2078 additions and 12333 deletions
  1. +0
    -3
      .gitignore
  2. +0
    -340
      COPYING
  3. +0
    -140
      INSTALL
  4. +0
    -36
      Makefile
  5. +0
    -43
      README
  6. +0
    -1273
      README.patches
  7. +0
    -48
      backports/api_version.patch
  8. +0
    -148
      backports/backports.txt
  9. +0
    -12
      backports/debug.patch
  10. +0
    -13
      backports/drx39xxj.patch
  11. +0
    -143
      backports/no_atomic_include.patch
  12. +0
    -1641
      backports/pr_fmt.patch
  13. +0
    -59
      backports/tda18271_debug_fix.patch
  14. +0
    -65
      backports/v2.6.31_nodename.patch
  15. +0
    -13
      backports/v2.6.31_rc.patch
  16. +0
    -156
      backports/v2.6.31_vm_ops.patch
  17. +0
    -13
      backports/v2.6.32_dvb_net.patch
  18. +0
    -565
      backports/v2.6.32_kfifo.patch
  19. +0
    -12
      backports/v2.6.32_request_firmware_nowait.patch
  20. +0
    -45
      backports/v2.6.33_input_handlers_are_int.patch
  21. +0
    -22
      backports/v2.6.33_no_gpio_request_one.patch
  22. +0
    -73
      backports/v2.6.33_pvrusb2_sysfs.patch
  23. +0
    -41
      backports/v2.6.34_dvb_net.patch
  24. +0
    -11
      backports/v2.6.34_fix_define_warnings.patch
  25. +0
    -13
      backports/v2.6.34_usb_ss_ep_comp.patch
  26. +0
    -19
      backports/v2.6.35_firedtv_handle_fcp.patch
  27. +0
    -94
      backports/v2.6.35_i2c_new_probed_device.patch
  28. +0
    -17
      backports/v2.6.35_kfifo.patch
  29. +0
    -149
      backports/v2.6.35_work_handler.patch
  30. +0
    -145
      backports/v2.6.36_dvb_usb_input_getkeycode.patch
  31. +0
    -12
      backports/v2.6.36_fence.patch
  32. +0
    -109
      backports/v2.6.36_input_getkeycode.patch
  33. +0
    -16
      backports/v2.6.36_kmap_atomic.patch
  34. +0
    -94
      backports/v2.6.37_dont_use_alloc_ordered_workqueue.patch
  35. +0
    -30
      backports/v2.6.38_config_of_for_of_node.patch
  36. +0
    -34
      backports/v2.6.38_use_getkeycode_new_setkeycode_new.patch
  37. +0
    -65
      backports/v3.0_ida2bit.patch
  38. +0
    -73
      backports/v3.10_fw_driver_probe.patch
  39. +0
    -12
      backports/v3.10_ir_hix5hd2.patch
  40. +0
    -76
      backports/v3.11_dev_groups.patch
  41. +0
    -13
      backports/v3.12_kfifo_in.patch
  42. +0
    -13
      backports/v3.16_netdev.patch
  43. +0
    -17
      backports/v3.16_void_gpiochip_remove.patch
  44. +0
    -36
      backports/v3.16_wait_on_bit.patch
  45. +0
    -35
      backports/v3.17_fix_clamp.patch
  46. +0
    -15
      backports/v3.19_get_user_pages_locked.patch
  47. +0
    -115
      backports/v3.1_no_dma_buf_h.patch
  48. +0
    -132
      backports/v3.1_no_export_h.patch
  49. +0
    -95
      backports/v3.1_no_pm_qos.patch
  50. +0
    -13
      backports/v3.2_alloc_ordered_workqueue.patch
  51. +0
    -39
      backports/v3.2_devnode_uses_mode_t.patch
  52. +0
    -55
      backports/v3.3_eprobe_defer.patch
  53. +0
    -68
      backports/v3.4_i2c_add_mux_adapter.patch
  54. +0
    -64
      backports/v3.6_i2c_add_mux_adapter.patch
  55. +0
    -13
      backports/v3.6_pci_error_handlers.patch
  56. +0
    -27
      backports/v3.8_config_of.patch
  57. +0
    -15
      backports/v3.9_drxj_warnings.patch
  58. +0
    -90
      backports/v4.0_dma_buf_export.patch
  59. +0
    -85
      backports/v4.0_drop_trace.patch
  60. +0
    -22
      backports/v4.0_fwnode.patch
  61. +0
    -20
      backports/v4.1_pat_enabled.patch
  62. +0
    -49
      backports/v4.2_atomic64.patch
  63. +0
    -249
      backports/v4.2_frame_vector.patch
  64. +0
    -13
      backports/v4.4_gpio_chip_parent.patch
  65. +0
    -52
      backports/v4.5_get_user_pages.patch
  66. +0
    -43
      backports/v4.5_gpiochip_data_pointer.patch
  67. +0
    -12
      backports/v4.5_uvc_super_plus.patch
  68. +0
    -1466
      backports/v4.6_i2c_mux.patch
  69. +0
    -321
      backports/v4.7_dma_attrs.patch
  70. +0
    -87
      backports/v4.8_user_pages_flag.patch
  71. +0
    -14
      backports/v4l2-compat-timespec.patch
  72. +0
    -654
      build
  73. +1
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/.pc/.quilt_patches
  74. +1
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/.pc/.quilt_series
  75. +1
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/.pc/.version
  76. +1
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/.pc/applied-patches
  77. +150
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/.pc/max_device.patch/dddvb-0.9.28.0easyVDR0/dvb-core/dvbdev.h
  78. +17
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/debian/patches/max_device.patch
  79. +1
    -0
      d/dddvb-dkms-0.9.28.0easyVDR0/debian/patches/series
  80. +0
    -36
      devel_scripts/README
  81. +0
    -303
      devel_scripts/analyze_build.pl
  82. +0
    -35
      devel_scripts/gen_rename_patch.pl
  83. +0
    -1441
      devel_scripts/rename_patch.sh
  84. +1
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/.quilt_patches
  85. +1
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/.quilt_series
  86. +1
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/.version
  87. +0
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/0001-Fix_FTBFS_on_kFreeBSD.patch/.timestamp
  88. +239
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/0001-Fix_FTBFS_on_kFreeBSD.patch/src/intel_driver.h
  89. +55
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/0001-Fix_FTBFS_on_kFreeBSD.patch/src/intel_memman.c
  90. +1
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/.pc/applied-patches
  91. +33
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/debian/patches/0001-Fix_FTBFS_on_kFreeBSD.patch
  92. +1
    -0
      i/intel-vaapi-driver-1.7.4~git20161205/debian/patches/series
  93. +0
    -11
      linux/.gitignore
  94. +0
    -186
      linux/Makefile
  95. +0
    -63
      linux/patches_for_kernel.pl
  96. +0
    -343
      linux/use_dir.pl
  97. +0
    -100
      linux/version_patch.pl
  98. +0
    -0
      m/media-build-experimental-dkms-0~20160913/media-build-experimental-0~20160913/v4l/firmware/dvb-firmwares.tar.bz2
  99. BIN
      m/media-build-experimental-dkms-0~20161201/media-build-experimental-0~20161201/dvb-firmwares.tar.bz2
  100. +1574
    -0
      m/media-build-experimental-dkms-0~20161201/media-build-experimental-0~20161201/patches/S2_CX24120_SYS_DVBS.diff

+ 0
- 3
.gitignore View File

@@ -1,3 +0,0 @@
patches/
.pc
dvb-firmwares.tar.bz2

+ 0
- 340
COPYING View File

@@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>

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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

+ 0
- 140
INSTALL View File

@@ -1,140 +0,0 @@
Mauro Carvalho Chehab 2006 Apr 26

V4L/DVB building procedures are based at the use of Makefile rules.
Those rules are close to the ones at Linux Kernel, to allow an easier
usage.

=======================================================================
Quick building procedure is:
make all
======================================================================

For those who may want more than just build all stuff there are some
other interesting parameters to make:

======================
Normal building rules:
all - build all modules

clean - Cleans compiled files from the tree,
but keeping the latest
used configuration and kernel version

distclean - Cleans compiled files from the tree,
latest used configuration and kernel
version.

default - Continues building the latest module selection
This is the behavior when just typed:
make

install - Installs all modules at kernel's default dir
for V4L/DVB. Requires root access.

rminstall - cleans previous installations of V4L/DVB modules

sound-install - installs the sound modules related to V4L/DVB
tree.

======================
Firmware rules:

firmware - Create the firmware files that are enclosed at the
tree.
Notice: Only a very few firmwares are currently here

firmware_install- Install firmware files under /lib/firmware

=======================
Module selection rules:
(Those may require write access to kernel tree)

allmodconfig - Called by make all. Selects all modules that are known
to compile against the kernel version used.

stagingconfig - Select all modules, plus all staging modules. The
staging drivers are there because they may have
bad userspace API's, serious bugs and/or not fill
into Kernel required level of quality. So, be
careful with those drivers.

xconfig - Generate a xconfig menu. Requires full
kernel source, since it depends on kernel's
qconf stript;

gconfig - Generate a qt menu. Requires full
kernel source, since it depends on kernel's
gconf stript;

config - Generate a text-mode menu. Requires full
kernel source, since it depends on kernel's
conf stript;

menuconfig - Generate a ncurses menu. Requires full
kernel source, since it depends on kernel's
mconf and lxconfig stripts;

release - Allows changing kernel version.
Typical usage is:
make release VER=2.6.12-18mdk
(to force compiling to 2.6.12-18mdk)
(This will work only if
/lib/modules/2.6.12-18mdk/build/
points to that kernel version)
Or
make release DIR=~/linux-git
(to force using kernel at a specific dir)
To use current kernel version instead:
make release

======================
Module handling rules:
(require root access)

insmod - inserts all modules from V4L/DVB tree

rmmod - removes all modules from V4L/DVB tree

reload - removes then reinserts all modules

===================
Tree merging rules:

ivtv - enable merged ivtv build, using the latest ivtv sources
from ivtvdriver.org (requires subversion)

cx88-ivtv - enable cx88-blackbird ivtv API emulation

ivtv-update - update ivtv sources from ivtvdriver.org

==========================================
Patch preparation and tree handling rules:
(used by developers)

kernel-links - Generate links to V4L/DVB at kernel tree.
Requires write access to kernel tree.

cardlist - Updates Documentation/video4linux/CARDLIST.*

update - updates the tree from master repository

commit - commits the change, asking for a commit msg

push - sends outgoing stuff to master repository

checkemacs - checks codingstyle and reports to emacs
using "make checkemacs" at emacs compile menu,
will report the lines with errors inside emacs.

checkpatch - checks codingstyle and reports using the same
format as c. This way, c error parsers will
handle it.

checkterse - checks codingstyle and reports using terse
syntax, used on several compilaton tools.

mismatch - checks for linker section mismatch. In other words,
check if some driver has functions not properly
declared with __init/__exit, and similar tags.
It will also be more pedantic by dealing with
compilation warnings as if they are errors.

+ 0
- 36
Makefile View File

@@ -1,36 +0,0 @@
BUILD_DIR := $(shell pwd)/v4l
TMP ?= /tmp

ifeq ($(EDITOR),)
ifeq ($(VISUAL),)
EDITOR := vi
else
EDITOR := $(VISUAL) -w
endif
endif

all:

install:
$(MAKE) -C $(BUILD_DIR) install

# Hmm, .PHONY does not work with wildcard rules :-(
SPECS = media-specs

.PHONY: $(SPECS)

$(SPECS):
$(MAKE) -C $(BUILD_DIR) $(MAKECMDGOALS)

%::
$(MAKE) -C $(BUILD_DIR) $(MAKECMDGOALS)

download untar::
$(MAKE) -C linux/ $(MAKECMDGOALS)

dir::
$(MAKE) -C linux/ $(MAKECMDGOALS) DIR="../$(DIR)"

cleanall:
$(MAKE) distclean
$(MAKE) -C linux distclean

+ 0
- 43
README View File

@@ -1,43 +0,0 @@
This is an experimental build system for media drivers.
All files on this tree are covered by GPLv2, as stated at COPYING file.

Usage:

Just call the build utility:
$ ./build

Then, install the drivers as root, with:
# make install

In order to test, unload old drivers with:
# make rmmod

Then modprobe the driver you want to test. For example, to load driver 'foo':
# modprobe foo


If you're developing a new driver or patch, it is better to use:
$ ./build --main-git

Then, install the drivers as root, with:
# make install

In order to test, unload old drivers with:
# make rmmod

Then modprobe the driver you want to test. For example:
# modprobe bttv

In this case, in order to modify something, you should edit the file at
the media/ subdir.

For example, a typical procedure to develop a new patch would be:

~/media_build $ cd media
~/media $ gedit drivers/media/video/foo.c
~/media $ make -C ../v4l
~/media $ make -C .. rmmod
~/media $ modprobe foo
(some procedure to test the "foo" driver)
~/media $ git diff >/tmp/my_changes.patch
(email /tmp/my_changes.patch inlined to linux-media@vger.kernel.org)

+ 0
- 1273
README.patches
File diff suppressed because it is too large
View File


+ 0
- 48
backports/api_version.patch View File

@@ -1,48 +0,0 @@
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index a1cd50f..ffafe66 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -843,7 +843,7 @@ void media_device_pci_init(struct media_device *mdev,
mdev->hw_revision = (pci_dev->subsystem_vendor << 16)
| pci_dev->subsystem_device;
- mdev->driver_version = LINUX_VERSION_CODE;
+ mdev->driver_version = V4L2_VERSION;
media_device_init(mdev);
}
@@ -872,7 +872,7 @@ void __media_device_usb_init(struct media_device *mdev,
strlcpy(mdev->serial, udev->serial, sizeof(mdev->serial));
usb_make_path(udev, mdev->bus_info, sizeof(mdev->bus_info));
mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
- mdev->driver_version = LINUX_VERSION_CODE;
+ mdev->driver_version = V4L2_VERSION;
media_device_init(mdev);
}
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 451e84e9..34fdf1f 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -1936,7 +1936,7 @@ static int uvc_probe(struct usb_interface *intf,
sizeof(dev->mdev.serial));
strcpy(dev->mdev.bus_info, udev->devpath);
dev->mdev.hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
- dev->mdev.driver_version = LINUX_VERSION_CODE;
+ dev->mdev.driver_version = V4L2_VERSION;
media_device_init(&dev->mdev);
dev->vdev.mdev = &dev->mdev;
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 28e5be2..f664943 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1023,7 +1023,7 @@ static int v4l_querycap(const struct v4l2_ioctl_ops *ops,
struct video_device *vfd = video_devdata(file);
int ret;
- cap->version = LINUX_VERSION_CODE;
+ cap->version = V4L2_VERSION;
cap->device_caps = vfd->device_caps;
cap->capabilities = vfd->device_caps | V4L2_CAP_DEVICE_CAPS;

+ 0
- 148
backports/backports.txt View File

@@ -1,148 +0,0 @@
#################################################
# Backport patches needed for each kernel version
#################################################
# The patches for a given kernel version is calculated
# by summing the patches needed to backport to all kernel
# versions higher or equal to the desired one. For example,
# if this file has:
# [3.255.255]
# add patch_for_upstream.patch
# [2.6.38]
# add patch_for_2.6.38.patch
#
# That means that both patch_for_2.6.38.patch and patch_for_upstream.patch
# are needed for 2.6.38.
#
# It is possible to remove one patch from the accumulated series with
# by adding a "delete foo.patch" line
#
# In order to test what patches will be applied for a given kernel version,
# use linux/patches_for_kernel.pl <version>

# All supported versions need those patches
[9.255.255]
add api_version.patch
add pr_fmt.patch
add debug.patch
add drx39xxj.patch

[4.8.255]
add v4.8_user_pages_flag.patch

[4.7.255]
add v4.7_dma_attrs.patch

[4.6.255]
add v4.6_i2c_mux.patch

[4.5.255]
add v4.5_gpiochip_data_pointer.patch
add v4.5_get_user_pages.patch
add v4.5_uvc_super_plus.patch

[4.4.255]
add v4.4_gpio_chip_parent.patch

[4.2.255]
add v4.2_atomic64.patch
add v4.2_frame_vector.patch

[4.1.255]
add v4.1_pat_enabled.patch

[4.0.255]
add v4.0_dma_buf_export.patch
add v4.0_drop_trace.patch
add v4.0_fwnode.patch

[3.19.255]
add v3.19_get_user_pages_locked.patch

[3.17.255]
add v3.17_fix_clamp.patch

[3.16.255]
add v3.16_netdev.patch
add v3.16_wait_on_bit.patch
add v3.16_void_gpiochip_remove.patch

[3.12.255]
add v3.12_kfifo_in.patch

[3.11.255]
add v3.11_dev_groups.patch

[3.10.255]
add v3.10_fw_driver_probe.patch
add v3.10_ir_hix5hd2.patch

[3.9.255]
add v3.9_drxj_warnings.patch

[3.8.255]
add v3.8_config_of.patch

[3.6.255]
add v3.6_pci_error_handlers.patch
add v3.6_i2c_add_mux_adapter.patch

[3.4.255]
add v3.4_i2c_add_mux_adapter.patch

[3.3.255]
add v3.3_eprobe_defer.patch

[3.2.255]
add v3.2_devnode_uses_mode_t.patch
add v3.2_alloc_ordered_workqueue.patch

[3.1.255]
add v3.1_no_export_h.patch
add v3.1_no_dma_buf_h.patch
add v3.1_no_pm_qos.patch

[3.0.255]
add no_atomic_include.patch
add v4l2-compat-timespec.patch
add v3.0_ida2bit.patch

[2.6.38]
add v2.6.38_use_getkeycode_new_setkeycode_new.patch
add v2.6.38_config_of_for_of_node.patch

[2.6.37]
add v2.6.37_dont_use_alloc_ordered_workqueue.patch

[2.6.36]
delete v2.6.38_use_getkeycode_new_setkeycode_new.patch
add v2.6.36_input_getkeycode.patch
add v2.6.36_dvb_usb_input_getkeycode.patch
add tda18271_debug_fix.patch
add v2.6.36_kmap_atomic.patch
add v2.6.36_fence.patch

[2.6.35]
add v2.6.35_firedtv_handle_fcp.patch
add v2.6.35_i2c_new_probed_device.patch
add v2.6.35_work_handler.patch
add v2.6.35_kfifo.patch

[2.6.34]
add v2.6.34_dvb_net.patch
add v2.6.34_fix_define_warnings.patch
add v2.6.34_usb_ss_ep_comp.patch

[2.6.33]
add v2.6.33_input_handlers_are_int.patch
add v2.6.33_pvrusb2_sysfs.patch
add v2.6.33_no_gpio_request_one.patch

[2.6.32]
add v2.6.32_dvb_net.patch
add v2.6.32_kfifo.patch
add v2.6.32_request_firmware_nowait.patch

[2.6.31]
add v2.6.31_nodename.patch
add v2.6.31_vm_ops.patch
add v2.6.31_rc.patch

+ 0
- 12
backports/debug.patch View File

@@ -1,12 +0,0 @@
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_debug.h b/drivers/media/platform/s5p-mfc/s5p_mfc_debug.h
index 5936923..a6d487c 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_debug.h
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_debug.h
@@ -15,6 +15,7 @@
#ifndef S5P_MFC_DEBUG_H_
#define S5P_MFC_DEBUG_H_
+#undef DEBUG
#define DEBUG
#ifdef DEBUG

+ 0
- 13
backports/drx39xxj.patch View File

@@ -1,13 +0,0 @@
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index d4986bd..16d8565 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -41,7 +41,7 @@
#include "mt352.h"
#include "mt352_priv.h" /* FIXME */
#include "tda1002x.h"
-#include "drx39xyj/drx39xxj.h"
+#include "drx39xxj.h"
#include "tda18271.h"
#include "s921.h"
#include "drxd.h"

+ 0
- 143
backports/no_atomic_include.patch View File

@@ -1,143 +0,0 @@
diff --git a/drivers/media/pci/pt3/pt3.h b/drivers/media/pci/pt3/pt3.h
index 1b3f2ad..44ba0f4 100644
--- a/drivers/media/pci/pt3/pt3.h
+++ b/drivers/media/pci/pt3/pt3.h
@@ -17,7 +17,6 @@
#ifndef PT3_H
#define PT3_H
-#include <linux/atomic.h>
#include <linux/types.h>
#include "dvb_demux.h"
diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
index 1ca54b0..a6f4498 100644
--- a/drivers/media/pci/solo6x10/solo6x10.h
+++ b/drivers/media/pci/solo6x10/solo6x10.h
@@ -28,7 +28,6 @@
#include <linux/wait.h>
#include <linux/stringify.h>
#include <linux/io.h>
-#include <linux/atomic.h>
#include <linux/slab.h>
#include <linux/videodev2.h>
diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
index dccf586..27d4caf 100644
--- a/drivers/media/radio/radio-si476x.c
+++ b/drivers/media/radio/radio-si476x.c
@@ -21,7 +21,6 @@
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
-#include <linux/atomic.h>
#include <linux/videodev2.h>
#include <linux/mutex.h>
#include <linux/debugfs.h>
diff --git a/drivers/media/usb/hdpvr/hdpvr-core.c b/drivers/media/usb/hdpvr/hdpvr-core.c
index 3fc6419..9d2c37e 100644
--- a/drivers/media/usb/hdpvr/hdpvr-core.c
+++ b/drivers/media/usb/hdpvr/hdpvr-core.c
@@ -17,7 +17,6 @@
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/uaccess.h>
-#include <linux/atomic.h>
#include <linux/usb.h>
#include <linux/mutex.h>
#include <linux/i2c.h>
diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index 3e59b28..b431d39 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -20,7 +20,6 @@
#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
-#include <linux/atomic.h>
#include <media/v4l2-ctrls.h>
#include "uvcvideo.h"
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index fd79a1a..637ce0a 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -11,7 +11,6 @@
*
*/
-#include <linux/atomic.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_queue.c
index 87a19f3..0f7ea35 100644
--- a/drivers/media/usb/uvc/uvc_queue.c
+++ b/drivers/media/usb/uvc/uvc_queue.c
@@ -11,7 +11,6 @@
*
*/
-#include <linux/atomic.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/list.h>
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 8d967fe..6a4743c 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -21,7 +21,6 @@
#include <linux/vmalloc.h>
#include <linux/mm.h>
#include <linux/wait.h>
-#include <linux/atomic.h>
#include <media/v4l2-common.h>
#include <media/v4l2-ctrls.h>
diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
index 20ccc9d..e97e7a3 100644
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -19,7 +19,6 @@
#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
-#include <linux/atomic.h>
#include <asm/unaligned.h>
#include <media/v4l2-common.h>
diff --git a/drivers/media/v4l2-core/v4l2-clk.c b/drivers/media/v4l2-core/v4l2-clk.c
index 34e416a..a2b1449 100644
--- a/drivers/media/v4l2-core/v4l2-clk.c
+++ b/drivers/media/v4l2-core/v4l2-clk.c
@@ -8,7 +8,6 @@
* published by the Free Software Foundation.
*/
-#include <linux/atomic.h>
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/errno.h>
diff --git a/include/media/v4l2-clk.h b/include/media/v4l2-clk.h
index 3ef6e3d..2f8426f 100644
--- a/include/media/v4l2-clk.h
+++ b/include/media/v4l2-clk.h
@@ -14,6 +14,5 @@
#ifndef MEDIA_V4L2_CLK_H
#define MEDIA_V4L2_CLK_H
-#include <linux/atomic.h>
#include <linux/list.h>
#include <linux/mutex.h>
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 4e9bbe7..1998369 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -13,7 +13,6 @@
*/
#include <media/rc-core.h>
-#include <linux/atomic.h>
#include <linux/spinlock.h>
#include <linux/delay.h>
#include <linux/input.h>

+ 0
- 1641
backports/pr_fmt.patch
File diff suppressed because it is too large
View File


+ 0
- 59
backports/tda18271_debug_fix.patch View File

@@ -1,59 +0,0 @@
diff --git a/drivers/media/tuners/tda18271-common.c b/drivers/media/tuners/tda18271-common.c
index 86e5e31..9f7a0eb 100644
--- a/drivers/media/tuners/tda18271-common.c
+++ b/drivers/media/tuners/tda18271-common.c
@@ -713,26 +713,3 @@ int tda18271_calc_rf_cal(struct dvb_frontend *fe, u32 *freq)
fail:
return ret;
}
-
-void _tda_printk(struct tda18271_priv *state, const char *level,
- const char *func, const char *fmt, ...)
-{
- struct va_format vaf;
- va_list args;
-
- va_start(args, fmt);
-
- vaf.fmt = fmt;
- vaf.va = &args;
-
- if (state)
- printk("%s%s: [%d-%04x|%c] %pV",
- level, func, i2c_adapter_id(state->i2c_props.adap),
- state->i2c_props.addr,
- (state->role == TDA18271_MASTER) ? 'M' : 'S',
- &vaf);
- else
- printk("%s%s: %pV", level, func, &vaf);
-
- va_end(args);
-}
diff --git a/drivers/media/tuners/tda18271-priv.h b/drivers/media/tuners/tda18271-priv.h
index b36a7b7..3bc5b1c 100644
--- a/drivers/media/tuners/tda18271-priv.h
+++ b/drivers/media/tuners/tda18271-priv.h
@@ -138,12 +138,17 @@ extern int tda18271_debug;
#define DBG_ADV 8
#define DBG_CAL 16
-__attribute__((format(printf, 4, 5)))
-void _tda_printk(struct tda18271_priv *state, const char *level,
- const char *func, const char *fmt, ...);
-
-#define tda_printk(st, lvl, fmt, arg...) \
- _tda_printk(st, lvl, __func__, fmt, ##arg)
+#define tda_printk(st, kern, fmt, arg...) do {\
+ if (st) { \
+ struct tda18271_priv *state = st; \
+ printk(kern "%s: [%d-%04x|%s] " fmt, __func__, \
+ i2c_adapter_id(state->i2c_props.adap), \
+ state->i2c_props.addr, \
+ (state->role == TDA18271_MASTER) \
+ ? "M" : "S", ##arg); \
+ } else \
+ printk(kern "%s: " fmt, __func__, ##arg); \
+} while (0)
#define tda_dprintk(st, lvl, fmt, arg...) \
do { \

+ 0
- 65
backports/v2.6.31_nodename.patch View File

@@ -1,65 +0,0 @@
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 401ef64..3683ae0 100644
--- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c
@@ -449,7 +449,7 @@ static int dvb_uevent(struct device *dev, struct kobj_uevent_env *env)
return 0;
}
-static char *dvb_devnode(struct device *dev, mode_t *mode)
+static char *dvb_nodename(struct device *dev)
{
struct dvb_device *dvbdev = dev_get_drvdata(dev);
@@ -480,7 +480,7 @@ static int __init init_dvbdev(void)
goto error;
}
dvb_class->dev_uevent = dvb_uevent;
- dvb_class->devnode = dvb_devnode;
+ dvb_class->nodename = dvb_nodename;
return 0;
error:
diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c
index 36e3452..2565057 100644
--- a/drivers/media/pci/ddbridge/ddbridge-core.c
+++ b/drivers/media/pci/ddbridge/ddbridge-core.c
@@ -1479,7 +1479,7 @@ static const struct file_operations ddb_fops = {
.open = ddb_open,
};
-static char *ddb_devnode(struct device *device, mode_t *mode)
+static char *ddb_devnode(struct device *device)
{
struct ddb *dev = dev_get_drvdata(device);
@@ -1499,7 +1499,7 @@ static int ddb_class_create(void)
unregister_chrdev(ddb_major, DDB_NAME);
return PTR_ERR(ddb_class);
}
- ddb_class->devnode = ddb_devnode;
+ ddb_class->nodename = ddb_devnode;
return 0;
}
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index f304792..c276faa 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -715,14 +715,14 @@ static void ir_close(struct input_dev *idev)
}
/* class for /sys/class/rc */
-static char *rc_devnode(struct device *dev, mode_t *mode)
+static char *rc_devnode(struct device *dev)
{
return kasprintf(GFP_KERNEL, "rc/%s", dev_name(dev));
}
static struct class rc_class = {
.name = "rc",
- .devnode = rc_devnode,
+ .nodename = rc_devnode,
};
/*

+ 0
- 13
backports/v2.6.31_rc.patch View File

@@ -1,13 +0,0 @@
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 970b93d..dea22d2 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1312,7 +1312,7 @@ int rc_register_device(struct rc_dev *dev)
return -ENOMEM;
} while (test_and_set_bit(devno, ir_core_dev_number));
- dev->dev.groups = dev->sysfs_groups;
+ dev->dev.groups = (struct attribute_group **)dev->sysfs_groups;
dev->sysfs_groups[attr++] = &rc_dev_protocol_attr_grp;
if (dev->s_filter)
dev->sysfs_groups[attr++] = &rc_dev_filter_attr_grp;

+ 0
- 156
backports/v2.6.31_vm_ops.patch View File

@@ -1,156 +0,0 @@
diff --git a/drivers/media/i2c/as3645a.c b/drivers/media/i2c/as3645a.c
index 301084b..1776383 100644
--- a/drivers/media/i2c/as3645a.c
+++ b/drivers/media/i2c/as3645a.c
@@ -863,7 +863,7 @@ static const struct i2c_device_id as3645a_id_table[] = {
};
MODULE_DEVICE_TABLE(i2c, as3645a_id_table);
-static const struct dev_pm_ops as3645a_pm_ops = {
+static struct dev_pm_ops as3645a_pm_ops = {
.suspend = as3645a_suspend,
.resume = as3645a_resume,
};
diff --git a/drivers/media/i2c/msp3400-driver.c b/drivers/media/i2c/msp3400-driver.c
index 8190fec..9ed1198c 100644
--- a/drivers/media/i2c/msp3400-driver.c
+++ b/drivers/media/i2c/msp3400-driver.c
@@ -882,7 +882,7 @@ static int msp_remove(struct i2c_client *client)
/* ----------------------------------------------------------------------- */
-static const struct dev_pm_ops msp3400_pm_ops = {
+static struct dev_pm_ops msp3400_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(msp_suspend, msp_resume)
};
diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c
index 2381b05..09b4a49 100644
--- a/drivers/media/pci/meye/meye.c
+++ b/drivers/media/pci/meye/meye.c
@@ -1461,7 +1461,7 @@ static void meye_vm_close(struct vm_area_struct *vma)
meye.vma_use_count[idx]--;
}
-static const struct vm_operations_struct meye_vm_ops = {
+static struct vm_operations_struct meye_vm_ops = {
.open = meye_vm_open,
.close = meye_vm_close,
};
diff --git a/drivers/media/pci/zoran/zoran_driver.c b/drivers/media/pci/zoran/zoran_driver.c
index e7e9840..1a3ee0f 100644
--- a/drivers/media/pci/zoran/zoran_driver.c
+++ b/drivers/media/pci/zoran/zoran_driver.c
@@ -2838,7 +2838,7 @@ zoran_vm_close (struct vm_area_struct *vma)
mutex_unlock(&zr->resource_lock);
}
-static const struct vm_operations_struct zoran_vm_ops = {
+static struct vm_operations_struct zoran_vm_ops = {
.open = zoran_vm_open,
.close = zoran_vm_close,
};
diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspca.c
index b7ae872..30a450e 100644
--- a/drivers/media/usb/gspca/gspca.c
+++ b/drivers/media/usb/gspca/gspca.c
@@ -107,7 +107,7 @@ static void gspca_vm_close(struct vm_area_struct *vma)
frame->v4l2_buf.flags &= ~V4L2_BUF_FLAG_MAPPED;
}
-static const struct vm_operations_struct gspca_vm_ops = {
+static struct vm_operations_struct gspca_vm_ops = {
.open = gspca_vm_open,
.close = gspca_vm_close,
};
diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c
index c43c8d3..6d14f20 100644
--- a/drivers/media/usb/stkwebcam/stk-webcam.c
+++ b/drivers/media/usb/stkwebcam/stk-webcam.c
@@ -747,7 +747,7 @@ static void stk_v4l_vm_close(struct vm_area_struct *vma)
if (sbuf->mapcount == 0)
sbuf->v4lbuf.flags &= ~V4L2_BUF_FLAG_MAPPED;
}
-static const struct vm_operations_struct stk_v4l_vm_ops = {
+static struct vm_operations_struct stk_v4l_vm_ops = {
.open = stk_v4l_vm_open,
.close = stk_v4l_vm_close
};
diff --git a/drivers/media/v4l2-core/tuner-core.c b/drivers/media/v4l2-core/tuner-core.c
index ddc9379..f4ef7f5 100644
--- a/drivers/media/v4l2-core/tuner-core.c
+++ b/drivers/media/v4l2-core/tuner-core.c
@@ -1324,7 +1324,7 @@ static const struct v4l2_subdev_ops tuner_ops = {
* I2C structs and module init functions
*/
-static const struct dev_pm_ops tuner_pm_ops = {
+static struct dev_pm_ops tuner_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(tuner_suspend, tuner_resume)
};
diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c b/drivers/media/v4l2-core/videobuf-dma-contig.c
index 65411ad..7365adc 100644
--- a/drivers/media/v4l2-core/videobuf-dma-contig.c
+++ b/drivers/media/v4l2-core/videobuf-dma-contig.c
@@ -132,7 +132,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma)
videobuf_queue_unlock(q);
}
-static const struct vm_operations_struct videobuf_vm_ops = {
+static struct vm_operations_struct videobuf_vm_ops = {
.open = videobuf_vm_open,
.close = videobuf_vm_close,
};
diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
index 9db674c..7cc4d4b 100644
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
@@ -405,7 +405,7 @@ static int videobuf_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
return 0;
}
-static const struct vm_operations_struct videobuf_vm_ops = {
+static struct vm_operations_struct videobuf_vm_ops = {
.open = videobuf_vm_open,
.close = videobuf_vm_close,
.fault = videobuf_vm_fault,
diff --git a/drivers/media/v4l2-core/videobuf-vmalloc.c b/drivers/media/v4l2-core/videobuf-vmalloc.c
index 1365c65..dfc24343 100644
--- a/drivers/media/v4l2-core/videobuf-vmalloc.c
+++ b/drivers/media/v4l2-core/videobuf-vmalloc.c
@@ -122,7 +122,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma)
return;
}
-static const struct vm_operations_struct videobuf_vm_ops = {
+static struct vm_operations_struct videobuf_vm_ops = {
.open = videobuf_vm_open,
.close = videobuf_vm_close,
};
diff --git a/drivers/media/v4l2-core/videobuf2-memops.c b/drivers/media/v4l2-core/videobuf2-memops.c
index 81c1ad8..4912aa1 100644
--- a/drivers/media/v4l2-core/videobuf2-memops.c
+++ b/drivers/media/v4l2-core/videobuf2-memops.c
@@ -176,7 +176,7 @@ static void vb2_common_vm_close(struct vm_area_struct *vma)
* vb2_common_vm_ops - common vm_ops used for tracking refcount of mmaped
* video buffers
*/
-const struct vm_operations_struct vb2_common_vm_ops = {
+struct vm_operations_struct vb2_common_vm_ops = {
.open = vb2_common_vm_open,
.close = vb2_common_vm_close,
};
diff --git a/include/media/videobuf2-memops.h b/include/media/videobuf2-memops.h
index f05444c..c395259 100644
--- a/include/media/videobuf2-memops.h
+++ b/include/media/videobuf2-memops.h
@@ -28,7 +28,7 @@ struct vb2_vmarea_handler {
void *arg;
};
-extern const struct vm_operations_struct vb2_common_vm_ops;
+extern struct vm_operations_struct vb2_common_vm_ops;
int vb2_get_contig_userptr(unsigned long vaddr, unsigned long size,
struct vm_area_struct **res_vma, dma_addr_t *res_pa);

+ 0
- 13
backports/v2.6.32_dvb_net.patch View File

@@ -1,13 +0,0 @@
diff --git a/drivers/media/dvb-core/dvb_net.c b/drivers/media/dvb-core/dvb_net.c
index f91c80c..d487c15 100644
--- a/drivers/media/dvb-core/dvb_net.c
+++ b/drivers/media/dvb-core/dvb_net.c
@@ -653,7 +653,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len )
dev_kfree_skb(priv->ule_skb);
} else {
/* CRC32 verified OK. */
- u8 dest_addr[ETH_ALEN];
+ u8 dest_addr[ETH_ALEN] = { 0 };
static const u8 bc_addr[ETH_ALEN] =
{ [ 0 ... ETH_ALEN-1] = 0xff };

+ 0
- 565
backports/v2.6.32_kfifo.patch View File

@@ -1,565 +0,0 @@
diff --git a/drivers/media/i2c/cx25840/cx25840-ir.c b/drivers/media/i2c/cx25840/cx25840-ir.c
index 4cf8f18..facb846 100644
--- a/drivers/media/i2c/cx25840/cx25840-ir.c
+++ b/drivers/media/i2c/cx25840/cx25840-ir.c
@@ -117,7 +117,7 @@ struct cx25840_ir_state {
atomic_t rxclk_divider;
atomic_t rx_invert;
- struct kfifo rx_kfifo;
+ struct kfifo *rx_kfifo;
spinlock_t rx_kfifo_lock; /* protect Rx data kfifo */
struct v4l2_subdev_ir_parameters tx_params;
@@ -524,7 +524,6 @@ int cx25840_ir_irq_handler(struct v4l2_subdev *sd, u32 status, bool *handled)
struct cx25840_state *state = to_state(sd);
struct cx25840_ir_state *ir_state = to_ir_state(sd);
struct i2c_client *c = NULL;
- unsigned long flags;
union cx25840_ir_fifo_rec rx_data[FIFO_RX_DEPTH];
unsigned int i, j, k;
@@ -610,9 +609,8 @@ int cx25840_ir_irq_handler(struct v4l2_subdev *sd, u32 status, bool *handled)
if (i == 0)
break;
j = i * sizeof(union cx25840_ir_fifo_rec);
- k = kfifo_in_locked(&ir_state->rx_kfifo,
- (unsigned char *) rx_data, j,
- &ir_state->rx_kfifo_lock);
+ k = kfifo_put(ir_state->rx_kfifo,
+ (unsigned char *) rx_data, j);
if (k != j)
kror++; /* rx_kfifo over run */
}
@@ -648,10 +646,8 @@ int cx25840_ir_irq_handler(struct v4l2_subdev *sd, u32 status, bool *handled)
cx25840_write4(c, CX25840_IR_CNTRL_REG, cntrl);
*handled = true;
}
- spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags);
- if (kfifo_len(&ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2)
+ if (kfifo_len(ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2)
events |= V4L2_SUBDEV_IR_RX_FIFO_SERVICE_REQ;
- spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags);
if (events)
v4l2_subdev_notify(sd, V4L2_SUBDEV_IR_RX_NOTIFY, &events);
@@ -682,8 +678,7 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count,
return 0;
}
- n = kfifo_out_locked(&ir_state->rx_kfifo, buf, n,
- &ir_state->rx_kfifo_lock);
+ n = kfifo_get(ir_state->rx_kfifo, buf, n);
n /= sizeof(union cx25840_ir_fifo_rec);
*num = n * sizeof(union cx25840_ir_fifo_rec);
@@ -839,11 +834,7 @@ static int cx25840_ir_rx_s_parameters(struct v4l2_subdev *sd,
o->interrupt_enable = p->interrupt_enable;
o->enable = p->enable;
if (p->enable) {
- unsigned long flags;
-
- spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags);
- kfifo_reset(&ir_state->rx_kfifo);
- spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags);
+ kfifo_reset(ir_state->rx_kfifo);
if (p->interrupt_enable)
irqenable_rx(sd, IRQEN_RSE | IRQEN_RTE | IRQEN_ROE);
control_rx_enable(c, p->enable);
@@ -1235,8 +1226,9 @@ int cx25840_ir_probe(struct v4l2_subdev *sd)
return -ENOMEM;
spin_lock_init(&ir_state->rx_kfifo_lock);
- if (kfifo_alloc(&ir_state->rx_kfifo,
- CX25840_IR_RX_KFIFO_SIZE, GFP_KERNEL))
+ ir_state->rx_kfifo = kfifo_alloc(CX25840_IR_RX_KFIFO_SIZE, GFP_KERNEL,
+ &ir_state->rx_kfifo_lock);
+ if (IS_ERR(ir_state->rx_kfifo))
return -ENOMEM;
ir_state->c = state->c;
@@ -1270,7 +1262,7 @@ int cx25840_ir_remove(struct v4l2_subdev *sd)
cx25840_ir_rx_shutdown(sd);
cx25840_ir_tx_shutdown(sd);
- kfifo_free(&ir_state->rx_kfifo);
+ kfifo_free(ir_state->rx_kfifo);
state->ir_state = NULL;
return 0;
}
diff --git a/drivers/media/pci/cx23885/cx23888-ir.c b/drivers/media/pci/cx23885/cx23888-ir.c
index c1aa888..b04d70c 100644
--- a/drivers/media/pci/cx23885/cx23888-ir.c
+++ b/drivers/media/pci/cx23885/cx23888-ir.c
@@ -131,7 +131,7 @@ struct cx23888_ir_state {
atomic_t rxclk_divider;
atomic_t rx_invert;
- struct kfifo rx_kfifo;
+ struct kfifo *rx_kfifo;
spinlock_t rx_kfifo_lock;
struct v4l2_subdev_ir_parameters tx_params;
@@ -531,7 +531,6 @@ static int cx23888_ir_irq_handler(struct v4l2_subdev *sd, u32 status,
{
struct cx23888_ir_state *state = to_state(sd);
struct cx23885_dev *dev = state->dev;
- unsigned long flags;
u32 cntrl = cx23888_ir_read4(dev, CX23888_IR_CNTRL_REG);
u32 irqen = cx23888_ir_read4(dev, CX23888_IR_IRQEN_REG);
@@ -604,10 +603,9 @@ static int cx23888_ir_irq_handler(struct v4l2_subdev *sd, u32 status,
}
if (i == 0)
break;
- j = i * sizeof(union cx23888_ir_fifo_rec);
- k = kfifo_in_locked(&state->rx_kfifo,
- (unsigned char *) rx_data, j,
- &state->rx_kfifo_lock);
+ j = i * sizeof(u32);
+ k = kfifo_put(state->rx_kfifo,
+ (unsigned char *) rx_data, j);
if (k != j)
kror++; /* rx_kfifo over run */
}
@@ -644,10 +642,8 @@ static int cx23888_ir_irq_handler(struct v4l2_subdev *sd, u32 status,
*handled = true;
}
- spin_lock_irqsave(&state->rx_kfifo_lock, flags);
- if (kfifo_len(&state->rx_kfifo) >= CX23888_IR_RX_KFIFO_SIZE / 2)
+ if (kfifo_len(state->rx_kfifo) >= CX23888_IR_RX_KFIFO_SIZE / 2)
events |= V4L2_SUBDEV_IR_RX_FIFO_SERVICE_REQ;
- spin_unlock_irqrestore(&state->rx_kfifo_lock, flags);
if (events)
v4l2_subdev_notify(sd, V4L2_SUBDEV_IR_RX_NOTIFY, &events);
@@ -673,7 +669,7 @@ static int cx23888_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count,
return 0;
}
- n = kfifo_out_locked(&state->rx_kfifo, buf, n, &state->rx_kfifo_lock);
+ n = kfifo_get(state->rx_kfifo, buf, n);
n /= sizeof(union cx23888_ir_fifo_rec);
*num = n * sizeof(union cx23888_ir_fifo_rec);
@@ -812,12 +808,7 @@ static int cx23888_ir_rx_s_parameters(struct v4l2_subdev *sd,
o->interrupt_enable = p->interrupt_enable;
o->enable = p->enable;
if (p->enable) {
- unsigned long flags;
-
- spin_lock_irqsave(&state->rx_kfifo_lock, flags);
- kfifo_reset(&state->rx_kfifo);
- /* reset tx_fifo too if there is one... */
- spin_unlock_irqrestore(&state->rx_kfifo_lock, flags);
+ kfifo_reset(state->rx_kfifo);
if (p->interrupt_enable)
irqenable_rx(dev, IRQEN_RSE | IRQEN_RTE | IRQEN_ROE);
control_rx_enable(dev, p->enable);
@@ -1179,8 +1170,10 @@ int cx23888_ir_probe(struct cx23885_dev *dev)
return -ENOMEM;
spin_lock_init(&state->rx_kfifo_lock);
- if (kfifo_alloc(&state->rx_kfifo, CX23888_IR_RX_KFIFO_SIZE, GFP_KERNEL))
- return -ENOMEM;
+ state->rx_kfifo = kfifo_alloc(CX23888_IR_RX_KFIFO_SIZE, GFP_KERNEL,
+ &state->rx_kfifo_lock);
+ if (IS_ERR(state->rx_kfifo))
+ return IS_ERR(state->rx_kfifo);
state->dev = dev;
sd = &state->sd;
@@ -1208,7 +1201,7 @@ int cx23888_ir_probe(struct cx23885_dev *dev)
default_params = default_tx_params;
v4l2_subdev_call(sd, ir, tx_s_parameters, &default_params);
} else {
- kfifo_free(&state->rx_kfifo);
+ kfifo_free(state->rx_kfifo);
}
return ret;
}
@@ -1227,7 +1220,7 @@ int cx23888_ir_remove(struct cx23885_dev *dev)
state = to_state(sd);
v4l2_device_unregister_subdev(sd);
- kfifo_free(&state->rx_kfifo);
+ kfifo_free(state->rx_kfifo);
kfree(state);
/* Nothing more to free() as state held the actual v4l2_subdev object */
return 0;
diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c
index aeae547..3d85fff 100644
--- a/drivers/media/pci/meye/meye.c
+++ b/drivers/media/pci/meye/meye.c
@@ -804,8 +804,8 @@ again:
return IRQ_HANDLED;
if (meye.mchip_mode == MCHIP_HIC_MODE_CONT_OUT) {
- if (kfifo_out_locked(&meye.grabq, (unsigned char *)&reqnr,
- sizeof(int), &meye.grabq_lock) != sizeof(int)) {
+ if (kfifo_get(meye.grabq, (unsigned char *)&reqnr,
+ sizeof(int)) != sizeof(int)) {
mchip_free_frame();
return IRQ_HANDLED;
}
@@ -815,8 +815,7 @@ again:
meye.grab_buffer[reqnr].state = MEYE_BUF_DONE;
v4l2_get_timestamp(&meye.grab_buffer[reqnr].timestamp);
meye.grab_buffer[reqnr].sequence = sequence++;
- kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr,
- sizeof(int), &meye.doneq_lock);
+ kfifo_put(meye.doneq, (unsigned char *)&reqnr, sizeof(int));
wake_up_interruptible(&meye.proc_list);
} else {
int size;
@@ -825,8 +824,8 @@ again:
mchip_free_frame();
goto again;
}
- if (kfifo_out_locked(&meye.grabq, (unsigned char *)&reqnr,
- sizeof(int), &meye.grabq_lock) != sizeof(int)) {
+ if (kfifo_get(meye.grabq, (unsigned char *)&reqnr,
+ sizeof(int)) != sizeof(int)) {
mchip_free_frame();
goto again;
}
@@ -836,8 +835,7 @@ again:
meye.grab_buffer[reqnr].state = MEYE_BUF_DONE;
v4l2_get_timestamp(&meye.grab_buffer[reqnr].timestamp);
meye.grab_buffer[reqnr].sequence = sequence++;
- kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr,
- sizeof(int), &meye.doneq_lock);
+ kfifo_put(meye.doneq, (unsigned char *)&reqnr, sizeof(int));
wake_up_interruptible(&meye.proc_list);
}
mchip_free_frame();
@@ -865,8 +863,8 @@ static int meye_open(struct file *file)
for (i = 0; i < MEYE_MAX_BUFNBRS; i++)
meye.grab_buffer[i].state = MEYE_BUF_UNUSED;
- kfifo_reset(&meye.grabq);
- kfifo_reset(&meye.doneq);
+ kfifo_reset(meye.grabq);
+ kfifo_reset(meye.doneq);
return v4l2_fh_open(file);
}
@@ -939,8 +937,7 @@ static int meyeioc_qbuf_capt(int *nb)
mchip_cont_compression_start();
meye.grab_buffer[*nb].state = MEYE_BUF_USING;
- kfifo_in_locked(&meye.grabq, (unsigned char *)nb, sizeof(int),
- &meye.grabq_lock);
+ kfifo_put(meye.grabq, (unsigned char *)nb, sizeof(int));
mutex_unlock(&meye.lock);
return 0;
@@ -972,9 +969,7 @@ static int meyeioc_sync(struct file *file, void *fh, int *i)
/* fall through */
case MEYE_BUF_DONE:
meye.grab_buffer[*i].state = MEYE_BUF_UNUSED;
- if (kfifo_out_locked(&meye.doneq, (unsigned char *)&unused,
- sizeof(int), &meye.doneq_lock) != sizeof(int))
- break;
+ kfifo_get(meye.doneq, (unsigned char *)&unused, sizeof(int));
}
*i = meye.grab_buffer[*i].size;
mutex_unlock(&meye.lock);
@@ -1319,8 +1314,7 @@ static int vidioc_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
buf->flags |= V4L2_BUF_FLAG_QUEUED;
buf->flags &= ~V4L2_BUF_FLAG_DONE;
meye.grab_buffer[buf->index].state = MEYE_BUF_USING;
- kfifo_in_locked(&meye.grabq, (unsigned char *)&buf->index,
- sizeof(int), &meye.grabq_lock);
+ kfifo_put(meye.grabq, (unsigned char *)&buf->index, sizeof(int));
mutex_unlock(&meye.lock);
return 0;
@@ -1335,19 +1329,19 @@ static int vidioc_dqbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
mutex_lock(&meye.lock);
- if (kfifo_len(&meye.doneq) == 0 && file->f_flags & O_NONBLOCK) {
+ if (kfifo_len(meye.doneq) == 0 && file->f_flags & O_NONBLOCK) {
mutex_unlock(&meye.lock);
return -EAGAIN;
}
if (wait_event_interruptible(meye.proc_list,
- kfifo_len(&meye.doneq) != 0) < 0) {
+ kfifo_len(meye.doneq) != 0) < 0) {
mutex_unlock(&meye.lock);
return -EINTR;
}
- if (!kfifo_out_locked(&meye.doneq, (unsigned char *)&reqnr,
- sizeof(int), &meye.doneq_lock)) {
+ if (!kfifo_get(meye.doneq, (unsigned char *)&reqnr,
+ sizeof(int))) {
mutex_unlock(&meye.lock);
return -EBUSY;
}
@@ -1397,8 +1391,8 @@ static int vidioc_streamoff(struct file *file, void *fh, enum v4l2_buf_type i)
{
mutex_lock(&meye.lock);
mchip_hic_stop();
- kfifo_reset(&meye.grabq);
- kfifo_reset(&meye.doneq);
+ kfifo_reset(meye.grabq);
+ kfifo_reset(meye.doneq);
for (i = 0; i < MEYE_MAX_BUFNBRS; i++)
meye.grab_buffer[i].state = MEYE_BUF_UNUSED;
@@ -1441,7 +1435,7 @@ static unsigned int meye_poll(struct file *file, poll_table *wait)
mutex_lock(&meye.lock);
poll_wait(file, &meye.proc_list, wait);
- if (kfifo_len(&meye.doneq))
+ if (kfifo_len(meye.doneq))
res |= POLLIN | POLLRDNORM;
mutex_unlock(&meye.lock);
return res;
@@ -1649,14 +1643,16 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
}
spin_lock_init(&meye.grabq_lock);
- if (kfifo_alloc(&meye.grabq, sizeof(int) * MEYE_MAX_BUFNBRS,
- GFP_KERNEL)) {
+ meye.grabq = kfifo_alloc(sizeof(int) * MEYE_MAX_BUFNBRS, GFP_KERNEL,
+ &meye.grabq_lock);
+ if (IS_ERR(meye.grabq)) {
v4l2_err(v4l2_dev, "fifo allocation failed\n");
goto outkfifoalloc1;
}
spin_lock_init(&meye.doneq_lock);
- if (kfifo_alloc(&meye.doneq, sizeof(int) * MEYE_MAX_BUFNBRS,
- GFP_KERNEL)) {
+ meye.doneq = kfifo_alloc(sizeof(int) * MEYE_MAX_BUFNBRS, GFP_KERNEL,
+ &meye.doneq_lock);
+ if (IS_ERR(meye.doneq)) {
v4l2_err(v4l2_dev, "fifo allocation failed\n");
goto outkfifoalloc2;
}
@@ -1774,9 +1770,9 @@ outregions:
outenabledev:
sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 0);
outsonypienable:
- kfifo_free(&meye.doneq);
+ kfifo_free(meye.doneq);
outkfifoalloc2:
- kfifo_free(&meye.grabq);
+ kfifo_free(meye.grabq);
outkfifoalloc1:
vfree(meye.grab_temp);
outvmalloc:
@@ -1807,8 +1803,8 @@ static void meye_remove(struct pci_dev *pcidev)
sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 0);
- kfifo_free(&meye.doneq);
- kfifo_free(&meye.grabq);
+ kfifo_free(meye.doneq);
+ kfifo_free(meye.grabq);
vfree(meye.grab_temp);
diff --git a/drivers/media/pci/meye/meye.h b/drivers/media/pci/meye/meye.h
index 6fed927..77aad1f 100644
--- a/drivers/media/pci/meye/meye.h
+++ b/drivers/media/pci/meye/meye.h
@@ -306,9 +306,9 @@ struct meye {
struct meye_grab_buffer grab_buffer[MEYE_MAX_BUFNBRS];
int vma_use_count[MEYE_MAX_BUFNBRS]; /* mmap count */
struct mutex lock; /* mutex for open/mmap... */
- struct kfifo grabq; /* queue for buffers to be grabbed */
+ struct kfifo *grabq; /* queue for buffers to be grabbed */
spinlock_t grabq_lock; /* lock protecting the queue */
- struct kfifo doneq; /* queue for grabbed buffers */
+ struct kfifo *doneq; /* queue for grabbed buffers */
spinlock_t doneq_lock; /* lock protecting the queue */
wait_queue_head_t proc_list; /* wait queue */
struct video_device *vdev; /* video device parameters */
diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h
index 84967ca..2aca801 100644
--- a/drivers/media/rc/rc-core-priv.h
+++ b/drivers/media/rc/rc-core-priv.h
@@ -35,7 +35,7 @@ struct ir_raw_event_ctrl {
struct list_head list; /* to keep track of raw clients */
struct task_struct *thread;
spinlock_t lock;
- struct kfifo kfifo; /* fifo for the pulse/space durations */
+ struct kfifo *kfifo; /* fifo for the pulse/space durations */
ktime_t last_event; /* when last event occurred */
enum raw_event_type last_type; /* last event type */
struct rc_dev *dev; /* pointer to the parent rc_dev */
diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index e8fff2a..7709c32 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -41,7 +41,7 @@ static int ir_raw_event_thread(void *data)
while (!kthread_should_stop()) {
spin_lock_irq(&raw->lock);
- retval = kfifo_len(&raw->kfifo);
+ retval = kfifo_len(raw->kfifo);
if (retval < sizeof(ev)) {
set_current_state(TASK_INTERRUPTIBLE);
@@ -54,7 +54,7 @@ static int ir_raw_event_thread(void *data)
continue;
}
- retval = kfifo_out(&raw->kfifo, &ev, sizeof(ev));
+ retval = __kfifo_get(raw->kfifo, (void *)&ev, sizeof(ev));
spin_unlock_irq(&raw->lock);
mutex_lock(&ir_raw_handler_lock);
@@ -85,7 +85,7 @@ int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev)
IR_dprintk(2, "sample: (%05dus %s)\n",
TO_US(ev->duration), TO_STR(ev->pulse));
- if (kfifo_in(&dev->raw->kfifo, ev, sizeof(*ev)) != sizeof(*ev))
+ if (__kfifo_put(dev->raw->kfifo, (void *)ev, sizeof(*ev)) != sizeof(*ev))
return -ENOMEM;
return 0;
@@ -264,11 +264,11 @@ int ir_raw_event_register(struct rc_dev *dev)
dev->raw->dev = dev;
dev->enabled_protocols = ~0;
dev->change_protocol = change_protocol;
- rc = kfifo_alloc(&dev->raw->kfifo,
- sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
- GFP_KERNEL);
- if (rc < 0)
+ dev->raw->kfifo = kfifo_alloc(sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE, GFP_KERNEL, NULL);
+ if (IS_ERR(dev->raw->kfifo)) {
+ rc = PTR_ERR(dev->raw->kfifo);
goto out;
+ }
spin_lock_init(&dev->raw->lock);
dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw,
@@ -310,7 +310,7 @@ void ir_raw_event_unregister(struct rc_dev *dev)
handler->raw_unregister(dev);
mutex_unlock(&ir_raw_handler_lock);
- kfifo_free(&dev->raw->kfifo);
+ kfifo_free(dev->raw->kfifo);
kfree(dev->raw);
dev->raw = NULL;
}
diff --git a/drivers/staging/media/lirc/lirc_zilog.c b/drivers/staging/media/lirc/lirc_zilog.c
index 1ccf626..b0e514b 100644
--- a/drivers/staging/media/lirc/lirc_zilog.c
+++ b/drivers/staging/media/lirc/lirc_zilog.c
@@ -199,7 +199,7 @@ static void release_ir_device(struct kref *ref)
lirc_unregister_driver(ir->l.minor);
ir->l.minor = MAX_IRCTL_DEVICES;
}
- if (kfifo_initialized(&ir->rbuf.fifo))
+ if (ir->rbuf.fifo)
lirc_buffer_free(&ir->rbuf);
list_del(&ir->list);
kfree(ir);
diff --git a/include/media/lirc_dev.h b/include/media/lirc_dev.h
index 05e7ad5..f40097c 100644
--- a/include/media/lirc_dev.h
+++ b/include/media/lirc_dev.h
@@ -28,18 +28,14 @@ struct lirc_buffer {
unsigned int size; /* in chunks */
/* Using chunks instead of bytes pretends to simplify boundary checking
* And should allow for some performance fine tunning later */
- struct kfifo fifo;
+ struct kfifo *fifo;
};
static inline void lirc_buffer_clear(struct lirc_buffer *buf)
{
- unsigned long flags;
-
- if (kfifo_initialized(&buf->fifo)) {
- spin_lock_irqsave(&buf->fifo_lock, flags);
- kfifo_reset(&buf->fifo);
- spin_unlock_irqrestore(&buf->fifo_lock, flags);
- } else
+ if (buf->fifo)
+ kfifo_reset(buf->fifo);
+ else
WARN(1, "calling %s on an uninitialized lirc_buffer\n",
__func__);
}
@@ -48,22 +44,23 @@ static inline int lirc_buffer_init(struct lirc_buffer *buf,
unsigned int chunk_size,
unsigned int size)
{
- int ret;
-
init_waitqueue_head(&buf->wait_poll);
spin_lock_init(&buf->fifo_lock);
buf->chunk_size = chunk_size;
buf->size = size;
- ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
+ buf->fifo = kfifo_alloc(size * chunk_size, GFP_KERNEL,
+ &buf->fifo_lock);
+ if (IS_ERR(buf->fifo))
+ return IS_ERR(buf->fifo);
- return ret;
+ return 0;
}
static inline void lirc_buffer_free(struct lirc_buffer *buf)
{
- if (kfifo_initialized(&buf->fifo)) {
- kfifo_free(&buf->fifo);
- } else
+ if (buf->fifo)
+ kfifo_free(buf->fifo);
+ else
WARN(1, "calling %s on an uninitialized lirc_buffer\n",
__func__);
}
@@ -71,11 +68,8 @@ static inline void lirc_buffer_free(struct lirc_buffer *buf)
static inline int lirc_buffer_len(struct lirc_buffer *buf)
{
int len;
- unsigned long flags;
- spin_lock_irqsave(&buf->fifo_lock, flags);
- len = kfifo_len(&buf->fifo);
- spin_unlock_irqrestore(&buf->fifo_lock, flags);
+ len = kfifo_len(buf->fifo);
return len;
}
@@ -98,24 +92,19 @@ static inline int lirc_buffer_available(struct lirc_buffer *buf)
static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf,
unsigned char *dest)
{
- unsigned int ret = 0;
-
if (lirc_buffer_len(buf) >= buf->chunk_size)
- ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size,
- &buf->fifo_lock);
- return ret;
+ kfifo_get(buf->fifo, dest, buf->chunk_size);
+
+ return 0;
}
static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
unsigned char *orig)
{
- unsigned int ret;
-
- ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size,
- &buf->fifo_lock);
+ kfifo_put(buf->fifo, orig, buf->chunk_size);
- return ret;
+ return 0;
}
struct lirc_driver {

+ 0
- 12
backports/v2.6.32_request_firmware_nowait.patch View File

@@ -1,12 +0,0 @@
diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c
index f88f948..8591799 100644
--- a/drivers/media/tuners/tuner-xc2028.c
+++ b/drivers/media/tuners/tuner-xc2028.c
@@ -1408,7 +1408,6 @@ static int xc2028_set_config(struct dvb_frontend *fe, void *priv_cfg)
rc = request_firmware_nowait(THIS_MODULE, 1,
priv->fname,
priv->i2c_props.adap->dev.parent,
- GFP_KERNEL,
fe, load_firmware_cb);
if (rc < 0) {
tuner_err("Failed to request firmware %s\n",

+ 0
- 45
backports/v2.6.33_input_handlers_are_int.patch View File

@@ -1,45 +0,0 @@
---
drivers/media/usb/dvb-usb/dvb-usb-remote.c | 4 ++--
drivers/media/rc/rc-main.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

--- linux.orig/drivers/media/rc/rc-main.c
+++ linux/drivers/media/rc/rc-main.c
@@ -318,7 +318,7 @@ static unsigned int ir_establish_scancod
* This routine is used to handle evdev EVIOCSKEY ioctl.
*/
static int ir_setkeycode(struct input_dev *idev,
- unsigned int scancode, unsigned int keycode)
+ int scancode, int keycode)
{
struct rc_dev *rdev = input_get_drvdata(idev);
struct rc_map *rc_map = &rdev->rc_map;
@@ -422,7 +422,7 @@ static unsigned int ir_lookup_by_scancod
* This routine is used to handle evdev EVIOCGKEY ioctl.
*/
static int ir_getkeycode(struct input_dev *idev,
- unsigned int scancode, unsigned int *keycode)
+ int scancode, int *keycode)
{
struct rc_dev *rdev = input_get_drvdata(idev);
struct rc_map *rc_map = &rdev->rc_map;
--- linux.orig/drivers/media/usb/dvb-usb/dvb-usb-remote.c
+++ linux/drivers/media/usb/dvb-usb/dvb-usb-remote.c
@@ -9,7 +9,7 @@
#include <linux/usb/input.h>
static int legacy_dvb_usb_getkeycode(struct input_dev *dev,
- unsigned int scancode, unsigned int *keycode)
+ int scancode, int *keycode)
{
struct dvb_usb_device *d = input_get_drvdata(dev);
@@ -39,7 +39,7 @@ static int legacy_dvb_usb_getkeycode(str
}
static int legacy_dvb_usb_setkeycode(struct input_dev *dev,
- unsigned int scancode, unsigned int keycode)
+ int scancode, int keycode)
{
struct dvb_usb_device *d = input_get_drvdata(dev);

+ 0
- 22
backports/v2.6.33_no_gpio_request_one.patch View File

@@ -1,22 +0,0 @@
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index 71e1fca..bc55d98 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -719,7 +719,7 @@ static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe)
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv;
struct em28xx *dev = i2c_bus->dev;
-#ifdef CONFIG_GPIOLIB
+#if 0
struct em28xx_dvb *dvb = dev->dvb;
int ret;
unsigned long flags;
@@ -1220,7 +1220,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
goto out_free;
}
-#ifdef CONFIG_GPIOLIB
+#if 0
/* enable LNA for DVB-T, DVB-T2 and DVB-C */
result = gpio_request_one(dvb->lna_gpio,
GPIOF_OUT_INIT_LOW, NULL);

+ 0
- 73
backports/v2.6.33_pvrusb2_sysfs.patch View File

@@ -1,73 +0,0 @@
---
drivers/media/usb/pvrusb2/pvrusb2-sysfs.c | 14 --------------
1 file changed, 14 deletions(-)

--- linux.orig/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c
+++ linux/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c
@@ -432,12 +432,10 @@ static void pvr2_sysfs_add_debugifc(stru
dip = kzalloc(sizeof(*dip),GFP_KERNEL);
if (!dip) return;
- sysfs_attr_init(&dip->attr_debugcmd.attr);
dip->attr_debugcmd.attr.name = "debugcmd";
dip->attr_debugcmd.attr.mode = S_IRUGO|S_IWUSR|S_IWGRP;
dip->attr_debugcmd.show = debugcmd_show;
dip->attr_debugcmd.store = debugcmd_store;
- sysfs_attr_init(&dip->attr_debuginfo.attr);
dip->attr_debuginfo.attr.name = "debuginfo";
dip->attr_debuginfo.attr.mode = S_IRUGO;
dip->attr_debuginfo.show = debuginfo_show;
@@ -659,8 +657,6 @@ static void class_dev_create(struct pvr2
put_device(class_dev);
return;
}
-
- sysfs_attr_init(&sfp->attr_v4l_minor_number.attr);
sfp->attr_v4l_minor_number.attr.name = "v4l_minor_number";
sfp->attr_v4l_minor_number.attr.mode = S_IRUGO;
sfp->attr_v4l_minor_number.show = v4l_minor_number_show;
@@ -674,8 +670,6 @@ static void class_dev_create(struct pvr2
} else {
sfp->v4l_minor_number_created_ok = !0;
}
-
- sysfs_attr_init(&sfp->attr_v4l_radio_minor_number.attr);
sfp->attr_v4l_radio_minor_number.attr.name = "v4l_radio_minor_number";
sfp->attr_v4l_radio_minor_number.attr.mode = S_IRUGO;
sfp->attr_v4l_radio_minor_number.show = v4l_radio_minor_number_show;
@@ -689,8 +683,6 @@ static void class_dev_create(struct pvr2
} else {
sfp->v4l_radio_minor_number_created_ok = !0;
}
-
- sysfs_attr_init(&sfp->attr_unit_number.attr);
sfp->attr_unit_number.attr.name = "unit_number";
sfp->attr_unit_number.attr.mode = S_IRUGO;
sfp->attr_unit_number.show = unit_number_show;
@@ -703,8 +695,6 @@ static void class_dev_create(struct pvr2
} else {
sfp->unit_number_created_ok = !0;
}
-
- sysfs_attr_init(&sfp->attr_bus_info.attr);
sfp->attr_bus_info.attr.name = "bus_info_str";
sfp->attr_bus_info.attr.mode = S_IRUGO;
sfp->attr_bus_info.show = bus_info_show;
@@ -718,8 +708,6 @@ static void class_dev_create(struct pvr2
} else {
sfp->bus_info_created_ok = !0;
}
-
- sysfs_attr_init(&sfp->attr_hdw_name.attr);
sfp->attr_hdw_name.attr.name = "device_hardware_type";
sfp->attr_hdw_name.attr.mode = S_IRUGO;
sfp->attr_hdw_name.show = hdw_name_show;
@@ -733,8 +721,6 @@ static void class_dev_create(struct pvr2
} else {
sfp->hdw_name_created_ok = !0;
}
-
- sysfs_attr_init(&sfp->attr_hdw_desc.attr);
sfp->attr_hdw_desc.attr.name = "device_hardware_description";
sfp->attr_hdw_desc.attr.mode = S_IRUGO;
sfp->attr_hdw_desc.show = hdw_desc_show;

+ 0
- 41
backports/v2.6.34_dvb_net.patch View File