Ver código fonte

V4L/DVB (13750): [Mantis] GPIO_CONTROL: Cache a given GPIO Bit Setup for a given event

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Manu Abraham 15 anos atrás
pai
commit
4d5a28efda

+ 1 - 1
drivers/media/dvb/mantis/mantis_common.h

@@ -137,7 +137,7 @@ struct mantis_pci {
 	u32			sub_device_id;
 
 	 /*	A12 A13 A14		*/
-	int			gpio_status;
+	u32			gpio_status;
 
 	struct mantis_ca	*mantis_ca;
 };

+ 5 - 6
drivers/media/dvb/mantis/mantis_core.c

@@ -185,16 +185,15 @@ int mantis_core_exit(struct mantis_pci *mantis)
 // Turn the given bit on or off.
 void gpio_set_bits(struct mantis_pci *mantis, u32 bitpos, u8 value)
 {
-	u32 currVal, newVal;
-
-	currVal = mmread(MANTIS_GPIF_ADDR);
+	u32 cur;
 
+	cur = mmread(MANTIS_GPIF_ADDR);
 	if (value)
-		newVal = currVal | (1 << bitpos);
+		mantis->gpio_status = cur | (1 << bitpos);
 	else
-		newVal = currVal & (~(1 << bitpos));
+		mantis->gpio_status = cur & (~(1 << bitpos));
 
-	mmwrite(newVal, MANTIS_GPIF_ADDR);
+	mmwrite(mantis->gpio_status, MANTIS_GPIF_ADDR);
 	mmwrite(0x00, MANTIS_GPIF_DOUT);
 	udelay(100);
 }