Dear all,
It seems the the change from 2.4 to 2.6 made the state read from
yenta_get_status change it's return value. It reads it from hardware.
The change in value has an effect later on which causes CB_CBCARD not to
be set, and thus SOCKET_CARDBUS not being set, this memory reads are
from the wrong ioport, locking up the machine.
Hardware:
00:0a.0 CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller
with a Netgear wireless card for testing.
see http://www.ussg.iu.edu/hypermail/linux/kernel/0307.3/0166.html
for more info.
I added
printk(KERN_DEBUG "yenta_get_status: status=%04x\n",state);
after the call
u32 state = cb_readl(socket, CB_SOCKET_STATE);
in
static int yenta_get_status(struct pcmcia_socket *sock, unsigned int
*value)
in drivers/pcmcia/yenta_socket.c
in both 2.4.21 and 2.6.0-test1
2.6.0-test1 gives: 30000411
2.4.21 gives: 30000419
I wonder why the values are different, and yet fairly close. It is
enough to give hard lockups ( I debugged this one with printk's and
commenting out code )
I have added
state |= CB_CBCARD;
to the 2.6 kernel and that stops lockups, but I haven't yet tried
forcing the complete value.
What should I do, who should I contact, please advise. ( I am not a
kernel developer )
Stefan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:29 EST