lkml.org 
[lkml]   [2000]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectPATCH 2.4.0.9.7: clean up toshiba SMM driver
    Woo hoo, I found some time for kernel hacking :)

    This driver was merged from 2.2.x and needs some more cleanups. Horst
    von Brand posted a patch on lkml against this driver, too, but his
    cleanups had a bug in it, and weren't as terse with procfs as the
    following patch is...

    Against 2.4.0-test9-pre7, and tested on my laptop..

    Jeff



    Index: drivers/char/toshiba.c
    ===================================================================
    RCS file: /usr/jgarzik/cvslan/linux_2_3/drivers/char/toshiba.c,v
    retrieving revision 1.1.1.1
    diff -u -r1.1.1.1 toshiba.c
    --- drivers/char/toshiba.c 2000/09/18 23:13:37 1.1.1.1
    +++ drivers/char/toshiba.c 2000/09/26 15:57:42
    @@ -72,17 +72,13 @@
    static int tosh_date = 0x0000;
    static int tosh_sci = 0x0000;
    static int tosh_fan = 0;
    -static int tosh_start = 0;
    -static int tosh_extent = 0;

    static int tosh_fn = 0;

    MODULE_PARM(tosh_fn, "i");


    -static int tosh_get_info(char *, char **, off_t, int, int);
    -static int tosh_open(struct inode *ip, struct file *);
    -static int tosh_release(struct inode *, struct file *);
    +static int tosh_get_info(char *, char **, off_t, int);
    static int tosh_ioctl(struct inode *, struct file *, unsigned int,
    unsigned long);

    @@ -90,8 +86,6 @@
    static struct file_operations tosh_fops = {
    owner: THIS_MODULE,
    ioctl: tosh_ioctl,
    - open: tosh_open,
    - release: tosh_release,
    };

    static struct miscdevice tosh_device = {
    @@ -100,10 +94,6 @@
    &tosh_fops
    };

    -static struct proc_dir_entry tosh_proc_entry = {
    - 0, 7, "toshiba", S_IFREG|S_IRUGO, 1, 0, 0, 33, NULL, tosh_get_info, NULL
    -};
    -
    /*
    * Read the Fn key status
    */
    @@ -278,22 +268,6 @@
    }


    -static int tosh_open(struct inode *ip, struct file *fp)
    -{
    - MOD_INC_USE_COUNT;
    -
    - return 0;
    -}
    -
    -
    -static int tosh_release(struct inode *ip, struct file *fp)
    -{
    - MOD_DEC_USE_COUNT;
    -
    - return 0;
    -}
    -
    -
    static int tosh_ioctl(struct inode *ip, struct file *fp, unsigned int cmd,
    unsigned long arg)
    {
    @@ -338,7 +312,7 @@
    /*
    * Print the information for /proc/toshiba
    */
    -int tosh_get_info(char *buffer, char **start, off_t fpos, int length, int dummy)
    +int tosh_get_info(char *buffer, char **start, off_t fpos, int length)
    {
    char *temp;
    int key;
    @@ -400,7 +374,7 @@
    unsigned short bx,cx;
    unsigned long address;

    - id = (0x100*(int) readb(0xffffe))+((int) readb(0xffffa));
    + id = (0x100*(int) isa_readb(0xffffe))+((int) isa_readb(0xffffa));

    /* do we have a SCTTable machine identication number on our hands */

    @@ -427,11 +401,11 @@
    /* now twiddle with our pointer a bit */

    address = 0x000f0000+bx;
    - cx = readw(address);
    + cx = isa_readw(address);
    address = 0x000f0009+bx+cx;
    - cx = readw(address);
    + cx = isa_readw(address);
    address = 0x000f000a+cx;
    - cx = readw(address);
    + cx = isa_readw(address);

    /* now construct our machine identification number */

    @@ -478,15 +452,15 @@

    /* get the BIOS version */

    - major = readb(0xfe009)-'0';
    - minor = ((readb(0xfe00b)-'0')*10)+(readb(0xfe00c)-'0');
    + major = isa_readb(0xfe009)-'0';
    + minor = ((isa_readb(0xfe00b)-'0')*10)+(isa_readb(0xfe00c)-'0');
    tosh_bios = (major*0x100)+minor;

    /* get the BIOS date */

    - day = ((readb(0xffff5)-'0')*10)+(readb(0xffff6)-'0');
    - month = ((readb(0xffff8)-'0')*10)+(readb(0xffff9)-'0');
    - year = ((readb(0xffffb)-'0')*10)+(readb(0xffffc)-'0');
    + day = ((isa_readb(0xffff5)-'0')*10)+(isa_readb(0xffff6)-'0');
    + month = ((isa_readb(0xffff8)-'0')*10)+(isa_readb(0xffff9)-'0');
    + year = ((isa_readb(0xffffb)-'0')*10)+(isa_readb(0xffffc)-'0');
    tosh_date = (((year-90) & 0x1f)<<10) | ((month & 0xf)<<6)
    | ((day & 0x1f)<<1);

    @@ -527,7 +501,7 @@
    misc_register(&tosh_device);

    /* register the proc entry */
    - proc_register(&proc_root, &tosh_proc_entry);
    + create_proc_info_entry("toshiba", 0, NULL, tosh_get_info);
    return 0;
    }

    @@ -540,14 +514,9 @@
    void cleanup_module(void)
    {
    /* remove the proc entry */
    - proc_unregister(&proc_root, tosh_proc_entry.low_ino);
    + remove_proc_entry("toshiba", NULL);

    /* unregister the device file */
    misc_deregister(&tosh_device);
    -
    - /* release ports */
    - release_region(tosh_start, tosh_extent);
    -
    - return;
    }
    #endif
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:39    [W:3.813 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site