cx23885: Altera FPGA CI interface reworked.
PATCH v2 1/5 cx23885: Altera FPGA CI interface reworked.
It decreases I2C traffic.
Signed-off-by Abylay Ospan <[email protected]>
Signed-off-by Igor M. Liplianin <[email protected]>
--- drivers/media/video/cx23885/cx23885-dvb.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)
drivers/media/video/cx23885/cx23885-dvb.c +9 -7
@@ -620,29 +620,29 @@ int netup_altera_fpga_rw(void *device, int flag, int data, int read) {struct cx23885_dev *dev = (struct cx23885_dev *)device;unsigned long timeout = jiffies +msecs_to_jiffies (1 ); -int mem =0 ; +uint32_t mem =0 ; -cx_set (MC417_RWD ,ALT_RD |ALT_WR |ALT_CS ); + mem =cx_read (MC417_RWD );if (read)cx_set (MC417_OEN ,ALT_DATA );else {cx_clear (MC417_OEN ,ALT_DATA );/* D0-D7 out */ - mem =cx_read (MC417_RWD ); mem &= ~ALT_DATA ; mem |= (data &ALT_DATA ); -cx_write (MC417_RWD , mem); }if (flag) -cx_set (MC417_RWD ,ALT_AD_RG );/* ADDR */ + mem |=ALT_AD_RG ;else -cx_clear (MC417_RWD ,ALT_AD_RG );/* VAL */ + mem &= ~ALT_AD_RG ; -cx_clear (MC417_RWD ,ALT_CS );/* ~CS */ + mem &= ~ALT_CS ;if (read) -cx_clear (MC417_RWD ,ALT_RD ); + mem = (mem & ~ALT_RD ) |ALT_WR ;else -cx_clear (MC417_RWD ,ALT_WR ); + mem = (mem & ~ALT_WR ) |ALT_RD ; + +cx_write (MC417_RWD , mem);/* start RW cycle */ for (;;) { mem =cx_read (MC417_RWD );
Signature · 1 line
1.7.1