yxj [Tue, 16 Jul 2013 09:37:35 +0000 (17:37 +0800)]
board rk3188m tb:set max cpu frequency to 1296 MHZ
邱建斌 [Tue, 16 Jul 2013 08:16:49 +0000 (16:16 +0800)]
spdif: spdif use dma static mode
kfx [Tue, 16 Jul 2013 02:29:49 +0000 (10:29 +0800)]
iomux: Uniform Naming: I2S0_MCLK && I2S0_LRCKRX
黄涛 [Mon, 15 Jul 2013 10:08:00 +0000 (18:08 +0800)]
ARM: RK: add initial support for RK3026
cym [Fri, 12 Jul 2013 07:57:55 +0000 (15:57 +0800)]
RK3188T:1)fix ddr change frequency bug for RK3188T
2)fix LPDDR2 burst length set bug
chenxing [Fri, 12 Jul 2013 07:47:26 +0000 (15:47 +0800)]
rk3188: fix ddr pll do not update status
chenxing [Fri, 12 Jul 2013 07:14:24 +0000 (15:14 +0800)]
rk: add function to get dvfs table range
xuhuicong [Fri, 12 Jul 2013 07:16:28 +0000 (15:16 +0800)]
rk616 hdmi: default vif 12M rebuild
xuhuicong [Fri, 12 Jul 2013 07:14:29 +0000 (15:14 +0800)]
rk616 hdmi: modify some time edid read err and delete some no necessary log
chenxing [Thu, 11 Jul 2013 01:20:16 +0000 (09:20 +0800)]
rk: support resume rate when disable limit after enable multiple
黄涛 [Fri, 12 Jul 2013 06:16:43 +0000 (14:16 +0800)]
rk: gpio.h: make gpio irq num same as gpio num
hjc [Fri, 12 Jul 2013 03:14:50 +0000 (11:14 +0800)]
rk3168m: modify defconfig for new ic
chenxing [Fri, 12 Jul 2013 03:04:36 +0000 (11:04 +0800)]
rk3066: fix compile warning
chenxing [Fri, 12 Jul 2013 02:56:53 +0000 (10:56 +0800)]
rk3066: fix i2s frac div do not effect
hwg [Fri, 12 Jul 2013 03:02:18 +0000 (11:02 +0800)]
mt5931: solve rk3188 and rk3168 compatible problem
xbw [Fri, 12 Jul 2013 01:30:32 +0000 (09:30 +0800)]
MT6620: eliminate the warning about mt6620-gps
yxj [Wed, 10 Jul 2013 12:40:45 +0000 (20:40 +0800)]
rk fb: add read/write support
张晴 [Thu, 11 Jul 2013 02:13:54 +0000 (10:13 +0800)]
rk31:ricoh619:modify fg and charger
xbw [Thu, 11 Jul 2013 01:29:03 +0000 (09:29 +0800)]
MT6620: set the sdio clk to 50Mhz
hhb [Wed, 10 Jul 2013 11:51:28 +0000 (19:51 +0800)]
mipi dsi: make sure that DCS sent in command mode HS is OK
chenxing [Wed, 10 Jul 2013 10:59:22 +0000 (18:59 +0800)]
rk3188: add setting rate in dump clocks
chenxing [Wed, 10 Jul 2013 10:58:30 +0000 (18:58 +0800)]
rk: pm_tests: do nothing after dvfs clk enable freq limit
chenxing [Wed, 10 Jul 2013 10:58:15 +0000 (18:58 +0800)]
rk: freq limit resume when disable_limit
黄涛 [Wed, 10 Jul 2013 08:10:53 +0000 (16:10 +0800)]
rk: split cpu_axi.h
chenxing [Wed, 10 Jul 2013 03:04:55 +0000 (11:04 +0800)]
rk3188: set new leakage level and delayline bounds to fit avdd_com shoted with vdd_arm
张晴 [Wed, 10 Jul 2013 02:20:50 +0000 (10:20 +0800)]
rk3028:support pmic tps65910 for rk3028
hjc [Wed, 10 Jul 2013 01:41:00 +0000 (09:41 +0800)]
add rk3028_86v rk3168_rk616 board and defconfig
yxj [Wed, 3 Jul 2013 02:46:56 +0000 (10:46 +0800)]
rk30 lcdc:delay 30ms before disable lcdc clk
Subhash Jadavani [Thu, 7 Jun 2012 10:16:58 +0000 (15:46 +0530)]
mmc: block: replace __blk_end_request() with blk_end_request()
[rk emmc: read rate up to 78MB/s, write rate up to 26MB/s]
For completing any block request, MMC block driver is calling:
spin_lock_irq(queue)
__blk_end_request()
spin_unlock_irq(queue)
But if we analyze the sources of latency in kernel using ftrace,
__blk_end_request() function at times may take up to 6.5ms with
spinlock held and irq disabled.
__blk_end_request() calls couple of functions and ftrace output
shows that blk_update_bidi_request() function is almost taking 6ms.
There are 2 function to end the current request: ___blk_end_request()
and blk_end_request(). Both these functions do same thing except
that blk_end_request() function doesn't take up the spinlock
while calling the blk_update_bidi_request().
This patch replaces all __blk_end_request() calls with
blk_end_request() and __blk_end_request_all() calls with
blk_end_request_all().
Testing done: 20 process concurrent read/write on sd card
and eMMC. Ran this test for almost a day on multicore system
and no errors observed.
This change is not meant for improving MMC throughput; it's basically
about becoming fair to other threads/interrupts in the system. By
holding spin lock and interrupts disabled for longer duration, we
won't allow other threads/interrupts to run at all. Actually slight
performance degradation at file system level can be expected as we
are not holding the spin lock during blk_update_bidi_request() which
means our mmcqd thread may get preempted for other high priority
thread or any interrupt in the system.
These are performance numbers (100MB file write) with eMMC running
in DDR mode:
Without this patch:
Name of the Test Value Unit
LMDD Read Test 53.79 MBPS
LMDD Write Test 18.86 MBPS
IOZONE Read Test 51.65 MBPS
IOZONE Write Test 24.36 MBPS
With this patch:
Name of the Test Value Unit
LMDD Read Test 52.94 MBPS
LMDD Write Test 16.70 MBPS
IOZONE Read Test 52.08 MBPS
IOZONE Write Test 23.29 MBPS
Read numbers are fine. Write numbers are bit down (especially LMDD
write), may be because write requests normally have large transfer
size and which means there are chances that while mmcq is executing
blk_update_bidi_request(), it may get interrupted by interrupts or
other high priority thread.
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/card/block.c
黄涛 [Tue, 9 Jul 2013 06:41:42 +0000 (14:41 +0800)]
rk2928: tb: fix defconfig for lvds rename
黄涛 [Tue, 9 Jul 2013 06:36:03 +0000 (14:36 +0800)]
rk2928: fix lvds support, rename from rk_lvds
ZHW [Tue, 9 Jul 2013 06:25:14 +0000 (14:25 +0800)]
rk_fb:fix CONFIG_DONE in rk_fb_disp_scaler
hhb [Tue, 9 Jul 2013 03:47:06 +0000 (11:47 +0800)]
mipi dsi: fix compile error of rk616_mipi_dsi.c
hhb [Tue, 9 Jul 2013 03:38:09 +0000 (11:38 +0800)]
mipi dsi: dcs commmand sent by command mode in HS mode
邱建斌 [Tue, 9 Jul 2013 03:38:02 +0000 (11:38 +0800)]
rt5631: support sample rate up to 192khz
RT5631_VERSION "0.01 alsa 1.0.25"
黄涛 [Tue, 9 Jul 2013 03:35:28 +0000 (11:35 +0800)]
rk30: replace RK30_GICD_BASE with GIC_DIST_BASE, RK30_GICC_BASE with GIC_CPU_BASE
hhb [Tue, 9 Jul 2013 03:26:21 +0000 (11:26 +0800)]
mipi:dsi: modify some registers configuration about electricity parameter and data phase
chenxing [Tue, 9 Jul 2013 03:08:40 +0000 (11:08 +0800)]
rk3188: Priority setting i2s under cpll to fix i2s frac div do not effect, let axi_cpu's pll different with i2s's
陈金泉 [Tue, 9 Jul 2013 03:06:36 +0000 (11:06 +0800)]
add new config(CONFIG_RK616_USE_MCLK_12M) for HDMI using 12M, use fromdos correct format of rk_rk616.c
kfx [Tue, 9 Jul 2013 02:55:43 +0000 (10:55 +0800)]
Revert "sdmmc: module_init->fs_initcall, emmc: fs_inicall-->fs_initcall_sync"
This reverts commit
aa4812bdf22211b0d9d2006cafad1ef40aa8aefe.
kfx [Tue, 9 Jul 2013 02:55:13 +0000 (10:55 +0800)]
fixed compile error: drivers/mmc/card/block.c:992:46: error: request for member 'stop' in something not a structure or union
chenxing [Tue, 9 Jul 2013 01:40:02 +0000 (09:40 +0800)]
rk3188: plus: add adjust dvfs table support
黄涛 [Mon, 8 Jul 2013 11:48:10 +0000 (19:48 +0800)]
rk_timer: version 1.3, make it consistent with arm twd
kfx [Mon, 8 Jul 2013 09:12:23 +0000 (17:12 +0800)]
mmc: emmc: revert thread name
kfx [Mon, 8 Jul 2013 08:54:05 +0000 (16:54 +0800)]
Per Forlin [Fri, 1 Jul 2011 16:55:33 +0000 (18:55 +0200)]
mmc: block: add handling for two parallel block requests in issue_rw_rq(emmc)
Change mmc_blk_issue_rw_rq() to become asynchronous.
The execution flow looks like this:
* The mmc-queue calls issue_rw_rq(), which sends the request
to the host and returns back to the mmc-queue.
* The mmc-queue calls issue_rw_rq() again with a new request.
* This new request is prepared in issue_rw_rq(), then it waits for
the active request to complete before pushing it to the host.
* When the mmc-queue is empty it will call issue_rw_rq() with a NULL
req to finish off the active request without starting a new request.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/card/block.c
kfx [Mon, 8 Jul 2013 07:37:17 +0000 (15:37 +0800)]
sdmmc: module_init->fs_initcall, emmc: fs_inicall-->fs_initcall_sync
邱建斌 [Mon, 8 Jul 2013 07:15:52 +0000 (15:15 +0800)]
rt5631 : add pcm playback volume config
Per Forlin [Fri, 1 Jul 2011 16:55:31 +0000 (18:55 +0200)]
mmc: queue: add a second mmc queue request member
Add an additional mmc queue request instance to make way for two active
block requests. One request may be active while the other request is
being prepared.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Per Forlin [Fri, 1 Jul 2011 16:55:30 +0000 (18:55 +0200)]
mmc: block: move error path in issue_rw_rq to a separate function(emmc).
Break out code without functional changes. This simplifies the code and
makes way for handling two parallel requests.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar<sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/card/block.c
Per Forlin [Fri, 1 Jul 2011 16:55:29 +0000 (18:55 +0200)]
mmc: block: add a block request prepare function(emmc)
Break out code from mmc_blk_issue_rw_rq to create a block request prepare
function. This doesn't change any functionallity. This helps when handling
more than one active block request.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Conflicts:
drivers/mmc/card/block.c
kfx [Mon, 8 Jul 2013 04:37:01 +0000 (12:37 +0800)]
sdmmc: fixed compile error
Per Forlin [Sat, 9 Jul 2011 21:12:36 +0000 (17:12 -0400)]
mmc: block: add member in mmc queue struct to hold request data
The way the request data is organized in the mmc queue struct, it only
allows processing of one request at a time. This patch adds a new struct
to hold mmc queue request data such as sg list, request, blk request and
bounce buffers, and updates any functions depending on the mmc queue
struct. This prepares for using multiple active requests in one mmc queue.
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Adrian Hunter [Tue, 28 Jun 2011 14:16:02 +0000 (17:16 +0300)]
mmc: queue: let host controllers specify maximum discard timeout
Some host controllers will not operate without a hardware
timeout that is limited in value. However large discards
require large timeouts, so there needs to be a way to
specify the maximum discard size.
A host controller driver may now specify the maximum discard
timeout possible so that max_discard_sectors can be calculated.
However, for eMMC when the High Capacity Erase Group Size
is not in use, the timeout calculation depends on clock
rate which may change. For that case Preferred Erase Size
is used instead.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
hjc [Mon, 8 Jul 2013 03:44:24 +0000 (11:44 +0800)]
rk3066b lcdc: add support lut function
kfx [Mon, 8 Jul 2013 02:11:39 +0000 (10:11 +0800)]
rk3188&rk3168: mmc: emmc support
ZHW [Fri, 5 Jul 2013 08:40:29 +0000 (16:40 +0800)]
add new config "CONFIG_RK616_USE_MCLK_12M"
ddl [Fri, 5 Jul 2013 03:44:41 +0000 (11:44 +0800)]
camera: rk2928 sync rk30
kfx [Fri, 5 Jul 2013 01:15:55 +0000 (09:15 +0800)]
memory reserved: size align: 1M
Simon Glass [Thu, 19 Jan 2012 19:28:56 +0000 (11:28 -0800)]
serial: Fix wakeup init logic to speed up startup
The synchronize_rcu() call resulting from making every serial driver
wake-up capable (commit
b3b708fa) slows boot down on my Tegra2x system
(with CONFIG_PREEMPT disabled).
But this is avoidable since it is the device_set_wakeup_enable() and then
subsequence disable which causes the delay. We might as well just make
the device wakeup capable but not actually enable it for wakeup until
needed.
Effectively the current code does this:
device_set_wakeup_capable(dev, 1);
device_set_wakeup_enable(dev, 1);
device_set_wakeup_enable(dev, 0);
We can just drop the last two lines.
Before this change my boot log says:
[ 0.227062] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 0.702928] serial8250.0: ttyS0 at MMIO 0x70006040 (irq = 69) is a Tegra
after:
[ 0.227264] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 0.227983] serial8250.0: ttyS0 at MMIO 0x70006040 (irq = 69) is a Tegra
for saving of 450ms.
Suggested-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
黄涛 [Thu, 4 Jul 2013 02:17:40 +0000 (10:17 +0800)]
serial: rk3188: Kconfig disable Serial port 2 CTS/RTS support
陈金泉 [Thu, 4 Jul 2013 07:32:12 +0000 (15:32 +0800)]
rk616 codec:set mclk to 12M when codec shutdown for HDMI
张晴 [Thu, 4 Jul 2013 07:09:13 +0000 (15:09 +0800)]
rk31xx:RT5025:support pmic rt5025
ddl [Thu, 4 Jul 2013 06:21:52 +0000 (14:21 +0800)]
camera: cif :v0.3.9
kfx [Thu, 4 Jul 2013 03:27:10 +0000 (11:27 +0800)]
Merge commit "
aa8b683a7d392271ed349c6ab9f36b8c313794b7" of git://git./linux/kernel/git/torvalds/linu
mmc: core: add non-blocking mmc request function
Previously there has only been one function mmc_wait_for_req()
to start and wait for a request. This patch adds:
* mmc_start_req() - starts a request wihtout waiting
If there is on ongoing request wait for completion
of that request and start the new one and return.
Does not wait for the new command to complete.
This patch also adds new function members in struct mmc_host_ops
only called from core.c:
* pre_req - asks the host driver to prepare for the next job
* post_req - asks the host driver to clean up after a completed job
The intention is to use pre_req() and post_req() to do cache maintenance
while a request is active. pre_req() can be called while a request is
active to minimize latency to start next job. post_req() can be used after
the next job is started to clean up the request. This will minimize the
host driver request end latency. post_req() is typically used before
ending the block request and handing over the buffer to the block layer.
Add a host-private member in mmc_data to be used by pre_req to mark the
data. The host driver will then check this mark to see if the data is
prepared or not.
xuhuicong [Wed, 3 Jul 2013 15:34:44 +0000 (23:34 +0800)]
rk616 hdmi: remove some hdmi global variable and change operate reg func name
xuhuicong [Wed, 3 Jul 2013 15:29:52 +0000 (23:29 +0800)]
rk616 hdmi: change irq flag as IRQF_TRIGGER_LOW to modify some time lost interrupt
hwg [Wed, 3 Jul 2013 09:08:35 +0000 (17:08 +0800)]
mt6622: support wake up host
ddl [Wed, 3 Jul 2013 07:04:01 +0000 (15:04 +0800)]
camera: cif v0.3.7:support rk3028 , read 3028 chip id by efuse for check cif controller is normal or not
xbw [Wed, 3 Jul 2013 05:15:33 +0000 (13:15 +0800)]
rk2928:
eliminate the build error using rk2928_tb_defconfig/rk2928_sdk_defconfig.
as the following:
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function rk29_sdmmc_gpio_open'
make: *** [.tmp_vmlinux1] Error 1
ddl [Wed, 3 Jul 2013 03:00:40 +0000 (11:00 +0800)]
camera: ov5640 v0.1.3, rk_cam_io:v0.1.1
黄涛 [Wed, 3 Jul 2013 02:11:09 +0000 (10:11 +0800)]
rk30: cpufreq: support sys_state
陈金泉 [Tue, 2 Jul 2013 08:47:48 +0000 (16:47 +0800)]
rk hdmi i2s: add I2S judgement
陈金泉 [Tue, 2 Jul 2013 03:47:07 +0000 (11:47 +0800)]
rk616 codec: delete proc, correct get parameter
陈金泉 [Mon, 1 Jul 2013 09:35:36 +0000 (17:35 +0800)]
rk616 codec:get parameter with new method
陈金泉 [Mon, 1 Jul 2013 09:31:52 +0000 (17:31 +0800)]
add es8323 codec for pcm modem
wdc [Mon, 1 Jul 2013 08:19:46 +0000 (16:19 +0800)]
reverts commit for error commit
Revert "ad"
This reverts commit
cfb56f5fce19d27cfbe7740880f4f98d8fe1c7d4.
wdc [Mon, 1 Jul 2013 08:03:39 +0000 (16:03 +0800)]
wifi: rtl8723as add sdio_reset
wdc [Mon, 1 Jul 2013 07:54:31 +0000 (15:54 +0800)]
Merge branch 'develop-3.0' of ssh://10.10.10.29/rk/kernel into develop-3.0
邱建斌 [Mon, 1 Jul 2013 06:15:05 +0000 (14:15 +0800)]
rt5616 codec : fix play tail problem solving
chenxing [Sat, 29 Jun 2013 09:07:08 +0000 (17:07 +0800)]
rk3188: do nothing with usb clks when system deep suspend
chenxing [Sat, 29 Jun 2013 09:01:28 +0000 (17:01 +0800)]
rk3188: uboot: open pd_lcdc0/1 for uboot display
yxj [Sat, 29 Jun 2013 06:11:49 +0000 (14:11 +0800)]
rk screen:fix Makefile,only update lcd.h when the source file is changed
yxj [Sat, 29 Jun 2013 03:57:07 +0000 (11:57 +0800)]
rk fb: set scaler after lcdc timing modification in one lcdc dual display mode
this is to mach jettb vif sync requirement
yxj [Sat, 29 Jun 2013 03:55:21 +0000 (11:55 +0800)]
rk hdmi:fix a macro err
chenxing [Sat, 29 Jun 2013 03:22:56 +0000 (11:22 +0800)]
rk3066B: rk3028: get version interface export
hjc [Sat, 29 Jun 2013 02:06:16 +0000 (10:06 +0800)]
rk3188 lcdc:support uboot display
xxh [Fri, 28 Jun 2013 08:59:52 +0000 (16:59 +0800)]
support Huawei HiLink dongle vid pid 0x12d1 0x1f01
chenxing [Fri, 28 Jun 2013 07:17:44 +0000 (15:17 +0800)]
rk3066B: suport hdmi 576p(dclk_lcdc freediv when need 27 MHz)
yxj [Fri, 28 Jun 2013 06:13:05 +0000 (14:13 +0800)]
mfd:rk616:core:fix rk616_i2c_write_bits
xuhuicong [Fri, 28 Jun 2013 06:54:55 +0000 (14:54 +0800)]
hdmi: rk616:
set hdmi polarity invent and time sequence when switch fb resolution
to modify display shake
yxj [Fri, 28 Jun 2013 04:19:01 +0000 (12:19 +0800)]
rk2928 lcdc:fix compile err
yxj [Fri, 28 Jun 2013 04:10:48 +0000 (12:10 +0800)]
mfd:rk616: vif:add sync mode
core:add write_dev_bits interface
yxj [Thu, 27 Jun 2013 06:15:01 +0000 (14:15 +0800)]
fix rk2928 dual display mode
ddl [Fri, 28 Jun 2013 03:16:15 +0000 (11:16 +0800)]
camera: generic_sensor v0.1.9
kfx [Fri, 28 Jun 2013 02:38:35 +0000 (10:38 +0800)]
i2c: 'fixed bug: set scl clk' and 'warning if scl is hold by slave'
hwg [Thu, 27 Jun 2013 11:16:19 +0000 (19:16 +0800)]
vmac: reset phy to solve sometimes phy do not work when boot
邱建斌 [Thu, 27 Jun 2013 08:34:36 +0000 (16:34 +0800)]
rk610 codec: add pa enable delay time config
Some amplifiers enable a longer time.
config after pa_enable_io delay pa_enable_time(ms)
default = 0,preferably not more than 1000ms
kfx [Wed, 26 Jun 2013 06:58:05 +0000 (14:58 +0800)]
rk3188m: update defconfig
yzq [Wed, 26 Jun 2013 05:21:54 +0000 (13:21 +0800)]
RK610: fix dual screen sleep resume err