diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c index e71768661ca8..35fee3e8cde2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.c @@ -90,7 +90,7 @@  #define MAKE_I2C_ADDR(_aa) ((0xA << 3) | (((_aa) >> 16) & 0xF))  static int __amdgpu_eeprom_xfer(struct i2c_adapter *i2c_adap, u32 eeprom_addr, -				u8 *eeprom_buf, u16 buf_size, bool read) +				u8 *eeprom_buf, u32 buf_size, bool read)  {  	u8 eeprom_offset_buf[EEPROM_OFFSET_SIZE];  	struct i2c_msg msgs[] = { @@ -133,15 +133,15 @@ static int __amdgpu_eeprom_xfer(struct i2c_adapter *i2c_adap, u32 eeprom_addr,  			 * cycle begins. This is implied for the  			 * "i2c_transfer()" abstraction.  			 */ -			len = min(EEPROM_PAGE_SIZE - (eeprom_addr & -						      EEPROM_PAGE_MASK), -				  (u32)buf_size); +			len = min(EEPROM_PAGE_SIZE - (eeprom_addr & EEPROM_PAGE_MASK), +					buf_size);  		} else {  			/* Reading from the EEPROM has no limitation  			 * on the number of bytes read from the EEPROM  			 * device--they are simply sequenced out. +			 * Keep in mind that i2c_msg.len is u16 type.  			 */ -			len = buf_size; +			len = min(U16_MAX, buf_size);  		}  		msgs[1].len = len;  		msgs[1].buf = eeprom_buf; @@ -179,7 +179,7 @@ static int __amdgpu_eeprom_xfer(struct i2c_adapter *i2c_adap, u32 eeprom_addr,   * Returns the number of bytes read/written; -errno on error.   */  static int amdgpu_eeprom_xfer(struct i2c_adapter *i2c_adap, u32 eeprom_addr, -			      u8 *eeprom_buf, u16 buf_size, bool read) +			      u8 *eeprom_buf, u32 buf_size, bool read)  {  	const struct i2c_adapter_quirks *quirks = i2c_adap->quirks;  	u16 limit; @@ -225,7 +225,7 @@ static int amdgpu_eeprom_xfer(struct i2c_adapter *i2c_adap, u32 eeprom_addr,  int amdgpu_eeprom_read(struct i2c_adapter *i2c_adap,  		       u32 eeprom_addr, u8 *eeprom_buf, -		       u16 bytes) +		       u32 bytes)  {  	return amdgpu_eeprom_xfer(i2c_adap, eeprom_addr, eeprom_buf, bytes,  				  true); @@ -233,7 +233,7 @@ int amdgpu_eeprom_read(struct i2c_adapter *i2c_adap,  int amdgpu_eeprom_write(struct i2c_adapter *i2c_adap,  			u32 eeprom_addr, u8 *eeprom_buf, -			u16 bytes) +			u32 bytes)  {  	return amdgpu_eeprom_xfer(i2c_adap, eeprom_addr, eeprom_buf, bytes,  				  false); |