From: Michael Frank <mflt1@micrologica.com.hk>
To: Russell King <rmk@arm.linux.org.uk>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Pavel Machek <pavel@suse.cz>, John Belmonte <jvb@prairienet.org>
Subject: Re: 2.5.75-mm1 yenta-socket lsPCI IRQ reads incorrect
Date: Tue, 15 Jul 2003 17:34:45 +0800 [thread overview]
Message-ID: <200307151734.46616.mflt1@micrologica.com.hk> (raw)
In-Reply-To: <20030715085622.A32119@flint.arm.linux.org.uk>
On Tuesday 15 July 2003 15:56, Russell King wrote:
> On Tue, Jul 15, 2003 at 01:31:37PM +0800, Michael Frank wrote:
> > problems seen:
> >
> > - yenta_probe pci_save_state saves irq as ff. Moved to end of function,
> > result same
>
> irq was 0xff at boot, so it is neither here nor there whether it remains
> 0xff after a resume. If it works at boot with 0xff, it should work after
> a resume with 0xff.
>
> > - both swsusp and ACPI/S3 do _not_ call yenta_suspend and yenta_init,
> > so it still wont work
>
> Please confirm whether pcmcia_socket_dev_suspend() is called from
> yenta.c with SUSPEND_SAVE_STATE and not zero. (it should be
> SUSPEND_SAVE_STATE.)
Fixed that. Now it calls suspend and resume. It still doesn't work ;)
I believe it is not here now, we need to look elsewhere, as interrupts
stay dead also after reloading modules (see logs).
For this test:
$ lsmod
Module Size Used by
8250_cs 7428 0
ds 11136 3 8250_cs
yenta_socket 11008 1
pcmcia_core 59904 3 8250_cs,ds,yenta_socket
toshiba_acpi 5268 0
swsusp
Jul 15 17:04:58 mhfl2 kernel: Stopping tasks: klogd entered refrigerator
Jul 15 17:04:58 mhfl2 kernel: =init entered refrigerator
snip
Jul 15 17:04:59 mhfl2 kernel: =kjournald entered refrigerator
Jul 15 17:04:59 mhfl2 kernel: =|
Jul 15 17:04:59 mhfl2 kernel: Freeing memory: .......|
Jul 15 17:04:59 mhfl2 kernel: Syncing disks before copy
Jul 15 17:05:00 mhfl2 kernel: Suspending devices
Jul 15 17:05:00 mhfl2 kernel: Suspending devices
Jul 15 17:05:00 mhfl2 kernel: hda: start_power_step(step: 0)
Jul 15 17:05:00 mhfl2 kernel: hda: completing PM request, suspend
Jul 15 17:05:00 mhfl2 kernel: Suspending devices
Jul 15 17:05:00 mhfl2 kernel: Yenta: dev suspend
Jul 15 17:05:00 mhfl2 kernel: Yenta: suspend saved state ff
Jul 15 17:05:00 mhfl2 kernel: /critical section: Counting pages to copy[nosave c03e2000] (pages needed: 3426+512=3938 free: 57849)
Jul 15 17:05:00 mhfl2 kernel: Alloc pagedir
Jul 15 17:05:00 mhfl2 kernel: ....[nosave c03e2000]Enabling SEP on CPU 0
Jul 15 17:05:00 mhfl2 kernel: Freeing prev allocated pagedir
power down - resume
Jul 15 17:05:00 mhfl2 kernel: Yenta: dev resume
Jul 15 17:05:00 mhfl2 kernel: Yenta: init restored state ff
Jul 15 17:05:00 mhfl2 kernel: Trying to free nonexistent resource <000003f8-000003ff>
Jul 15 17:05:00 mhfl2 kernel: Yenta: init restored state ff
Jul 15 17:05:00 mhfl2 kernel: hda: Wakeup request inited, waiting for !BSY...
Jul 15 17:05:00 mhfl2 kernel: hda: start_power_step(step: 1000)
Jul 15 17:05:00 mhfl2 kernel: hda: completing PM request, resume
Jul 15 17:05:01 mhfl2 kernel: Devices Resumed
Jul 15 17:05:01 mhfl2 kernel: Devices Resumed
Jul 15 17:05:01 mhfl2 kernel: Yenta: dev resume
Jul 15 17:05:01 mhfl2 kernel: Fixing swap signatures... ok
Jul 15 17:05:01 mhfl2 kernel: Restarting processes...
Jul 15 17:05:01 mhfl2 kernel: Restarting tasks... done
Jul 15 17:05:01 mhfl2 kernel: init left refrigerator
Jul 15 17:05:01 mhfl2 kernel: pdflush left refrigerator
snip
Resumed: no interrupts
stop pcmcia
Jul 15 17:05:02 mhfl2 cardmgr[774]: executing: './serial stop ttyS0'
removing all pcmcia modules
Jul 15 17:05:40 mhfl2 su(pam_unix)[855]: session opened for user root by mhf(uid=500)
Jul 15 17:05:50 mhfl2 cardmgr[774]: exiting
Jul 15 17:06:28 mhfl2 kernel: unloading Kernel Card Services
start pcmcia again
Jul 15 17:06:42 mhfl2 kernel: Linux Kernel Card Services 3.1.22
Jul 15 17:06:42 mhfl2 kernel: options: [pci] [cardbus] [pm]
Jul 15 17:06:43 mhfl2 kernel: Intel PCIC probe: not found.
Jul 15 17:06:43 mhfl2 kernel: Yenta IRQ list 0000, PCI irq5
Jul 15 17:06:43 mhfl2 kernel: Socket status: ffffffff
Jul 15 17:06:43 mhfl2 kernel: Yenta: probe saved state ff
Jul 15 17:06:43 mhfl2 kernel: Yenta: init restored state ff
Jul 15 17:06:43 mhfl2 cardmgr[996]: watching 1 sockets
Jul 15 17:06:43 mhfl2 kernel: cs: IO port probe 0x0c00-0x0cff: clean.
Jul 15 17:06:43 mhfl2 kernel: cs: IO port probe 0x0800-0x08ff: clean.
Jul 15 17:06:43 mhfl2 kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x1e0-0x1e7 0x3c0-0x3df 0x408-0x40f 0x480-0x48f 0x4d0-0x4d7
Jul 15 17:06:43 mhfl2 kernel: cs: IO port probe 0x0a00-0x0aff: clean.
Jul 15 17:06:43 mhfl2 cardmgr[997]: starting, version is 3.2.4
interrupts still dead, now it is something else!
reboot (need to use modem for this email ;)
Jul 15 17:07:53 mhfl2 shutdown: shutting down for system reboot
diff -uN drivers/pcmcia/yenta_socket.c.orig drivers/pcmcia/yenta_socket.c
--- drivers/pcmcia/yenta_socket.c.orig 2003-07-15 12:39:52.000000000 +0800
+++ drivers/pcmcia/yenta_socket.c 2003-07-15 17:19:11.000000000 +0800
@@ -577,7 +577,9 @@
struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
pci_set_power_state(socket->dev, 0);
- pci_restore_state(socket->dev, socket->saved_state);
+
+ pci_restore_state(socket->dev, socket->saved_state);
+ printk("Yenta: init restored state %x\n",(u8)socket->saved_state[0xf]);
yenta_config_init(socket);
yenta_clear_maps(socket);
@@ -597,6 +599,7 @@
cb_writel(socket, CB_SOCKET_MASK, 0x0);
pci_save_state(socket->dev, socket->saved_state);
+ printk("Yenta: suspend saved state %x\n",(u8)socket->saved_state[0xf]);
/*
* This does not work currently. The controller
@@ -867,8 +870,6 @@
/* Set up the bridge regions.. */
yenta_allocate_resources(socket);
- pci_save_state(dev, socket->saved_state);
-
socket->cb_irq = dev->irq;
/* Do we have special options for the device? */
@@ -897,6 +898,10 @@
/* Figure out what the dang thing can do for the PCMCIA layer... */
yenta_get_socket_capabilities(socket, isa_interrupts);
printk("Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));
+ pci_save_state(dev, socket->saved_state);
+ printk("Yenta: probe saved state %x\n",(u8)socket->saved_state[0xf]);
+ //(u8)socket->saved_state[0xf] = socket->cb_irq;
+ //printk("Yenta: probe saved state irq fixed %x\n",(u8)socket->saved_state[0xf]);
/* Register it with the pcmcia layer.. */
return pcmcia_register_socket(&socket->socket);
@@ -905,12 +910,14 @@
static int yenta_dev_suspend (struct pci_dev *dev, u32 state)
{
- return pcmcia_socket_dev_suspend(&dev->dev, state, 0);
+ printk("Yenta: dev suspend\n");
+ return pcmcia_socket_dev_suspend(&dev->dev, state, SUSPEND_SAVE_STATE);
}
static int yenta_dev_resume (struct pci_dev *dev)
{
+ printk("Yenta: dev resume\n");
return pcmcia_socket_dev_resume(&dev->dev, RESUME_RESTORE_STATE);
}
--
Powered by linux-2.5.75-mm1. Compiled with gcc-2.95-3 - mature and rock solid
My current linux related activities:
- 2.5 yenta_socket testing
- Test development and testing of swsusp for 2.4/2.5 and ACPI S3 of 2.5 kernel
- Everyday usage of 2.5 kernel
More info on 2.5 kernel: http://www.codemonkey.org.uk/post-halloween-2.5.txt
More info on swsusp: http://sourceforge.net/projects/swsusp/
next prev parent reply other threads:[~2003-07-15 9:42 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-14 5:41 Yenta_socket lsPCI IRQ reads incorrect Michael Frank
2003-07-14 9:07 ` Pavel Machek
2003-07-14 9:28 ` 2.5.75-mm1 yenta-socket " Michael Frank
2003-07-14 11:01 ` Russell King
2003-07-14 11:37 ` Michael Frank
2003-07-14 14:50 ` Russell King
2003-07-14 15:04 ` Jeff Garzik
2003-07-14 15:21 ` Russell King
2003-07-14 15:18 ` Michael Frank
2003-07-14 15:34 ` Russell King
2003-07-14 15:27 ` Michael Frank
2003-07-15 5:31 ` Michael Frank
2003-07-15 6:08 ` Michael Frank
2003-07-15 7:56 ` Russell King
2003-07-15 9:34 ` Michael Frank [this message]
2003-07-15 10:42 ` Michael Frank
2003-07-15 14:39 ` Russell King
2003-07-15 16:09 ` Michael Frank
2003-07-16 3:16 ` Michael Frank
2003-07-16 5:04 ` Michael Frank
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200307151734.46616.mflt1@micrologica.com.hk \
--to=mflt1@micrologica.com.hk \
--cc=jvb@prairienet.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@suse.cz \
--cc=rmk@arm.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).