提交 2a29a0d7 编写于 作者: M Mauro Carvalho Chehab

V4L/DVB (9758): em28xx: replace some magic by register descriptions where known

Replaces all occurrences of em28xx_write_regs_req() and em28xx_write_reg()
used to setup register names by em28xx_write_reg().

Also, documents the register names that are known.

This patch were generated by this small perl script:

my %reg_map = (
	# Register table - the same as defined on parse_em28xx.pl script
);

while (<>) {
	if (m/(.*)em28xx_write_regs_req\(dev\,\s*0x00\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) {
		my $reg = $2;
		my $val = $3;
		$val =~ tr/A-f/a-f/;
		$reg = $reg_map{$reg} if defined($reg_map{$reg});
		printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
	} elsif (m/(.*)em28xx_write_regs\(dev\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) {
		my $reg = $2;
		my $val = $3;
		$val =~ tr/A-f/a-f/;
		$reg = $reg_map{$reg} if defined($reg_map{$reg});
		printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
	} else {
		print $_;
	}
}
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 c8644057
......@@ -554,20 +554,20 @@ EXPORT_SYMBOL_GPL(em28xx_audio_setup);
int em28xx_colorlevels_set_default(struct em28xx *dev)
{
em28xx_write_regs(dev, EM28XX_R20_YGAIN, "\x10", 1); /* contrast */
em28xx_write_regs(dev, EM28XX_R21_YOFFSET, "\x00", 1); /* brightness */
em28xx_write_regs(dev, EM28XX_R22_UVGAIN, "\x10", 1); /* saturation */
em28xx_write_regs(dev, EM28XX_R23_UOFFSET, "\x00", 1);
em28xx_write_regs(dev, EM28XX_R24_VOFFSET, "\x00", 1);
em28xx_write_regs(dev, EM28XX_R25_SHARPNESS, "\x00", 1);
em28xx_write_regs(dev, EM28XX_R14_GAMMA, "\x20", 1);
em28xx_write_regs(dev, EM28XX_R15_RGAIN, "\x20", 1);
em28xx_write_regs(dev, EM28XX_R16_GGAIN, "\x20", 1);
em28xx_write_regs(dev, EM28XX_R17_BGAIN, "\x20", 1);
em28xx_write_regs(dev, EM28XX_R18_ROFFSET, "\x00", 1);
em28xx_write_regs(dev, EM28XX_R19_GOFFSET, "\x00", 1);
return em28xx_write_regs(dev, EM28XX_R1A_BOFFSET, "\x00", 1);
em28xx_write_reg(dev, EM28XX_R20_YGAIN, 0x10); /* contrast */
em28xx_write_reg(dev, EM28XX_R21_YOFFSET, 0x00); /* brightness */
em28xx_write_reg(dev, EM28XX_R22_UVGAIN, 0x10); /* saturation */
em28xx_write_reg(dev, EM28XX_R23_UOFFSET, 0x00);
em28xx_write_reg(dev, EM28XX_R24_VOFFSET, 0x00);
em28xx_write_reg(dev, EM28XX_R25_SHARPNESS, 0x00);
em28xx_write_reg(dev, EM28XX_R14_GAMMA, 0x20);
em28xx_write_reg(dev, EM28XX_R15_RGAIN, 0x20);
em28xx_write_reg(dev, EM28XX_R16_GGAIN, 0x20);
em28xx_write_reg(dev, EM28XX_R17_BGAIN, 0x20);
em28xx_write_reg(dev, EM28XX_R18_ROFFSET, 0x00);
em28xx_write_reg(dev, EM28XX_R19_GOFFSET, 0x00);
return em28xx_write_reg(dev, EM28XX_R1A_BOFFSET, 0x00);
}
int em28xx_capture_start(struct em28xx *dev, int start)
......@@ -600,17 +600,17 @@ int em28xx_capture_start(struct em28xx *dev, int start)
if (!start) {
/* disable video capture */
rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x27", 1);
rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x27);
return rc;
}
/* enable video capture */
rc = em28xx_write_regs_req(dev, 0x00, 0x48, "\x00", 1);
rc = em28xx_write_reg(dev, 0x48, 0x00);
if (dev->mode == EM28XX_ANALOG_MODE)
rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x67", 1);
rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x67);
else
rc = em28xx_write_regs(dev, EM28XX_R12_VINENABLE, "\x37", 1);
rc = em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x37);
msleep(6);
......@@ -619,9 +619,9 @@ int em28xx_capture_start(struct em28xx *dev, int start)
int em28xx_outfmt_set_yuv422(struct em28xx *dev)
{
em28xx_write_regs(dev, EM28XX_R27_OUTFMT, "\x34", 1);
em28xx_write_regs(dev, EM28XX_R10_VINMODE, "\x10", 1);
return em28xx_write_regs(dev, EM28XX_R11_VINCTRL, "\x11", 1);
em28xx_write_reg(dev, EM28XX_R27_OUTFMT, 0x34);
em28xx_write_reg(dev, EM28XX_R10_VINMODE, 0x10);
return em28xx_write_reg(dev, EM28XX_R11_VINCTRL, 0x11);
}
static int em28xx_accumulator_set(struct em28xx *dev, u8 xmin, u8 xmax,
......@@ -737,11 +737,11 @@ int em28xx_gpio_set(struct em28xx *dev, struct em28xx_reg_seq *gpio)
if (!gpio)
return rc;
dev->em28xx_write_regs_req(dev, 0x00, 0x48, "\x00", 1);
em28xx_write_reg(dev, 0x48, 0x00);
if (dev->mode == EM28XX_ANALOG_MODE)
dev->em28xx_write_regs_req(dev, 0x00, 0x12, "\x67", 1);
em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x67);
else
dev->em28xx_write_regs_req(dev, 0x00, 0x12, "\x37", 1);
em28xx_write_reg(dev, EM28XX_R12_VINENABLE, 0x37);
msleep(6);
/* Send GPIO reset sequences specified at board entry */
......
......@@ -518,7 +518,7 @@ static int em28xx_config(struct em28xx *dev)
/* Sets I2C speed to 100 KHz */
if (!dev->board.is_em2800) {
retval = em28xx_write_regs_req(dev, 0x00, 0x06, "\x40", 1);
retval = em28xx_write_reg(dev, EM28XX_R06_I2C_CLK, 0x40);
if (retval < 0) {
em28xx_errdev("%s: em28xx_write_regs_req failed! retval [%d]\n",
__func__, retval);
......@@ -528,9 +528,9 @@ static int em28xx_config(struct em28xx *dev)
/* enable vbi capturing */
/* em28xx_write_regs_req(dev, 0x00, 0x0e, "\xC0", 1); audio register */
/* em28xx_write_regs_req(dev, 0x00, 0x0f, "\x80", 1); clk register */
em28xx_write_regs_req(dev, 0x00, 0x11, "\x51", 1);
/* em28xx_write_reg(dev, EM28XX_R0E_AUDIOSRC, 0xc0); audio register */
/* em28xx_write_reg(dev, EM28XX_R0F_XCLK, 0x80); clk register */
em28xx_write_reg(dev, EM28XX_R11_VINCTRL, 0x51);
dev->mute = 1; /* maybe not the right place... */
dev->volume = 0x1f;
......@@ -2094,7 +2094,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
if (dev->board.has_msp34xx) {
/* Send a reset to other chips via gpio */
errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xf7", 1);
errCode = em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xf7);
if (errCode < 0) {
em28xx_errdev("%s: em28xx_write_regs_req - msp34xx(1) failed! errCode [%d]\n",
__func__, errCode);
......@@ -2102,7 +2102,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
}
msleep(3);
errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xff", 1);
errCode = em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xff);
if (errCode < 0) {
em28xx_errdev("%s: em28xx_write_regs_req - msp34xx(2) failed! errCode [%d]\n",
__func__, errCode);
......
......@@ -617,7 +617,7 @@ int em28xx_ir_fini(struct em28xx *dev);
static inline int em28xx_compression_disable(struct em28xx *dev)
{
/* side effect of disabling scaler and mixer */
return em28xx_write_regs(dev, EM28XX_R26_COMPR, "\x00", 1);
return em28xx_write_reg(dev, EM28XX_R26_COMPR, 0x00);
}
static inline int em28xx_contrast_get(struct em28xx *dev)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册