aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
authorSteven Toth <stoth@kernellabs.com>2012-01-04 08:52:26 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-04 17:48:09 -0500
commit182d29f307a1e99a05f05c155c8218b294d180ab (patch)
treec01d8012e80e20cf5834fb190b9a31d0db066c55 /drivers/media/video/cx23885
parent4c3764d15050f91a76cede6f24402cd2701e73ef (diff)
[media] cx23885: Cleanup MPEG encoder GPIO handling
During initialization the prior GPIO's were not being preserved and restore correctly. Small cleanups to configure the GPIO's for the HVR1700, HVR1800 and HVR1850. Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r--drivers/media/video/cx23885/cx23885-417.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/media/video/cx23885/cx23885-417.c b/drivers/media/video/cx23885/cx23885-417.c
index 67c4a59bd88..c5ddcac96cb 100644
--- a/drivers/media/video/cx23885/cx23885-417.c
+++ b/drivers/media/video/cx23885/cx23885-417.c
@@ -900,6 +900,7 @@ static int cx23885_load_firmware(struct cx23885_dev *dev)
900 int i, retval = 0; 900 int i, retval = 0;
901 u32 value = 0; 901 u32 value = 0;
902 u32 gpio_output = 0; 902 u32 gpio_output = 0;
903 u32 gpio_value;
903 u32 checksum = 0; 904 u32 checksum = 0;
904 u32 *dataptr; 905 u32 *dataptr;
905 906
@@ -907,7 +908,7 @@ static int cx23885_load_firmware(struct cx23885_dev *dev)
907 908
908 /* Save GPIO settings before reset of APU */ 909 /* Save GPIO settings before reset of APU */
909 retval |= mc417_memory_read(dev, 0x9020, &gpio_output); 910 retval |= mc417_memory_read(dev, 0x9020, &gpio_output);
910 retval |= mc417_memory_read(dev, 0x900C, &value); 911 retval |= mc417_memory_read(dev, 0x900C, &gpio_value);
911 912
912 retval = mc417_register_write(dev, 913 retval = mc417_register_write(dev,
913 IVTV_REG_VPU, 0xFFFFFFED); 914 IVTV_REG_VPU, 0xFFFFFFED);
@@ -991,11 +992,18 @@ static int cx23885_load_firmware(struct cx23885_dev *dev)
991 992
992 /* F/W power up disturbs the GPIOs, restore state */ 993 /* F/W power up disturbs the GPIOs, restore state */
993 retval |= mc417_register_write(dev, 0x9020, gpio_output); 994 retval |= mc417_register_write(dev, 0x9020, gpio_output);
994 retval |= mc417_register_write(dev, 0x900C, value); 995 retval |= mc417_register_write(dev, 0x900C, gpio_value);
995 996
996 retval |= mc417_register_read(dev, IVTV_REG_VPU, &value); 997 retval |= mc417_register_read(dev, IVTV_REG_VPU, &value);
997 retval |= mc417_register_write(dev, IVTV_REG_VPU, value & 0xFFFFFFE8); 998 retval |= mc417_register_write(dev, IVTV_REG_VPU, value & 0xFFFFFFE8);
998 999
1000 /* Hardcoded GPIO's here */
1001 retval |= mc417_register_write(dev, 0x9020, 0x4000);
1002 retval |= mc417_register_write(dev, 0x900C, 0x4000);
1003
1004 mc417_register_read(dev, 0x9020, &gpio_output);
1005 mc417_register_read(dev, 0x900C, &gpio_value);
1006
999 if (retval < 0) 1007 if (retval < 0)
1000 printk(KERN_ERR "%s: Error with mc417_register_write\n", 1008 printk(KERN_ERR "%s: Error with mc417_register_write\n",
1001 __func__); 1009 __func__);