[Linux-parport] parport data_reverse patch

Steve deRosier steve at cozybit.com
Thu Mar 4 12:19:50 EST 2010


Johann,

Thanks.

In this case it's kernel 2.6.31-19.

I don't know why it does fix the issue, but it does.  I agree, it's
not a good solution, but it seemed like a good talking point.

Specifically: WinXP virtual machine running on VMware Server running
on Ubuntu on a Think-pad on a docking station with a parallel port.
There is an ICE attached the the parallel port.  The software that
connects to the ICE can not connect to the ICE.  With the hack, the
software _can_ connect to the ICE, and works just fine.

OK, I'm sure it's technically a bug in how VMware has written their
stuff, but having to patch my kernel every time I need to upgrade or
whatever is a PITA.

I know it's not a good general-purpose solution, but a module variable
for this specific situation would be nice, or if you could guide me
into the correct path for a proper fix (or at least a better place to
put in a module variable), I'd love to fix it for everyone.

Thanks,
- Steve

On Thu, Mar 4, 2010 at 4:30 AM, Johann Klammer <klammerr at aon.at> wrote:
> Steve deRosier wrote:
>>
>> All,
>>
>> I am having some trouble with parallel ports with VMWare server
>> running on Ubuntu.
>>
>> When you try to use the parallel port, it won't work and the dmesg
>> output will show something like:
>>
>> [78100.870664] parport0 (ppdev0): use data_reverse for this!
>> [78106.513997] parport0 (ppdev0): use data_reverse for this!
>> [78181.921856] parport0 (ppdev0): use data_reverse for this!
>>
>> A few searches came up with information leading to the following code
>> work around:
>>
>> --- include/linux/parport_pc.h.orig     2009-12-03 11:27:03.000000000
>> -0800
>> +++ include/linux/parport_pc.h  2009-12-02 12:24:53.000000000 -0800
>> @@ -144,7 +144,7 @@
>>  static __inline__ void parport_pc_data_reverse (struct parport *p)
>>  {
>> -       __parport_pc_frob_control (p, 0x20, 0x20);
>> +//     __parport_pc_frob_control (p, 0x20, 0x20);
>>  }
>>  static __inline__ void parport_pc_data_forward (struct parport *p)
>>
> Hellow,
> AFAIK Above message appears if you try to set the direction bit using
> xxx_write_control instead of using xxx_data_reverse.
> On my box(kernel version 2.6.30) it does work as expected despite the
> message. The corresponding code snippet is in include/linux/parport_pc.h
> function parport_pc_write_control.
> I don't think your 'patch' solves your problem. It effectively disables the
> data_reverse function which would (probably) break existing code.
>
> BTW What _exactly_ does not work?
>
> regards
> JK
>
> _______________________________________________
> Linux-parport mailing list
> Linux-parport at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-parport
>



More information about the Linux-parport mailing list