linux 2.6 port of smsc47m1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gabriele, I reviewed the code and the datasheet and I agree with Jean that the
code looks totally broken. On the other hand you would think I tested the
driver when I wrote it. Would you please test the PWM operation in the current driver,
including the PWM enable?
Running our pwmconfig script would be a good test.
thanks
mds

Jean Delvare wrote:
> Quoting myself:
> 
> 
>>That's about all for this first check. I have yet to take a look at
>>the sysfs callback functions.
> 
> 
> OK, I just did this. Your code is correct in the sense that it does the
> same as what the 2.4/CVS driver does. However, I have noticed a number
> of strangenesses, and think this is the right time to discuss them.
> 
> First, there is no lock on read/write. There is a lock for the update
> function, but that's about all. It's obviously not sufficent. Usually,
> drivers have a second lock for read and write operations.
> 
> Second, I'm really confused by the operations made on the PWM registers.
> When reading the code, it looks like bit 7 is for enabling PWM and bits
> 6-0 hold the duty cycle value. Except that only bits 5-0 can be set,
> and the conversions macros are odd. When looking at the datasheet OTOH,
> I read that PWM enable is bit 0, inverted (1 actually disables PWM),
> and value is in bits 6-1. Bit 7 is a clock modifier, we don't care.
> Conversions would be as simple as multiplying / dividing by 4 (with
> some rounding if you want).
> 
> Mark, am I missing something here or is PWM handling in the smsc47m1
> driver plain broken? I'd be surprised that nobody reported so far if it
> is, but sometimes we get surprised.
> 
> Another point that could be improved in the 2.6 driver is the fan
> divisor setting. Instead of defaulting to 2 on invalid sets, you should
> refuse them and return -EINVAL. This couldn't be done in the 2.4
> driver, but it can be in 2.6, so let's do it. A number of drivers
> already do (fscher.c was the first IIRC).
> 
> Thanks.
> 



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux