mirror of https://gitee.com/openkylin/linux.git
[media] cxd2820r: do not allow get_frontend() when demod is not initialized
This fixes bug introduced by multi-frontend to single-frontend change. Finally HAS_LOCK is got back! We are not allowed to access hardware in sleep mode... Chip did not like when .get_frontend() reads some registers while chip was sleeping and due to that HAS_LOCK bit was never gained. TODO: We should add logic for dvb-core to drop out illegal calls like that. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
1f64972937
commit
3b6a567afa
|
@ -309,9 +309,14 @@ static int cxd2820r_read_status(struct dvb_frontend *fe, fe_status_t *status)
|
||||||
|
|
||||||
static int cxd2820r_get_frontend(struct dvb_frontend *fe)
|
static int cxd2820r_get_frontend(struct dvb_frontend *fe)
|
||||||
{
|
{
|
||||||
|
struct cxd2820r_priv *priv = fe->demodulator_priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
dbg("%s: delsys=%d", __func__, fe->dtv_property_cache.delivery_system);
|
dbg("%s: delsys=%d", __func__, fe->dtv_property_cache.delivery_system);
|
||||||
|
|
||||||
|
if (priv->delivery_system == SYS_UNDEFINED)
|
||||||
|
return 0;
|
||||||
|
|
||||||
switch (fe->dtv_property_cache.delivery_system) {
|
switch (fe->dtv_property_cache.delivery_system) {
|
||||||
case SYS_DVBT:
|
case SYS_DVBT:
|
||||||
ret = cxd2820r_get_frontend_t(fe);
|
ret = cxd2820r_get_frontend_t(fe);
|
||||||
|
|
Loading…
Reference in New Issue