summaryrefslogtreecommitdiff
path: root/media-tv/v4l-dvb-saa716x
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-tv/v4l-dvb-saa716x
reinit the tree, so we can have metadata
Diffstat (limited to 'media-tv/v4l-dvb-saa716x')
-rw-r--r--media-tv/v4l-dvb-saa716x/Manifest19
-rw-r--r--media-tv/v4l-dvb-saa716x/files/OSD_RAW_CMD_patch_2.diff27
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-3.19-set_gpio.patch24
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.10-fix-compile.patch18
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.2-fix-compile.patch34
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.5.2-fix-compile.patch13
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.6.0-fix-compile.patch24
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.9-fix-warnings.patch146
-rw-r--r--media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-Makefilepatch-2.diff8
-rw-r--r--media-tv/v4l-dvb-saa716x/metadata.xml24
-rw-r--r--media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20140322.ebuild47
-rw-r--r--media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r1.ebuild48
-rw-r--r--media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r2.ebuild52
-rw-r--r--media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109.ebuild47
-rw-r--r--media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20170225.ebuild55
15 files changed, 586 insertions, 0 deletions
diff --git a/media-tv/v4l-dvb-saa716x/Manifest b/media-tv/v4l-dvb-saa716x/Manifest
new file mode 100644
index 000000000000..bb177d7d677d
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/Manifest
@@ -0,0 +1,19 @@
+AUX OSD_RAW_CMD_patch_2.diff 843 SHA256 41ad8460fd67ec56466266fd4e89de712dc8ca99327cf95670a5a0a27b6a9a14 SHA512 57688acc06ac9fcde332e3fba9d4048ac962d7c65c3844ff60e1d48956f7fe0f02315859f427cd5e21695ffa0c3d5cbd46ff953d7d1eca4b3e2ab165f6985e71 WHIRLPOOL 18ef1d95fa4bd2e0e3d353356782d39f84179a9f0f48bb36f5b4705500d7c4030b3ad684a2e186c3c6e64d72d55059f65fb9cd63c170701865b39f406fe9541d
+AUX v4l-dvb-saa716x-3.19-set_gpio.patch 733 SHA256 6ea366636aa838d2d1499d314085e3d8eafba91de37ebc57b0be0d069140ba8c SHA512 e713779f02ebdc090a364e2339217c7f4fa2d54ba53d26f61a1a0241d19078e0278da14c8ba6520354d8a037c6834ae90271e39cdda279cfd8f4047277f24116 WHIRLPOOL bba297c62a576612ff54dcd741ec8f5f2a1640e79da503b068637bd0341c2dc39fcebf107994a27dbc3302ef92182562fe223368e8de578da214ca0917dbfd2f
+AUX v4l-dvb-saa716x-4.10-fix-compile.patch 515 SHA256 4cd4d8c6a28494f9bb521e36b9202b99045173788196c29ea7b6419aedb4edcd SHA512 6dc1b7b24c0d4c4b21f765ee0ac72f8b48f85ec40bb2cb7d51e589d03e64521d026a4e49f4b8c5d0e5b46b4e9332ac3785fa9a682a19dbad94f3b7ac50950653 WHIRLPOOL 643463962a10f3c6be053e4c9d20ae265f0c9f40575b70498c8bf32c05d41e80247ecf4d9180d7e45fefad6fdada1107f77ff1aaa333662e8d79ef40214d00dc
+AUX v4l-dvb-saa716x-4.2-fix-compile.patch 2397 SHA256 5544e0df1995516fe025404c69b13c168e3848c32193039874a2e6da990ddbd1 SHA512 621852c315437a9f5ada9f5624f08d25154d331cd0a95c479f3835ba9452cd0a17ecf6fdc4b37b5eb7504456ab8565e8d6670be8680e4ea6052b5f5c22c15c12 WHIRLPOOL f7fed682d4c7b3e39b101c8f1f3e4ecf0c61333fa9d616f3d7a5326b61c8c7f688db9abbf742a1ba5dc563050e196a2b7a949d50bdb5ce9301545df62d2dbbea
+AUX v4l-dvb-saa716x-4.5.2-fix-compile.patch 498 SHA256 e340d64d44611d10f69ee89797dc0bf05a7510c0853441b2401a715b662f1b7d SHA512 3c94389b3ffb380a585d51b7e27e3fdf36b053524983fd58531e1d00b1ade2680759822df41363fa2e2ef279570f364178c7f4870c9c6b2fb52124f83eb4afb1 WHIRLPOOL 91e139f86ef5a5ab1c789ad09d8e0a0d78e8eefac1eadf04fa63ab5d22e48957e8ba345009c44edf0bfaf9d84ea84356e1e5defa987a8338bc216f4710fecacd
+AUX v4l-dvb-saa716x-4.6.0-fix-compile.patch 692 SHA256 31baa03e8913a7c5724301f421f0072d97e5ef0efdcedb5dc6e3c7cd1045193c SHA512 64b03e316d938a3830b7aad3c6b6431a9360202470e62d3c696c4203ee98b15595be3bda727468b28a6f43b539931530a408582aab6fe280b8a0200224f2b96f WHIRLPOOL f33ace1023beaf958d00bac30a03a861334d7d3966f3bd0065c1b176795441115bc70deda55e476de2de08fc2ffe4b9a1c242820dcce9b5dd60f512723e88707
+AUX v4l-dvb-saa716x-4.9-fix-warnings.patch 6368 SHA256 19eaad1c40ab9165003ff6ed1655bf9947f4372786b92ce84c8f7b3ed1a124ad SHA512 e697a87b14727d8877ecc78622050bb9d8e5b0d964796c5c3275a8d72359712ec85a578e2189a102b23eedcdb17381533de9641a22103982ad5b0c9702e77901 WHIRLPOOL 1bff1fde73f8cbe50ee6f92ecf04699854b3c0efa442f0b99e8ccc2c40830142328468d9bed7a3fb444ac0245f35154c16b804e18a54966bcb5a7b21c1b83b57
+AUX v4l-dvb-saa716x-Makefilepatch-2.diff 562 SHA256 2b4cd1fd3d185f3d20654d759db177beffa52984178e55e149789697f10edf69 SHA512 e0ff1c5a79f7b02323eff281bf6dc6ebb7a8fe7a43eb83ebd4a7379468924d3992790899bfabbbf2ee411cda6366ad6a677d8ad004a306e14b55d891f6f69dc0 WHIRLPOOL 289bbb5858afed31c77e9427e7e4d2872ed14ae048c9e84ba0faad8435de431271798f5b6ba53bc1217d4554ff36cab94b980cc5a6ead92610be25f85c192432
+DIST v4l-dvb-saa716x-0.0.1_p20140322.tar.gz 5026505 SHA256 79ff65c1354506ffb951e23bc1667c372cf22e9eca8309f9b7486fcfec22ef29 SHA512 2b452f6951064f01e88ccf1a2a6f0c9db8ac96779f7b8d56d33cf387d6ed196922edf6b6234d5887ce9dfdb7013772dc874be5ad5893b8e92b23ffe1f2b5d6ea WHIRLPOOL c6f63e835a670455aa871d179283d283d1e3da23f83c868040a48a402178d73d0c7f44ee807076e3cbd72a7b3e1f050d3e6103d2a49c778eddfe19efdba815a7
+DIST v4l-dvb-saa716x-0.0.1_p20141109.tar.gz 5028238 SHA256 2c6608f94df9da7681e2b22fdbdd842cdd1e97dd1dac6017c713c1fc037cd2bd SHA512 a67f095d4878b4ceb3b340e725925385fee33b289e875e9e0903370d0ec909d66893d9ac846d5c7fedf469129a3327e3458668db5a83ff2718c04174e6e07c66 WHIRLPOOL 156cac6e08c57c1a4c2b5511d211de784d941c22d6bc7c2aa8188e9c01b8cf043e4f7a3af595180c68af4de6be7d1bfba4f27323c14a18afdd3110e8629802a3
+DIST v4l-dvb-saa716x-0.0.1_p20160322.tar.gz 5028181 SHA256 daef53afa986ef74f035ab82c7b85bbfc51641b13a544241ee7db95cab2fd5b7 SHA512 94a41467688a0363586c654102e35366071218432042bc324d041298ad4812139201f8df17eadb37ebb9baf2b097447fc0859270bcc4e8e0c73b17e0b8045343 WHIRLPOOL 0fdc8fcbb3197c6bc4bbe678f179b352180b5045ef0fd635967092ed94572569a0884c3de113d1849ee5db12f6c1ed4a08401519303395e2cd2e69735ed55dca
+EBUILD v4l-dvb-saa716x-0.0.1_p20140322.ebuild 1513 SHA256 082bd16b3ebe18551d15d591fa79d253e8ecb402c970bb992cc99ff41418a5cb SHA512 ebc9cff7871e560b72a72756540f58b25ac0ff785461f29445bef733de113dce0b0275ed2e51ea42a7756985c9df8c40dc3a8099f4638553ac6ca54c46d270fc WHIRLPOOL 1e3123fad39d35bd0c547131890765207998d2cc8e9afa406d13575c8f98c445d3d06889ea704aba700d808836ed5471a0520dc1e738fe49df9e75fb29902b10
+EBUILD v4l-dvb-saa716x-0.0.1_p20141109-r1.ebuild 1591 SHA256 e0241e0c8579b61fb28326d37878c5940fc924d2798571719f2228fec7605af9 SHA512 b5a733666792782ff0b312ff1674f579b92471447e963683eb60d21ed0961715525409294f8c4987ecfd6de9731c2c434fc818de76fc0cd8099d20cda67ea3c3 WHIRLPOOL 283fa42b2373931fded15436e997614c2ae27d6dd78d6aefe11240dde0e4714b16557b39d9944909d9c8c9c8a35ce49ddd1a404b08bcc49acdceba46c61e9f26
+EBUILD v4l-dvb-saa716x-0.0.1_p20141109-r2.ebuild 1771 SHA256 ab8124d6c6d9b9a9a8687361399093b0b226c4f200f62030fc92d260b0844453 SHA512 bd9996ba8df5b3e9713d179da9468dd22821d7e655bb2147d56f9186b93e88725195680501d19b8bb0ea4652f245e48bdf9c21f6896db3fbf257ed253068be92 WHIRLPOOL 0cc10a7e1fb12e6846e7be8e312b4d4a5e87af9324a4b4167242700633add49fb246c188a65ebdd8b00dcd671933763d3df7fc659471435c2ef9925dcad45fa0
+EBUILD v4l-dvb-saa716x-0.0.1_p20141109.ebuild 1510 SHA256 5f396e66577f249ae3cffd403211a79639e6d14a05f60dd362705859dd3c37b9 SHA512 5df495f3f4b64e1cc34260f7de274e294997798dfcdd35ff521290c9a36d1fe0f9622b3a674e873f29f5dffcabfa8a195e657607e1903e28dd2be04b022270b8 WHIRLPOOL 5ed395ce94f3215da72cd2fcb5190092d89ac029062a9d5e9d5f91aee7c6c588a5ad0140cdc1cb9f81afb3df1d16445bd803ff2a8d8ffd7b081d83ec5fd303f1
+EBUILD v4l-dvb-saa716x-0.0.1_p20170225.ebuild 2017 SHA256 9a8cd7d4945f13f31f9f30bf63e6e77936f8402376ff0701b170d935585e64f8 SHA512 5dd9acd0e0300de379ef7f8ed21a9e5b81ae2f8f2dcd93d909aea6385ec868a26eed82fd7ee648b655e3d947ba62b302eb5e8639ad1512c281921c9e1a1aa9c8 WHIRLPOOL 9cb778cbada6e24bad4b1628ddc4cf326fd03ef9155728f09fc54f5ad20830b3ba441634f49690471630e51577cc2fcd933c41088e4d854fedf417150b0e2076
+MISC ChangeLog 3521 SHA256 6eef4f16a5a13414cf25e0334343f7dd0bfd5fde44dec4e9a664e06e8c2a033a SHA512 b60ebcd0d6c518b0c3dd6dd97daeb4a55b45a5e8c8ee31b8e4c3b455fb238987cb5e699d20b07d4b763ac95cde13b52f47f127c63e3f165c4d7486400befb9b0 WHIRLPOOL ec0fe795565671341ba2578807d5aa5af0c0d84ac06fd35e3b7a14c5779ebfb123aab4285dee7e67a771469b106618f1705d7e39a0bdc7e4d26a5e52eb5328a7
+MISC ChangeLog-2015 1745 SHA256 6986bd5ef889327b639fc97fbd322ff57d71eca63e1d201522305b4939e34311 SHA512 cc308432cba30422a4f3ded5397210aedf07779d5faaa2c15a4f41d489b8db98755b8d110a31ca059e0605710facbe276c26da880482a8565705aa8204cc019c WHIRLPOOL 9f2fb5360ef99d7dc1fd5f0b5d927f540cd331d9015d37ea5d8200b83f72cd8ac8adf423e7f757cfd05162c9933cd32e42c981f5e5c6814a3c8946f96f1896a1
+MISC metadata.xml 732 SHA256 05c276ae6ba4b6b5cb0940b4f839bfdaf9a94001c92762a9ceae2627a9922af6 SHA512 8ead5a434ccb0231a76a1ffda1fd1811d3f1d59175b67d5d12f9e3f738ff209f8a71f84a592d5906bc2d31b69f63ec64a4b4dfb3e26a5e46e5adac07d23d8924 WHIRLPOOL fd20341e3ca5ba562f0ae83aef4ed4567a95be1a4e77346b1d373e3a52c0770f780623965ec11f02f068130fb3ae77d4ef95ab771f03213ee6302be89c4f8889
diff --git a/media-tv/v4l-dvb-saa716x/files/OSD_RAW_CMD_patch_2.diff b/media-tv/v4l-dvb-saa716x/files/OSD_RAW_CMD_patch_2.diff
new file mode 100644
index 000000000000..7f09a1d60f1a
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/OSD_RAW_CMD_patch_2.diff
@@ -0,0 +1,27 @@
+--- linux/drivers/media/common/saa716x/saa716x_ff_cmd.h.orig 2011-11-12 14:46:51.175700236 +0100
++++ linux/drivers/media/common/saa716x/saa716x_ff_cmd.h 2011-11-12 14:45:10.103702959 +0100
+@@ -1,6 +1,24 @@
+ #ifndef __SAA716x_FF_CMD_H
+ #define __SAA716x_FF_CMD_H
+
++#if !defined OSD_RAW_CMD
++typedef struct osd_raw_cmd_s {
++ const void *cmd_data;
++ int cmd_len;
++ void *result_data;
++ int result_len;
++} osd_raw_cmd_t;
++
++typedef struct osd_raw_data_s {
++ const void *data_buffer;
++ int data_length;
++ int data_handle;
++} osd_raw_data_t;
++
++#define OSD_RAW_CMD _IOWR('o', 162, osd_raw_cmd_t)
++#define OSD_RAW_DATA _IOWR('o', 163, osd_raw_data_t)
++#endif
++
+ extern int sti7109_cmd_init(struct sti7109_dev *sti7109);
+ extern int sti7109_raw_cmd(struct sti7109_dev * sti7109,
+ osd_raw_cmd_t * cmd);
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-3.19-set_gpio.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-3.19-set_gpio.patch
new file mode 100644
index 000000000000..895caa4449e0
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-3.19-set_gpio.patch
@@ -0,0 +1,24 @@
+--- v4l-dvb-saa716x-d7e98fc59230-orig/linux/drivers/media/common/saa716x/saa716x_budget.c 2014-11-09 15:44:55.000000000 +0100
++++ v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_budget.c 2015-02-28 13:58:01.258743639 +0100
+@@ -497,10 +497,10 @@
+ break;
+ }
+
+- err = stv090x_set_gpio(fe, 2, 0, en, 0);
++ err = skystar2_stv090x_config.set_gpio(fe, 2, 0, en, 0);
+ if (err < 0)
+ goto exit;
+- err = stv090x_set_gpio(fe, 3, 0, sel, 0);
++ err = skystar2_stv090x_config.set_gpio(fe, 3, 0, sel, 0);
+ if (err < 0)
+ goto exit;
+
+@@ -519,7 +519,7 @@
+ else
+ value = 0;
+
+- err = stv090x_set_gpio(fe, 4, 0, value, 0);
++ err = skystar2_stv090x_config.set_gpio(fe, 4, 0, value, 0);
+ if (err < 0)
+ goto exit;
+
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.10-fix-compile.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.10-fix-compile.patch
new file mode 100644
index 000000000000..4086da102b80
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.10-fix-compile.patch
@@ -0,0 +1,18 @@
+--- a/linux/drivers/media/common/saa716x/saa716x_ff.h
++++ b/linux/drivers/media/common/saa716x/saa716x_ff.h
+@@ -1,7 +1,6 @@
+ #ifndef __SAA716x_FF_H
+ #define __SAA716x_FF_H
+
+-#include "dvb_filter.h"
+ #include "dvb_ringbuffer.h"
+ #include <linux/version.h>
+ #include <linux/workqueue.h>
+@@ -95,6 +94,7 @@
+ #define MAX_RESULT_LEN 256
+ #define MAX_DATA_LEN (1024 * 1024)
+
++#define TS_SIZE 188
+ #define TSOUT_LEN (1024 * TS_SIZE)
+ #define TSOUT_LEVEL_FILL (350 * TS_SIZE)
+ #define TSOUT_LEVEL_HIGH (30 * TS_SIZE)
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.2-fix-compile.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.2-fix-compile.patch
new file mode 100644
index 000000000000..392ef2583075
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.2-fix-compile.patch
@@ -0,0 +1,34 @@
+diff -urN powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_budget.c v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_budget.c
+--- powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_budget.c 2015-09-03 00:30:08.662553247 +0200
++++ v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_budget.c 2015-09-03 00:31:03.899206845 +0200
+@@ -306,7 +306,7 @@
+ #define SAA716x_MODEL_TWINHAN_VP1028 "Twinhan/Azurewave VP-1028"
+ #define SAA716x_DEV_TWINHAN_VP1028 "DVB-S"
+
+-static int vp1028_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
++static int vp1028_dvbs_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage)
+ {
+ struct saa716x_dev *saa716x = fe->dvb->priv;
+
+diff -urN powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_hybrid.c v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_hybrid.c
+--- powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_hybrid.c 2014-11-09 15:44:55.000000000 +0100
++++ v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_hybrid.c 2015-09-03 00:31:03.899206845 +0200
+@@ -321,7 +321,7 @@
+ .request_firmware = tda1004x_vp6090_request_firmware,
+ };
+
+-static int vp6090_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
++static int vp6090_dvbs_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage)
+ {
+ struct saa716x_dev *saa716x = fe->dvb->priv;
+
+diff -urN powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_pci.c v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_pci.c
+--- powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_pci.c 2014-11-09 15:44:55.000000000 +0100
++++ v4l-dvb-saa716x-0.0.1_p20141109-r1/work/powARman-v4l-dvb-saa716x-d7e98fc59230/linux/drivers/media/common/saa716x/saa716x_pci.c 2015-09-03 00:31:03.900206839 +0200
+@@ -1,3 +1,5 @@
++#include <asm/atomic.h>
++#include <linux/spinlock_types.h>
+ #include <asm/io.h>
+ #include <asm/pgtable.h>
+ #include <asm/page.h>
+
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.5.2-fix-compile.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.5.2-fix-compile.patch
new file mode 100644
index 000000000000..ac499acdccbc
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.5.2-fix-compile.patch
@@ -0,0 +1,13 @@
+fix compile with kernel >= 4.5.2
+wrt bug 581450
+Signed-of-by: Joerg Bornkessel <hd_brummy@gentoo.org> 2016/05/05
+--- a/linux/drivers/media/common/saa716x/saa716x_pci.c.old 2016-04-27 20:59:51.000000000 +0200
++++ b/linux/drivers/media/common/saa716x/saa716x_pci.c 2016-04-27 21:19:03.117822874 +0200
+@@ -1,6 +1,7 @@
+ #include <asm/atomic.h>
+ #include <linux/spinlock_types.h>
+ #include <asm/io.h>
++#include <asm/processor.h>
+ #include <asm/pgtable.h>
+ #include <asm/page.h>
+ #include <linux/kmod.h>
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.6.0-fix-compile.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.6.0-fix-compile.patch
new file mode 100644
index 000000000000..5aeaabd29af1
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.6.0-fix-compile.patch
@@ -0,0 +1,24 @@
+--- a/linux/drivers/media/common/saa716x/saa716x_pci.c 2017-02-26 18:48:27.196949325 +0100
++++ b/linux/drivers/media/common/saa716x/saa716x_pci.c 2017-02-26 18:50:28.149283794 +0100
+@@ -1,9 +1,6 @@
+ #include <asm/atomic.h>
+ #include <linux/spinlock_types.h>
+-#include <asm/io.h>
+ #include <asm/processor.h>
+-#include <asm/pgtable.h>
+-#include <asm/page.h>
+ #include <linux/kmod.h>
+ #include <linux/vmalloc.h>
+ #include <linux/init.h>
+@@ -20,11 +17,6 @@
+
+ #define DRIVER_NAME "SAA716x Core"
+
+-static irqreturn_t saa716x_msi_handler(int irq, void *dev_id)
+-{
+- return IRQ_HANDLED;
+-}
+-
+ static int saa716x_enable_msi(struct saa716x_dev *saa716x)
+ {
+ struct pci_dev *pdev = saa716x->pdev;
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.9-fix-warnings.patch b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.9-fix-warnings.patch
new file mode 100644
index 000000000000..a32ab60868a6
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-4.9-fix-warnings.patch
@@ -0,0 +1,146 @@
+--- a/linux/drivers/media/common/saa716x/saa716x_rom.c 2015-12-29 19:40:55.000000000 +0100
++++ a/linux/drivers/media/common/saa716x/saa716x_rom.c 2017-07-11 00:51:19.149941914 +0200
+@@ -113,7 +113,7 @@
+ memcpy(rom_header, &buf[*offset], sizeof (struct saa716x_romhdr));
+ if (rom_header->header_size != sizeof (struct saa716x_romhdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%zd bytes, Expected=%d",
+ sizeof (struct saa716x_romhdr),
+ rom_header->header_size);
+
+@@ -237,7 +237,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_decoder_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_decoder_hdr));
+
+@@ -268,7 +268,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_gpio_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_gpio_hdr));
+
+@@ -305,7 +305,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_video_decoder_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_video_decoder_hdr));
+
+@@ -386,7 +386,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_audio_decoder_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_audio_decoder_hdr));
+
+@@ -417,7 +417,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_evsrc_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_evsrc_hdr));
+
+@@ -448,7 +448,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_xbar_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_xbar_hdr));
+
+@@ -486,7 +486,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_tuner_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_tuner_hdr));
+
+@@ -516,7 +516,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_pll_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_pll_hdr));
+
+@@ -546,7 +546,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_channel_decoder_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_channel_decoder_hdr));
+
+@@ -576,7 +576,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_encoder_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_encoder_hdr));
+
+@@ -606,7 +606,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_ir_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_ir_hdr));
+
+@@ -637,7 +637,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_eeprom_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_eeprom_hdr));
+
+@@ -668,7 +668,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_filter_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_filter_hdr));
+
+@@ -699,7 +699,7 @@
+ saa716x_descriptor_dbg(saa716x, buf, offset, header.size, header.ext_data);
+ if (header.size != sizeof (struct saa716x_streamdev_hdr)) {
+ dprintk(SAA716x_ERROR, 1,
+- "ERROR: Header size mismatch! Read size=%d bytes, Expected=%d",
++ "ERROR: Header size mismatch! Read size=%d bytes, Expected=%zd",
+ header.size,
+ sizeof (struct saa716x_streamdev_hdr));
+
+@@ -789,7 +789,7 @@
+
+ memcpy(device, &buf[*offset], sizeof (struct saa716x_devinfo));
+ if (device->struct_size != sizeof (struct saa716x_devinfo)) {
+- dprintk(SAA716x_ERROR, 1, "ERROR: Device size mismatch! Read=%d bytes, expected=%d bytes",
++ dprintk(SAA716x_ERROR, 1, "ERROR: Device size mismatch! Read=%d bytes, expected=%zd bytes",
+ device->struct_size,
+ sizeof (struct saa716x_devinfo));
+
diff --git a/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-Makefilepatch-2.diff b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-Makefilepatch-2.diff
new file mode 100644
index 000000000000..78ba021fb4fe
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/files/v4l-dvb-saa716x-Makefilepatch-2.diff
@@ -0,0 +1,8 @@
+--- v4l-dvb-saa716x-cfa4b4faab67/linux/drivers/media/common/saa716x/Makefile.orig 2013-03-02 07:44:51.112642592 +0100
++++ v4l-dvb-saa716x-cfa4b4faab67/linux/drivers/media/common/saa716x/Makefile 2013-03-02 07:46:56.703138542 +0100
+@@ -24,3 +24,5 @@
+ obj-$(CONFIG_DVB_SAA716X_FF) += saa716x_ff.o
+
+ EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -Idrivers/media/dvb/frontends/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/
++EXTRA_CFLAGS += -Idrivers/media/common/tuners/ # up to kernel 3.6
++EXTRA_CFLAGS += -Idrivers/media/tuners/ # kernel 3.7+
diff --git a/media-tv/v4l-dvb-saa716x/metadata.xml b/media-tv/v4l-dvb-saa716x/metadata.xml
new file mode 100644
index 000000000000..5fcb0acfd4a5
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>martin.dummer@gmx.net</email>
+ <name>Martin Dummer</name>
+ <description>Proxied maintainer</description>
+ </maintainer>
+ <maintainer type="person">
+ <email>hd_brummy@gentoo.org</email>
+ <name>Joerg Bornkessel</name>
+ <description>Proxying maintainer</description>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="firmware">Install firmware</flag>
+ </use>
+ <upstream>
+ <remote-id type="bitbucket">powARman/v4l-dvb-saa716x</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20140322.ebuild b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20140322.ebuild
new file mode 100644
index 000000000000..fddf0a89509f
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20140322.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit linux-info linux-mod
+
+DESCRIPTION="driver for saa716x based dvb cards like Technotrend S2-6400 or Technisat Skystar 2 eXpress HD"
+HOMEPAGE="http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x/"
+
+HG_REVISION="196681f1e154"
+HG_REVISION_DATE="20140322"
+
+SRC_URI="http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x/archive/${HG_REVISION}.tar.gz
+-> v4l-dvb-saa716x-0.0.1_p${HG_REVISION_DATE}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="+firmware"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ firmware? ( sys-firmware/tt-s2-6400-firmware )"
+
+S="${WORKDIR}/v4l-dvb-saa716x-${HG_REVISION}"
+
+BUILD_TARGETS="modules"
+MODULE_NAMES="saa716x_ff(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_core(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_budget(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_hybrid(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)"
+
+CONFIG_CHECK="DVB_CORE DVB_STV6110x DVB_STV090x"
+
+src_prepare() {
+ epatch "${FILESDIR}/OSD_RAW_CMD_patch_2.diff"
+ epatch "${FILESDIR}/v4l-dvb-saa716x-Makefilepatch-2.diff"
+}
+
+src_compile() {
+ BUILD_PARAMS="SUBDIRS=${S}/linux/drivers/media/common/saa716x \
+ CONFIG_SAA716X_CORE=m CONFIG_DVB_SAA716X_FF=m CONFIG_DVB_SAA716X_BUDGET=m \
+ CONFIG_DVB_SAA716X_HYBRID=m"
+ addpredict "${ROOT}"/usr/src/linux/
+ linux-mod_src_compile
+}
diff --git a/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r1.ebuild b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r1.ebuild
new file mode 100644
index 000000000000..7abe09c0dba0
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit linux-info linux-mod
+
+DESCRIPTION="driver for saa716x based dvb cards like Technotrend S2-6400 or Technisat Skystar 2 eXpress HD"
+HOMEPAGE="https://bitbucket.org/powARman/v4l-dvb-saa716x/overview"
+
+HG_REVISION="d7e98fc59230"
+HG_REVISION_DATE="20141109"
+
+SRC_URI="https://bitbucket.org/powARman/v4l-dvb-saa716x/get/${HG_REVISION}.tar.gz
+-> v4l-dvb-saa716x-0.0.1_p${HG_REVISION_DATE}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+firmware"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ firmware? ( sys-firmware/tt-s2-6400-firmware )"
+
+S="${WORKDIR}/powARman-v4l-dvb-saa716x-${HG_REVISION}"
+
+BUILD_TARGETS="modules"
+MODULE_NAMES="saa716x_ff(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_core(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_budget(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_hybrid(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)"
+
+CONFIG_CHECK="DVB_CORE DVB_STV6110x DVB_STV090x"
+
+src_prepare() {
+ epatch "${FILESDIR}/OSD_RAW_CMD_patch_2.diff"
+ epatch "${FILESDIR}/v4l-dvb-saa716x-Makefilepatch-2.diff"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/v4l-dvb-saa716x-3.19-set_gpio.patch"
+}
+
+src_compile() {
+ BUILD_PARAMS="SUBDIRS=${S}/linux/drivers/media/common/saa716x \
+ CONFIG_SAA716X_CORE=m CONFIG_DVB_SAA716X_FF=m CONFIG_DVB_SAA716X_BUDGET=m \
+ CONFIG_DVB_SAA716X_HYBRID=m"
+ addpredict "${ROOT}"/usr/src/linux/
+ linux-mod_src_compile
+}
diff --git a/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r2.ebuild b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r2.ebuild
new file mode 100644
index 000000000000..31091d858f4a
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109-r2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info linux-mod
+
+DESCRIPTION="driver for saa716x based dvb cards like Technotrend S2-6400 or Technisat Skystar 2 eXpress HD"
+HOMEPAGE="https://bitbucket.org/powARman/v4l-dvb-saa716x/overview"
+
+HG_REVISION="d7e98fc59230"
+HG_REVISION_DATE="20141109"
+
+SRC_URI="https://bitbucket.org/powARman/v4l-dvb-saa716x/get/${HG_REVISION}.tar.gz
+-> v4l-dvb-saa716x-0.0.1_p${HG_REVISION_DATE}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+firmware"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ firmware? ( sys-firmware/tt-s2-6400-firmware )"
+
+S="${WORKDIR}/powARman-v4l-dvb-saa716x-${HG_REVISION}"
+
+BUILD_TARGETS="modules"
+MODULE_NAMES="saa716x_ff(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_core(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_budget(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_hybrid(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)"
+
+CONFIG_CHECK="DVB_CORE DVB_STV6110x DVB_STV090x"
+
+src_prepare() {
+ default
+
+ eapply -p0 "${FILESDIR}/OSD_RAW_CMD_patch_2.diff"
+ eapply "${FILESDIR}/v4l-dvb-saa716x-Makefilepatch-2.diff"
+ kernel_is ge 3 19 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-3.19-set_gpio.patch"
+ kernel_is ge 4 2 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.2-fix-compile.patch"
+ kernel_is ge 4 5 2 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.5.2-fix-compile.patch"
+}
+
+src_compile() {
+ BUILD_PARAMS="SUBDIRS=${S}/linux/drivers/media/common/saa716x \
+ CONFIG_SAA716X_CORE=m CONFIG_DVB_SAA716X_FF=m CONFIG_DVB_SAA716X_BUDGET=m \
+ CONFIG_DVB_SAA716X_HYBRID=m"
+ addpredict "${ROOT}"/usr/src/linux/
+ linux-mod_src_compile
+}
diff --git a/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109.ebuild b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109.ebuild
new file mode 100644
index 000000000000..546a5580fc14
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20141109.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit linux-info linux-mod
+
+DESCRIPTION="driver for saa716x based dvb cards like Technotrend S2-6400 or Technisat Skystar 2 eXpress HD"
+HOMEPAGE="https://bitbucket.org/powARman/v4l-dvb-saa716x/overview"
+
+HG_REVISION="d7e98fc59230"
+HG_REVISION_DATE="20141109"
+
+SRC_URI="https://bitbucket.org/powARman/v4l-dvb-saa716x/get/${HG_REVISION}.tar.gz
+-> v4l-dvb-saa716x-0.0.1_p${HG_REVISION_DATE}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+firmware"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ firmware? ( sys-firmware/tt-s2-6400-firmware )"
+
+S="${WORKDIR}/powARman-v4l-dvb-saa716x-${HG_REVISION}"
+
+BUILD_TARGETS="modules"
+MODULE_NAMES="saa716x_ff(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_core(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_budget(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_hybrid(misc:${ROOT}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)"
+
+CONFIG_CHECK="DVB_CORE DVB_STV6110x DVB_STV090x"
+
+src_prepare() {
+ epatch "${FILESDIR}/OSD_RAW_CMD_patch_2.diff"
+ epatch "${FILESDIR}/v4l-dvb-saa716x-Makefilepatch-2.diff"
+}
+
+src_compile() {
+ BUILD_PARAMS="SUBDIRS=${S}/linux/drivers/media/common/saa716x \
+ CONFIG_SAA716X_CORE=m CONFIG_DVB_SAA716X_FF=m CONFIG_DVB_SAA716X_BUDGET=m \
+ CONFIG_DVB_SAA716X_HYBRID=m"
+ addpredict "${ROOT}"/usr/src/linux/
+ linux-mod_src_compile
+}
diff --git a/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20170225.ebuild b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20170225.ebuild
new file mode 100644
index 000000000000..e5bf0fcf5e47
--- /dev/null
+++ b/media-tv/v4l-dvb-saa716x/v4l-dvb-saa716x-0.0.1_p20170225.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info linux-mod
+
+DESCRIPTION="driver for saa716x based dvb cards like TT S2-6400 or Skystar 2 eXpress HD"
+HOMEPAGE="https://bitbucket.org/powARman/v4l-dvb-saa716x/overview"
+
+HG_REVISION="3b9fce66666a"
+HG_REVISION_DATE="20160322"
+
+SRC_URI="https://bitbucket.org/powARman/v4l-dvb-saa716x/get/${HG_REVISION}.tar.gz
+-> v4l-dvb-saa716x-0.0.1_p${HG_REVISION_DATE}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="+firmware"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ firmware? ( sys-firmware/tt-s2-6400-firmware )"
+
+S="${WORKDIR}/powARman-v4l-dvb-saa716x-${HG_REVISION}"
+
+BUILD_TARGETS="modules"
+MODULE_NAMES="saa716x_ff(misc:${EROOT%/}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_core(misc:${EROOT%/}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_budget(misc:${EROOT%/}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)
+ saa716x_hybrid(misc:${EROOT%/}/usr/src/linux:${S}/linux/drivers/media/common/saa716x)"
+
+CONFIG_CHECK="DVB_CORE DVB_STV6110x DVB_STV090x"
+
+src_prepare() {
+ default
+
+ eapply -p0 "${FILESDIR}/OSD_RAW_CMD_patch_2.diff"
+ eapply "${FILESDIR}/v4l-dvb-saa716x-Makefilepatch-2.diff"
+ kernel_is ge 3 19 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-3.19-set_gpio.patch"
+ kernel_is ge 4 2 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.2-fix-compile.patch"
+ kernel_is ge 4 5 2 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.5.2-fix-compile.patch"
+ kernel_is ge 4 6 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.6.0-fix-compile.patch"
+ kernel_is ge 4 9 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.9-fix-warnings.patch"
+ kernel_is ge 4 10 0 && eapply "${FILESDIR}/v4l-dvb-saa716x-4.10-fix-compile.patch"
+}
+
+src_compile() {
+ BUILD_PARAMS="SUBDIRS=${S}/linux/drivers/media/common/saa716x \
+ CONFIG_SAA716X_CORE=m CONFIG_DVB_SAA716X_FF=m CONFIG_DVB_SAA716X_BUDGET=m \
+ CONFIG_DVB_SAA716X_HYBRID=m"
+ addpredict "${EROOT%/}"/usr/src/linux/
+ linux-mod_src_compile
+}