[PATCH] crystalhd git.linuxtv.org kernel driver: crystalhd BC (not staging) driver-, examples-, section mismatch-. udev- fixes. v3.10.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello guys,

I'm working on supporting BCM 970012/15 crystalhd decoder and
can't find where to report bugs of
http://git.linuxtv.org/jarod/crystalhd.git
<devinheitmueller> I think he just borrowed our git server.

and send patches.

So I borrow this list to get more developers, testers and sw- quality guys in until the maintainers in CC say where the right place is.

Patch for crystalhd 3.10.1 attached.

y
tom

-Att: Statuslogs, still no go on x86_64 kernel with x86_32 userspace, PCI-E errors with 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03):


Jan  2 00:00:55 tom3 kernel: [ 5910.428529] Unloading crystalhd 3.10.0
Jan  2 00:00:55 tom3 kernel: [ 5910.429683] crystalhd 0000:03:00.0: released api device - 250
Jan  2 00:01:00 tom3 kernel: [ 5914.673159] Loading crystalhd v3.10.1
Jan  2 00:01:00 tom3 kernel: [ 5914.673334] crystalhd 0000:03:00.0: Starting Device:0x1612
Jan  2 00:01:00 tom3 kernel: [ 5914.677823] crystalhd 0000:03:00.0: irq 52 for MSI/MSI-X
Jan  2 00:01:00 tom3 kernel: [ 5914.932221] crystalhd 0000:03:00.0: enabling bus mastering
Jan  2 00:01:12 tom3 kernel: [ 5927.335471] crystalhd 0000:03:00.0: Opening new user[0] handle
Jan  2 00:01:13 tom3 kernel: [ 5927.683262] crystalhd 0000:03:00.0: Closing user[0] handle with mode ffffffff

# hellobcm
starting up
Running DIL (3.22.0) Version
DtsDeviceOpen: Opening HW in mode 0
IOCTL Command Failed -1 cmd c2186201 sts 0
DtsGetHwType: Ioctl failed: -1
Get Hardware Type Failed
IOCTL Command Failed -1 cmd c2186211 sts 0
DtsGetDriveStats: Ioctl failed: -1
txThreadProc: Got status -1 from GetDriverStatus
IOCTL Command Failed -1 cmd c2186210 sts 0
DtsAllocIoctlData Error
IOCTL Command Failed -1 cmd c2186214 sts 0
DtsReleaseUserHandle: Ioctl failed: -1
Unable to detach from Dil shared memory ...
DtsDelDilShMem:Unable get shmid ...
crap, DtsDeviceOpen failed
Failed to open device

# lspci -vvvnnn -s 03:00.0
03:00.0 Multimedia controller [0480]: Broadcom Corporation BCM70012 Video Decoder [Crystal HD] [14e4:1612] (rev 01)
	Subsystem: Broadcom Corporation Device [14e4:2612]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR+ <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 52
	Region 0: Memory at deff0000 (64-bit, non-prefetchable) [size=64K]
	Region 2: Memory at df000000 (64-bit, non-prefetchable) [size=4M]
	Capabilities: [48] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [60] Vendor Specific Information: Len=6c <?>
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0300c  Data: 4183
	Capabilities: [cc] Express (v1) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
	Capabilities: [13c v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=01
			Status:	NegoPending- InProgress-
	Capabilities: [160 v1] Device Serial Number 00-00-00-00-00-00-00-00
	Capabilities: [16c v1] Power Budgeting <?>
	Kernel driver in use: crystalhd






diff --git a/driver/linux/20-crystalhd.rules b/driver/linux/20-crystalhd.rules
index 93b21b8..11ef3fc 100644
--- a/driver/linux/20-crystalhd.rules
+++ b/driver/linux/20-crystalhd.rules
@@ -1 +1,2 @@
-KERNEL=="crystalhd", MODE="0666"
+KERNEL=="crystalhd", MODE="0660" GROUP="video"
+
diff --git a/driver/linux/crystalhd_lnx.c b/driver/linux/crystalhd_lnx.c
index 64e66ad..7b7130e 100644
--- a/driver/linux/crystalhd_lnx.c
+++ b/driver/linux/crystalhd_lnx.c
@@ -498,7 +498,7 @@ fail:
 	return rc;
 }
 
-static void __devexit chd_dec_release_chdev(struct crystalhd_adp *adp)
+static void chd_dec_release_chdev(struct crystalhd_adp *adp)
 {
 	crystalhd_ioctl_data *temp = NULL;
 	if (!adp)
@@ -582,7 +582,7 @@ static int __devinit chd_pci_reserve_mem(struct crystalhd_adp *pinfo)
 	return 0;
 }
 
-static void __devexit chd_pci_release_mem(struct crystalhd_adp *pinfo)
+static void chd_pci_release_mem(struct crystalhd_adp *pinfo)
 {
 	if (!pinfo)
 		return;
diff --git a/examples/Makefile b/examples/Makefile
index 58bf57f..22704d3 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,5 +1,5 @@
 CPP := g++
-CPPFLAGS += -D__LINUX_USER__
+CPPFLAGS += -D__LINUX_USER__ -g3 -O0
 LDFLAGS += -lcrystalhd -lpthread
 INCLUDES += -I../include/ -I../linux_lib/libcrystalhd/
 
diff --git a/examples/hellobcm.cpp b/examples/hellobcm.cpp
index 76f53f9..3be04c6 100644
--- a/examples/hellobcm.cpp
+++ b/examples/hellobcm.cpp
@@ -1,6 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <unistd.h>
 #include <string.h>
 #include <semaphore.h>
 #include "bc_dts_types.h"
@@ -70,7 +71,7 @@ int main()
     printf("try calls done\n");
 
     // Open the input stream
-    inFile.open("/tmp/test_video.264", std::ios::in | std::ios::binary);
+    inFile.open("./test_video.264", std::ios::in | std::ios::binary);
     if (!inFile.is_open())
       throw "Unable to open input file";
     else
diff --git a/examples/mpeg2test.cpp b/examples/mpeg2test.cpp
index 916085c..3faf8ec 100644
--- a/examples/mpeg2test.cpp
+++ b/examples/mpeg2test.cpp
@@ -1,6 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <unistd.h>
 #include <string.h>
 #include <semaphore.h>
 #include <iostream>
diff --git a/include/bc_dts_glob_lnx.h b/include/bc_dts_glob_lnx.h
index 9b74882..b90f796 100644
--- a/include/bc_dts_glob_lnx.h
+++ b/include/bc_dts_glob_lnx.h
@@ -324,7 +324,7 @@ typedef struct _crystalhd_ioctl_data {
 enum _crystalhd_kmod_ver{
 	crystalhd_kmod_major	= 3,
 	crystalhd_kmod_minor	= 10,
-	crystalhd_kmod_rev		= 0,
+	crystalhd_kmod_rev		= 1,
 };
 
 

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux