diff options
Diffstat (limited to 'drivers/usb/host/r8a66597.h')
| -rw-r--r-- | drivers/usb/host/r8a66597.h | 38 | 
1 files changed, 21 insertions, 17 deletions
| diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h index 25563e9a90bc..f28782d20eef 100644 --- a/drivers/usb/host/r8a66597.h +++ b/drivers/usb/host/r8a66597.h @@ -201,11 +201,26 @@ static inline void r8a66597_write(struct r8a66597 *r8a66597, u16 val,  	iowrite16(val, r8a66597->reg + offset);  } +static inline void r8a66597_mdfy(struct r8a66597 *r8a66597, +				 u16 val, u16 pat, unsigned long offset) +{ +	u16 tmp; +	tmp = r8a66597_read(r8a66597, offset); +	tmp = tmp & (~pat); +	tmp = tmp | val; +	r8a66597_write(r8a66597, tmp, offset); +} + +#define r8a66597_bclr(r8a66597, val, offset)	\ +			r8a66597_mdfy(r8a66597, 0, val, offset) +#define r8a66597_bset(r8a66597, val, offset)	\ +			r8a66597_mdfy(r8a66597, val, 0, offset) +  static inline void r8a66597_write_fifo(struct r8a66597 *r8a66597, -				       unsigned long offset, u16 *buf, +				       struct r8a66597_pipe *pipe, u16 *buf,  				       int len)  { -	void __iomem *fifoaddr = r8a66597->reg + offset; +	void __iomem *fifoaddr = r8a66597->reg + pipe->fifoaddr;  	unsigned long count;  	unsigned char *pb;  	int i; @@ -230,26 +245,15 @@ static inline void r8a66597_write_fifo(struct r8a66597 *r8a66597,  		iowrite16_rep(fifoaddr, buf, len);  		if (unlikely(odd)) {  			buf = &buf[len]; +			if (r8a66597->pdata->wr0_shorted_to_wr1) +				r8a66597_bclr(r8a66597, MBW_16, pipe->fifosel);  			iowrite8((unsigned char)*buf, fifoaddr); +			if (r8a66597->pdata->wr0_shorted_to_wr1) +				r8a66597_bset(r8a66597, MBW_16, pipe->fifosel);  		}  	}  } -static inline void r8a66597_mdfy(struct r8a66597 *r8a66597, -				 u16 val, u16 pat, unsigned long offset) -{ -	u16 tmp; -	tmp = r8a66597_read(r8a66597, offset); -	tmp = tmp & (~pat); -	tmp = tmp | val; -	r8a66597_write(r8a66597, tmp, offset); -} - -#define r8a66597_bclr(r8a66597, val, offset)	\ -			r8a66597_mdfy(r8a66597, 0, val, offset) -#define r8a66597_bset(r8a66597, val, offset)	\ -			r8a66597_mdfy(r8a66597, val, 0, offset) -  static inline unsigned long get_syscfg_reg(int port)  {  	return port == 0 ? SYSCFG0 : SYSCFG1; | 
