Jean Delvare wrote:
> Hi Troy,
> 
> On Thu, 20 Mar 2008 20:06:07 -0700, Troy Kisky wrote:
>> Ensure psc value gives a clock between 7-12 Mhz
> 
> Correct spelling is MHz.
> 
>> Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>
>> Signed-off-by: Kevin Hilman <[EMAIL PROTECTED]>
>> ---
>>  drivers/i2c/busses/i2c-davinci.c |   19 ++++++++++++-------
>>  1 files changed, 12 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-davinci.c 
>> b/drivers/i2c/busses/i2c-davinci.c
>> index fde2634..82d4b7f 100755
>> --- a/drivers/i2c/busses/i2c-davinci.c
>> +++ b/drivers/i2c/busses/i2c-davinci.c
>> @@ -142,6 +142,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>>      struct davinci_i2c_platform_data *pdata = dev->dev->platform_data;
>>      u16 psc;
>>      u32 clk;
>> +    u32 d;
>>      u32 clkh;
>>      u32 clkl;
>>      u32 input_clock = clk_get_rate(dev->clk);
>> @@ -171,23 +172,29 @@ static int i2c_davinci_init(struct davinci_i2c_dev 
>> *dev)
>>       *       if PSC > 1 , d = 5
>>       */
>>  
>> -    psc = 26; /* To get 1MHz clock */
>> +    /* get minimum of 7mHz clock, but max of 12mHz */
> 
> Correct spelling is MHz.


Hmm... I seems weird that kHz and MHz are correct, as opposed to
kHz and mHz,  or KHz and MHz.

> 
>> +    psc = (input_clock/7000000)-1;
> 
> The usual coding style is to leave spaces around all operators. Same
> problem below.
> 
> Note: if input_clock < 7000000, you're in trouble.
> 
>> +    if ((input_clock/(psc+1)) > 12000000)
>> +            psc++;
> 
> The only case where this will happen as far as I can see is if
> input_clock is between 12 and 14 MHz. In this case, you'll get a clock
> lower than 7 MHz (worst case is 6 MHz). Is this OK?

Since it was running out of spec at 1 Mhz, I figured running under
spec is better than over.

> 
>> +    d = (psc >= 2)? 5 : 7 - psc;
>>  
>> -    clk = ((input_clock / (psc + 1)) / (pdata->bus_freq * 1000)) - 10;
>> -    clkh = (50 * clk) / 100;
>> +    clk = ((input_clock/(psc+1)) / (pdata->bus_freq * 1000)) - (d<<1);
>> +    clkh = clk>>1;
>>      clkl = clk - clkh;
>>  
>>      davinci_i2c_write_reg(dev, DAVINCI_I2C_PSC_REG, psc);
>>      davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKH_REG, clkh);
>>      davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKL_REG, clkl);
>>  
>> -    dev_dbg(dev->dev, "CLK  = %d\n", clk);
>> +    dev_dbg(dev->dev, "input_clock=%d, CLK  = %d\n", input_clock, clk);
> 
> As I already wrote in my previous review: please come up with
> consistent spacing in this debugging message. Having no space around
> the first "=", but two spaced before and one after the second "=",
> doesn't look good.

Agreed..
But the previous message was
> > +   dev_dbg(dev->dev, "input_clock=%d, CLK  = %d\n", input_clock,clk);
>
> Please come up with consistent spacing in this debugging message.
> Missing space after comma.
And I interpreted you incorrectly. I didn't ignore you.


> 
>>      dev_dbg(dev->dev, "PSC  = %d\n",
>>              davinci_i2c_read_reg(dev, DAVINCI_I2C_PSC_REG));
>>      dev_dbg(dev->dev, "CLKL = %d\n",
>>              davinci_i2c_read_reg(dev, DAVINCI_I2C_CLKL_REG));
>>      dev_dbg(dev->dev, "CLKH = %d\n",
>>              davinci_i2c_read_reg(dev, DAVINCI_I2C_CLKH_REG));
>> +    dev_dbg(dev->dev, "bus_freq = %dkHz bus_delay = %d\n",
> 
> For consistency, you should add a comma after kHz.
> 
>> +            pdata->bus_freq, pdata->bus_delay);
>>  
>>      /* Take the I2C module out of reset: */
>>      w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> @@ -338,12 +345,10 @@ i2c_davinci_xfer(struct i2c_adapter *adap, struct 
>> i2c_msg msgs[], int num)
>>  
>>      for (i = 0; i < num; i++) {
>>              ret = i2c_davinci_xfer_msg(adap, &msgs[i], (i == (num - 1)));
>> +            dev_dbg(dev->dev, "%s ret: %d\n", __func__, ret);
>>              if (ret < 0)
>>                      return ret;
>>      }
>> -
>> -    dev_dbg(dev->dev, "%s:%d ret: %d\n", __FUNCTION__, __LINE__, ret);
>> -
>>      return num;
>>  }
>>  
> 
> Not sure how this last chunk is supposed to belong to this patch?
> 
Do you want a separate patch? Or just a comment that a dev_dbg was moved so that
it prints always instead of just on no error?


Troy


_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

Reply via email to