Hi everyone,
First a little background. I have a Pinnacle PCTV-80e tuner, and have patched the video-4-linux code to allow it to work. However, when I restart my computer with it plugged in, it fails to load properly. Essentially it loads, but it fails to set up a frontend for the tuner.
Here are the applicable messages from dmesg:
The DVB portion refers to em28xx-dvb.c which has the following lines of code (relevant to this)Code:[ 36.579949] DVB: Unable to find symbol drx39xxj_attach() [ 36.579965] em28xx #0: /2: frontend initialization failed [ 36.579973] Em28xx: Initialized (Em28xx dvb Extension) extension
The (drx39xxj_attach) is located in the drx39xxj.h file, which is located in another directory under the tree (linux/drivers/media/dvb/frontends/drx39xxy/), where this file is located in linux/drivers/media/video/em28xx/).Code:#include "drx39xxj.h" struct dvb_frontend *fe; dvb->fe[0] = dvb_attach(drx39xxj_attach, &dev->i2c_adap);
In the drx39xxj.h file, the code looks like this:
So my questions are these...Code:#ifndef DRX39XXJ_H #define DRX39XXJ_H #include <linux/dvb/frontend.h> #include "dvb_frontend.h" #include "drx_driver.h" struct drx39xxj_state { struct i2c_adapter *i2c; DRXDemodInstance_t *demod; DRXStandard_t current_standard; struct dvb_frontend frontend; int powered_up:1; unsigned int i2c_gate_open:1; }; extern struct dvb_frontend* drx39xxj_attach(struct i2c_adapter *i2c); #endif // DVB_DUMMY_FE_H
1. Would the fact that in the em28xx-dvb.c file, the frontend is declared as "dvb_frontend *fe;" and in the drx39xxj.h file, the frontend is declared as "dvb_frontend frontend;" be enough to cause it to fail to find the drx39xxj_attach method?
2. Even though this compiles (make and make install), do I need ot change the #include statement in the em28xx-dvb.c file to reflect the directory location of the drx39xxj.h file? (the linux/drivers/media/dvb/frontends/drx39xxy directory instead of just listing the file name)?
3. How would I trace through this to find out whether it's not finding the drx39xxj.h file when it tries to install the drivers and initialize the frontend, fails to find the drx39xxj_attach method itself from the .h file, or some other issue?
I have the files uploaded to a github repository, if someone needs to see the entire codebase to help me. Or I can post the entire code for each file, if necessary (although the em28xx-dvb.c file is pretty large).
Also, any other suggestions besides where I'm looking are greatly appreciated.
Thanks for any help with this, and have a great day
Patrick.



LinkBack URL
About LinkBacks




