Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3232 - in
      trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2: .
      src ([EMAIL PROTECTED])
   2. r3233 - trunk/src/target/kernel/patches
      ([EMAIL PROTECTED])
   3. r3234 - trunk/src/target/kernel/patches
      ([EMAIL PROTECTED])
   4. r3235 -
      trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data
      ([EMAIL PROTECTED])
   5. r3236 - trunk/src/target/kernel/patches
      ([EMAIL PROTECTED])
   6. r3237 - trunk/src/target/kernel/patches
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: abraxa
Date: 2007-10-22 02:08:59 +0200 (Mon, 22 Oct 2007)
New Revision: 3232

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/configure.ac
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.h
   trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c
Log:
Remove some unneeded (commented out) debugging messages
Add basic video playback support (requires gstreamer video plugins to work)



Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/configure.ac  
2007-10-21 09:59:09 UTC (rev 3231)
+++ trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/configure.ac  
2007-10-22 00:08:59 UTC (rev 3232)
@@ -11,6 +11,7 @@
 AC_STDC_HEADERS
 AC_PROG_LIBTOOL
 AC_PROG_INTLTOOL([0.35.0])
+#AM_GCONF_SOURCE_2
 
 dnl i18n support
 GETTEXT_PACKAGE=AC_PACKAGE_NAME
@@ -34,6 +35,10 @@
 PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10 >= 0.10],,
        AC_MSG_ERROR([*** Cannot find gstreamer ***]))
 
+# gstinterfaces-0.10 is contained in libgstximagesink - which in turn is
+# contained in gst-plugins-base. So if we have gstreamer we also have 
gstinterfaces-0.10
+LIBS="$GTK_LIBS $OPENMOKO_LIBS $GSTREAMER_LIBS $LIBS -lgstinterfaces-0.10"
+
 LIBS="-lexpat $LIBS"
 AC_CHECK_LIB(expat, XML_Parse, , [echo "Error: libexpat not found"; exit -1])
 
@@ -47,7 +52,6 @@
 AC_CHECK_LIB(mokoui2, moko_stock_register, , [echo "Error: libmokoui2 not 
found"; exit -1])
 
 
-LIBS="$GTK_LIBS $OPENMOKO_LIBS $GSTREAMER_LIBS $LIBS"
 CFLAGS="$OPENMOKO_CFLAGS $GSTREAMER_CFLAGS $CFLAGS"
 
 localedir=$datadir/locale

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c   
    2007-10-21 09:59:09 UTC (rev 3231)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.c   
    2007-10-22 00:08:59 UTC (rev 3232)
@@ -31,7 +31,7 @@
 #include <glib.h>
 #include <glib/gprintf.h>
 #include <glib/gi18n.h>
-
+#include <gdk/gdkx.h>
 #include <gtk/gtk.h>
 
 #include "main_page.h"
@@ -49,6 +49,7 @@
 struct
 {
        GtkWidget *cover_image;
+       GtkWidget *cover_eventbox;
        GtkWidget *cover_frame;
        GtkWidget *label1;
        GtkWidget *label2;
@@ -339,9 +340,6 @@
        #define MAX_DELTA_LAST 3
        gint delta_last_x, delta_last_y;
 
-//     g_printf("Pointer: X=%d /\t Y=%d /\t state=%d /\t is_hint=%d\n",
-//             (gint)event->x, (gint)event->y, event->state, event->is_hint);
-
        if (main_gesture_data.pressed)
        {
                delta_last_x = abs((guint)event->x - main_gesture_data.last_x);
@@ -357,10 +355,8 @@
 
                        // Make sure we won't trigger anymore (if we were 
before, that is)
                        main_gesture_data.repeating = FALSE;
-//                     g_printf("-- movement\n");
 
                } else {
-//                     g_printf("-- NO movement\n");
 
                        // Cursor is idle, so lets update the gesture data if 
it wasn't idle before
                        if (!main_gesture_data.cursor_idle)
@@ -381,9 +377,6 @@
 gboolean
 omp_main_pointer_pressed(GtkWidget *widget, GdkEventButton *event, gpointer 
user_data)
 {
-//     g_printf("- Pressed: X=%d /\t Y=%d /\t state=%d /\t button=%d\n",
-//             (gint)event->x, (gint)event->y, event->state, event->button);
-
        main_gesture_data.pressed = TRUE;
        g_get_current_time(&main_gesture_data.start_time);
        main_gesture_data.x_origin = event->x;
@@ -403,9 +396,6 @@
 gboolean
 omp_main_pointer_released(GtkWidget *widget, GdkEventButton *event, gpointer 
user_data)
 {
-//     g_printf("- Released: X=%d /\t Y=%d /\t state=%d /\t button=%d\n",
-//             (gint)event->x, (gint)event->y, event->state, event->button);
-
        // Stop repeat trigger if necessary - or trigger action
        if (main_gesture_data.repeating)
        {
@@ -428,7 +418,10 @@
        gchar *caption;
 
        if (omp_config_get_main_ui_show_cover())
+       {
                gtk_image_set_from_stock(GTK_IMAGE(main_widgets.cover_image), 
"no_cover", -1);
+               gtk_widget_queue_draw(main_widgets.cover_image);        // 
Re-draw the default cover
+       }
 
        // Determine which label we can use for showing the "No track 
information" line
        // #2 is preferred, followed by #1 and #3
@@ -484,10 +477,14 @@
        hbox = gtk_hbox_new(FALSE, 0);
        gtk_container_add(GTK_CONTAINER(frame), hbox);
 
-       // Pack the image itself into another frame to give it a black border
+       // Pack the image into an eventbox (for video playback) and that into 
another frame to give it a black border
+       main_widgets.cover_eventbox = gtk_event_box_new();
+
        main_widgets.cover_image = gtk_image_new();
        gtk_widget_set_name(GTK_WIDGET(main_widgets.cover_image), 
"omp-main-top-cover");
-       main_widgets.cover_frame = widget_wrap(main_widgets.cover_image, NULL);
+       gtk_container_add(GTK_CONTAINER(main_widgets.cover_eventbox), 
main_widgets.cover_image);
+
+       main_widgets.cover_frame = widget_wrap(main_widgets.cover_eventbox, 
"omp-main-top-cover");
        gtk_frame_set_shadow_type(GTK_FRAME(main_widgets.cover_frame), 
GTK_SHADOW_IN);
        gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(main_widgets.cover_frame), 
FALSE, FALSE, 0);
 
@@ -776,6 +773,18 @@
 }
 
 /**
+ * Helper function that returns the X window handle to use for video playback 
and prepares the UI for video playback
+ */
+gulong
+omp_main_get_video_window()
+{
+       if (GTK_WIDGET_NO_WINDOW(main_widgets.cover_eventbox))
+               g_error(_("Video display widget has no window!\n"));
+
+       return GDK_WINDOW_XWINDOW(main_widgets.cover_eventbox->window);
+}
+
+/**
  * Callback for the "playlist loaded" event
  */
 void
@@ -803,6 +812,13 @@
        gchar *text;
        gint track_id;
 
+       // Restore and invalidate default cover
+       if (omp_config_get_main_ui_show_cover())
+       {
+               gtk_image_set_from_stock(GTK_IMAGE(main_widgets.cover_image), 
"no_cover", -1);
+               gtk_widget_queue_draw(main_widgets.cover_image);        // 
Re-draw the default cover
+       }
+
        // Set preliminary artist/title strings (updated on incoming metadata)
        omp_playlist_get_track_info(omp_playlist_current_track_id, &artist, 
&title, &track_length);
        omp_main_set_label(OMP_MAIN_LABEL_ARTIST, artist);

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.h
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.h   
    2007-10-21 09:59:09 UTC (rev 3231)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/main_page.h   
    2007-10-22 00:08:59 UTC (rev 3232)
@@ -50,4 +50,6 @@
 
 GtkWidget *omp_main_page_create();
 
+gulong omp_main_get_video_window();
+
 #endif

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c    
    2007-10-21 09:59:09 UTC (rev 3231)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-mediaplayer2/src/playback.c    
    2007-10-22 00:08:59 UTC (rev 3232)
@@ -26,11 +26,13 @@
 
 #include <glib/gi18n.h>
 #include <gst/gst.h>
+#include <gst/interfaces/xoverlay.h>
 #include <uriparser/Uri.h>
 
 #include "playback.h"
 #include "guitools.h"
 #include "main.h"
+#include "main_page.h"
 #include "persistent.h"
 
 /// Our ticket to the gstreamer world
@@ -61,6 +63,7 @@
 static gboolean omp_gst_message_error(GstBus *bus, GstMessage *message, 
gpointer data);
 static gboolean omp_gst_message_warning(GstBus *bus, GstMessage *message, 
gpointer data);
 static gboolean omp_gst_message_tag(GstBus *bus, GstMessage *message, gpointer 
data);
+static gboolean omp_gst_message_element(GstBus *bus, GstMessage *message, 
gpointer data);
 
 
 
@@ -141,6 +144,7 @@
        g_signal_connect(bus, "message::warning",                       
G_CALLBACK(omp_gst_message_warning), NULL);
        g_signal_connect(bus, "message::state-changed", 
G_CALLBACK(omp_gst_message_state_changed), NULL);
        g_signal_connect(bus, "message::tag",                                   
        G_CALLBACK(omp_gst_message_tag), NULL);
+       g_signal_connect(bus, "message::element",                               
G_CALLBACK(omp_gst_message_element), NULL);
 
        gst_object_unref(bus);
 
@@ -574,3 +578,18 @@
 
        return TRUE;
 }
+
+/**
+ * Handles gstreamer's "we need a window for video playback" notification
+ */
+static gboolean
+omp_gst_message_element(GstBus *bus, GstMessage *message, gpointer data)
+{
+       if (gst_structure_has_name(message->structure, "prepare-xwindow-id"))
+       {
+               
gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(GST_MESSAGE_SRC(message)), 
omp_main_get_video_window());
+       }
+
+       return TRUE;
+}
+




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-10-22 10:46:40 +0200 (Mon, 22 Oct 2007)
New Revision: 3233

Modified:
   trunk/src/target/kernel/patches/gta01-jbt6k74.patch
Log:
Make sure the display gets enabled again after coming out of the deep-standby
state (Stefan Schmidt)


Modified: trunk/src/target/kernel/patches/gta01-jbt6k74.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 00:08:59 UTC 
(rev 3232)
+++ trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 08:46:40 UTC 
(rev 3233)
@@ -1,11 +1,11 @@
 This driver adds support for LCM initialization of the JBT6K74 LCM
 as found on the FIC GTA01 hardware
 
-Index: linux-2.6.21.3-moko/drivers/spi/Kconfig
+Index: linux-2.6.22.5-moko/drivers/spi/Kconfig
 ===================================================================
---- linux-2.6.21.3-moko.orig/drivers/spi/Kconfig
-+++ linux-2.6.21.3-moko/drivers/spi/Kconfig
-@@ -160,5 +160,9 @@
+--- linux-2.6.22.5-moko.orig/drivers/spi/Kconfig
++++ linux-2.6.22.5-moko/drivers/spi/Kconfig
+@@ -193,5 +193,9 @@
  
  # (slave support would go here)
  
@@ -15,21 +15,21 @@
 +
  endmenu # "SPI support"
  
-Index: linux-2.6.21.3-moko/drivers/spi/Makefile
+Index: linux-2.6.22.5-moko/drivers/spi/Makefile
 ===================================================================
---- linux-2.6.21.3-moko.orig/drivers/spi/Makefile
-+++ linux-2.6.21.3-moko/drivers/spi/Makefile
-@@ -30,4 +30,5 @@
+--- linux-2.6.22.5-moko.orig/drivers/spi/Makefile
++++ linux-2.6.22.5-moko/drivers/spi/Makefile
+@@ -34,4 +34,5 @@
  #     ... add above this line ...
  
  # SPI slave drivers (protocol for that link)
 +obj-$(CONFIG_SPI_SLAVE_JBT6K74)               += jbt6k74.o
  #     ... add above this line ...
-Index: linux-2.6.21.3-moko/drivers/spi/jbt6k74.c
+Index: linux-2.6.22.5-moko/drivers/spi/jbt6k74.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6.21.3-moko/drivers/spi/jbt6k74.c
-@@ -0,0 +1,544 @@
++++ linux-2.6.22.5-moko/drivers/spi/jbt6k74.c
+@@ -0,0 +1,548 @@
 +/* Linux kernel driver for the tpo JBT6K74-AS LCM ASIC
 + *
 + * Copyright (C) 2006-2007 by OpenMoko, Inc.
@@ -397,7 +397,11 @@
 +      for (i = 0; i < ARRAY_SIZE(jbt_state_names); i++) {
 +              if (!strncmp(buf, jbt_state_names[i],
 +                           strlen(jbt_state_names[i]))) {
++                      DEBUGP("Switch to state: %i\n", i);
 +                      jbt6k74_enter_state(jbt, i);
++                      if (i == JBT_STATE_NORMAL)
++                              /* Enable display again after deep-standby */
++                              jbt6k74_display_onoff(jbt, 1);
 +                      return count;
 +              }
 +      }
@@ -574,11 +578,11 @@
 +
 +module_init(jbt_init);
 +module_exit(jbt_exit);
-Index: linux-2.6.21.3-moko/arch/arm/mach-s3c2410/Kconfig
+Index: linux-2.6.22.5-moko/arch/arm/mach-s3c2410/Kconfig
 ===================================================================
---- linux-2.6.21.3-moko.orig/arch/arm/mach-s3c2410/Kconfig
-+++ linux-2.6.21.3-moko/arch/arm/mach-s3c2410/Kconfig
-@@ -106,6 +106,7 @@
+--- linux-2.6.22.5-moko.orig/arch/arm/mach-s3c2410/Kconfig
++++ linux-2.6.22.5-moko/arch/arm/mach-s3c2410/Kconfig
+@@ -112,6 +112,7 @@
  config MACH_QT2410
        bool "QT2410"
        select CPU_S3C2410




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-10-22 10:51:36 +0200 (Mon, 22 Oct 2007)
New Revision: 3234

Added:
   trunk/src/target/kernel/patches/s3c2410_fb-line_length.patch
Modified:
   trunk/src/target/kernel/patches/series
Log:
fix dynamic mode/resolution switching with s3c2410_fb (line_length calculation) 
(Stefan Schmidt)


Added: trunk/src/target/kernel/patches/s3c2410_fb-line_length.patch
===================================================================
--- trunk/src/target/kernel/patches/s3c2410_fb-line_length.patch        
2007-10-22 08:46:40 UTC (rev 3233)
+++ trunk/src/target/kernel/patches/s3c2410_fb-line_length.patch        
2007-10-22 08:51:36 UTC (rev 3234)
@@ -0,0 +1,23 @@
+Fix line length calculation. var->width is the size of the display in mm. We
+like to use the pixel size.
+
+Without this fix, dynamic (fbset) based resolution changes with s3c2410_fb
+don't work at all.
+
+Spotted by john cass <[EMAIL PROTECTED]>
+
+Signed-off-by: Stefan Schmidt <[EMAIL PROTECTED]>
+Signed-off-by: Harald Welte <[EMAIL PROTECTED]>
+Index: linux-2.6.22.5-moko/drivers/video/s3c2410fb.c
+===================================================================
+--- linux-2.6.22.5-moko.orig/drivers/video/s3c2410fb.c
++++ linux-2.6.22.5-moko/drivers/video/s3c2410fb.c
+@@ -470,7 +470,7 @@
+                        break;
+       }
+ 
+-      fbi->fb->fix.line_length     = (var->width*var->bits_per_pixel)/8;
++      fbi->fb->fix.line_length     = 
(var->xres_virtual*var->bits_per_pixel)/8;
+ 
+       /* activate this new configuration */
+ 

Modified: trunk/src/target/kernel/patches/series
===================================================================
--- trunk/src/target/kernel/patches/series      2007-10-22 08:46:40 UTC (rev 
3233)
+++ trunk/src/target/kernel/patches/series      2007-10-22 08:51:36 UTC (rev 
3234)
@@ -40,6 +40,7 @@
 config-nr-tty-devices.patch
 hxd8-core.patch
 s3c2410_fb-truecolor.patch
+s3c2410_fb-line_length.patch
 s3c2440-nand-disable-hwecc.patch
 hxd8-tsl256x.patch
 pcf50633.patch




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-10-22 10:54:23 +0200 (Mon, 22 Oct 2007)
New Revision: 3235

Removed:
   
trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/openmoko-calculator.png
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/Makefile.am
Log:
* Remove redundant icon


Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/Makefile.am
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/Makefile.am   
    2007-10-22 08:51:36 UTC (rev 3234)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/Makefile.am   
    2007-10-22 08:54:23 UTC (rev 3235)
@@ -10,8 +10,3 @@
 desktopdir = $(datadir)/applications
 dist_desktop_DATA = openmoko-calculator.desktop
 
-#
-# desktop integration: application icon
-#
-appicondir = $(datadir)/pixmaps
-dist_appicon_DATA = openmoko-calculator.png

Deleted: 
trunk/src/target/OM-2007.2/applications/openmoko-calculator2/data/openmoko-calculator.png
===================================================================
(Binary files differ)




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-10-22 10:55:35 +0200 (Mon, 22 Oct 2007)
New Revision: 3236

Modified:
   trunk/src/target/kernel/patches/gta01-jbt6k74.patch
Log:
Add register init and extend state machine to support QVGA on the LCM. (Stefan 
Schmidt)


Modified: trunk/src/target/kernel/patches/gta01-jbt6k74.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 08:54:23 UTC 
(rev 3235)
+++ trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 08:55:35 UTC 
(rev 3236)
@@ -29,11 +29,12 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22.5-moko/drivers/spi/jbt6k74.c
-@@ -0,0 +1,548 @@
+@@ -0,0 +1,653 @@
 +/* Linux kernel driver for the tpo JBT6K74-AS LCM ASIC
 + *
 + * Copyright (C) 2006-2007 by OpenMoko, Inc.
-+ * Author: Harald Welte <[EMAIL PROTECTED]>
++ * Author: Harald Welte <[EMAIL PROTECTED]>,
++ *       Stefan Schmidt <[EMAIL PROTECTED]>
 + * All rights reserved.
 + *
 + * This program is free software; you can redistribute it and/or
@@ -101,6 +102,7 @@
 +      JBT_REG_GAMMA1_INCLINATION      = 0xc9,
 +      JBT_REG_GAMMA1_BLUE_OFFSET      = 0xca,
 +
++      /* VGA */
 +      JBT_REG_BLANK_CONTROL           = 0xcf,
 +      JBT_REG_BLANK_TH_TV             = 0xd0,
 +      JBT_REG_CKV_ON_OFF              = 0xd1,
@@ -109,6 +111,15 @@
 +      JBT_REG_ASW_TIMING_1            = 0xd4,
 +      JBT_REG_ASW_TIMING_2            = 0xd5,
 +
++      /* QVGA */
++      JBT_REG_BLANK_CONTROL_QVGA      = 0xd6,
++      JBT_REG_BLANK_TH_TV_QVGA        = 0xd7,
++      JBT_REG_CKV_ON_OFF_QVGA         = 0xd8,
++      JBT_REG_CKV_1_2_QVGA            = 0xd9,
++      JBT_REG_OEV_TIMING_QVGA         = 0xde,
++      JBT_REG_ASW_TIMING_1_QVGA       = 0xdf,
++      JBT_REG_ASW_TIMING_2_QVGA       = 0xe0,
++
 +      JBT_REG_HCLOCK_VGA              = 0xec,
 +      JBT_REG_HCLOCK_QVGA             = 0xed,
 +
@@ -118,12 +129,14 @@
 +      JBT_STATE_DEEP_STANDBY,
 +      JBT_STATE_SLEEP,
 +      JBT_STATE_NORMAL,
++      JBT_STATE_QVGA_NORMAL,
 +};
 +
 +static const char *jbt_state_names[] = {
 +      [JBT_STATE_DEEP_STANDBY]        = "deep-standby",
 +      [JBT_STATE_SLEEP]               = "sleep",
 +      [JBT_STATE_NORMAL]              = "normal",
++      [JBT_STATE_QVGA_NORMAL]         = "qvga-normal",
 +};
 +
 +#if 1
@@ -187,7 +200,7 @@
 +      return rc;
 +}
 +
-+static int jbt_init_regs(struct jbt_info *jbt)
++static int jbt_init_regs(struct jbt_info *jbt, int qvga)
 +{
 +      int rc;
 +
@@ -223,18 +236,34 @@
 +      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_BLUE_OFFSET, 0x00);
 +      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_BLUE_OFFSET, 0x00);
 +
-+      rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_VGA, 0x1f0);
-+      rc |= jbt_reg_write(jbt, JBT_REG_BLANK_CONTROL, 0x02);
-+      rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
-+      rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
++      if (!qvga) {
++              DEBUGP("entering VGA mode\n");
++              rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_VGA, 0x1f0);
++              rc |= jbt_reg_write(jbt, JBT_REG_BLANK_CONTROL, 0x02);
++              rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
++              rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
 +
-+      rc |= jbt_reg_write(jbt, JBT_REG_CKV_ON_OFF, 0x01);
-+      rc |= jbt_reg_write16(jbt, JBT_REG_CKV_1_2, 0x0000);
++              rc |= jbt_reg_write(jbt, JBT_REG_CKV_ON_OFF, 0x01);
++              rc |= jbt_reg_write16(jbt, JBT_REG_CKV_1_2, 0x0000);
 +
-+      rc |= jbt_reg_write16(jbt, JBT_REG_OEV_TIMING, 0x0d0e);
-+      rc |= jbt_reg_write16(jbt, JBT_REG_ASW_TIMING_1, 0x11a4);
-+      rc |= jbt_reg_write(jbt, JBT_REG_ASW_TIMING_2, 0x0e);
++              rc |= jbt_reg_write16(jbt, JBT_REG_OEV_TIMING, 0x0d0e);
++              rc |= jbt_reg_write16(jbt, JBT_REG_ASW_TIMING_1, 0x11a4);
++              rc |= jbt_reg_write(jbt, JBT_REG_ASW_TIMING_2, 0x0e);
++      }
++      else {
++              DEBUGP("entering QVGA mode\n");
++              rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_QVGA, 0x00ff);
++              rc |= jbt_reg_write(jbt, JBT_REG_BLANK_CONTROL_QVGA, 0x02);
++              rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV_QVGA, 0x0804);
 +
++              rc |= jbt_reg_write(jbt, JBT_REG_CKV_ON_OFF_QVGA, 0x01);
++              rc |= jbt_reg_write16(jbt, JBT_REG_CKV_1_2_QVGA, 0x0008);
++
++              rc |= jbt_reg_write16(jbt, JBT_REG_OEV_TIMING_QVGA, 0x050a);
++              rc |= jbt_reg_write16(jbt, JBT_REG_ASW_TIMING_1_QVGA, 0x0a19);
++              rc |= jbt_reg_write(jbt, JBT_REG_ASW_TIMING_2_QVGA, 0x0a);
++      }
++
 +#if 0
 +      rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_QVGA, 0x00ff);
 +      rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_QVGA, 0x00ff);
@@ -284,10 +313,35 @@
 +      rc |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_OUT);
 +
 +      /* initialize register set */
-+      rc |= jbt_init_regs(jbt);
++      rc |= jbt_init_regs(jbt, 0);
 +      return rc;
 +}
 +
++static int sleep_to_qvga_normal(struct jbt_info *jbt)
++{
++      int rc;
++      DEBUGP("entering\n");
++
++      /* RGB I/F on, RAM wirte off, QVGA through, SIGCON enable */
++      rc = jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x81);
++
++      /* Quad mode on */
++      rc |= jbt_reg_write(jbt, JBT_REG_QUAD_RATE, 0x22);
++
++      /* AVDD on, XVDD on */
++      rc |= jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x16);
++
++      /* Output control */
++      rc |= jbt_reg_write16(jbt, JBT_REG_OUTPUT_CONTROL, 0xfff9);
++
++      /* Sleep mode off */
++      rc |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_OUT);
++
++      /* initialize register set for qvga*/
++      rc |= jbt_init_regs(jbt, 1);
++      return rc;
++}
++
 +static int normal_to_sleep(struct jbt_info *jbt)
 +{
 +      int rc;
@@ -328,6 +382,12 @@
 +                      /* then transition into normal */
 +                      rc |= sleep_to_normal(jbt);
 +                      break;
++              case JBT_STATE_QVGA_NORMAL:
++                      /* first transition into sleep */
++                      rc = standby_to_sleep(jbt);
++                      /* then transition into normal */
++                      rc |= sleep_to_qvga_normal(jbt);
++                      break;
 +              }
 +              break;
 +      case JBT_STATE_SLEEP:
@@ -341,6 +401,9 @@
 +              case JBT_STATE_NORMAL:
 +                      rc = sleep_to_normal(jbt);
 +                      break;
++              case JBT_STATE_QVGA_NORMAL:
++                      rc = sleep_to_qvga_normal(jbt);
++                      break;
 +              }
 +              break;
 +      case JBT_STATE_NORMAL:
@@ -357,8 +420,44 @@
 +              case JBT_STATE_SLEEP:
 +                      rc = normal_to_sleep(jbt);
 +                      break;
++              case JBT_STATE_QVGA_NORMAL:
++                      /* first transition into sleep */
++                      rc = normal_to_sleep(jbt);
++                      /* second transition into deep standby */
++                      rc |= sleep_to_standby(jbt);
++                      /* third transition into sleep */
++                      rc |= standby_to_sleep(jbt);
++                      /* fourth transition into normal */
++                      rc |= sleep_to_qvga_normal(jbt);
++                      break;
 +              }
 +              break;
++      case JBT_STATE_QVGA_NORMAL:
++              switch (new_state) {
++              case JBT_STATE_QVGA_NORMAL:
++                      rc = 0;
++                      break;
++              case JBT_STATE_DEEP_STANDBY:
++                      /* first transition into sleep */
++                      rc = normal_to_sleep(jbt);
++                      /* then transition into deep standby */
++                      rc |= sleep_to_standby(jbt);
++                      break;
++              case JBT_STATE_SLEEP:
++                      rc = normal_to_sleep(jbt);
++                      break;
++              case JBT_STATE_NORMAL:
++                      /* first transition into sleep */
++                      rc = normal_to_sleep(jbt);
++                      /* second transition into deep standby */
++                      rc |= sleep_to_standby(jbt);
++                      /* third transition into sleep */
++                      rc |= standby_to_sleep(jbt);
++                      /* fourth transition into normal */
++                      rc |= sleep_to_normal(jbt);
++                      break;
++              }
++              break;
 +      }
 +      if (rc == 0)
 +              jbt->state = new_state;
@@ -399,9 +498,15 @@
 +                           strlen(jbt_state_names[i]))) {
 +                      DEBUGP("Switch to state: %i\n", i);
 +                      jbt6k74_enter_state(jbt, i);
-+                      if (i == JBT_STATE_NORMAL)
++                      switch (i) {
++                      case JBT_STATE_NORMAL:
++                      case JBT_STATE_QVGA_NORMAL:
 +                              /* Enable display again after deep-standby */
 +                              jbt6k74_display_onoff(jbt, 1);
++                              break;
++                      default:
++                              break;
++                      }
 +                      return count;
 +              }
 +      }




--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-10-22 10:56:29 +0200 (Mon, 22 Oct 2007)
New Revision: 3237

Modified:
   trunk/src/target/kernel/patches/gta01-jbt6k74.patch
Log:
emove double register settings. Not listed in the data-sheet and it works fine
without them. Looks like a copy-and-paste error. (Stefan Schmidt)


Modified: trunk/src/target/kernel/patches/gta01-jbt6k74.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 08:55:35 UTC 
(rev 3236)
+++ trunk/src/target/kernel/patches/gta01-jbt6k74.patch 2007-10-22 08:56:29 UTC 
(rev 3237)
@@ -29,7 +29,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.22.5-moko/drivers/spi/jbt6k74.c
-@@ -0,0 +1,653 @@
+@@ -0,0 +1,645 @@
 +/* Linux kernel driver for the tpo JBT6K74-AS LCM ASIC
 + *
 + * Copyright (C) 2006-2007 by OpenMoko, Inc.
@@ -213,7 +213,6 @@
 +      rc |= jbt_reg_write(jbt, JBT_REG_BOOSTER_OP, 0x56);
 +      rc |= jbt_reg_write(jbt, JBT_REG_BOOSTER_MODE, 0x33);
 +      rc |= jbt_reg_write(jbt, JBT_REG_BOOSTER_FREQ, 0x11);
-+      rc |= jbt_reg_write(jbt, JBT_REG_BOOSTER_FREQ, 0x11);
 +      rc |= jbt_reg_write(jbt, JBT_REG_OPAMP_SYSCLK, 0x02);
 +      rc |= jbt_reg_write(jbt, JBT_REG_VSC_VOLTAGE, 0x2b);
 +      rc |= jbt_reg_write(jbt, JBT_REG_VCOM_VOLTAGE, 0x40);
@@ -234,14 +233,12 @@
 +      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_FINE_2, 0x00);
 +      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_INCLINATION, 0x00);
 +      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_BLUE_OFFSET, 0x00);
-+      rc |= jbt_reg_write(jbt, JBT_REG_GAMMA1_BLUE_OFFSET, 0x00);
 +
 +      if (!qvga) {
 +              DEBUGP("entering VGA mode\n");
 +              rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_VGA, 0x1f0);
 +              rc |= jbt_reg_write(jbt, JBT_REG_BLANK_CONTROL, 0x02);
 +              rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
-+              rc |= jbt_reg_write16(jbt, JBT_REG_BLANK_TH_TV, 0x0804);
 +
 +              rc |= jbt_reg_write(jbt, JBT_REG_CKV_ON_OFF, 0x01);
 +              rc |= jbt_reg_write16(jbt, JBT_REG_CKV_1_2, 0x0000);
@@ -264,11 +261,6 @@
 +              rc |= jbt_reg_write(jbt, JBT_REG_ASW_TIMING_2_QVGA, 0x0a);
 +      }
 +
-+#if 0
-+      rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_QVGA, 0x00ff);
-+      rc |= jbt_reg_write16(jbt, JBT_REG_HCLOCK_QVGA, 0x00ff);
-+#endif
-+
 +      return rc;
 +}
 +




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to