The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"OpenNews: Linux на iPAQ H5550."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Linux на iPAQ H5550." +/
Сообщение от Дмитрий Коровкин (?), 25-Сен-05, 22:44 
Народ, кто будет хотеть серьезно юзать subj, учтите несколько неприятностей.
1. Та кнопка, что в винде управляет громкостью (слева вверху) в Линухе не поддерживается.
2. Регулировать громкость из OPIE не получится.

Прилагаемый патч это лечит.
(Оставляю свои координаты, дабы было ясно, что я не хакер, который хочет всем нагадить).

Index: arch/arm/mach-pxa/h5400_asic_io.c
===================================================================
RCS file: /cvs/linux/kernel/arch/arm/mach-pxa/h5400_asic_io.c,v
retrieving revision 1.36
diff -u -r1.36 h5400_asic_io.c
--- arch/arm/mach-pxa/h5400_asic_io.c    8 Mar 2004 23:38:21 -0000    1.36
+++ arch/arm/mach-pxa/h5400_asic_io.c    25 Sep 2005 18:43:39 -0000
@@ -62,8 +62,8 @@
#define PERROR(format,arg...) printk(KERN_ERR __FILE__ ":%s - " format "\n", __FUNCTION__, ## arg)

#define ADC_DATA_MASK    0x3ff
+#define MAX_BITS_IN_BUTTONS 14

-
/***********************************************************************************
  *   ADC support (stolen from the H3900 code)
  ***********************************************************************************/
@@ -542,12 +542,12 @@
    static unsigned long oldkeys;

    bits = h5400_asic_read_register (H5400_ASIC_GPIO_GPA_DAT);
-
+    
    keys = gpio_to_keys (bits);

    d = keys ^ oldkeys;
-    
-    for (i = 0; i < 11; i++) {
+
+    for (i = 0; i < MAX_BITS_IN_BUTTONS; i++) {
        if (d & (1 << i)) {
            unsigned char down = (keys & (1 << i)) ? 1 : 0;
            h3600_hal_keypress (H3600_MAKEKEY (i, down));
Index: drivers/char/h3600_ts.c
===================================================================
RCS file: /cvs/linux/kernel/drivers/char/h3600_ts.c,v
retrieving revision 1.76
diff -u -r1.76 h3600_ts.c
--- drivers/char/h3600_ts.c    27 Nov 2003 02:21:29 -0000    1.76
+++ drivers/char/h3600_ts.c    25 Sep 2005 18:43:46 -0000
@@ -140,9 +140,11 @@
         H3600_SCANCODE_RIGHT,    /* 7 -> right */
         H3600_SCANCODE_LEFT,     /* 8 -> left */
         H3600_SCANCODE_DOWN,     /* 9 -> down */
-    H3600_SCANCODE_ACTION,   /* 10 -> action button (synthesized, not from Atmel) */
-    H3600_SCANCODE_SUSPEND,  /* 11 -> power button (synthesized, not from Atmel)  */
-    0, 0, 0, 0               /* pad out to 16 total bytes */
+        H3600_SCANCODE_ACTION,   /* 10 -> action button (synthesized, not from Atmel) */
+        H3600_SCANCODE_SUSPEND,  /* 11 -> power button (synthesized, not from Atmel)  */
+        H3600_SCANCODE_UP,       /* 12 -> up */
+        H3600_SCANCODE_DOWN,     /* 13 -> down */
+                0, 0               /* pad out to 16 total bytes */
};

enum {
Index: drivers/sound/ak4535.c
===================================================================
RCS file: /cvs/linux/kernel/drivers/sound/ak4535.c,v
retrieving revision 1.23
diff -u -r1.23 ak4535.c
--- drivers/sound/ak4535.c    29 Mar 2005 23:28:35 -0000    1.23
+++ drivers/sound/ak4535.c    25 Sep 2005 18:43:53 -0000
@@ -25,7 +25,7 @@
#include "ak4535.h"

#define REC_MASK    (SOUND_MASK_LINE | SOUND_MASK_MIC)
-#define DEV_MASK (REC_MASK | SOUND_MASK_PCM |SOUND_MASK_BASS)
+#define DEV_MASK (REC_MASK | SOUND_MASK_PCM | SOUND_MASK_BASS | SOUND_MASK_VOLUME)

#define REG_MAX 0x10

@@ -432,7 +432,6 @@

        switch (nr) {
        case SOUND_MIXER_PCM:
-            akm->volume = val;
            akm->pcm = val;
            akm->mod_cnt++;
            /* input value [0,100], ak4535 uses [0,7] */
@@ -453,12 +452,15 @@
        case SOUND_MIXER_TREBLE:
            return -EINVAL;

+        case SOUND_MIXER_VOLUME:
        case SOUND_MIXER_LINE:
+            akm->volume = val;
            akm->line = val;
            akm->mod_cnt++;
            /* input value [0,100], ak4535 uses [255,0] */
            val = gain.left;
-            val = 0xff & ~(255 * val / 100);
+////            val = 0xff & ~(255 * val / 100);
+            val = 156 - (val * 156) / 100;
            ak4535_update(clnt, I2C_SET_LINE_GAIN, &val);
            break;

Index: scripts/ipkg-make-kernel-packages
===================================================================
RCS file: /cvs/linux/kernel/scripts/ipkg-make-kernel-packages,v
retrieving revision 1.96
diff -u -r1.96 ipkg-make-kernel-packages
--- scripts/ipkg-make-kernel-packages    4 Jul 2004 22:37:09 -0000    1.96
+++ scripts/ipkg-make-kernel-packages    25 Sep 2005 18:44:05 -0000
@@ -762,11 +762,11 @@
############################################################
popd

-ipkg-build -o root -g root $kernel_ipkg_src
-ipkg-build -o root -g root $km_ipkg_src
+ipkg-build $kernel_ipkg_src
+ipkg-build $km_ipkg_src

for package_src in $package_srcs; do
-  ipkg-build -o root -g root $package_src
+  ipkg-build $package_src
done

rm -rf $tmpdir

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
OpenNews: Linux на iPAQ H5550., opennews, 25-Сен-05, 02:06  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру