[QUESTION] I have a question about making device driver
From: ohyama_sec
Date: Mon Feb 04 2008 - 05:14:52 EST
I have a question about device driver.
I'm writing device driver for parallel port on Linux.
In initial function which is argument of module_init() in my device driver, I reserved I/O address region, 0x378-0x37a, with using request_region() and regist my charactor device driver calling register_chrdev().
After I compile and link it. I insert this module and I can confirm that I obtaind the range of I/O address at /proc/ioports.
But I cannot write data on I/O address line, It means that following check program shows "false".
--- check program ---
#include <linux/types.h>
#include <asm/io.h>
#include <stdio.h>
int main(void){
int base = 0x378;
char read, write;
ioperm(base, 1, 1);
write = 0xa;
outb(write, base);
read = inb(base);
if((read & 0xf) == write){
printf("true\n");
}else{
printf("false\n");
}
return 0;
}
---
At this time, I unloaded kernel modules which are related to parallel port. they are 'ppdev', 'lp', 'parport_pc' and 'parport'.
What should I do at initial funtion in my module to do I/O.
(The version of kernel that I use is 2.6.19-7.)
===
by Hiroyasu Ohyama
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/