Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (4921): Budget-av, budget-ci: Fix MC1 register programming

Remove bogus read during MC1 programming.
A '1' bit could never be cleared using the old code.
Use MASK_xx macros.

Signed-off-by: Hartmut Birr <e9hack@gmail.com>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Hartmut Birr and committed by
Mauro Carvalho Chehab
2a893dea 97a2cf05

+6 -6
+3 -3
drivers/media/dvb/ttpci/budget-av.c
··· 360 360 saa7146_setgpio(saa, 3, SAA7146_GPIO_OUTLO); 361 361 362 362 /* Enable DEBI pins */ 363 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16) | 0x800); 363 + saa7146_write(saa, MC1, MASK_27 | MASK_11); 364 364 365 365 /* register CI interface */ 366 366 budget_av->ca.owner = THIS_MODULE; ··· 386 386 return 0; 387 387 388 388 error: 389 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16)); 389 + saa7146_write(saa, MC1, MASK_27); 390 390 return result; 391 391 } 392 392 ··· 403 403 dvb_ca_en50221_release(&budget_av->ca); 404 404 405 405 /* disable DEBI pins */ 406 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16)); 406 + saa7146_write(saa, MC1, MASK_27); 407 407 } 408 408 409 409
+3 -3
drivers/media/dvb/ttpci/budget-ci.c
··· 485 485 memset(&budget_ci->ca, 0, sizeof(struct dvb_ca_en50221)); 486 486 487 487 // enable DEBI pins 488 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16) | 0x800); 488 + saa7146_write(saa, MC1, MASK_27 | MASK_11); 489 489 490 490 // test if it is there 491 491 ci_version = ttpci_budget_debiread(&budget_ci->budget, DEBICICTL, DEBIADDR_CIVERSION, 1, 1, 0); ··· 559 559 return 0; 560 560 561 561 error: 562 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16)); 562 + saa7146_write(saa, MC1, MASK_27); 563 563 return result; 564 564 } 565 565 ··· 587 587 dvb_ca_en50221_release(&budget_ci->ca); 588 588 589 589 // disable DEBI pins 590 - saa7146_write(saa, MC1, saa7146_read(saa, MC1) | (0x800 << 16)); 590 + saa7146_write(saa, MC1, MASK_27); 591 591 } 592 592 593 593 static void budget_ci_irq(struct saa7146_dev *dev, u32 * isr)