Giter Club home page Giter Club logo

crystalhd's People

Contributors

abeaumont avatar airlied avatar anssih avatar aristeu avatar arndb avatar caratorn avatar davilla avatar dbason avatar dlenski avatar error27 avatar hadess avatar jannau avatar jarodwilson avatar likewise avatar manu-abraham avatar nticompass avatar philipl avatar scottkidder avatar segoon avatar tralph avatar vxlerieuwu avatar yeradis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crystalhd's Issues

Getting more done in GitHub with ZenHub

Hola! @dbason has created a ZenHub account for the dbason organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.


How do I use ZenHub?

To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.

What can ZenHub do?

ZenHub adds a series of enhancements directly inside the GitHub UI:

  • Real-time, customizable task boards for GitHub issues;
  • Multi-Repository burndown charts, estimates, and velocity tracking based on GitHub Milestones;
  • Personal to-do lists and task prioritization;
  • Time-saving shortcuts – like a quick repo switcher, a “Move issue” button, and much more.

Add ZenHub to GitHub

Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @dbason.

ZenHub Board

Blank screen when decoding H264 in VLC?

Hello, since you have been working on this recently, I thought I'd check if this is an issue at my end or if this is widespread.

I have:

  • an old Thinkpad x200s
  • a fresh install of Mint 18.1 64 bit
  • a bcm70015
  • Your crystalhd module

I have tested This DivX video with vlc --codec=crystalhd and it works fine (my altered cHD indicator goes blue when VLC plays the video).

However, this video (11MB) just shows a blank screen in VLC and so does this one (much larger). Both play fine when launching VLC without the crystalhd codec modifier.

Trawling through the driver files on the Dell and broadcom websites, I found different firmware versions for the crystalhd card, but none of them magically make H264 decode, and the one you included seems to be the absolute latest available anywhere, as well as in Debian firmware-crystalhd (0.0~git20120110.fdd2f19-1). In the binary bcm70015fw.bin file you included, you can find: $Media_PC_FW_Rev: 1.54.0.0 $ $Dates: 2010/11/30 15:40:00 $

Anyway, just wanted to compare notes :-)

Cheers,
Egor

Build fails on 4.19

  CC [M]  /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_hw.o
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_hw.c: In function ‘crystalhd_rx_pkt_done’:
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_hw.c:658:6: error: implicit declaration of function ‘rdtscll’; did you mean ‘rdtsc’? [-Werror=implicit-function-declaration]
      rdtscll(currTick);
      ^~~~~~~
      rdtsc
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_hw.c:658:6: error: ‘currTick’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
      rdtscll(currTick);
      ^~~~~~~~~~~~~~~~~

My kernel:

$ uname -a

Linux thinkpad 4.19.0-5-amd64 #1 SMP Debian 4.19.37-3 (2019-05-15) x86_64 GNU/Linux

Fix from #23 works. Could you please merge it?

Kernel signature

I've been working on getting this card working on my system and your repository is getting me further ahead than any other. I'm getting a failure on the dmesg step.

$ dmesg | grep crystalhd
[    5.364608] crystalhd: module verification failed: signature and/or required key missing - tainting kernel
[    5.396671] Loading crystalhd v3.10.0
[    5.396722] crystalhd 0000:04:00.0: Starting Device:0x1615

Do you have any insights for me?

get_user_pages error with gcc 4.9.2 and kernel 4.6.3

I'm running Debian 8 with kernel 4.6.3 (from jessie-backports) and gcc 4.9.2. I was trying to compile the crystalhd driver, when I got the following compile errors:

nticompass@adventuretime linux % make -j2
make -C /lib/modules/4.6.0-0.bpo.1-686-pae/build SUBDIRS=/home/nticompass/src/crystalhd/driver/linux modules
make[1]: Entering directory '/usr/src/linux-headers-4.6.0-0.bpo.1-686-pae'
  CC [M]  /home/nticompass/src/crystalhd/driver/linux/crystalhd_lnx.o
  CC [M]  /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.o
In file included from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mutex.h:13:0,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/kernfs.h:13,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/sysfs.h:15,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/kobject.h:21,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/device.h:17,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:27:
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c: In function ‘crystalhd_map_dio’:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/arch/x86/include/asm/current.h:17:17: error: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror]
 #define current get_current()
                 ^
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:655:23: note: in expansion of macro ‘current’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                       ^
In file included from /home/nticompass/src/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:30:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mm.h:1288:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mutex.h:13:0,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/kernfs.h:13,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/sysfs.h:15,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/kobject.h:21,
                 from /usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/device.h:17,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:27:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/arch/x86/include/asm/current.h:17:17: error: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror]
 #define current get_current()
                 ^
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:655:32: note: in expansion of macro ‘current’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                                ^
In file included from /home/nticompass/src/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:30:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mm.h:1288:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:655:62: error: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror]
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
                                                              ^
In file included from /home/nticompass/src/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:30:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mm.h:1288:6: note: expected ‘struct page **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:655:8: error: too many arguments to function ‘get_user_pages’
  res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
        ^
In file included from /home/nticompass/src/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
                 from /home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:30:
/usr/src/linux-headers-4.6.0-0.bpo.1-common/include/linux/mm.h:1288:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c: In function ‘crystalhd_unmap_dio’:
/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.c:754:5: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration]
     page_cache_release(page);
     ^
cc1: all warnings being treated as errors
/usr/src/linux-headers-4.6.0-0.bpo.1-common/scripts/Makefile.build:296: recipe for target '/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.o' failed
make[4]: *** [/home/nticompass/src/crystalhd/driver/linux/crystalhd_misc.o] Error 1
make[4]: *** Waiting for unfinished jobs....
/usr/src/linux-headers-4.6.0-0.bpo.1-common/Makefile:1446: recipe for target '_module_/home/nticompass/src/crystalhd/driver/linux' failed
make[3]: *** [_module_/home/nticompass/src/crystalhd/driver/linux] Error 2
Makefile:146: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.6.0-0.bpo.1-686-pae'
Makefile:33: recipe for target 'all' failed
make: *** [all] Error 2

I'm not sure what's causing this. This repo used to work (when I lasted tested it on kernel 4.1). Not sure if this is a kernel or gcc issue.

Failure to compile driver with the latest commit

DKMS make.log for crystalhd-0.1 for kernel 4.9.26-040926-generic (x86_64)
Thu May 11 00:29:08 CEST 2017
checking for ld... ld
configure: creating ./config.status
config.status: creating ./Makefile
make -C /lib/modules/4.9.26-040926-generic/build SUBDIRS=/var/lib/dkms/crystalhd/0.1/build/driver/linux modules
make[1]: Entering directory „/usr/src/linux-headers-4.9.26-040926-generic“
  CC [M]  /var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_lnx.o
  CC [M]  /var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_misc.o
  CC [M]  /var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_cmds.o
/var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_cmds.c:29:32: fatal error: linux/sched/signal.h: directory or file does not exist
 #include <linux/sched/signal.h>
                                ^
compilation terminated.
scripts/Makefile.build:293: recipe for target „/var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_cmds.o“ failed
make[2]: *** [/var/lib/dkms/crystalhd/0.1/build/driver/linux/crystalhd_cmds.o] Error 1
Makefile:1496: recipe for target „_module_/var/lib/dkms/crystalhd/0.1/build/driver/linux“ failed
make[1]: *** [_module_/var/lib/dkms/crystalhd/0.1/build/driver/linux] Error 2
make[1]: Leaving directory „/usr/src/linux-headers-4.9.26-040926-generic“
Makefile:33: recipe for target „all“  failed
make: *** [all] Error 2

Cannot compile on 4.4.0-57-generic #78-Ubuntu 16.04 32-bit

Generic lubuntu 16.04 32bit install on dual core atom with latest patches.
Had to replace libgstreamermm-0.10-dev libgstreamer0.10-dev with 1.0 versions as older versions are not available. Here are the error messages.

family@jasper:~/crystalhd/driver/linux$ make -j2
make -C /lib/modules/4.4.0-57-generic/build SUBDIRS=/home/family/crystalhd/driver/linux modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-57-generic'
CC [M] /home/family/crystalhd/driver/linux/crystalhd_lnx.o
CC [M] /home/family/crystalhd/driver/linux/crystalhd_cmds.o
/home/family/crystalhd/driver/linux/crystalhd_lnx.c: In function 'chd_pci_reserve_mem':
/home/family/crystalhd/driver/linux/crystalhd_lnx.c:541:7: error: implicit declaration of function 'check_mem_region' [-Werror=implicit-function-declaration]
rc = check_mem_region(bar0, i2o_len);
^
/home/family/crystalhd/driver/linux/crystalhd_cmds.c: In function 'bc_cproc_notify_mode':
/home/family/crystalhd/driver/linux/crystalhd_cmds.c:88:47: error: comparison of constant '2' with boolean expression is always false [-Werror=bool-compare]
if ((idata->udata.u.NotifyMode.Mode && 0xFF) == DTS_MONITOR_MODE) {
^
cc1: all warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/home/family/crystalhd/driver/linux/crystalhd_lnx.o' failed
make[2]: *** [/home/family/crystalhd/driver/linux/crystalhd_lnx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/home/family/crystalhd/driver/linux/crystalhd_cmds.o' failed

Cannot compile on recent Ubuntu 16.04LTS 4.4.0 kernels

First, thanks for maintaining this driver! I've been enjoying the battery savings of a CrystalHD card for years thanks to you.

Unfortunately, several kernel updates ago it stopped compiling. Can't remember when it was exactly, but I wasn't watching offline videos much at the time so I just ignored it and watched without the CrystalHD. Lately I've finally gotten around to researching the problem, so first I checked here for updates and cloned the latest, but it didn't help. My cursory googling didn't find anything helpful either, so I figured I'd report it and see what you can maybe do.

Here's my output from make:

motld@monstrosity:~/crystalhd-dbason/driver/linux$ make -j2
make -C /lib/modules/4.4.0-150-generic/build SUBDIRS=/home/motld/crystalhd-dbason/driver/linux modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-150-generic'
CC [M] /home/motld/crystalhd-dbason/driver/linux/crystalhd_lnx.o
CC [M] /home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.o
/home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.c: In function ‘crystalhd_map_dio’:
/home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.c:667:12: error: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [-Werror=incompatible-pointer-types]
0, dio->pages, NULL);
^
In file included from /home/motld/crystalhd-dbason/driver/linux/crystalhd_lnx.h:34:0,
from /home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.c:33:
include/linux/mm.h:1222:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.c:666:8: error: too many arguments to function ‘get_user_pages’
res = get_user_pages(current, current->mm, uaddr, nr_pages, rw == READ,
^
In file included from /home/motld/crystalhd-dbason/driver/linux/crystalhd_lnx.h:34:0,
from /home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.c:33:
include/linux/mm.h:1222:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
cc1: all warnings being treated as errors
scripts/Makefile.build:285: recipe for target '/home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.o' failed
make[2]: *** [/home/motld/crystalhd-dbason/driver/linux/crystalhd_misc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:1454: recipe for target 'module/home/motld/crystalhd-dbason/driver/linux' failed
make[1]: *** [module/home/motld/crystalhd-dbason/driver/linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-150-generic'
Makefile:33: recipe for target 'all' failed
make: *** [all] Error 2

And from uname, for reference:

motld@monstrosity:~/crystalhd-dbason/driver/linux$ uname -a
Linux monstrosity 4.4.0-150-generic #176-Ubuntu SMP Wed May 29 18:56:26 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Let me know if there's any more info I can provide or testing I can do. Thanks!

Build failed on kernel 5.19

Hello. Build failed on kernel 5.19

$ make -j2
make -C /lib/modules/5.19.0-2-amd64/build SUBDIRS=/tmp/crystalhd/driver/linux modules
make[1]: Entering directory '/usr/src/linux-headers-5.19.0-2-amd64'
/usr/src/linux-headers-5.19.0-2-common/Makefile:133: =============== ERROR ==============
/usr/src/linux-headers-5.19.0-2-common/Makefile:134: 'SUBDIRS' was removed in Linux 5.3
/usr/src/linux-headers-5.19.0-2-common/Makefile:135: Use 'M=' or 'KBUILD_EXTMOD=' instead
/usr/src/linux-headers-5.19.0-2-common/Makefile:136: ====================================
/usr/src/linux-headers-5.19.0-2-common/Makefile:137: *** .. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-5.19.0-2-amd64'
make: *** [Makefile:33: all] Error 2

Does not compile on 4.9.0

Since the latest commit (7fb5ccc) the code does not build on 4.9.0.

My system complains about a missing "linux/sched/signal.h".

If I change
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
to
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
it builds.

File:
driver/linux/crystalhd_cmds.c

1 | 2
-- | --
  | @@ -24,6 +24,11 @@
  |   | * along with this driver.  If not, see <http://www.gnu.org/licenses/>.
  |   | **********************************************************************/
  |   |  
  |   | +#include <linux/version.h>
  |   | +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
  |   | +#include <linux/sched/signal.h>
  |   | +#endif
  |   | +
  |   | #include "crystalhd_lnx.h"
  |   | #include "crystalhd_hw.h"
  |   |  

Problem after suspend mode

An error
[ 221.978030] crystalhd_hw_resume: Invalid Arguments
[ 221.978032] crystalhd 0000:02:00.0: Crystal HD Resume 1
[ 221.978051] dpm_run_callback(): pci_pm_resume+0x0/0xa0 returns -19
[ 221.978055] PM: Device 0000:02:00.0 failed to resume async: error -19

Cannot compile with kernel 4.9

Hi!
kost@Saturn ~/crystalhd/driver/linux $ uname -a
Linux Saturn 4.9.0-pf4 #1 SMP PREEMPT Sun Feb 12 13:16:11 +07 2017 x86_64 Intel(R) Celeron(R) CPU 540 @ 1.86GHz GenuineIntel GNU/Linux
kost@Saturn ~/crystalhd/driver/linux $ gcc-config -l
[1] x86_64-pc-linux-gnu-5.3.0 *

Erros:

kost@Saturn ~/crystalhd/driver/linux $ make
make -C /lib/modules/4.9.0-pf4/build SUBDIRS=/home/kost/crystalhd/driver/linux modules
make[1]: вход в каталог «/usr/src/linux-4.9_p4-pf»
CC [M] /home/kost/crystalhd/driver/linux/crystalhd_lnx.o
Cyclomatic Complexity 1 ./arch/x86/include/asm/bitops.h:fls64
Cyclomatic Complexity 1 ./include/linux/log2.h:__ilog2_u64
Cyclomatic Complexity 1 ./include/linux/kernel.h:might_fault
Cyclomatic Complexity 1 ./include/asm-generic/getorder.h:__get_order
Cyclomatic Complexity 1 ./include/linux/thread_info.h:check_object_size
Cyclomatic Complexity 1 ./include/linux/spinlock.h:spinlock_check
Cyclomatic Complexity 1 ./include/linux/spinlock.h:spin_unlock_irqrestore
Cyclomatic Complexity 1 ./include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 1 ./include/linux/kasan-checks.h:kasan_check_write
Cyclomatic Complexity 4 ./arch/x86/include/asm/uaccess.h:copy_from_user
Cyclomatic Complexity 4 ./arch/x86/include/asm/uaccess.h:copy_to_user
Cyclomatic Complexity 28 ./include/linux/slab.h:kmalloc_index
Cyclomatic Complexity 68 ./include/linux/slab.h:kmalloc_large
Cyclomatic Complexity 5 ./include/linux/slab.h:kmalloc
Cyclomatic Complexity 1 ./include/linux/slab.h:kzalloc
Cyclomatic Complexity 1 ./include/linux/device.h:dev_get_drvdata
Cyclomatic Complexity 1 ./include/linux/device.h:dev_set_drvdata
Cyclomatic Complexity 1 ./include/linux/pci.h:pci_get_drvdata
Cyclomatic Complexity 1 ./include/linux/pci.h:pci_set_drvdata
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_disable_int
Cyclomatic Complexity 2 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_isr
Cyclomatic Complexity 2 ./include/linux/pci.h:pci_enable_msi_exact
Cyclomatic Complexity 1 ./include/linux/interrupt.h:request_irq
Cyclomatic Complexity 6 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_enable_int
Cyclomatic Complexity 5 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_pci_resume
Cyclomatic Complexity 1 ./include/linux/fs.h:unregister_chrdev
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_pci_release_mem
Cyclomatic Complexity 8 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_pci_reserve_mem
Cyclomatic Complexity 1 ./include/linux/err.h:IS_ERR
Cyclomatic Complexity 3 ./arch/x86/include/asm/dma-mapping.h:get_dma_ops
Cyclomatic Complexity 2 ./arch/x86/include/asm/uaccess.h:copy_user_overflow
Cyclomatic Complexity 1 ./include/linux/fs.h:register_chrdev
Cyclomatic Complexity 4 ./include/linux/dma-mapping.h:dma_set_mask
Cyclomatic Complexity 1 ./include/linux/pci-dma-compat.h:pci_set_dma_mask
Cyclomatic Complexity 2 ./include/linux/dma-mapping.h:dma_set_coherent_mask
Cyclomatic Complexity 1 ./include/linux/pci-dma-compat.h:pci_set_consistent_dma_mask
Cyclomatic Complexity 1 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chddev
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:crystalhd_user_data
Cyclomatic Complexity 6 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_release_cdata
Cyclomatic Complexity 5 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_fetch_cdata
Cyclomatic Complexity 7 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_proc_user_data
Cyclomatic Complexity 3 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_alloc_iodata
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_release_chdev
Cyclomatic Complexity 3 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_pci_remove
Cyclomatic Complexity 2 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_free_iodata
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_pci_suspend
Cyclomatic Complexity 7 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_init_chdev
Cyclomatic Complexity 9 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_pci_probe
Cyclomatic Complexity 6 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_api_cmd
Cyclomatic Complexity 1 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_get_adp
Cyclomatic Complexity 11 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_close
Cyclomatic Complexity 4 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_open
Cyclomatic Complexity 5 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_ioctl
Cyclomatic Complexity 2 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_module_init
Cyclomatic Complexity 1 /home/kost/crystalhd/driver/linux/crystalhd_lnx.c:chd_dec_module_cleanup
CC [M] /home/kost/crystalhd/driver/linux/crystalhd_misc.o
/home/kost/crystalhd/driver/linux/crystalhd_misc.c: In function ‘crystalhd_map_dio’:
/home/kost/crystalhd/driver/linux/crystalhd_misc.c:658:12: error: passing argument 7 of ‘get_user_pages_remote’ from incompatible pointer type [-Werror=incompatible-pointer-types]
0, dio->pages, NULL);
^
In file included from /home/kost/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
from /home/kost/crystalhd/driver/linux/crystalhd_misc.c:30:
./include/linux/mm.h:1276:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^
/home/kost/crystalhd/driver/linux/crystalhd_misc.c:657:8: error: too many arguments to function ‘get_user_pages_remote’
res = get_user_pages_remote(current, current->mm, uaddr, nr_pages, rw == READ,
^
In file included from /home/kost/crystalhd/driver/linux/crystalhd_lnx.h:34:0,
from /home/kost/crystalhd/driver/linux/crystalhd_misc.c:30:
./include/linux/mm.h:1276:6: note: declared here
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^
cc1: all warnings being treated as errors
scripts/Makefile.build:293: recipe for target '/home/kost/crystalhd/driver/linux/crystalhd_misc.o' failed
make[2]: *** [/home/kost/crystalhd/driver/linux/crystalhd_misc.o] Error 1
Makefile:1490: ошибка выполнения рецепта для цели «module/home/kost/crystalhd/driver/linux»
make[1]: *** [module/home/kost/crystalhd/driver/linux] Ошибка 2
make[1]: выход из каталога «/usr/src/linux-4.9_p4-pf»
Makefile:33: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

PS with kernel 3.10 all was excellent

error in function chd_pci_reserve_mem

kost@calculate ~/crystalhd/driver/linux $ make -j2
make -C /lib/modules/4.4.15-calculate/build SUBDIRS=/home/kost/crystalhd/driver/linux modules
make[1]: вход в каталог «/usr/src/linux-4.4.15-calculate»
  CC [M]  /home/kost/crystalhd/driver/linux/crystalhd_lnx.o
  CC [M]  /home/kost/crystalhd/driver/linux/crystalhd_misc.o
/home/kost/crystalhd/driver/linux/crystalhd_lnx.c: В функции «chd_pci_reserve_mem»:
/home/kost/crystalhd/driver/linux/crystalhd_lnx.c:541:2: ошибка: неявная декларация функции «check_mem_region» [-Werror=implicit-function-declaration]
  rc = check_mem_region(bar0, i2o_len);
  ^
cc1: all warnings being treated as errors
scripts/Makefile.build:258: ошибка выполнения рецепта для цели «/home/kost/crystalhd/driver/linux/crystalhd_lnx.o»
make[2]: *** [/home/kost/crystalhd/driver/linux/crystalhd_lnx.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
Makefile:1385: ошибка выполнения рецепта для цели «_module_/home/kost/crystalhd/driver/linux»
make[1]: *** [_module_/home/kost/crystalhd/driver/linux] Ошибка 2
make[1]: выход из каталога «/usr/src/linux-4.4.15-calculate»
Makefile:30: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

sys-devel/gcc-4.9.0
sys-kernel/calculate-sources-4.4.16

Cannot compile with kernel.4.8 in Ubuntu 16.10 yakkety

DKMS make.log for crystalhd-3.10.0 for kernel 4.8.0-22-generic (x86_64)
Sat Oct 15 00:28:07 MSK 2016
checking for ld... ld
configure: creating ./config.status
config.status: creating ./Makefile
make -C /lib/modules/4.8.0-22-generic/build SUBDIRS=/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux modules
make[1]: вход в каталог «/usr/src/linux-headers-4.8.0-22-generic»
  CC [M]  /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.o
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:788:8: error: type defaults to ‘int’ in declaration of ‘DEFINE_PCI_DEVICE_TABLE’ [-Werror=implicit-int]
 static DEFINE_PCI_DEVICE_TABLE(chd_dec_pci_id_table) = {
        ^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:788:1: error: parameter names (without types) in function declaration [-Werror]
 static DEFINE_PCI_DEVICE_TABLE(chd_dec_pci_id_table) = {
 ^~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:788:1: error: function ‘DEFINE_PCI_DEVICE_TABLE’ is initialized like a variable
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:2: error: braces around scalar initializer [-Werror]
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:738:2: error: field name not in record or union initializer
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/pci.h:35:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci_ids.h:2136:33: error: invalid initializer
 #define PCI_VENDOR_ID_BROADCOM  0x14e4
                                 ^
./include/linux/pci.h:738:12: note: in expansion of macro ‘PCI_VENDOR_ID_BROADCOM’
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
            ^~~~~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci_ids.h:2136:33: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_VENDOR_ID_BROADCOM  0x14e4
                                 ^
./include/linux/pci.h:738:12: note: in expansion of macro ‘PCI_VENDOR_ID_BROADCOM’
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
            ^~~~~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:738:34: error: field name not in record or union initializer
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:34: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:44: error: excess elements in scalar initializer [-Werror]
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                            ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:44: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                            ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:2: error: field name not in record or union initializer
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/i2c.h:29:0,
                 from ./include/uapi/linux/fb.h:5,
                 from ./include/linux/fb.h:5,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:38,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/mod_devicetable.h:16:20: error: excess elements in scalar initializer [-Werror]
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:15: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
               ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/mod_devicetable.h:16:20: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:15: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
               ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:739:27: error: field name not in record or union initializer
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                           ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:27: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                           ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/i2c.h:29:0,
                 from ./include/uapi/linux/fb.h:5,
                 from ./include/linux/fb.h:5,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:38,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/mod_devicetable.h:16:20: error: excess elements in scalar initializer [-Werror]
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:40: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                        ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/mod_devicetable.h:16:20: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:40: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                        ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:739:52: error: excess elements in scalar initializer [-Werror]
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                    ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:52: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                    ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:55: error: excess elements in scalar initializer [-Werror]
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                       ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:55: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                       ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
    ^~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:35: error: excess elements in scalar initializer [-Werror]
  { PCI_VDEVICE(BROADCOM, 0x1612), 8 },
                                   ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:789:35: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:2: error: braces around scalar initializer [-Werror]
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:738:2: error: field name not in record or union initializer
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/pci.h:35:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci_ids.h:2136:33: error: invalid initializer
 #define PCI_VENDOR_ID_BROADCOM  0x14e4
                                 ^
./include/linux/pci.h:738:12: note: in expansion of macro ‘PCI_VENDOR_ID_BROADCOM’
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
            ^~~~~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci_ids.h:2136:33: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_VENDOR_ID_BROADCOM  0x14e4
                                 ^
./include/linux/pci.h:738:12: note: in expansion of macro ‘PCI_VENDOR_ID_BROADCOM’
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
            ^~~~~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:738:34: error: field name not in record or union initializer
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:34: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:44: error: excess elements in scalar initializer [-Werror]
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                            ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:738:44: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
                                            ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:2: error: field name not in record or union initializer
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/i2c.h:29:0,
                 from ./include/uapi/linux/fb.h:5,
                 from ./include/linux/fb.h:5,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:38,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/mod_devicetable.h:16:20: error: excess elements in scalar initializer [-Werror]
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:15: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
               ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/mod_devicetable.h:16:20: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:15: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
               ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:739:27: error: field name not in record or union initializer
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                           ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:27: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                           ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from ./include/linux/i2c.h:29:0,
                 from ./include/uapi/linux/fb.h:5,
                 from ./include/linux/fb.h:5,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:38,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/mod_devicetable.h:16:20: error: excess elements in scalar initializer [-Werror]
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:40: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                        ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/mod_devicetable.h:16:20: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
 #define PCI_ANY_ID (~0)
                    ^
./include/linux/pci.h:739:40: note: in expansion of macro ‘PCI_ANY_ID’
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                        ^~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:39:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
./include/linux/pci.h:739:52: error: excess elements in scalar initializer [-Werror]
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                    ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:52: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                    ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:55: error: excess elements in scalar initializer [-Werror]
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                       ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
./include/linux/pci.h:739:55: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
  .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
                                                       ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:4: note: in expansion of macro ‘PCI_VDEVICE’
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
    ^~~~~~~~~~~
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:35: error: excess elements in scalar initializer [-Werror]
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
                                   ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:35: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:2: error: excess elements in scalar initializer [-Werror]
  { PCI_VDEVICE(BROADCOM, 0x1615), 8 },
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:790:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:2: error: braces around scalar initializer [-Werror]
  { 0, },
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:4: error: invalid initializer
  { 0, },
    ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:4: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:2: error: excess elements in scalar initializer [-Werror]
  { 0, },
  ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:791:2: note: (near initialization for ‘DEFINE_PCI_DEVICE_TABLE’)
In file included from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.h:30:0,
                 from /var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:20:
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:801:26: error: ‘chd_dec_pci_id_table’ undeclared here (not in a function)
 MODULE_DEVICE_TABLE(pci, chd_dec_pci_id_table);
                          ^
./include/linux/module.h:213:21: note: in definition of macro ‘MODULE_DEVICE_TABLE’
 extern const typeof(name) **mod_##type##**##name##_device_table  \
                     ^~~~
./include/linux/module.h:213:27: error: ‘__mod_pci__chd_dec_pci_id_table_device_table’ aliased to undefined symbol ‘chd_dec_pci_id_table’
 extern const typeof(name) __mod_##type##__##name##_device_table  \
                           ^
/var/lib/dkms/crystalhd/3.10.0/build/crystalhd/driver/linux/crystalhd_lnx.c:801:1: note: in expansion of macro ‘MODULE_DEVICE_TABLE’
 MODULE_DEVICE_TABLE(pci, chd_dec_pci_id_table);
 ^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.