Changeset 5091

Show
Ignore:
Timestamp:
01/05/08 10:44:29 (11 months ago)
Author:
khali
Message:

Add support for kernel < 2.6.19, where the i2c-stub module didn't yet have
a chip_addr parameter.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • i2c-tools/trunk/stub/i2c-stub-from-dump

    r5002 r5091  
    2424use strict; 
    2525use vars qw($bus_nr $addr $count); 
     26 
     27# Kernel version detection code by Mark M. Hoffman, 
     28# copied from sensors-detect. 
     29use vars qw(@kernel_version); 
     30 
     31sub initialize_kernel_version 
     32{ 
     33        `uname -r` =~ /(\d+)\.(\d+)\.(\d+)(.*)/; 
     34        @kernel_version = ($1, $2, $3, $4); 
     35} 
     36 
     37sub kernel_version_at_least 
     38{ 
     39        my ($vers, $plvl, $slvl) = @_; 
     40        return 1 if ($kernel_version[0]  > $vers || 
     41                      ($kernel_version[0] == $vers &&  
     42                        ($kernel_version[1]  > $plvl ||  
     43                          ($kernel_version[1] == $plvl &&  
     44                            ($kernel_version[2] >= $slvl))))); 
     45        return 0; 
     46} 
    2647 
    2748# Find out the i2c bus number of i2c-stub 
     
    6384} 
    6485 
     86initialize_kernel_version(); 
     87 
    6588# Load the required kernel drivers if needed 
    6689system("/sbin/modprobe", "i2c-dev") == 0 || exit 1; 
    67 system("/sbin/modprobe", "i2c-stub", "chip_addr=$addr") == 0 || exit 1; 
     90if (kernel_version_at_least(2, 6, 19)) { 
     91        system("/sbin/modprobe", "i2c-stub", "chip_addr=$addr") == 0 || exit 1; 
     92} else { 
     93        system("/sbin/modprobe", "i2c-stub") == 0 || exit 1; 
     94
    6895sleep(1); # udev may take some time to create the device node 
    6996