Commit f35e5231 authored by Alex Bee's avatar Alex Bee Committed by Mauro Carvalho Chehab

media: dvb_usb_pctv452e: use ISL6423 voltage regulator per default

Both TT-connect S2-3600 and Pinnacle PCTV Sat HDTV are using
Intersil ISL6423 as LNB voltage regulator. This makes
TT-connect S2-3650 CI the only device which uses STM LNBP22 regulator
which is currently used for all devices driven by pctv452e driver.

This patch fixes this by creating an exception for TT-connect S2-3650 CI
to continue to use STM LNBP22 while all others now using correct ISL6423
driver which makes DiSEqC/EN50494 comands which involve voltage changes
now working on the other devices (which didn't work before).
Signed-off-by: default avatarAlex Bee <knaerzche@gmail.com>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 07be6f4c
...@@ -279,6 +279,7 @@ config DVB_USB_PCTV452E ...@@ -279,6 +279,7 @@ config DVB_USB_PCTV452E
tristate "Pinnacle PCTV HDTV Pro USB device/TT Connect S2-3600" tristate "Pinnacle PCTV HDTV Pro USB device/TT Connect S2-3600"
depends on DVB_USB depends on DVB_USB
select TTPCI_EEPROM select TTPCI_EEPROM
select DVB_ISL6423 if MEDIA_SUBDRV_AUTOSELECT
select DVB_LNBP22 if MEDIA_SUBDRV_AUTOSELECT select DVB_LNBP22 if MEDIA_SUBDRV_AUTOSELECT
select DVB_STB0899 if MEDIA_SUBDRV_AUTOSELECT select DVB_STB0899 if MEDIA_SUBDRV_AUTOSELECT
select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "stb6100.h" #include "stb6100.h"
#include "stb6100_cfg.h" #include "stb6100_cfg.h"
/* FE Power */ /* FE Power */
#include "isl6423.h"
#include "lnbp22.h" #include "lnbp22.h"
#include <media/dvb_ca_en50221.h> #include <media/dvb_ca_en50221.h>
...@@ -83,6 +84,13 @@ static struct stb0899_postproc pctv45e_postproc[] = { ...@@ -83,6 +84,13 @@ static struct stb0899_postproc pctv45e_postproc[] = {
{ 0, 0 } { 0, 0 }
}; };
static struct isl6423_config pctv452e_isl6423_config = {
.current_max = SEC_CURRENT_515m,
.curlim = SEC_CURRENT_LIM_ON,
.mod_extern = 1,
.addr = 0x08,
};
/* /*
* stores all private variables for communication with the PCTV452e DVB-S2 * stores all private variables for communication with the PCTV452e DVB-S2
*/ */
...@@ -909,15 +917,23 @@ static int pctv452e_frontend_attach(struct dvb_usb_adapter *a) ...@@ -909,15 +917,23 @@ static int pctv452e_frontend_attach(struct dvb_usb_adapter *a)
&a->dev->i2c_adap); &a->dev->i2c_adap);
if (!a->fe_adap[0].fe) if (!a->fe_adap[0].fe)
return -ENODEV; return -ENODEV;
if ((dvb_attach(lnbp22_attach, a->fe_adap[0].fe,
&a->dev->i2c_adap)) == NULL)
err("Cannot attach lnbp22\n");
id = a->dev->desc->warm_ids[0]; id = a->dev->desc->warm_ids[0];
if (USB_VID_TECHNOTREND == id->idVendor if (id->idVendor == USB_VID_TECHNOTREND &&
&& USB_PID_TECHNOTREND_CONNECT_S2_3650_CI == id->idProduct) id->idProduct == USB_PID_TECHNOTREND_CONNECT_S2_3650_CI) {
if (dvb_attach(lnbp22_attach,
a->fe_adap[0].fe,
&a->dev->i2c_adap) == NULL) {
err("Cannot attach lnbp22\n");
}
/* Error ignored. */ /* Error ignored. */
tt3650_ci_init(a); tt3650_ci_init(a);
} else if (dvb_attach(isl6423_attach,
a->fe_adap[0].fe,
&a->dev->i2c_adap,
&pctv452e_isl6423_config) == NULL) {
err("Cannot attach isl6423\n");
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment