From 553b165cc76b1eb462cea1c38de0f2a28094dcd2 Mon Sep 17 00:00:00 2001 From: Frederic Bompart Date: Fri, 2 Dec 2005 17:23:12 +0000 Subject: opensimpad: apmd signal handling bug finally fixed! Solution found in handhelds-sa-hh40: http://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel/arch/arm/mach-sa1100/apm.c --- packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff | 6 ++++-- packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch | 6 ++++-- packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb | 2 +- packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff b/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff index dfdbd99237..8b66c04276 100644 --- a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff +++ b/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff @@ -445,7 +445,7 @@ static struct file_operations apm_bios_fops = { owner: THIS_MODULE, read: do_read, -@@ -454,6 +484,48 @@ +@@ -454,6 +484,50 @@ #define APM_INIT_ERROR_RETURN return -1 @@ -478,8 +478,10 @@ + as->writer = 1; + as->reader = 0; + -+ while (!signal_pending (current)) { ++ for (;;) { + interruptible_sleep_on(&apm_suspend_waitqueue); ++ if (signal_pending (current)) ++ break; + + pm_suggest_suspend(); + diff --git a/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch b/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch index 900124e7d4..1446bc2eb7 100644 --- a/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch +++ b/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch @@ -450,7 +450,7 @@ static struct file_operations apm_bios_fops = { owner: THIS_MODULE, read: do_read, -@@ -454,6 +483,48 @@ +@@ -454,6 +483,50 @@ #define APM_INIT_ERROR_RETURN return -1 @@ -483,8 +483,10 @@ + as->writer = 1; + as->reader = 0; + -+ while (!signal_pending (current)) { ++ for (;;) { + interruptible_sleep_on(&apm_suspend_waitqueue); ++ if (signal_pending (current)) ++ break; + + pm_suggest_suspend(); + diff --git a/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb b/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb index 6970dd994b..3f750e1f41 100644 --- a/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb +++ b/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb @@ -6,7 +6,7 @@ KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}" VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}" PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}" JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}" -PR = "r20" +PR = "r21" FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}" diff --git a/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb b/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb index 95e483a5c8..df46fad53d 100644 --- a/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb +++ b/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb @@ -7,7 +7,7 @@ VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}" PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}" JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}" USBV= "usb20040610" -PR = "r2" +PR = "r3" FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}" -- cgit v1.2.3