Skip to contentSkip to conversation

Add support for newer PCTV 800i cards with s5h1411 demodulators

PATCH In review Mack Stanley 3 participants 6 messages Jun 28, 2012 – Jul 6, 2012 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add support for newer PCTV 800i cards with s5h1411 demodulators

Testing is needed on older (aka Pinnacle) PCTV 800i cards with S5H1409 demodulators
to check that current support for them isn't broken by this patch.

---
 drivers/media/video/cx88/cx88-dvb.c |   40
++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 12 deletions(-)
(quoted diff) +0 -0

b/drivers/media/video/cx88/cx88-dvb.c
index 003937c..6d49672 100644

drivers/media/video/cx88/cx88-dvb.c +0 -0
@@ -501,7 +501,7 @@ static const struct cx24123_config
kworld_dvbs_100_config = {
        .lnb_polarity  = 1,

};

-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {

+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
        .demod_address = 0x32 >> 1,
        .output_mode   = S5H1409_PARALLEL_OUTPUT,
        .gpio          = S5H1409_GPIO_ON,
@@ -509,7 +509,7 @@ static const struct s5h1409_config
pinnacle_pctv_hd_800i_config = {
        .inversion     = S5H1409_INVERSION_OFF,
        .status_mode   = S5H1409_DEMODLOCKING,
        .mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,

-};
+};

 static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {
        .demod_address = 0x32 >> 1,

@@ -556,6 +556,16 @@ static const struct s5h1411_config dvico_fusionhdtv7_config = {
.status_mode = S5H1411_DEMODLOCKING
};

+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {

+       .output_mode   = S5H1411_PARALLEL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING
+};
+
 static const struct xc5000_config dvico_fusionhdtv7_tuner_config = {
        .i2c_address    = 0xc2 >> 1,
        .if_khz         = 5380,
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
                }
                break;
        case CX88_BOARD_PINNACLE_PCTV_HD_800i:

- fe0->dvb.frontend = dvb_attach(s5h1409_attach,
-
&pinnacle_pctv_hd_800i_config,
- &core->i2c_adap);
- if (fe0->dvb.frontend != NULL) {
- if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
- &core->i2c_adap,
-
&pinnacle_pctv_hd_800i_tuner_config))
- goto frontend_detach;

-               }
-               break;
+               /* Try s5h1409 chip first */
+               fe0->dvb.frontend = dvb_attach(s5h1409_attach,

+
&pinnacle_pctv_hd_800i_s5h1409_config,
+ &core->i2c_adap);
+ /* Otherwise, try s5h1411 */
+ if (fe0->dvb.frontend == NULL)
+ fe0->dvb.frontend = dvb_attach(s5h1411_attach,
+
&pinnacle_pctv_hd_800i_s5h1411_config,
+ &core->i2c_adap);
+ if (fe0->dvb.frontend != NULL) {
+ if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+ &core->i2c_adap,
+
&pinnacle_pctv_hd_800i_tuner_config))
+ goto frontend_detach;
+ }

+               break;
        case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
                fe0->dvb.frontend = dvb_attach(s5h1409_attach,

&dvico_hdtv5_pci_nano_config,
--
1.7.7.6

Reviewed-by on v1 1/1
#1 lore raw
Quoted 91 lines · Mack Stanley

Testing is needed on older (aka Pinnacle) PCTV 800i cards with S5H1409 demodulators
to check that current support for them isn't broken by this patch.

---
 drivers/media/video/cx88/cx88-dvb.c |   40
++++++++++++++++++++++++----------

 1 files changed, 28 insertions(+), 12 deletions(-)
drivers/media/video/cx88/cx88-dvb.c +1 -1
index 003937c..6d49672 100644
@@ -501,7 +501,7 @@ static const struct cx24123_config
 kworld_dvbs_100_config = {
        .lnb_polarity  = 1,
  };
 
-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {
+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
        .demod_address = 0x32 >> 1,
        .output_mode   = S5H1409_PARALLEL_OUTPUT,

       .gpio          = S5H1409_GPIO_ON,

drivers/media/video/cx88/cx88-dvb.c +1 -1
@@ -509,7 +509,7 @@ static const struct s5h1409_config
 pinnacle_pctv_hd_800i_config = {
        .inversion     = S5H1409_INVERSION_OFF,
        .status_mode   = S5H1409_DEMODLOCKING,
        .mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
-};
+};
 
  static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {

       .demod_address = 0x32 >> 1,

drivers/media/video/cx88/cx88-dvb.c +0 -0
@@ -556,6 +556,16 @@ static const struct s5h1411_config
 dvico_fusionhdtv7_config = {

       .status_mode   = S5H1411_DEMODLOCKING
 };

drivers/media/video/cx88/cx88-dvb.c +10 -0
+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {
+       .output_mode   = S5H1411_PARALLEL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING
+};
+

 static const struct xc5000_config dvico_fusionhdtv7_tuner_config = { .i2c_address    = 0xc2 >> 1,
       .if_khz         = 5380,

drivers/media/video/cx88/cx88-dvb.c +0 -0
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
                }
                break;

       case CX88_BOARD_PINNACLE_PCTV_HD_800i:
-               fe0->dvb.frontend = dvb_attach(s5h1409_attach, -
&pinnacle_pctv_hd_800i_config,
-                                              &core->i2c_adap);
-               if (fe0->dvb.frontend != NULL) {
-                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
-                                       &core->i2c_adap,
-
&pinnacle_pctv_hd_800i_tuner_config))
-                               goto frontend_detach;
-               }
-               break;
+               /* Try s5h1409 chip first */
+               fe0->dvb.frontend = dvb_attach(s5h1409_attach, +
&pinnacle_pctv_hd_800i_s5h1409_config,
+                                       &core->i2c_adap);
+               /* Otherwise, try s5h1411 */
+               if (fe0->dvb.frontend == NULL)
+                       fe0->dvb.frontend = dvb_attach(s5h1411_attach, +
&pinnacle_pctv_hd_800i_s5h1411_config,
+                                       &core->i2c_adap);
+               if (fe0->dvb.frontend != NULL) {
+                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+                                       &core->i2c_adap,
+
&pinnacle_pctv_hd_800i_tuner_config))
+                               goto frontend_detach;
+               }
+               break;
       case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
               fe0->dvb.frontend = dvb_attach(s5h1409_attach,

Quoted 5 lines

&dvico_hdtv5_pci_nano_config,
--
1.7.7.6

Looks good. Thanks for taking the time to put this together.

Signature · 2 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
#2 lore raw
In reply to Mack Stanley

Em 28-06-2012 18:29, Mack Stanley escreveu:

Quoted 36 lines

Testing is needed on older (aka Pinnacle) PCTV 800i cards with S5H1409 demodulators
to check that current support for them isn't broken by this patch.

---
  drivers/media/video/cx88/cx88-dvb.c |   40
++++++++++++++++++++++++----------
  1 files changed, 28 insertions(+), 12 deletions(-)
drivers/media/video/cx88/cx88-dvb.c +1 -1
index 003937c..6d49672 100644
@@ -501,7 +501,7 @@ static const struct cx24123_config
 kworld_dvbs_100_config = {
         .lnb_polarity  = 1,
  };
 
-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {
+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
         .demod_address = 0x32 >> 1,
         .output_mode   = S5H1409_PARALLEL_OUTPUT,
         .gpio          = S5H1409_GPIO_ON,
drivers/media/video/cx88/cx88-dvb.c +1 -1
@@ -509,7 +509,7 @@ static const struct s5h1409_config
 pinnacle_pctv_hd_800i_config = {
         .inversion     = S5H1409_INVERSION_OFF,
         .status_mode   = S5H1409_DEMODLOCKING,
         .mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
-};
+};
 
  static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {
         .demod_address = 0x32 >> 1,

drivers/media/video/cx88/cx88-dvb.c static const struct s5h1411_config · line 556

Quoted 1 line
drivers/media/video/cx88/cx88-dvb.c +0 -0
@@ -556,6 +556,16 @@ static const struct s5h1411_config
 dvico_fusionhdtv7_config = {

Patch got line-wrapped by your email. Please fix, otherwise, it can't be applied.

Quoted 64 lines
drivers/media/video/cx88/cx88-dvb.c +10 -0
         .status_mode   = S5H1411_DEMODLOCKING
  };
 
+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {
+       .output_mode   = S5H1411_PARALLEL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING
+};
+
  static const struct xc5000_config dvico_fusionhdtv7_tuner_config = {
         .i2c_address    = 0xc2 >> 1,
         .if_khz         = 5380,
drivers/media/video/cx88/cx88-dvb.c +8 -10
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
                 }
                 break;
         case CX88_BOARD_PINNACLE_PCTV_HD_800i:
-               fe0->dvb.frontend = dvb_attach(s5h1409_attach,
-
 &pinnacle_pctv_hd_800i_config,
-                                              &core->i2c_adap);
-               if (fe0->dvb.frontend != NULL) {
-                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
-                                       &core->i2c_adap,
-
 &pinnacle_pctv_hd_800i_tuner_config))
-                               goto frontend_detach;
-               }
-               break;
+               /* Try s5h1409 chip first */
+               fe0->dvb.frontend = dvb_attach(s5h1409_attach,
+
 &pinnacle_pctv_hd_800i_s5h1409_config,
+                                       &core->i2c_adap);
+               /* Otherwise, try s5h1411 */
+               if (fe0->dvb.frontend == NULL)
+                       fe0->dvb.frontend = dvb_attach(s5h1411_attach,
+

&pinnacle_pctv_hd_800i_s5h1411_config,

drivers/media/video/cx88/cx88-dvb.c +5 -0
+                                       &core->i2c_adap);
+               if (fe0->dvb.frontend != NULL) {
+                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+                                       &core->i2c_adap,
+

&pinnacle_pctv_hd_800i_tuner_config))

drivers/media/video/cx88/cx88-dvb.c +3 -0
+                               goto frontend_detach;
+               }
+               break;
         case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
                 fe0->dvb.frontend = dvb_attach(s5h1409_attach,

&dvico_hdtv5_pci_nano_config,
--
1.7.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw

I'm sorry to have missed the word-wrap. Here's a new copy. ---Mack

Testing needed on older (Pinnacle) PCTV 800i cards with S5H1409 demodulators to check that current support for them isn't broken by this patch.

---
 drivers/media/video/cx88/cx88-dvb.c |   40
++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 12 deletions(-)
(quoted diff) +0 -0

b/drivers/media/video/cx88/cx88-dvb.c
index 003937c..6d49672 100644

drivers/media/video/cx88/cx88-dvb.c +0 -0
@@ -501,7 +501,7 @@ static const struct cx24123_config
kworld_dvbs_100_config = {
        .lnb_polarity  = 1,

};

-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {

+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
        .demod_address = 0x32 >> 1,
        .output_mode   = S5H1409_PARALLEL_OUTPUT,
        .gpio          = S5H1409_GPIO_ON,
@@ -509,7 +509,7 @@ static const struct s5h1409_config
pinnacle_pctv_hd_800i_config = {
        .inversion     = S5H1409_INVERSION_OFF,
        .status_mode   = S5H1409_DEMODLOCKING,
        .mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,

-};
+};

 static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {
        .demod_address = 0x32 >> 1,

@@ -556,6 +556,16 @@ static const struct s5h1411_config dvico_fusionhdtv7_config = {
.status_mode = S5H1411_DEMODLOCKING
};

+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {

+       .output_mode   = S5H1411_PARALLEL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING
+};
+
 static const struct xc5000_config dvico_fusionhdtv7_tuner_config = {
        .i2c_address    = 0xc2 >> 1,
        .if_khz         = 5380,
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
                }
                break;
        case CX88_BOARD_PINNACLE_PCTV_HD_800i:

- fe0->dvb.frontend = dvb_attach(s5h1409_attach,
-
&pinnacle_pctv_hd_800i_config,
- &core->i2c_adap);
- if (fe0->dvb.frontend != NULL) {
- if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
- &core->i2c_adap,
-
&pinnacle_pctv_hd_800i_tuner_config))
- goto frontend_detach;

-               }
-               break;
+               /* Try s5h1409 chip first */
+               fe0->dvb.frontend = dvb_attach(s5h1409_attach,

+
&pinnacle_pctv_hd_800i_s5h1409_config,
+ &core->i2c_adap);
+ /* Otherwise, try s5h1411 */
+ if (fe0->dvb.frontend == NULL)
+ fe0->dvb.frontend = dvb_attach(s5h1411_attach,
+
&pinnacle_pctv_hd_800i_s5h1411_config,
+ &core->i2c_adap);
+ if (fe0->dvb.frontend != NULL) {
+ if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+ &core->i2c_adap,
+
&pinnacle_pctv_hd_800i_tuner_config))
+ goto frontend_detach;
+ }

+               break;
        case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
                fe0->dvb.frontend = dvb_attach(s5h1409_attach,

&dvico_hdtv5_pci_nano_config,
--
1.7.7.6

#4 lore raw

Em 29-06-2012 01:38, Mack Stanley escreveu:

Quoted 9 lines

I'm sorry to have missed the word-wrap. Here's a new copy. ---Mack

Testing needed on older (Pinnacle) PCTV 800i cards with S5H1409 demodulators to check that current support for them isn't broken by this patch.

---
  drivers/media/video/cx88/cx88-dvb.c |   40

++++++++++++++++++++++++----------

It is still completely mangled. It is impossible to apply it this way.

Regards,
Mauro

Quoted 93 lines
  1 files changed, 28 insertions(+), 12 deletions(-)
drivers/media/video/cx88/cx88-dvb.c +1 -1
index 003937c..6d49672 100644
@@ -501,7 +501,7 @@ static const struct cx24123_config
 kworld_dvbs_100_config = {
         .lnb_polarity  = 1,
  };
 
-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {
+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
         .demod_address = 0x32 >> 1,
         .output_mode   = S5H1409_PARALLEL_OUTPUT,
         .gpio          = S5H1409_GPIO_ON,
drivers/media/video/cx88/cx88-dvb.c +1 -1
@@ -509,7 +509,7 @@ static const struct s5h1409_config
 pinnacle_pctv_hd_800i_config = {
         .inversion     = S5H1409_INVERSION_OFF,
         .status_mode   = S5H1409_DEMODLOCKING,
         .mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
-};
+};
 
  static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {
         .demod_address = 0x32 >> 1,
drivers/media/video/cx88/cx88-dvb.c +10 -0
@@ -556,6 +556,16 @@ static const struct s5h1411_config
 dvico_fusionhdtv7_config = {
         .status_mode   = S5H1411_DEMODLOCKING
  };
 
+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {
+       .output_mode   = S5H1411_PARALLEL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING
+};
+
  static const struct xc5000_config dvico_fusionhdtv7_tuner_config = {
         .i2c_address    = 0xc2 >> 1,
         .if_khz         = 5380,
drivers/media/video/cx88/cx88-dvb.c +8 -10
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
                 }
                 break;
         case CX88_BOARD_PINNACLE_PCTV_HD_800i:
-               fe0->dvb.frontend = dvb_attach(s5h1409_attach,
-
 &pinnacle_pctv_hd_800i_config,
-                                              &core->i2c_adap);
-               if (fe0->dvb.frontend != NULL) {
-                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
-                                       &core->i2c_adap,
-
 &pinnacle_pctv_hd_800i_tuner_config))
-                               goto frontend_detach;
-               }
-               break;
+               /* Try s5h1409 chip first */
+               fe0->dvb.frontend = dvb_attach(s5h1409_attach,
+
 &pinnacle_pctv_hd_800i_s5h1409_config,
+                                       &core->i2c_adap);
+               /* Otherwise, try s5h1411 */
+               if (fe0->dvb.frontend == NULL)
+                       fe0->dvb.frontend = dvb_attach(s5h1411_attach,
+

&pinnacle_pctv_hd_800i_s5h1411_config,

drivers/media/video/cx88/cx88-dvb.c +5 -0
+                                       &core->i2c_adap);
+               if (fe0->dvb.frontend != NULL) {
+                       if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+                                       &core->i2c_adap,
+

&pinnacle_pctv_hd_800i_tuner_config))

drivers/media/video/cx88/cx88-dvb.c +3 -0
+                               goto frontend_detach;
+               }
+               break;
         case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
                 fe0->dvb.frontend = dvb_attach(s5h1409_attach,

&dvico_hdtv5_pci_nano_config,
--
1.7.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#5 lore raw
Quoted 12 lines · Mauro Carvalho Chehab

Em 29-06-2012 01:38, Mack Stanley escreveu:

Quoted 9 lines

I'm sorry to have missed the word-wrap. Here's a new copy. ---Mack

Testing needed on older (Pinnacle) PCTV 800i cards with S5H1409 demodulators to check that current support for them isn't broken by this patch.

---
  drivers/media/video/cx88/cx88-dvb.c |   40

++++++++++++++++++++++++----------

Quoted 4 lines

It is still completely mangled. It is impossible to apply it this way.

Regards,
Mauro

Mack,

Assuming this is a git tree, just use "git format-patch" followed by "git send-email".

Devin

Signature · 2 lines
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com