yashsingh1/xdaforums huggingface dataset:
[XPERIA X1 Android Development] tosomax:
****** vuol dire "frocio"
[XPERIA X1 Android Development] ilgreco112:
ye but I meant I was a noob :o
[XPERIA X1 Android Development] Viper89:
I was wondering about your previous post, Does the live wallpapers use 3D hardware acceleration?
[XPERIA X1 Android Development] [ACL]:
no it can work with software rendering but its painfully slow. Other devices use hardware acceleration for it to work.
[XPERIA X1 Android Development] _Sensible:
Getting back to development...has anyone had a look at fixing the lcd panel init? So we can start booting from nand :D

Ive had a quick look and should have sometime to start playing with it next week...anyone else made a start? :)
[XPERIA X1 Android Development] Tremere:
Did any of you folks look over this commit in the main msm repo giving us an extra 15mb of RAM to play with?

http://gitorious.org/linux-on-qualc...mmit/c8191cfa036ce222c51884291e22cf0bb79d40df

Just applied it to the kovsky board file and got myself 200mb to play with now :)

http://pastebin.com/XAXgQeN3
[XPERIA X1 Android Development] Tremere:
hmm..

The power supply sysfs has flagged the battery as not there ("PRESENT=0") despite it getting the correct charge level. Would someone mind taking a look and fixing it.

The freedesktop HAL daemon won't report a charge level for the battery as long as its flagged not present.

I tried tracking it down myself but couldn't find the exact connection between board_htckovsky_battery + htc_battery_smem and drivers/power/power_supply_sysfs.c :(

Not a kernel dev. Don't shoot me!

edit: Hack to force battery present flag:

http://pastebin.com/Tfi34gYm
[XPERIA X1 Android Development] jerpelea:
patch posted on page 3-4 by me on this thread
[XPERIA X1 Android Development] Tremere:
I've got a patch for the microp-keypad driver. This exposes the slider status as a sysfs file and adds a corresponding uevent.

udev can then be used to detect this and rotate the screen with xrandr

Useful when you are running X.

diff --git a/drivers/input/keyboard/microp-keypad.c b/drivers/input/keyboard/microp-keypad.c
index 27a4280..a293eaa 100644
--- a/drivers/input/keyboard/microp-keypad.c
+++ b/drivers/input/keyboard/microp-keypad.c
@@ -39,6 +39,7 @@
#define DLOG(fmt, arg...) do {} while(0)
#endif

+static int keypad_out = 0;
static int microp_keypad_led_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
static void microp_backlight_timeout(struct work_struct *work);

@@ -396,6 +397,7 @@ static void microp_keypad_work(struct work_struct *work)

data = container_of(work, struct microp_keypad, keypad_work);
pdata = data->pdata;
+
key = 0;

mutex_lock(&data->lock);
@@ -432,7 +434,12 @@ static void microp_keypad_work(struct work_struct *work)
if (machine_is_htckovsky() || machine_is_htcrhodium()) {
DLOG(KERN_WARNING "%s: clamshell is %s\n", __func__,
!clamshell ? "closed" : "open");
-
+	if (clamshell) {
+	keypad_out = 1;
+	} else {
+	keypad_out = 0;
+	}
+	kobject_uevent(&data->pdev->dev.kobj, KOBJ_CHANGE);
micropklt_set_kbd_state(!clamshell);
input_report_switch(data->input, SW_LID, !clamshell);
}
@@ -540,6 +547,13 @@ static int microp_keypad_led_event(struct input_dev *dev, unsigned int type, uns
return -1;
}

+static ssize_t show_keypad_out(struct device *dev, struct device_attribute *attr, char *buf) {
+ return sprintf(buf,"%d\n",keypad_out);
+}
+
+static DEVICE_ATTR(open, S_IRUGO, show_keypad_out, NULL);
+
+
static void microp_backlight_timeout(struct work_struct *work)
{
struct microp_keypad *data;
@@ -689,6 +703,7 @@ static int microp_keypad_probe(struct platform_device *pdev)
if(machine_is_htcrhodium() || machine_is_htckovsky()) {
set_bit(EV_SW, input->evbit);
input_set_capability(input, EV_SW, SW_LID);
+	size_t res = device_create_file(&pdev->dev, &dev_attr_open);
}

if ( pdata->backlight_gpio > 0 )
[XPERIA X1 Android Development] _Sensible:
@Tremere,

Cool patches. Why not push your changes to the svn?
[XPERIA X1 Android Development] Tremere:
I don't have commit access to the git repo. Mind you, I've inadvertently become a kernel hacker in the course of my experimentation :cool:
[XPERIA X1 Android Development] nemasu:
Compiling problems

Hello,

I'm having problems getting my compiled kernel to run. Everything compiles fine, modules too, but when haret loads kernel into memory, the phone freezes right away, no kernel messages or anything....I used the htc android def config and applied the suggested tweaks. .config file attached. Any ideas?? Thanks.
[XPERIA X1 Android Development] _Sensible:
@nemasu;

This a kernel development thread only. However...have you tried a different SD Card / a pre-built kernel image?
[XPERIA X1 Android Development] nemasu:
It is for dev purposes.

Yeah, the pre-built kernels work fine....

I use

make zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

I tried the default htc android conf as well.

Maybe if someone could provide a working conf?

Then I can diff it or even just use it and see if that's the problem.

EDIT:

Wow, I should have stayed in bed this morning, the reason it wasnt working is because I was transferring zImage in ASCII mode across FTP....woooow.
[XPERIA X1 Android Development] nemasu:
Mach_htckovsky

If the move to the the main repo (linux-msm) is happening, the machine type MACH_TYPE_HTCKOVSKY and CONFIG_MACH_HTCKOVSKY should probably change to the mainline define, being MACH_TYPE_HTCVENUS. As of now the main repo doesnt compile because of it. Thoughts?

source (defined number 2006):

http://git.kernel.org/?p=linux/kern...lob_plain;f=arch/arm/tools/mach-types;hb=HEAD

&

http://www.arm.linux.org.uk/developer/machines/
[XPERIA X1 Android Development] nemasu:
Front panel button lights

Bit of a minor issue, but It caught my eye as I was looking through the source...

I've got a 99% working front buttons back light patch.

The only problem is that when you run haret, the button lights on the front have to be off, so wait a few seconds and use the touchscreen to run haret. (spent hours trying to fix that...no luck so far) Also, they're quite bright and the 4 side lights turn on as well. Improvements are encouraged. :)

diff --git a/drivers/i2c/chips/microp-klt.c b/drivers/i2c/chips/microp-klt.c
index 52b9de3..698ea44 100644
--- a/drivers/i2c/chips/microp-klt.c
+++ b/drivers/i2c/chips/microp-klt.c
@@ -95,6 +95,30 @@ static void micropklt_led_brightness_set(struct led_classdev *led_cdev,
else
state |= b;

+	if (idx == 6+8)//button-backlight
+	{
+	if(machine_is_htckovsky())
+	{
+	buffer[0]=MICROP_KLT_ID_LED_STATE_KOVS;
+	if (brightness == 0)
+	{
+	buffer[1]=0x00;
+	}
+	else
+	{
+	buffer[1]=0x01;
+	}
+
+	buffer[2] = brightness;
+
+	printk(KERN_INFO MODULE_NAME ": Setting %s brightness to: %d\n",
+ led_cdev->name, buffer[1]);
+
+	micropklt_write(client, buffer, 3);
+	}
+	}
+
+
// lcd-backlight lets us do varied brightness
if ( idx==5+8 /*&& brightness>0*/) {
//microp version ?
[XPERIA X1 Android Development] ultrashot:
nemasu, it is incorrect I think.

How it should be (according to n5ledmgr):

if (idx == 6+8)//button-backlight
{
if(machine_is_htckovsky())
{
buffer[0]=0x14;
if (brightness)
{
buffer[1]=0x94;
buffer[2]=0x28; //brightness. I set to 0x28 (default for WM value) as I don't know brightness interval.
}

printk(KERN_INFO MODULE_NAME ": Setting %s brightness to: %d\n",
led_cdev->name, buffer[2]);

micropklt_write(client, buffer, 3);
}
}

qwerty later.
[XPERIA X1 Android Development] nemasu:
Tested, works! Awesome! Weird though, cause I was fooling around with buffer[2] and found out that it was more of an LED selection thing then brightness...didnt get too far though, found out that 0001 was red for the 4 corner lights and 0010 was green....i noticed you were looking at the dll n5ledmgr? how? that would make things a bit easier haha
[XPERIA X1 Android Development] ultrashot:
nemasu, I've posted my code to control illumination patterns here:

http://xdaforums.com/showpost.php?p=5620879&postcount=130

with that info it isn't hard to look at iocontrol function in n5ledmgr.dll
[XPERIA X1 Android Development] ultrashot:
on WM setting qwerty brightness looks like this, sorry for bad coding (tired, almost sleeping):

void control(int type)
{
HANDLE device=CreateFileW(L"I2C1:",0xC0000000,0,0,3,0,0);
#pragma pack(1)
typedef struct
{
unsigned char code;
unsigned char smth1;
unsigned char smth2;
unsigned char dummy;
unsigned int length;
unsigned char *massive;
}I2C;
#pragma pack()

#pragma pack(1)
typedef struct
{
unsigned char code;
unsigned char smth1;
unsigned char smth2;
unsigned char dummy;
}I2C2;
#pragma pack()

//setting brightness
I2C *i2c=new I2C;
i2c->code=0xCE;
i2c->smth1=1;
i2c->smth2=0x32;
i2c->length=9;
unsigned char mass[9];
i2c->massive=mass;
memset(mass,0,9);
if (type)
{
mass[1]=0x40;
mass[2]=0x60; //brightness
}
else
{
mass[0]=0xFF; //brightness
mass[1]=0xFF;
}
for (int x=0;x<3;x++)
{
DeviceIoControl(device,0x80100024,i2c,0xC,NULL,NULL,NULL,NULL);
DeviceIoControl(device,0x80100014,i2c,0xC,NULL,NULL,NULL,NULL);
Sleep(0xA);
}
delete(i2c);

//updating led status
unsigned char i2c2[4];
i2c2[0]=0xCE;
i2c2[1]=0x30;
i2c2[2]=0x01;
i2c2[3]=0x00;
for (int x=0;x<3;x++)
{
DeviceIoControl(device,0x8010000C,i2c2,0x4,NULL,NULL,NULL,NULL);
DeviceIoControl(device,0x80100014,i2c2,0x4,NULL,NULL,NULL,NULL);
Sleep(0xA);
}

CloseHandle(device);
}

type=0 - disable leds, 1 - enable leds.

sometimes MSVS compiles it badly, so check your settings.

in drivers it will look like this:

turning on

//setting brightness:
char buffer_qwerty[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
buffer_qwerty[0]=0x32;

buffer_qwerty[1]=0x00;
buffer_qwerty[2]=0x40;
buffer_qwerty[3]=0xFF; //brightness

printk(KERN_INFO MODULE_NAME ": Setting qwerty led brightness to: %d\n", buffer[3]);

micropksc_write(client, buffer_qwerty, 10);

//updating led status
char buffer_qwerty2[2]={0x30, 0};

printk(KERN_INFO MODULE_NAME ": Updating qwerty led status\n");

micropksc_write(client, buffer_qwerty2, 2);

turning off

//setting brightness:
char buffer_qwerty[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
buffer_qwerty[0]=0x32;

buffer_qwerty[1]=0xFF; //It is also brightness. Possibly led will start to fade from this brightness.
buffer_qwerty[2]=0xFF;
buffer_qwerty[3]=0x00;

printk(KERN_INFO MODULE_NAME ": Setting qwerty led brightness to: 0\n");

micropksc_write(client, buffer_qwerty, 10);

//updating led status
char buffer_qwerty2[2]={0x30, 0};

printk(KERN_INFO MODULE_NAME ": Updating qwerty led status\n");

micropksc_write(client, buffer_qwerty2, 2);

Where should it be placed? (I know linux architecture very-very a little)
[XPERIA X1 Android Development] raheel78:
kernel patch for android OS - need to know the download link

Please pardon my stupid post here!!

But I am in search of a kernel patch here which I can download and place it in my X1's SD card to install android OS.

I was following this post (Android OS 2.0.1 for X1 [ Platinum Edition Update 21 February 2010) but I didn't find a working link from where I can download a compiled kernel.

Can someone please help me?

thanks.
[XPERIA X1 Android Development] ilgreco112:
go to the thread of android clean glossy
[XPERIA X1 Android Development] drlucky:
Git repository updated

Hi,

Sorry for being offline for so long :)

I just updated the git repository with the latest changes from the linux-msm repository. And I have contactes phhusson (owner of the linux-msm) on howto push our changes into his repository ... a prerequisite to join the xdandroid project.

I have compiled a new kernel based on the changes from linux-msm, and I was still able to boot my X1 into android. I haven't tested anything else, but I surely had speakers working (ringtone).

Seems that I haven't missed anything special?

@sp3dev - are you member of our xdadev clone? If not, just give me your gitorious account name and I will add you to the list (fro committing changes into our repository).
[XPERIA X1 Android Development] drlucky:
If you have an account on gitorios, send it ti me and I will add you to the list of developers with commit access. :)
[XPERIA X1 Android Development] drlucky:
I have committed the patches from the main repository, so KOVSKY is renamed to VENUS on some places ... kernel compiles fine on my local clone.
[XPERIA X1 Android Development] sp3dev:
@drlucky:

I am not the member of xdadev repository, but I ultimately want to push patches to the main branch (also for xdandroid) and implement all our stuff in the main tree
[XPERIA X1 Android Development] mudenza:
Impressive, 29 commits :)

What are the main fixes?
[XPERIA X1 Android Development] ultrashot:
of course.

Question #1. How can we see debuglog? I've seen file with log on storage card, but it was created so long ago, possibly by another android distr. How can I reactivate it again?
[XPERIA X1 Android Development] Tremere:
Which one do you need, Android log or kernel log?

logcat gives you a stream from the Android logger

dmesg gives all the kernel messages.
[XPERIA X1 Android Development] ultrashot:
Thanks, dmesg is definately what I need
[XPERIA X1 Android Development] jwte:
Is there any way to make a txt file automatic of dmesg or logcat every time I run android or any other linux OS for study after a run?
[XPERIA X1 Android Development] drlucky:
These were just commits from the linux-msm tree, the "parent" tree of our clone. Therefore some of the changes might have no influence on the kovsky, because they are for some other htc phones.

We just decided to keep our clone up-to-date to enable pushing our changes back to the original tree.

So no changes from me (apart from resolving the merge conflicts), instead give big hands to phhusson and friends on the linux-msm repository ...
[XPERIA X1 Android Development] ilgreco112:
when i see roms made on WM6.5 I t hink its possible to make an android ROM, I dont know how hard it is but I see that we are close to a good result!!! keep on trying !!!
[XPERIA X1 Android Development] hakkai999:
Is dev still alive? :( I wanna see some progress
[XPERIA X1 Android Development] DonDizzurp:
yea dont worry, there are people working on it.. soon well be able to test the roms and help devs with bugs and what not..

theyre just a bit busy..but they didnt leave us :D
[XPERIA X1 Android Development] ultrashot:
This code is only for Kovsky, don't use it on other devices

http://neosites.org/X1/ROM/ultrashot/Android/ledtest.rar

Full VS project with I2C led tests (with comments how to implement it in linux kernel)

What I've investigated:

-how to control qwerty (updated)

-how to control keypad (updated)

-how to control lcd (old info with some improvements)

-how to activate light sensor and get info from it

-how to set any color led patterns and activate/disactivate them.

I still haven't made a patch for kernel as my virtual machine with ubuntu was "successfully" destroyed, I am reinstalling it and redownloading repositories.
[XPERIA X1 Android Development] sp3dev:
Woot, thanks for that
[XPERIA X1 Android Development] vdelf:
Just a short status info:

Speaker, mic and headset are now working in main repos too, thanks to phhusson. So i send him another patch for fixing touchscreen and adding our battery driver. If this gets commited, then the main repos is at the same level as the x1-repos. :)
[XPERIA X1 Android Development] ertzig:
GREAT!

:D
[XPERIA X1 Android Development] raja'i:
Im really glad to hear that

the progress and all the work achieved in the past week is amazing

looking forward to c where this is going
[XPERIA X1 Android Development] bahkyp:
Isn't this fixed? I can get data (though not on android just debian). That points me to a android not a kernel issue.
[XPERIA X1 Android Development] Tremere:
uhh.. USB works for me. Both adb and usbnet, just make sure you mode set properly (msm_function_switch).
[XPERIA X1 Android Development] vdelf:
All essential changes are merged to main repos. Battery driver is still missing, but kernel runs without, too.

I tried my self-build kernel from main repos sources and it runs with fatsals android without any modification. Good!

Then i tried Xdandroid with latest kernel and rootfs and startup from fatsals release, but i got stuck on screen calibration. Touchscreen does not respond. Not so good.

Has anyone tried Xdandroid? How to get past the calibration step?
[XPERIA X1 Android Development] angusmcb:
xdandroid is broken for me with fatsal's kernel - no idea why

( I tried it while trying to figure out if the wifi was a userspace problem)

It's unlikely xdandroid will work at all with an eclair rootfs - it checks for eclair.build ( which is now froyo.build )
[XPERIA X1 Android Development] Tremere:
In my xdandroid package I simply used the msmts kernel command line.

You need my rootfs to activate the screen rotation, stinebd merged it with theirs earlier today but I have since modified it so it works without my machine name change.

http://gitorious.org/~mcbridematt/xdandroid-eclair/mcbridematts-eclair-rootfs-xperia
[XPERIA X1 Android Development] Matzemink:
It worked in earier kernel versions.

Phh made some changes on July 18. "Kovsky still uses old ts driver"

I guess he disabled the touchscreen..

I copied ts-calibration from tremere's build.

Then you will get stucked at the reboot problem ;)

Edit: I tested the newest roofts with tremere's changes including "Detect xperia and set screen rotation parameter".

But it's still upside down and reboot problem persists
[XPERIA X1 Android Development] Tremere:
Grab my rootfs from git again, previously I checked for "Venus" in the cpuinfo (I thought that change was going to stick). Now it checks for "Kovsky".
[XPERIA X1 Android Development] Tremere:
xdandroids rootfs is now in sync with my branch, you can download theirs at http://xdandroid.southcape.org/rootfs/. Userland is basically taken care of now

I've tried a kernel image from http://glemsom.users.anapnea.net/android2/htc-msm-linux/ .

Unfortunately the touchscreen driver doesn't seem to be active and there is a whole system crash somewhere. It may not be kernel related, I kept running dmesg until adb disconnected and I saw nothing out of the ordinary.
[XPERIA X1 Android Development] Matzemink:
Can you send your log to phh or stinebd.. They said to me to create one and send it to them but I had problems with logcat and xdandroid..

Maybe they know something..
[XPERIA X1 Android Development] Tremere:
I've copied the config from the xdandroid kernel to my xdadev tree.

Touchscreen works properly if CONFIG_TOUCHSCREEN_TSSC_MANAGER is turned off.

edit: but wifi doesn't connect anymore

edit again: yes it does, was missing encryption modules for wpa
[XPERIA X1 Android Development] Tremere:
Good news everyone :)

It turns out the mainline linux-msm kernel expects us to have a battery temperature reading but it doesn't exist for us using the ds2746 meter. Anyway, Android monitors the battery level and temp and will shut itself down if the level is too low or temperature too high. htc_battery_smem was returning a garbage temp reading so Android killed itself.

I've sent phhussion this: http://pastebin.com/gwxmdCwd .

We just need to get the battery driver in the main repos now.

thanks to stinebd for recognizing the issue from the logs..
[XPERIA X1 Android Development] vdelf:
Hmm, in windows mobile i had once an battery app that showed sensible temperatures. So X1 seems to have some kind of temperature measurement. The ds2746 has two auxilary inputs. Values of both inputs change slowly. Maybe that is a temperature readout?!?
[XPERIA X1 Android Development] vdelf:
To get the ds2746 code into main repos we have to create a proper driver for it. Phhusson knows about that, he rejected the current approach in x1-repos. Sadly i dont know enough about linux driver model to create one. :( So if anyone knows how to do it, now is the time! :D
[XPERIA X1 Android Development] Tremere:
I agree, having if(is_machine_kovsky()) around is an ugly solution! I'm not a kernel developer, but it still looks a little off..

I might waste some time retrofitting the structure from ds2760 (a mainline kernel module) into ds2746.
[XPERIA X1 Android Development] Matzemink:
Good luck :)

Maybe we should contact drlucky.. he already worked on the battery driver (see on pages 10 to 13). I hope he has some free time.
[XPERIA X1 Android Development] Tremere:
I've stubbed out a battery class driver which would need to do the reading from the ds2746

http://gitorious.org/~mcbridematt/linux-on-qualcomm-s-msm/kovsky-battery-driver

edit: we don't have to, seems ds2782 in later kernels is really similar to ds2746

http://android.git.kernel.org/?p=ke...lain;f=drivers/power/ds2782_battery.c;hb=HEAD
[XPERIA X1 Android Development] Tremere:
Possibly AUX1, from looking at the ds2746 sheet? It does specify AIN1/AUX1 being connected to a thermistor.

Well after going back to the drawing board and starting with our existing battery 'driver' I now have something resembling a half decent standalone driver.

There are a few problems that need to be addressed still:

Ironically, the new battery driver causes the kernel to burn more power (about 30mA), probably due to polling using the kernel queue mechanism :(

Despite being vanished from the kovsky board file, htc_battery_smem, if compiled in, causes a kernel panic on startup

Charging status is not updated, and (it seems) would be better served writing a separate driver to handle usb charging

I was reading off the Nexus One/Desire battery driver which seems to have solved problem 1 by using a neato alarm mechanism introduced in the Android fork of 2.6.29
[XPERIA X1 Android Development] ultrashot:
patch for qwerty led

Sorry that I haven't made true patch. If it is needed, I can provide TortoiseSVN's patch (I use local svn for kernel)

microp-ksc.h:

#define MICROP_KSC_ID_QWERTY_BRIGHTNESS_KOVS	0x32
#define MICROP_KSC_ID_QWERTY_ENABLE_KOVS	0x30
extern int micropksc_set_kbd_led_state(int on);

microp-ksc.c:

int micropksc_set_kbd_led_state(int on)
{
printk(KERN_INFO MODULE_NAME ": micropksc_set_kbd_led_state (%d)\n", on);
struct microp_ksc *data;
struct i2c_client *client;

data = micropksc_t;
client = data->client;

uint8_t buffer_qwerty[10]={MICROP_KSC_ID_QWERTY_BRIGHTNESS_KOVS, on ? 0x60 : 0, on ? 0x40 : 0xFF, on ? 0x60 : 0,0,0,0,0,0,0};
micropksc_write(client, buffer_qwerty, 10);

uint8_t buffer[3];
buffer[0]=MICROP_KSC_ID_QWERTY_ENABLE_KOVS;
buffer[1]=0;
buffer[2]=(uint8_t)on;
micropksc_write(client, buffer, 3);
return 0;
};
EXPORT_SYMBOL(micropksc_set_kbd_led_state);

microp-keypad.c:

// on key press enable backlight
if (pdata->backlight_gpio > 0)
gpio_set_value(pdata->backlight_gpio, 1);
if (machine_is_htckovsky())
{
micropksc_set_kbd_led_state(1);
}

or better to use it instead of previous code:

kobject_uevent(&data->pdev->dev.kobj, KOBJ_CHANGE);
micropklt_set_kbd_state(!clamshell);
//
if (machine_is_htckovsky())
{
micropksc_set_kbd_led_state(clamshell);
}
//
input_report_switch(data->input, SW_LID, !clamshell);

+

static int microp_keypad_remove(struct platform_device *pdev)
{
struct microp_keypad *data;
struct microp_keypad_platform_data *pdata;

pdata = pdev->dev.platform_data;
data = platform_get_drvdata(pdev);

if (pdata->backlight_gpio > 0)
gpio_set_value(pdata->backlight_gpio, 0);

if (machine_is_htckovsky())
{
micropksc_set_kbd_led_state(0);
}
if (data->keypress_irq > 0)
free_irq(data->keypress_irq, data);

if ( pdata->clamshell.irq > 0 )
free_irq(pdata->clamshell.irq, data);

flush_scheduled_work();
kfree(data);
printk("microp_keypad_remove\n");
return 0;
}

+

static void microp_backlight_timeout(struct work_struct *work)
{
struct microp_keypad *data;
struct microp_keypad_platform_data *pdata;
data = container_of(work, struct microp_keypad, backlight_work.work);

pdata = data->pdata;

if (pdata->backlight_gpio > 0)
gpio_set_value(pdata->backlight_gpio, 0);

if (machine_is_htckovsky())
{
micropksc_set_kbd_led_state(0);
}
}

+

static int microp_keypad_suspend(struct platform_device *pdev, pm_message_t mesg)
{
struct microp_keypad_platform_data *pdata = pdev->dev.platform_data;
if (pdata->backlight_gpio > 0)
gpio_set_value(pdata->backlight_gpio, 0);
if (machine_is_htckovsky())
{
micropksc_set_kbd_led_state(0);
}
flush_scheduled_work();
return 0;
}

so now we have front keypad leds & qwerty leds fully working