Mailing List archive

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

[linux-dvb] Re: New Skystar2 drivers release



On Tue, 24 Jun 2003, Holger Waechtler wrote:

> Holger Kiehl wrote:
> > 
> > I did try the driver and everything does work up to szap part, but when
> > I try to call dvbnet the following error happens:
> > 
> >    [root@dwdsat2 dvbnet]# ./dvbnet -p 100
> > 
> >    DVB Network Interface Manager
> >    Version 1.1.0-TVF (Build Fri Jun 13 03:53:02 PM 2003)
> >    Copyright (C) 2003, TV Files S.p.A
> > 
> >    Device: /dev/dvb/adapter0/net0
> >    Error: couldn't open device /dev/dvb/adapter0/net0, aborting...
> > 
> > Any idea what I am doing wrong? The device /dev/dvb/adapter0/net0 does
> > exist.
> 
> The driver has to call dvb_net_init() and dvb_net_release() in order to 
> register a DVB network device. Pretty trivial to implement, take one of 
> the other drivers as example.
> 
Pretty trivial to implement.... Maybe for someone who does this every day
but not for a beginner like me ;)

I did put in a dvb_net_init() and a dvb_net_release() and a
./dvbnet -p 100 works correctly. But as soon as I want to give this
interface an IP it hangs the pc hard and only a reset brings it back
to live.

Attached you will find the patch what I did. Most properly the places
where I put in the dvb_net code is not correct, so please someone with more
inside tell me what I am doing wrong.

Thanks,
Holger (Kiehl)
--- skystar2.c.original	2003-06-24 10:13:24.000000000 +0000
+++ skystar2.c	2003-06-24 09:19:42.000000000 +0000
@@ -34,6 +34,7 @@
 #include "../dvb_filter.h"
 #include "../dvbdev.h"
 #include "../demux.h"
+#include "../dvb_net.h"
 
 int debug = 1;
 #define dprintk	if(debug == 1) printk
@@ -41,6 +42,8 @@
 #define SizeOfBufDMA1	0x3AC00
 #define SizeOfBufDMA2	0x758
 
+struct dvb_net dvb_net;
+
 struct DmaQ {
 
     u32 bus_addr;
@@ -78,6 +81,9 @@
 
     struct dvb_adapter * dvb_adapter;
     struct dvb_demux demux;    
+/*
+    struct dvb_net dvb_net;
+*/
     dmxdev_t dmxdev;	
     dmx_frontend_t hw_frontend;
     dmx_frontend_t mem_frontend;
@@ -2625,6 +2631,11 @@
     ret = dvbdemux->dmx.connect_frontend(&dvbdemux->dmx, &adapter->hw_frontend);
     if (ret < 0) return ret;
 
+/*
+    dvb_net_init(adapter->dvb_adapter, &adapter->dvb_net, &dvbdemux->dmx);
+*/
+    dvb_net_init(adapter->dvb_adapter, &dvb_net, &dvbdemux->dmx);
+
     return 0;
 }
 
@@ -2640,6 +2651,11 @@
 
     if ( adapter != NULL )
     {
+/*
+	dvb_net_release(&adapter->dvb_net);
+*/
+	dvb_net_release(&dvb_net);
+
 	dvbdemux = &adapter->demux;
 	
     	dvbdemux->dmx.close(&dvbdemux->dmx);

Home | Main Index | Thread Index