Skip to content

Commit 74ea15d

Browse files
committed
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] cinergyT2-fe: Fix bandwdith settings [media] V4L: atmel-isi: add clk_prepare()/clk_unprepare() functions [media] cxd2820r: sleep on DVB-T/T2 delivery system switch [media] anysee: fix CI init [media] cxd2820r: remove unused parameter from cxd2820r_attach [media] cxd2820r: fix dvb_frontend_ops
2 parents c75d5c5 + c79eba9 commit 74ea15d

File tree

6 files changed

+45
-16
lines changed

6 files changed

+45
-16
lines changed

drivers/media/dvb/dvb-usb/anysee.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -887,8 +887,7 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap)
887887

888888
/* attach demod */
889889
adap->fe_adap[state->fe_id].fe = dvb_attach(cxd2820r_attach,
890-
&anysee_cxd2820r_config, &adap->dev->i2c_adap,
891-
NULL);
890+
&anysee_cxd2820r_config, &adap->dev->i2c_adap);
892891

893892
state->has_ci = true;
894893

@@ -1189,6 +1188,14 @@ static int anysee_ci_init(struct dvb_usb_device *d)
11891188
if (ret)
11901189
return ret;
11911190

1191+
ret = anysee_wr_reg_mask(d, REG_IOD, (0 << 2)|(0 << 1)|(0 << 0), 0x07);
1192+
if (ret)
1193+
return ret;
1194+
1195+
ret = anysee_wr_reg_mask(d, REG_IOD, (1 << 2)|(1 << 1)|(1 << 0), 0x07);
1196+
if (ret)
1197+
return ret;
1198+
11921199
ret = dvb_ca_en50221_init(&d->adapter[0].dvb_adap, &state->ci, 0, 1);
11931200
if (ret)
11941201
return ret;

drivers/media/dvb/dvb-usb/cinergyT2-fe.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,14 +276,15 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
276276
param.flags = 0;
277277

278278
switch (fep->bandwidth_hz) {
279+
default:
279280
case 8000000:
280-
param.bandwidth = 0;
281+
param.bandwidth = 8;
281282
break;
282283
case 7000000:
283-
param.bandwidth = 1;
284+
param.bandwidth = 7;
284285
break;
285286
case 6000000:
286-
param.bandwidth = 2;
287+
param.bandwidth = 6;
287288
break;
288289
}
289290

drivers/media/dvb/frontends/cxd2820r.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,12 @@ struct cxd2820r_config {
7777
(defined(CONFIG_DVB_CXD2820R_MODULE) && defined(MODULE))
7878
extern struct dvb_frontend *cxd2820r_attach(
7979
const struct cxd2820r_config *config,
80-
struct i2c_adapter *i2c,
81-
struct dvb_frontend *fe
80+
struct i2c_adapter *i2c
8281
);
8382
#else
8483
static inline struct dvb_frontend *cxd2820r_attach(
8584
const struct cxd2820r_config *config,
86-
struct i2c_adapter *i2c,
87-
struct dvb_frontend *fe
85+
struct i2c_adapter *i2c
8886
)
8987
{
9088
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);

drivers/media/dvb/frontends/cxd2820r_core.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -482,10 +482,19 @@ static enum dvbfe_search cxd2820r_search(struct dvb_frontend *fe)
482482

483483
/* switch between DVB-T and DVB-T2 when tune fails */
484484
if (priv->last_tune_failed) {
485-
if (priv->delivery_system == SYS_DVBT)
485+
if (priv->delivery_system == SYS_DVBT) {
486+
ret = cxd2820r_sleep_t(fe);
487+
if (ret)
488+
goto error;
489+
486490
c->delivery_system = SYS_DVBT2;
487-
else if (priv->delivery_system == SYS_DVBT2)
491+
} else if (priv->delivery_system == SYS_DVBT2) {
492+
ret = cxd2820r_sleep_t2(fe);
493+
if (ret)
494+
goto error;
495+
488496
c->delivery_system = SYS_DVBT;
497+
}
489498
}
490499

491500
/* set frontend */
@@ -562,7 +571,7 @@ static const struct dvb_frontend_ops cxd2820r_ops = {
562571
.delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A },
563572
/* default: DVB-T/T2 */
564573
.info = {
565-
.name = "Sony CXD2820R (DVB-T/T2)",
574+
.name = "Sony CXD2820R",
566575

567576
.caps = FE_CAN_FEC_1_2 |
568577
FE_CAN_FEC_2_3 |
@@ -572,7 +581,9 @@ static const struct dvb_frontend_ops cxd2820r_ops = {
572581
FE_CAN_FEC_AUTO |
573582
FE_CAN_QPSK |
574583
FE_CAN_QAM_16 |
584+
FE_CAN_QAM_32 |
575585
FE_CAN_QAM_64 |
586+
FE_CAN_QAM_128 |
576587
FE_CAN_QAM_256 |
577588
FE_CAN_QAM_AUTO |
578589
FE_CAN_TRANSMISSION_MODE_AUTO |
@@ -602,8 +613,7 @@ static const struct dvb_frontend_ops cxd2820r_ops = {
602613
};
603614

604615
struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *cfg,
605-
struct i2c_adapter *i2c,
606-
struct dvb_frontend *fe)
616+
struct i2c_adapter *i2c)
607617
{
608618
struct cxd2820r_priv *priv = NULL;
609619
int ret;

drivers/media/video/atmel-isi.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,9 @@ static int __devexit atmel_isi_remove(struct platform_device *pdev)
922922
isi->fb_descriptors_phys);
923923

924924
iounmap(isi->regs);
925+
clk_unprepare(isi->mck);
925926
clk_put(isi->mck);
927+
clk_unprepare(isi->pclk);
926928
clk_put(isi->pclk);
927929
kfree(isi);
928930

@@ -955,6 +957,10 @@ static int __devinit atmel_isi_probe(struct platform_device *pdev)
955957
if (IS_ERR(pclk))
956958
return PTR_ERR(pclk);
957959

960+
ret = clk_prepare(pclk);
961+
if (ret)
962+
goto err_clk_prepare_pclk;
963+
958964
isi = kzalloc(sizeof(struct atmel_isi), GFP_KERNEL);
959965
if (!isi) {
960966
ret = -ENOMEM;
@@ -978,6 +984,10 @@ static int __devinit atmel_isi_probe(struct platform_device *pdev)
978984
goto err_clk_get;
979985
}
980986

987+
ret = clk_prepare(isi->mck);
988+
if (ret)
989+
goto err_clk_prepare_mck;
990+
981991
/* Set ISI_MCK's frequency, it should be faster than pixel clock */
982992
ret = clk_set_rate(isi->mck, pdata->mck_hz);
983993
if (ret < 0)
@@ -1059,10 +1069,14 @@ static int __devinit atmel_isi_probe(struct platform_device *pdev)
10591069
isi->fb_descriptors_phys);
10601070
err_alloc_descriptors:
10611071
err_set_mck_rate:
1072+
clk_unprepare(isi->mck);
1073+
err_clk_prepare_mck:
10621074
clk_put(isi->mck);
10631075
err_clk_get:
10641076
kfree(isi);
10651077
err_alloc_isi:
1078+
clk_unprepare(pclk);
1079+
err_clk_prepare_pclk:
10661080
clk_put(pclk);
10671081

10681082
return ret;

drivers/media/video/em28xx/em28xx-dvb.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -853,8 +853,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
853853
case EM28174_BOARD_PCTV_290E:
854854
dvb->fe[0] = dvb_attach(cxd2820r_attach,
855855
&em28xx_cxd2820r_config,
856-
&dev->i2c_adap,
857-
NULL);
856+
&dev->i2c_adap);
858857
if (dvb->fe[0]) {
859858
/* FE 0 attach tuner */
860859
if (!dvb_attach(tda18271_attach,

0 commit comments

Comments
 (0)