crystalhd git.linuxtv.org kernel driver: crystalhd BC (not staging) driver-, examples-, section mismatch-. udev- fixes. v3.10.1
Commit Message
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
@@ -1 +1,2 @@
-KERNEL=="crystalhd", MODE="0666"
+KERNEL=="crystalhd", MODE="0660" GROUP="video"
+
@@ -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;
@@ -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/
@@ -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
@@ -1,6 +1,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
+#include <unistd.h>
#include <string.h>
#include <semaphore.h>
#include <iostream>
@@ -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,
};