diff options
author | Marko Ristola | 2009-12-04 08:35:35 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab | 2010-01-17 14:55:30 +0100 |
commit | f8e26cdec5ac25ae8d73e278e21033292de5430b (patch) | |
tree | 3e8255b12283da67776fd2bcfca00c4c0aadfe57 /drivers | |
parent | V4L/DVB (13717): [MB86A16] Statistics Updates (diff) | |
download | kernel-qcow2-linux-f8e26cdec5ac25ae8d73e278e21033292de5430b.tar.gz kernel-qcow2-linux-f8e26cdec5ac25ae8d73e278e21033292de5430b.tar.xz kernel-qcow2-linux-f8e26cdec5ac25ae8d73e278e21033292de5430b.zip |
V4L/DVB (13718): [Mantis] Use gpio_set_bits to turn OFF the bits as well
Signed-off-by: Marko Ristola <marko.ristola@kolumbus.fi>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb/mantis/mantis_core.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/media/dvb/mantis/mantis_core.c b/drivers/media/dvb/mantis/mantis_core.c index d159ad6fc321..16d693eeb29e 100644 --- a/drivers/media/dvb/mantis/mantis_core.c +++ b/drivers/media/dvb/mantis/mantis_core.c @@ -172,25 +172,23 @@ int mantis_core_exit(struct mantis_pci *mantis) return 0; } +// Turn the given bit on or off. void gpio_set_bits(struct mantis_pci *mantis, u32 bitpos, u8 value) { - u32 reg; + u32 currVal, newVal; + + currVal = mmread(MANTIS_GPIF_ADDR); if (value) - reg = 0x0000; + newVal = currVal | (1 << bitpos); else - reg = 0xffff; - - reg = (value << bitpos); + newVal = currVal & (~(1 << bitpos)); - mmwrite(mmread(MANTIS_GPIF_ADDR) | reg, MANTIS_GPIF_ADDR); + mmwrite(newVal, MANTIS_GPIF_ADDR); mmwrite(0x00, MANTIS_GPIF_DOUT); udelay(100); - mmwrite(mmread(MANTIS_GPIF_ADDR) | reg, MANTIS_GPIF_ADDR); - mmwrite(0x00, MANTIS_GPIF_DOUT); } - //direction = 0 , no CI passthrough ; 1 , CI passthrough void mantis_set_direction(struct mantis_pci *mantis, int direction) { |