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