Wednesday, July 04, 2012

 

More About Atbm8830

I have two tv-cards for watching digital programs in Hong Kong. One is a atbm8830 (usb), another is lgs8gl5 (pci-e). They both worked ok before the kernel 3.3. After upgraded to kernel 3.3, both of them stop working anymore. By peeking into the codes, i found the core frontend (and the xc5000) will not accept a delivery system of SYS_DMBTH.  In my last post, as I said, it is only a small amount of people care about this xxxx. Although I joined the mailing list of dvb-media group and asked them to add the support for the dmb-th system. There is no reply. so i am writing it down here in case i will forget what i did.

in the core frontend.c

 drivers/media/dvb/dvb-core/dvb_frontend.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index aebcdf2..ee1cc10 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1531,6 +1531,13 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system)
                                delsys = desired_system;
                                break;
                        }
+
+                       /* check if the fe delivery system corresponds
+                          to the delivery system in cache */
+                       if (fe->ops.delsys[ncaps] == c->delivery_system) {
+                               delsys = c->delivery_system;
+                               break;
+                       }
                        ncaps++;
                }
                if (delsys == SYS_UNDEFINED) {
-- 
1.7.9.5
 
thanks for Olivier GRENIE, he provided the patch.
 
and in xc5000.c, just add the SYS_DMBTH inside the switch-case in the function set_params.
        case SYS_DVBT:
 case SYS_DVBT2:
 case SYS_DMBTH:
  dprintk(1, "%s() OFDM\n", __func__);
  switch (bw) {
  case 6000000:
   priv->video_standard = DTV6;
   priv->freq_hz = freq - 1750000;
   break;
 

after patching the above changes, my atbm8830 works again. the lgs8gxx still has error. need more time to work on it.
 

 

RIP, David Wong

I know you may not know who is David Wong , he was the writer of the drivers of atbm8830 and lgs8gxx. Thanks for his hard work, people in Hong Kong can watch digital tv programs in their computers (using linux). Since his gone, no one pick up his work. I also want to thanks the Hong Kong government, they pick the least using digital system in the world. That make me feel i am very unique.

This page is powered by Blogger. Isn't yours?