I would prefer to actually see == 0x378 in the code, because theThis is what I wanted but I could not figure out how do it. If you tell me how I will be happy to change it. I tried if (p->base == 0x378) but then class_device_create does not get executed.
hexademical number is what you see everywhere else, such as the BIOS POST
and /proc/ioports. This also applies to 0x278 and 0x3BC below.
> + {The last experience I have with off board cards was about 5 years ago. The choices for the two parallel ports were 378, 278, or 3BC. I was not aware that you had flexibility now.
> + class_device_create(parallel_class, NULL, MKDEV(6, 0), NULL,
> "lp0");
> + class_device_create(parallel_class, NULL, MKDEV(99, 0), NULL,
> "parport0");
> + }
Background info before: Because I burnt my on-board LPT port (applying too
much volts or milliamps), I bought a dual-slot PCI add-in card. This card
provides "parport1" and "parport2" at ports at 0xC800 and 0xC00
(/proc/ioports).
As I said above I was not aware todays off board parallel ports had more choices. I will see what I can do to fix this. Do you have any suggestions?
There are a number of problems in your code:
1- testing just for 0x378/0x278/0x3BC is not enough
2- parport0 could be 0xC800 (address may vary) if you do not
have any onboard LPT ports.
2=> that is why I think you should not reserver "lp0"/"parport0"
for 0x378.