diff options
| -rw-r--r-- | drivers/media/common/tuners/tuner-xc2028.c | 4 | ||||
| -rw-r--r-- | drivers/media/common/tuners/tuner-xc2028.h | 1 | ||||
| -rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 8 |
3 files changed, 11 insertions, 2 deletions
diff --git a/drivers/media/common/tuners/tuner-xc2028.c b/drivers/media/common/tuners/tuner-xc2028.c index aa20ce8cc668..f270e605da83 100644 --- a/drivers/media/common/tuners/tuner-xc2028.c +++ b/drivers/media/common/tuners/tuner-xc2028.c | |||
| @@ -1119,8 +1119,8 @@ static int xc2028_sleep(struct dvb_frontend *fe) | |||
| 1119 | struct xc2028_data *priv = fe->tuner_priv; | 1119 | struct xc2028_data *priv = fe->tuner_priv; |
| 1120 | int rc = 0; | 1120 | int rc = 0; |
| 1121 | 1121 | ||
| 1122 | /* Avoid firmware reload on slow devices */ | 1122 | /* Avoid firmware reload on slow devices or if PM disabled */ |
| 1123 | if (no_poweroff) | 1123 | if (no_poweroff || priv->ctrl.disable_power_mgmt) |
| 1124 | return 0; | 1124 | return 0; |
| 1125 | 1125 | ||
| 1126 | tuner_dbg("Putting xc2028/3028 into poweroff mode.\n"); | 1126 | tuner_dbg("Putting xc2028/3028 into poweroff mode.\n"); |
diff --git a/drivers/media/common/tuners/tuner-xc2028.h b/drivers/media/common/tuners/tuner-xc2028.h index 19de7928a74e..a90c35d50add 100644 --- a/drivers/media/common/tuners/tuner-xc2028.h +++ b/drivers/media/common/tuners/tuner-xc2028.h | |||
| @@ -38,6 +38,7 @@ struct xc2028_ctrl { | |||
| 38 | unsigned int input1:1; | 38 | unsigned int input1:1; |
| 39 | unsigned int vhfbw7:1; | 39 | unsigned int vhfbw7:1; |
| 40 | unsigned int uhfbw8:1; | 40 | unsigned int uhfbw8:1; |
| 41 | unsigned int disable_power_mgmt:1; | ||
| 41 | unsigned int demod; | 42 | unsigned int demod; |
| 42 | enum firmware_type type:2; | 43 | enum firmware_type type:2; |
| 43 | }; | 44 | }; |
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index a5cc1c1fc2d6..39465301ec94 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
| @@ -3003,6 +3003,14 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl) | |||
| 3003 | case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: | 3003 | case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: |
| 3004 | ctl->demod = XC3028_FE_OREN538; | 3004 | ctl->demod = XC3028_FE_OREN538; |
| 3005 | break; | 3005 | break; |
| 3006 | case CX88_BOARD_GENIATECH_X8000_MT: | ||
| 3007 | /* FIXME: For this board, the xc3028 never recovers after being | ||
| 3008 | powered down (the reset GPIO probably is not set properly). | ||
| 3009 | We don't have access to the hardware so we cannot determine | ||
| 3010 | which GPIO is used for xc3028, so just disable power xc3028 | ||
| 3011 | power management for now */ | ||
| 3012 | ctl->disable_power_mgmt = 1; | ||
| 3013 | break; | ||
| 3006 | case CX88_BOARD_WINFAST_TV2000_XP_GLOBAL: | 3014 | case CX88_BOARD_WINFAST_TV2000_XP_GLOBAL: |
| 3007 | case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME: | 3015 | case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME: |
| 3008 | case CX88_BOARD_PROLINK_PV_8000GT: | 3016 | case CX88_BOARD_PROLINK_PV_8000GT: |
