@ -375,9 +375,10 @@ static int i2c_read(struct i2c_adapter *adap,
static int read16_flags ( struct drxk_state * state , u32 reg , u16 * data , u8 flags )
{
u8 adr = state - > demod_address , mm1 [ 4 ] , mm2 [ 2 ] , len ;
# ifdef I2C_LONG_ADR
flags | = 0xC0 ;
# endif
if ( state - > single_master )
flags | = 0xC0 ;
if ( DRXDAP_FASI_LONG_FORMAT ( reg ) | | ( flags ! = 0 ) ) {
mm1 [ 0 ] = ( ( ( reg < < 1 ) & 0xFF ) | 0x01 ) ;
mm1 [ 1 ] = ( ( reg > > 16 ) & 0xFF ) ;
@ -406,9 +407,10 @@ static int read16(struct drxk_state *state, u32 reg, u16 *data)
static int read32_flags ( struct drxk_state * state , u32 reg , u32 * data , u8 flags )
{
u8 adr = state - > demod_address , mm1 [ 4 ] , mm2 [ 4 ] , len ;
# ifdef I2C_LONG_ADR
flags | = 0xC0 ;
# endif
if ( state - > single_master )
flags | = 0xC0 ;
if ( DRXDAP_FASI_LONG_FORMAT ( reg ) | | ( flags ! = 0 ) ) {
mm1 [ 0 ] = ( ( ( reg < < 1 ) & 0xFF ) | 0x01 ) ;
mm1 [ 1 ] = ( ( reg > > 16 ) & 0xFF ) ;
@ -438,9 +440,9 @@ static int read32(struct drxk_state *state, u32 reg, u32 *data)
static int write16_flags ( struct drxk_state * state , u32 reg , u16 data , u8 flags )
{
u8 adr = state - > demod_address , mm [ 6 ] , len ;
# ifdef I2C_LONG_ADR
flags | = 0xC0 ;
# endif
if ( state - > single_master )
flags | = 0xC0 ;
if ( DRXDAP_FASI_LONG_FORMAT ( reg ) | | ( flags ! = 0 ) ) {
mm [ 0 ] = ( ( ( reg < < 1 ) & 0xFF ) | 0x01 ) ;
mm [ 1 ] = ( ( reg > > 16 ) & 0xFF ) ;
@ -469,9 +471,9 @@ static int write16(struct drxk_state *state, u32 reg, u16 data)
static int write32_flags ( struct drxk_state * state , u32 reg , u32 data , u8 flags )
{
u8 adr = state - > demod_address , mm [ 8 ] , len ;
# ifdef I2C_LONG_ADR
flags | = 0xC0 ;
# endif
if ( state - > single_master )
flags | = 0xC0 ;
if ( DRXDAP_FASI_LONG_FORMAT ( reg ) | | ( flags ! = 0 ) ) {
mm [ 0 ] = ( ( ( reg < < 1 ) & 0xFF ) | 0x01 ) ;
mm [ 1 ] = ( ( reg > > 16 ) & 0xFF ) ;
@ -503,9 +505,10 @@ static int write_block(struct drxk_state *state, u32 Address,
{
int status = 0 , BlkSize = BlockSize ;
u8 Flags = 0 ;
# ifdef I2C_LONG_ADR
Flags | = 0xC0 ;
# endif
if ( state - > single_master )
Flags | = 0xC0 ;
while ( BlkSize > 0 ) {
int Chunk = BlkSize > state - > m_ChunkSize ?
state - > m_ChunkSize : BlkSize ;
@ -6355,6 +6358,7 @@ struct dvb_frontend *drxk_attach(const struct drxk_config *config,
state - > i2c = i2c ;
state - > demod_address = adr ;
state - > single_master = config - > single_master ;
mutex_init ( & state - > mutex ) ;
mutex_init ( & state - > ctlock ) ;