armadeus-commitlog Mailing List for armadeus (Page 65)
Brought to you by:
sszy
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(43) |
Feb
(8) |
Mar
(7) |
Apr
(8) |
May
(14) |
Jun
(6) |
Jul
(4) |
Aug
(17) |
Sep
(18) |
Oct
(19) |
Nov
(52) |
Dec
(30) |
| 2008 |
Jan
(6) |
Feb
(6) |
Mar
(15) |
Apr
(22) |
May
(13) |
Jun
(11) |
Jul
(41) |
Aug
(10) |
Sep
(14) |
Oct
(21) |
Nov
(4) |
Dec
(66) |
| 2009 |
Jan
(67) |
Feb
(57) |
Mar
(90) |
Apr
(54) |
May
(64) |
Jun
(76) |
Jul
(14) |
Aug
(18) |
Sep
(18) |
Oct
(20) |
Nov
(15) |
Dec
(36) |
| 2010 |
Jan
(28) |
Feb
(25) |
Mar
(32) |
Apr
(23) |
May
(22) |
Jun
(62) |
Jul
(36) |
Aug
(16) |
Sep
(12) |
Oct
(20) |
Nov
(44) |
Dec
(25) |
| 2011 |
Jan
(36) |
Feb
(49) |
Mar
(28) |
Apr
(38) |
May
(26) |
Jun
(52) |
Jul
(33) |
Aug
(32) |
Sep
(19) |
Oct
(26) |
Nov
(13) |
Dec
(32) |
| 2012 |
Jan
(38) |
Feb
(34) |
Mar
(91) |
Apr
(35) |
May
(31) |
Jun
(72) |
Jul
(23) |
Aug
(13) |
Sep
(33) |
Oct
(47) |
Nov
(18) |
Dec
(22) |
| 2013 |
Jan
(31) |
Feb
(22) |
Mar
(26) |
Apr
(11) |
May
(38) |
Jun
(15) |
Jul
(37) |
Aug
(68) |
Sep
(34) |
Oct
(11) |
Nov
(26) |
Dec
(31) |
| 2014 |
Jan
(60) |
Feb
(55) |
Mar
(21) |
Apr
(31) |
May
(17) |
Jun
(35) |
Jul
(24) |
Aug
(17) |
Sep
(11) |
Oct
(23) |
Nov
(10) |
Dec
(23) |
| 2015 |
Jan
(15) |
Feb
(34) |
Mar
(46) |
Apr
(23) |
May
(12) |
Jun
(14) |
Jul
(18) |
Aug
(22) |
Sep
(6) |
Oct
(2) |
Nov
(1) |
Dec
(6) |
| 2016 |
Jan
(5) |
Feb
(7) |
Mar
(10) |
Apr
(10) |
May
(17) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
(22) |
Oct
(8) |
Nov
(9) |
Dec
(5) |
| 2017 |
Jan
(11) |
Feb
(12) |
Mar
(27) |
Apr
(9) |
May
(1) |
Jun
(5) |
Jul
(11) |
Aug
(10) |
Sep
(6) |
Oct
(10) |
Nov
(4) |
Dec
(6) |
| 2018 |
Jan
(6) |
Feb
(13) |
Mar
(9) |
Apr
(7) |
May
(10) |
Jun
(9) |
Jul
(21) |
Aug
(13) |
Sep
(10) |
Oct
(4) |
Nov
(6) |
Dec
(1) |
| 2019 |
Jan
(6) |
Feb
(2) |
Mar
(5) |
Apr
(6) |
May
(19) |
Jun
(14) |
Jul
(18) |
Aug
(3) |
Sep
(5) |
Oct
(7) |
Nov
(8) |
Dec
(4) |
| 2020 |
Jan
(10) |
Feb
(3) |
Mar
(9) |
Apr
(7) |
May
(2) |
Jun
(18) |
Jul
(3) |
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
(1) |
| 2021 |
Jan
(9) |
Feb
(6) |
Mar
(4) |
Apr
(11) |
May
(7) |
Jun
(5) |
Jul
(2) |
Aug
(4) |
Sep
(10) |
Oct
(9) |
Nov
(5) |
Dec
|
| 2022 |
Jan
(2) |
Feb
(12) |
Mar
(3) |
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(4) |
Oct
(4) |
Nov
(1) |
Dec
(3) |
| 2023 |
Jan
(5) |
Feb
(3) |
Mar
(3) |
Apr
(2) |
May
(1) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(4) |
| 2024 |
Jan
(2) |
Feb
(3) |
Mar
(8) |
Apr
(4) |
May
(1) |
Jun
(13) |
Jul
(7) |
Aug
(1) |
Sep
(6) |
Oct
(5) |
Nov
(11) |
Dec
(7) |
| 2025 |
Jan
(3) |
Feb
(1) |
Mar
(6) |
Apr
(4) |
May
(4) |
Jun
(1) |
Jul
(1) |
Aug
(7) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
(1) |
| 2026 |
Jan
(3) |
Feb
(7) |
Mar
(3) |
Apr
(1) |
May
(6) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Julien B a. A. <ar...@us...> - 2013-02-08 14:29:52
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 5007f0f4f5f5763a46e851b85cc6c9873c8e661b (commit)
from 9948cb451a6678b55d996dde216ab73f7cc26750 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5007f0f4f5f5763a46e851b85cc6c9873c8e661b
Author: Julien Boibessot <jul...@ar...>
Date: Fri Feb 8 15:29:02 2013 +0100
[LINUX] 3.7.6 is out
-----------------------------------------------------------------------
Summary of changes:
...linux-3.7.5.config => apf27-linux-3.7.6.config} | 0
...linux-3.7.5.config => apf28-linux-3.7.6.config} | 0
...nux-3.7.5.config => apf9328-linux-3.7.6.config} | 0
patches/linux/{3.7.5 => 3.7.6} | 0
4 files changed, 0 insertions(+), 0 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.7.5.config => apf27-linux-3.7.6.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.7.5.config => apf28-linux-3.7.6.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.7.5.config => apf9328-linux-3.7.6.config} (100%)
rename patches/linux/{3.7.5 => 3.7.6} (100%)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.5.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.7.5.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.7.6.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.5.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.7.5.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.7.6.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.5.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.5.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.6.config
diff --git a/patches/linux/3.7.5 b/patches/linux/3.7.6
similarity index 100%
rename from patches/linux/3.7.5
rename to patches/linux/3.7.6
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-02-08 11:10:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 9948cb451a6678b55d996dde216ab73f7cc26750 (commit)
from 70bf7884a4fdeed08185f13dbeb556bf5a19b59c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9948cb451a6678b55d996dde216ab73f7cc26750
Author: Julien Boibessot <jul...@ar...>
Date: Fri Feb 8 12:10:06 2013 +0100
[BUILD] Fixes quiltify for U-Boot
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 ++
Makefile.in | 2 ++
buildroot/target/device/armadeus/Makefile.in | 1 +
scripts/quiltify.sh | 7 +++++++
4 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 75d5200..a8973f3 100644
--- a/Makefile
+++ b/Makefile
@@ -200,6 +200,7 @@ shell_env:
@echo ARMADEUS_U_BOOT_DIR=$(ARMADEUS_U_BOOT_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_U_BOOT_VERSION=$(ARMADEUS_U_BOOT_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_U_BOOT_CUSTOM_VERSION=$(ARMADEUS_U_BOOT_CUSTOM_VERSION) >> $(ARMADEUS_ENV_FILE)
+ @echo ARMADEUS_U_BOOT_CONFIG=$(ARMADEUS_U_BOOT_CONFIG) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_ROOTFS_DIR=$(ARMADEUS_ROOTFS_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_BINARIES=$(ARMADEUS_BINARIES) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_ROOTFS_TAR=$(ARMADEUS_ROOTFS_TAR) >> $(ARMADEUS_ENV_FILE)
@@ -214,6 +215,7 @@ shell_env:
@echo ARMADEUS_BUSYBOX_VERSION=$(ARMADEUS_BUSYBOX_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_BSP_VERSION=$(ARMADEUS_BSP_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_BOARD_NAME=$(ARMADEUS_BOARD_NAME) >> $(ARMADEUS_ENV_FILE)
+ @echo ARMADEUS_U_BOOT_BOARD_NAME=$(ARMADEUS_U_BOOT_BOARD_NAME) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_DL_DIR=$(BR2_DL_DIR) >> $(ARMADEUS_ENV_FILE)
diff --git a/Makefile.in b/Makefile.in
index a93db1e..ae0c830 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -30,6 +30,7 @@ ARMADEUS_LIBC_NAME=glibc
endif
ARMADEUS_BUSYBOX_VERSION:=$(shell echo $(BR2_BUSYBOX_VERSION))
ARMADEUS_BOARD_NAME:=$(shell echo $(BR2_BOARD_NAME))
+ARMADEUS_U_BOOT_BOARD_NAME:=$(shell echo $(BR2_TARGET_UBOOT_BOARDNAME))
ARMADEUS_TARGET_ARCH:=$(shell echo $(BR2_GCC_TARGET_ARCH))
ifeq ($(BR2_PACKAGE_SDL),y)
@@ -67,6 +68,7 @@ ARMADEUS_U_BOOT_DIR:=$(BUILDROOT_PROJECT_BUILD_DIR)/uboot-$(ARMADEUS_U_BOOT_VERS
ARMADEUS_UCLIBC_DIR:=$(BUILDROOT_TOOLCHAIN_BUILD_DIR)/uClibc-$(ARMADEUS_UCLIBC_VERSION)
ARMADEUS_BOARD_DIR:=$(BUILDROOT_DIR)/target/device/armadeus/$(ARMADEUS_BOARD_NAME)
ARMADEUS_LINUX_CONFIG:=$(ARMADEUS_BOARD_DIR)/$(ARMADEUS_BOARD_NAME)-linux-$(ARMADEUS_LINUX_MAIN_VERSION).config
+ARMADEUS_U_BOOT_CONFIG:=$(BUILDROOT_DIR)/$(shell echo $(BR2_TARGET_UBOOT_CONFIG_HEADER_FILE))
ARMADEUS_STAGING_DIR:=$(BUILDROOT_OUTPUT_DIR)/staging
ARMADEUS_TOOLCHAIN_PATH:=$(BUILDROOT_OUTPUT_DIR)/host/usr/bin
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
diff --git a/buildroot/target/device/armadeus/Makefile.in b/buildroot/target/device/armadeus/Makefile.in
index 0232231..79803ca 100644
--- a/buildroot/target/device/armadeus/Makefile.in
+++ b/buildroot/target/device/armadeus/Makefile.in
@@ -9,6 +9,7 @@ ARMADEUS_LINUX_IMAGE_NAME:=$(BOARD_NAME)-linux.bin
# for old BR:
LINUX26_KERNEL_NAME:=$(BOARD_NAME)-linux.bin
+# !! if you modify the following, please also update scripts/quiltify.sh !!
define UBOOT_ARMADEUS_SPECIFIC_PATCH_HOOK
support/scripts/apply-patches.sh $(@D) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) \*.patch
$(ifneq ($(strip $(BR2_TARGET_UBOOT_CONFIG_HEADER_FILE)),))
diff --git a/scripts/quiltify.sh b/scripts/quiltify.sh
index 8f7da8e..77e2e6b 100755
--- a/scripts/quiltify.sh
+++ b/scripts/quiltify.sh
@@ -71,6 +71,7 @@ elif [ "$answer" == "U-Boot" ]; then
else
QUILT_MAKEFILE_TARGET="uboot-extract"
QUILT_MAKEFILE_TARGET_TOUCH=".stamp_patched"
+ QUILT_POST_PATCH_HOOK="cp -pf $ARMADEUS_U_BOOT_CONFIG $ARMADEUS_U_BOOT_DIR/include/configs/"$ARMADEUS_U_BOOT_BOARD_NAME".h"
fi
QUILT_TARGET_DIR=$ARMADEUS_U_BOOT_DIR
if [ "$ARMADEUS_U_BOOT_VERSION" == "custom" ]; then
@@ -192,6 +193,12 @@ else
fi
popd
+# Hooks
+if [ "$QUILT_POST_PATCH_HOOK" != "" ]; then
+ echo "Applying hook: $QUILT_POST_PATCH_HOOK"
+ $QUILT_POST_PATCH_HOOK
+fi
+
# Build it
echo -e "\n--- Your "$QUILT_TARGET_NAME" is \"quiltified\" ! I will now compile it...\n"
sleep 2
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-02-04 15:25:39
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 70bf7884a4fdeed08185f13dbeb556bf5a19b59c (commit)
via b44ae4db894c6f5a9927ea0a72b35d72d3a0e651 (commit)
from 405d4b77be48d55bd340eb50a0fd609f4ce8d532 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 70bf7884a4fdeed08185f13dbeb556bf5a19b59c
Author: Julien Boibessot <jul...@ar...>
Date: Mon Feb 4 16:24:20 2013 +0100
[AS_DEVICES] Fixes C++ wrapper installation (to have .hpp in staging/ under Buildroot)
commit b44ae4db894c6f5a9927ea0a72b35d72d3a0e651
Author: Julien Boibessot <jul...@ar...>
Date: Mon Feb 4 16:21:54 2013 +0100
[AS_DEVICES] Fixes some build warnings (and indentation while we are at it)
-----------------------------------------------------------------------
Summary of changes:
.../package/armadeus/as_devices/as_devices.mk | 15 +++++-
target/packages/as_devices/Makefile | 1 -
target/packages/as_devices/cpp/Makefile | 32 ++++++++----
target/packages/as_devices/test_c.h | 52 +++++++++-----------
target/packages/as_devices/test_cpp.h | 53 ++++++++------------
5 files changed, 79 insertions(+), 74 deletions(-)
diff --git a/buildroot/package/armadeus/as_devices/as_devices.mk b/buildroot/package/armadeus/as_devices/as_devices.mk
index e619955..845d4ea 100644
--- a/buildroot/package/armadeus/as_devices/as_devices.mk
+++ b/buildroot/package/armadeus/as_devices/as_devices.mk
@@ -29,17 +29,27 @@ ifeq ($(strip $(BR2_PACKAGE_AS_DEVICES_PYTHON)),y)
AS_DEVICES_MAKE_ENV += PYINC="$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)"
AS_DEVICES_MAKE_ENV += PYLIB="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)"
endif
-#XXX: BR2_TARGET_UBOOT_BOARDNAME is wrong, to be fixed
+#XXX: BR2_TARGET_UBOOT_BOARDNAME is wrong, to be fixed
AS_DEVICES_MAKE_ENV += ARMADEUS_BOARD_NAME=$(BR2_TARGET_UBOOT_BOARDNAME)
+# Build
define AS_DEVICES_BUILD_CMDS
$(MAKE) $(AS_DEVICES_MAKE_ENV) -C $(@D) $(AS_DEVICES_BUILD_TARGET)
endef
+# Install staging/
+ifeq ($(strip $(BR2_PACKAGE_AS_DEVICES_CPP)),y)
+define AS_DEVICES_INSTALL_STAGING_CPP_LIB
+ $(MAKE) INSTALL_DIR=$(STAGING_DIR) -C $(@D)/cpp install
+endef
+endif
+
define AS_DEVICES_INSTALL_STAGING_CMDS
$(MAKE) INSTALL_DIR=$(STAGING_DIR) -C $(@D) install
+ $(AS_DEVICES_INSTALL_STAGING_CPP_LIB)
endef
+# Install target/
ifeq ($(strip $(BR2_PACKAGE_AS_DEVICES_TESTS)),y)
define AS_DEVICES_INSTALL_TEST
cp -rf $(@D)/test_cdevices $(TARGET_DIR)/usr/bin/
@@ -48,7 +58,7 @@ endif
ifeq ($(strip $(BR2_PACKAGE_AS_DEVICES_CPP)),y)
define AS_DEVICES_INSTALL_CPP_LIB
- install -D $(@D)/cpp/libas_devices_cpp.so $(TARGET_DIR)/usr/lib/
+ $(MAKE) INSTALL_DIR=$(TARGET_DIR) -C $(@D)/cpp install-exe
endef
endif
@@ -74,6 +84,7 @@ define AS_DEVICES_INSTALL_TARGET_CMDS
$(AS_DEVICES_INSTALL_PYTHON)
endef
+# Clean
define AS_DEVICES_CLEAN_CMDS
$(MAKE) -C $(@D) clean
endef
diff --git a/target/packages/as_devices/Makefile b/target/packages/as_devices/Makefile
index f59943a..5137497 100644
--- a/target/packages/as_devices/Makefile
+++ b/target/packages/as_devices/Makefile
@@ -63,4 +63,3 @@ clean:
rm -f $(P_WRAPPER)
make -C python/ clean
rm -f $(C_BINARY) $(CPP_BINARY)
-
diff --git a/target/packages/as_devices/cpp/Makefile b/target/packages/as_devices/cpp/Makefile
index c1344fc..9b034f5 100644
--- a/target/packages/as_devices/cpp/Makefile
+++ b/target/packages/as_devices/cpp/Makefile
@@ -18,20 +18,21 @@ OBJS += as_i2c_eeprom.o
OBJS += as_spi.o
-LIBRARY=as_devices_cpp
-LIB_VERS=1
-STAT_LIB=${LIBRARY}.a
-SONAME=lib${LIBRARY}.so
-LIBNAME=${SONAME}.${LIB_VERS}
-ARCHIVE_CMD=ar
-ARCHIVE_OPTS=-cvq
+LIBRARY = as_devices_cpp
+LIB_VERS = 1
+STAT_LIB = ${LIBRARY}.a
+SO_NAME = lib${LIBRARY}.so
+LIBNAME = ${SO_NAME}.${LIB_VERS}
+ARCHIVE_CMD = ar
+ARCHIVE_OPTS = -cvq
C_INCLUDE=../c/
C_LIB=../c/libas_devices.so.1
-${LIBNAME}: ${OBJS}
- ${CXX} -shared -Wl,-soname,${SONAME} -o ${SONAME} ${OBJS} ${C_LIB} -lc
- ln -s ${SONAME} ${LIBNAME}
+.PHONY: install install-exe clean
+
+$(SO_NAME): ${OBJS}
+ ${CXX} -shared -Wl,-soname,${SO_NAME} -o ${SO_NAME} ${OBJS} ${C_LIB} -lc
${STAT_LIB}: ${OBJS}
${ARCHIVE_CMD} ${ARCHIVE_OPTS} ${STAT_LIB} ${OBJS}
@@ -39,6 +40,17 @@ ${STAT_LIB}: ${OBJS}
%.o: %.cpp
$(CXX) -fPIC -o $@ -c $< ${CXXFLAGS} -I${C_INCLUDE} -D__cplusplus
+install: $(SO_NAME)
+ mkdir -p $(INSTALL_DIR)/usr/lib
+ install -D $(SO_NAME) $(INSTALL_DIR)/usr/lib
+ cd $(INSTALL_DIR)/usr/lib/; ln -sf $(SO_NAME) $(LIBNAME)
+ mkdir -p $(INSTALL_DIR)/usr/include/as_devices/cpp
+ cp *.hpp $(INSTALL_DIR)/usr/include/as_devices/cpp
+
+install-exe: $(SO_NAME)
+ install -D $(SO_NAME) $(INSTALL_DIR)/usr/lib
+ cd $(INSTALL_DIR)/usr/lib; ln -sf $(SO_NAME) $(LIBNAME)
+
clean:
rm -f *.o *.so
rm -f ${BINARY} ${STAT_LIB} ${LIBNAME}
diff --git a/target/packages/as_devices/test_c.h b/target/packages/as_devices/test_c.h
index 859118c..fb41a04 100644
--- a/target/packages/as_devices/test_c.h
+++ b/target/packages/as_devices/test_c.h
@@ -76,9 +76,9 @@ void test_pwm(void)
printf(" 7) activate/desactivate\n");
printf(" 8) get state\n");
printf("> ");
- scanf("%s",buffer);
+ scanf("%s", buffer);
- switch(buffer[0])
+ switch (buffer[0])
{
case '1' : printf("Give frequency :");
scanf("%d",&value);
@@ -90,8 +90,8 @@ void test_pwm(void)
pressEnterToContinue();
break;
case '3' : printf("Give period :");
- scanf("%d",&value);
- as_pwm_set_period(pwm_dev,value);
+ scanf("%d", &value);
+ as_pwm_set_period(pwm_dev, value);
pressEnterToContinue();
break;
case '4' : printf("Current period is %d\n",
@@ -99,8 +99,8 @@ void test_pwm(void)
pressEnterToContinue();
break;
case '5' : printf("Give Duty :");
- scanf("%d",&value);
- as_pwm_set_duty(pwm_dev,value);
+ scanf("%d", &value);
+ as_pwm_set_duty(pwm_dev, value);
pressEnterToContinue();
break;
case '6' : printf("Current Duty is %d\n",
@@ -108,24 +108,21 @@ void test_pwm(void)
pressEnterToContinue();
break;
case '7' : printf("Activate 'a' or Desactivate 'd' ?");
- scanf("%s",buffer2);
- if(buffer2[0] == 'a')
- {
- as_pwm_set_state(pwm_dev,1);
+ scanf("%s", buffer2);
+ if (buffer2[0] == 'a') {
+ as_pwm_set_state(pwm_dev, 1);
printf("Pwm activated\n");
pressEnterToContinue();
- }else if(buffer2[0] == 'd')
- {
- as_pwm_set_state(pwm_dev,0);
+ } else if (buffer2[0] == 'd') {
+ as_pwm_set_state(pwm_dev, 0);
printf("Pwm desactivated\n");
pressEnterToContinue();
- }else{
+ } else {
printf("Option %c unknown\n",buffer[0]);
pressEnterToContinue();
}
break;
- case '8' : if(as_pwm_get_state(pwm_dev))
- {
+ case '8' : if (as_pwm_get_state(pwm_dev)) {
printf("pwm is active\n");
pressEnterToContinue();
} else {
@@ -137,7 +134,7 @@ void test_pwm(void)
}
}
ret = as_pwm_close(pwm_dev);
- if(ret < 0){
+ if (ret < 0) {
printf("can't close pwm0\n");
return;
}
@@ -823,18 +820,16 @@ void test_backlight(void)
{
int ret;
char buffer[20];
- char buffer2[20];
int value;
struct as_backlight_device *backlight_dev;
backlight_dev = as_backlight_open();
- if(backlight_dev == NULL){
+ if (backlight_dev == NULL) {
printf("can't init backlight\n");
pressEnterToContinue();
return;
}
- while(buffer[0] != 'q')
- {
+ while (buffer[0] != 'q') {
system("clear");
printf("*********************************\n");
printf("* Testing backlight menu *\n");
@@ -844,7 +839,7 @@ void test_backlight(void)
printf(" 2) get maximum brightness\n");
printf(" 3) set brightness\n");
printf("> ");
- scanf("%s",buffer);
+ scanf("%s", buffer);
switch(buffer[0])
{
@@ -875,7 +870,6 @@ void test_i2c_eeprom()
{
unsigned char page_buffer[500];
char buffer[50];
- int i;
/* defaults values */
int bus_number = 0;
@@ -900,9 +894,9 @@ void test_i2c_eeprom()
if (initialized == 0)
{
printf(" 1) Change I2C bus number (%d)\n", bus_number);
- printf(" 2) Change eeprom address (%d)\n", eeprom_addr);
- printf(" 3) Change eeprom address width (%d)\n", addr_width);
- printf(" 4) Change page write buffer size (%d)\n", page_buffer_size);
+ printf(" 2) Change eeprom address (%lu)\n", eeprom_addr);
+ printf(" 3) Change eeprom address width (%lu)\n", addr_width);
+ printf(" 4) Change page write buffer size (%lu)\n", page_buffer_size);
printf(" 5) Change number of pages (%d)\n", number_pages);
printf(" 6) Change page size (%d)\n", page_size);
printf(" 7) Initialize eeprom\n");
@@ -933,7 +927,7 @@ void test_i2c_eeprom()
case '2' : printf("Give eeprom address: ");
scanf("%d", &value);
eeprom_addr = value;
- printf("Eeprom address changed to %d\n", eeprom_addr);
+ printf("Eeprom address changed to %lu\n", eeprom_addr);
break;
case '3' : printf("Give eeprom address width: ");
scanf("%d", &value);
@@ -943,7 +937,7 @@ void test_i2c_eeprom()
pressEnterToContinue();
} else {
addr_width = value;
- printf("Eeprom address width changed to %d\n", addr_width);
+ printf("Eeprom address width changed to %lu\n", addr_width);
}
break;
case '4' : printf("Give new page write buffer size (16 or 32): ");
@@ -954,7 +948,7 @@ void test_i2c_eeprom()
pressEnterToContinue();
} else {
page_buffer_size = value;
- printf("Page write buffer size changed to %d\n", page_buffer_size);
+ printf("Page write buffer size changed to %lu\n", page_buffer_size);
}
break;
case '5' : printf("Give number of pages: \n");
diff --git a/target/packages/as_devices/test_cpp.h b/target/packages/as_devices/test_cpp.h
index 934b325..b12f406 100644
--- a/target/packages/as_devices/test_cpp.h
+++ b/target/packages/as_devices/test_cpp.h
@@ -780,22 +780,19 @@ void test_93LC(void)
printf("Give value in hexadecimal:");
scanf("%x",&value);
value2 = eeprom_dev->writeAll(value);
- if (value2 < 0)
- {
+ if (value2 < 0) {
printf("Error, can't write value\n");
}
pressEnterToContinue();
break;
case '6' : printf(" Read all\n");
- for(i = 0; i <= max_address(type, word_size); i++)
- {
- if (word_size == 8)
- {
+ for (i = 0; i <= max_address(type, word_size); i++) {
+ if (word_size == 8) {
printf("%03X -> %02X\n",
- i,eeprom_dev->read(i));
- } else{
+ i, (unsigned int)eeprom_dev->read(i));
+ } else {
printf("%03X -> %04X\n",
- i,eeprom_dev->read(i));
+ i, (unsigned int)eeprom_dev->read(i));
}
}
pressEnterToContinue();
@@ -909,7 +906,6 @@ void test_i2c_eeprom()
{
unsigned char page_buffer[500];
char buffer[50];
- int i;
/* defaults values */
int bus_number = 0;
@@ -921,8 +917,8 @@ void test_i2c_eeprom()
AsI2CEeprom* dev = NULL;
- int value, value2;
- int initialized=0;
+ unsigned int value, value2;
+ int initialized = 0;
while(buffer[0] != 'q')
{
@@ -931,12 +927,11 @@ void test_i2c_eeprom()
printf("* Testing I2C EEPROM menu *\n");
printf("*********************************\n");
printf("Choose ('q' to quit):\n");
- if (initialized == 0)
- {
+ if (initialized == 0) {
printf(" 1) Change I2C bus number (%d)\n", bus_number);
- printf(" 2) Change eeprom address (%d)\n", eeprom_addr);
- printf(" 3) Change eeprom address width (%d)\n", addr_width);
- printf(" 4) Change page write buffer size (%d)\n", page_buffer_size);
+ printf(" 2) Change eeprom address (%lu)\n", eeprom_addr);
+ printf(" 3) Change eeprom address width (%lu)\n", addr_width);
+ printf(" 4) Change page write buffer size (%lu)\n", page_buffer_size);
printf(" 5) Change number of pages (%d)\n", number_pages);
printf(" 6) Change page size (%d)\n", page_size);
printf(" 7) Initialize eeprom\n");
@@ -955,8 +950,7 @@ void test_i2c_eeprom()
{
case '1' : printf("Give new I2C bus number (0 or 1): ");
scanf("%d", &value);
- if ( (value != 0) && (value != 1) )
- {
+ if ((value != 0) && (value != 1)) {
printf("Wrong value\n");
pressEnterToContinue();
} else {
@@ -967,34 +961,31 @@ void test_i2c_eeprom()
case '2' : printf("Give eeprom address: ");
scanf("%d", &value);
eeprom_addr = value;
- printf("Eeprom address changed to %d\n", eeprom_addr);
+ printf("Eeprom address changed to %lu\n", eeprom_addr);
break;
case '3' : printf("Give eeprom address width: ");
scanf("%d", &value);
- if ( (value != 8) && (value != 16) )
- {
+ if ((value != 8) && (value != 16)) {
printf("Wrong value\n");
pressEnterToContinue();
} else {
addr_width = value;
- printf("Eeprom address width changed to %d\n", addr_width);
+ printf("Eeprom address width changed to %lu\n", addr_width);
}
break;
case '4' : printf("Give new page write buffer size (16 or 32): ");
scanf("%d", &value);
- if ( (value != 16) && (value != 32) )
- {
+ if ((value != 16) && (value != 32)) {
printf("Wrong value\n");
pressEnterToContinue();
} else {
page_buffer_size = value;
- printf("Page write buffer size changed to %d\n", page_buffer_size);
+ printf("Page write buffer size changed to %lu\n", page_buffer_size);
}
break;
case '5' : printf("Give number of pages: \n");
scanf("%d", &value);
- if ( (value != 1) && (value != 2) && (value != 4) )
- {
+ if ((value != 1) && (value != 2) && (value != 4)) {
printf("Wrong value\n");
pressEnterToContinue();
} else {
@@ -1008,8 +999,7 @@ void test_i2c_eeprom()
printf("Page size changed to %d\n", page_size);
break;
case '7' : dev = new AsI2CEeprom(bus_number, eeprom_addr, addr_width, page_buffer_size, number_pages, page_size);
- if (dev == NULL)
- {
+ if (dev == NULL) {
printf("Error, can't initialize eeprom.\n");
} else {
initialized = 1;
@@ -1031,8 +1021,7 @@ void test_i2c_eeprom()
printf("Give page number (max. %d):",
number_pages);
scanf("%x",&value);
- if (value > number_pages)
- {
+ if (value > number_pages) {
printf(" Error, wrong page number\n");
} else {
value2 = dev->read(value, page_buffer);
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-02-03 21:40:09
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 405d4b77be48d55bd340eb50a0fd609f4ce8d532 (commit)
from 9d384b17b9df37705e89cdfe22e5632dd1359733 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 405d4b77be48d55bd340eb50a0fd609f4ce8d532
Author: Julien Boibessot <jul...@ar...>
Date: Sun Feb 3 22:39:37 2013 +0100
[LINUX] 3.8: 3.8-rc6 is out
-----------------------------------------------------------------------
Summary of changes:
...x-3.8-rc5.config => apf27-linux-3.8-rc6.config} | 0
...x-3.8-rc5.config => apf28-linux-3.8-rc6.config} | 0
...x-3.8-rc5.config => apf51-linux-3.8-rc6.config} | 0
...3.8-rc5.config => apf9328-linux-3.8-rc6.config} | 0
patches/linux/{3.8-rc5 => 3.8-rc6} | 0
5 files changed, 0 insertions(+), 0 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.8-rc5.config => apf27-linux-3.8-rc6.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.8-rc5.config => apf28-linux-3.8-rc6.config} (100%)
rename buildroot/target/device/armadeus/apf51/{apf51-linux-3.8-rc5.config => apf51-linux-3.8-rc6.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.8-rc5.config => apf9328-linux-3.8-rc6.config} (100%)
rename patches/linux/{3.8-rc5 => 3.8-rc6} (100%)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc5.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc5.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc6.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc5.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc5.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc6.config
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc5.config b/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc5.config
rename to buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc6.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc5.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc6.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc5.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc6.config
diff --git a/patches/linux/3.8-rc5 b/patches/linux/3.8-rc6
similarity index 100%
rename from patches/linux/3.8-rc5
rename to patches/linux/3.8-rc6
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-02-02 11:08:36
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 9d384b17b9df37705e89cdfe22e5632dd1359733 (commit)
from db099b61dd19764b089e442a8a4aee528d8cb4ff (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9d384b17b9df37705e89cdfe22e5632dd1359733
Author: Julien Boibessot <jul...@ar...>
Date: Sat Feb 2 12:07:38 2013 +0100
[BUILDROOT] target_skeleton/etc/inittab: deactivate by default the login and log on LCD. User can activate them after boot if needed.
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/rootfs/target_skeleton/etc/inittab | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/inittab b/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/inittab
index 08ca4d4..6896e89 100644
--- a/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/inittab
+++ b/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/inittab
@@ -30,9 +30,8 @@ null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# now run any rc scripts
::sysinit:/etc/init.d/rcS
-# Set up a couple of getty's
-tty1::respawn:/sbin/getty 38400 tty1
-#tty2::respawn:/sbin/getty 38400 tty2
+# Set up a getty on LCD
+#tty1::respawn:/sbin/getty 38400 tty1
# Put a getty on the serial port
ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100 # GENERIC_SERIAL
@@ -42,7 +41,7 @@ ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100 # GENERIC_SERIA
null::sysinit:/bin/touch /var/log/messages
null::respawn:/sbin/syslogd -n
null::respawn:/sbin/klogd -n
-tty3::respawn:/usr/bin/tail -f /var/log/messages
+#tty2::respawn:/usr/bin/tail -f /var/log/messages
# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-31 13:21:46
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via db099b61dd19764b089e442a8a4aee528d8cb4ff (commit)
via f4c7afb951874dcd25f47e8c1a2f2f85df74fba2 (commit)
via 3053e15d240b928676364265feb6510d59c19469 (commit)
from 399f87de9f61b4cd37e8de289a72865ee35e8cde (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit db099b61dd19764b089e442a8a4aee528d8cb4ff
Author: Julien Boibessot <jul...@ar...>
Date: Thu Jan 31 10:34:09 2013 +0100
[LINUX] 3.7: 3.7.5 is out so move to it
commit f4c7afb951874dcd25f47e8c1a2f2f85df74fba2
Author: Julien Boibessot <jul...@ar...>
Date: Thu Jan 31 10:19:25 2013 +0100
[TEST] Makes test_wifi.sh a little more generic
commit 3053e15d240b928676364265feb6510d59c19469
Author: Julien Boibessot <jul...@ar...>
Date: Thu Jan 31 10:18:51 2013 +0100
[LINUX] 3.7: APF27: fixes kernel oops when rebooting after LCD timed out
-----------------------------------------------------------------------
Summary of changes:
...linux-3.7.4.config => apf27-linux-3.7.5.config} | 0
...linux-3.7.4.config => apf28-linux-3.7.5.config} | 0
...nux-3.7.4.config => apf9328-linux-3.7.5.config} | 0
patches/linux/{3.7.4 => 3.7.5} | 0
...escale-video-imxfb-Do-not-crash-on-reboot.patch | 101 ++++++++++++++++++++
target/test/test_wifi.sh | 31 ++++---
6 files changed, 119 insertions(+), 13 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.7.4.config => apf27-linux-3.7.5.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.7.4.config => apf28-linux-3.7.5.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.7.4.config => apf9328-linux-3.7.5.config} (100%)
rename patches/linux/{3.7.4 => 3.7.5} (100%)
create mode 100644 patches/linux/3.7/0442-freescale-video-imxfb-Do-not-crash-on-reboot.patch
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.4.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.7.4.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.7.5.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.4.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.7.4.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.7.5.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.4.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.4.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.5.config
diff --git a/patches/linux/3.7.4 b/patches/linux/3.7.5
similarity index 100%
rename from patches/linux/3.7.4
rename to patches/linux/3.7.5
diff --git a/patches/linux/3.7/0442-freescale-video-imxfb-Do-not-crash-on-reboot.patch b/patches/linux/3.7/0442-freescale-video-imxfb-Do-not-crash-on-reboot.patch
new file mode 100644
index 0000000..764c2fa
--- /dev/null
+++ b/patches/linux/3.7/0442-freescale-video-imxfb-Do-not-crash-on-reboot.patch
@@ -0,0 +1,101 @@
+From e6b267ce14f61d9da0151b97ee26ab4d38055567 Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <fab...@fr...>
+Date: Wed, 16 Jan 2013 10:58:41 -0200
+Subject: [PATCH] video: imxfb: Do not crash on reboot
+
+Issuing a "reboot" command after the LCD times out causes the following
+warnings:
+
+Requesting system reboot
+------------[ cut here ]------------
+WARNING: at drivers/clk/clk.c:471 clk_disable+0x24/0x50()
+Modules linked in:
+[<c001ad90>] (unwind_backtrace+0x0/0xf4) from [<c0025aac>] (warn_slowpath_common+0x48/0x60)
+[<c0025aac>] (warn_slowpath_common+0x48/0x60) from [<c0025ae0>] (warn_slowpath_null+0x1c/0x24)
+[<c0025ae0>] (warn_slowpath_null+0x1c/0x24) from [<c03960a0>] (clk_disable+0x24/0x50)
+[<c03960a0>] (clk_disable+0x24/0x50) from [<c02695a0>] (imxfb_disable_controller+0x48/0x7c)
+[<c02695a0>] (imxfb_disable_controller+0x48/0x7c) from [<c029d838>] (platform_drv_shutdown+0x18/0x1c)
+[<c029d838>] (platform_drv_shutdown+0x18/0x1c) from [<c02990fc>] (device_shutdown+0x48/0x14c)
+[<c02990fc>] (device_shutdown+0x48/0x14c) from [<c003d09c>] (kernel_restart_prepare+0x2c/0x3c)
+[<c003d09c>] (kernel_restart_prepare+0x2c/0x3c) from [<c003d0e4>] (kernel_restart+0xc/0x48)
+[<c003d0e4>] (kernel_restart+0xc/0x48) from [<c003d1e8>] (sys_reboot+0xc0/0x1bc)
+[<c003d1e8>] (sys_reboot+0xc0/0x1bc) from [<c0014ca0>] (ret_fast_syscall+0x0/0x2c)
+---[ end trace da6b502ca79c854f ]---
+------------[ cut here ]------------
+WARNING: at drivers/clk/clk.c:380 clk_unprepare+0x1c/0x2c()
+Modules linked in:
+[<c001ad90>] (unwind_backtrace+0x0/0xf4) from [<c0025aac>] (warn_slowpath_common+0x48/0x60)
+[<c0025aac>] (warn_slowpath_common+0x48/0x60) from [<c0025ae0>] (warn_slowpath_null+0x1c/0x24)
+[<c0025ae0>] (warn_slowpath_null+0x1c/0x24) from [<c0396338>] (clk_unprepare+0x1c/0x2c)
+[<c0396338>] (clk_unprepare+0x1c/0x2c) from [<c02695a8>] (imxfb_disable_controller+0x50/0x7c)
+[<c02695a8>] (imxfb_disable_controller+0x50/0x7c) from [<c029d838>] (platform_drv_shutdown+0x18/0x1c)
+[<c029d838>] (platform_drv_shutdown+0x18/0x1c) from [<c02990fc>] (device_shutdown+0x48/0x14c)
+[<c02990fc>] (device_shutdown+0x48/0x14c) from [<c003d09c>] (kernel_restart_prepare+0x2c/0x3c)
+[<c003d09c>] (kernel_restart_prepare+0x2c/0x3c) from [<c003d0e4>] (kernel_restart+0xc/0x48)
+[<c003d0e4>] (kernel_restart+0xc/0x48) from [<c003d1e8>] (sys_reboot+0xc0/0x1bc)
+[<c003d1e8>] (sys_reboot+0xc0/0x1bc) from [<c0014ca0>] (ret_fast_syscall+0x0/0x2c)
+---[ end trace da6b502ca79c8550 ]---
+------------[ cut here ]------------
+
+This happens because "reboot" triggers imxfb_shutdown(), which calls
+imxfb_disable_controller with the clocks already disabled.
+
+To prevent this, add a clock enabled status so that we can check if the clocks
+are enabled before disabling them.
+
+Acked-by: Sascha Hauer <s....@pe...>
+Signed-off-by: Fabio Estevam <fab...@fr...>
+Signed-off-by: Shawn Guo <sha...@li...>
+---
+ drivers/video/imxfb.c | 10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+Index: linux-3.7.4/drivers/video/imxfb.c
+===================================================================
+--- linux-3.7.4.orig/drivers/video/imxfb.c 2013-01-30 22:53:27.000000000 +0100
++++ linux-3.7.4/drivers/video/imxfb.c 2013-01-31 09:00:57.000000000 +0100
+@@ -134,6 +134,7 @@
+ struct clk *clk_ipg;
+ struct clk *clk_ahb;
+ struct clk *clk_per;
++ bool enabled;
+
+ /*
+ * These are the addresses we mapped
+@@ -514,6 +515,10 @@
+
+ static void imxfb_enable_controller(struct imxfb_info *fbi)
+ {
++
++ if (fbi->enabled)
++ return;
++
+ pr_debug("Enabling LCD controller\n");
+
+ writel(fbi->screen_dma, fbi->regs + LCDC_SSA);
+@@ -534,6 +539,7 @@
+ clk_prepare_enable(fbi->clk_ipg);
+ clk_prepare_enable(fbi->clk_ahb);
+ clk_prepare_enable(fbi->clk_per);
++ fbi->enabled = true;
+
+ if (fbi->backlight_power)
+ fbi->backlight_power(1);
+@@ -543,6 +549,9 @@
+
+ static void imxfb_disable_controller(struct imxfb_info *fbi)
+ {
++ if (!fbi->enabled)
++ return;
++
+ pr_debug("Disabling LCD controller\n");
+
+ if (fbi->backlight_power)
+@@ -553,6 +562,7 @@
+ clk_disable_unprepare(fbi->clk_per);
+ clk_disable_unprepare(fbi->clk_ipg);
+ clk_disable_unprepare(fbi->clk_ahb);
++ fbi->enabled = false;
+
+ writel(0, fbi->regs + LCDC_RMCR);
+ }
diff --git a/target/test/test_wifi.sh b/target/test/test_wifi.sh
index 1423d1f..e6d86ab 100755
--- a/target/test/test_wifi.sh
+++ b/target/test/test_wifi.sh
@@ -3,7 +3,7 @@
#
# Script to test Armadeus Software release
#
-# Copyright (C) 2010-2012 The Armadeus Project - Armadeus systems
+# Copyright (C) 2010-2013 The Armadeus Project - Armadeus systems
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,24 +37,29 @@ test_wifi()
ask_user "This test assumes that you run a private WiFi network (WEP shared key security). Your Access Point (AP) should be connected to your Host. Press ENTER to continue"
- ask_user "Do you have an APW wireless extension board or an APF51Dev ? (Y/n)"
- if [ "$response" == "n" ] || [ "$response" == "no" ]; then
- echo "Currently, only the APW & the APF51Dev are supported by this test !!"
- exit_failed
- fi
+ if [ "$1" == "" ]; then
+ ask_user "Do you have an APW wireless extension board or an APF51Dev ? (Y/n)"
+ if [ "$response" == "n" ] || [ "$response" == "no" ]; then
+ echo "Currently, only the APW & the APF51Dev are supported by this test !!"
+ exit_failed
+ fi
- modprobe libertas_sdio
- if [ "$?" != 0 ]; then
- echo "Failed to load Libertas driver !!"
- exit_failed
+ modprobe libertas_sdio
+ if [ "$?" != 0 ]; then
+ echo "Failed to load Libertas driver !!"
+ exit_failed
+ fi
+ execute_for_target get_interface_name
+ else
+ WLAN_IF=$1
fi
- execute_for_target get_interface_name
+
ifconfig $WLAN_IF up
if [ "$?" != 0 ]; then
echo "WLAN interface not available !!"
exit_failed
fi
- #ifconfig eth0 down
+ #ifconfig eth0 down # if connected to same network eth0 can perturbate the test
# get available APs (remove hidden one)
echo -e "\n Scanning available APs"
@@ -107,5 +112,5 @@ test_wifi()
exit 0
}
-test_wifi
+test_wifi $1
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-30 21:36:54
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 399f87de9f61b4cd37e8de289a72865ee35e8cde (commit)
via dd64cf51c4c7849e30460eda2d8d215c2b0f1293 (commit)
from 2e8243fe1d2a79c616e55b8d70c938a139f63898 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 399f87de9f61b4cd37e8de289a72865ee35e8cde
Author: Julien Boibessot <jul...@ar...>
Date: Wed Jan 30 22:36:01 2013 +0100
[DEBUG] imx5regs: add M4IF_CR register
commit dd64cf51c4c7849e30460eda2d8d215c2b0f1293
Author: Julien Boibessot <jul...@ar...>
Date: Wed Jan 30 22:34:39 2013 +0100
[TEST] Makes test_backlight.sh works on recent kernels (APF27/APF9328)
-----------------------------------------------------------------------
Summary of changes:
target/linux/debug/imxregs/imx5regs.h | 2 ++
target/test/test_backlight.sh | 9 +++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/target/linux/debug/imxregs/imx5regs.h b/target/linux/debug/imxregs/imx5regs.h
index 21b9557..fd151f7 100644
--- a/target/linux/debug/imxregs/imx5regs.h
+++ b/target/linux/debug/imxregs/imx5regs.h
@@ -370,4 +370,6 @@ static struct reg_info regs[] =
/* IOMUX */
{ "IOMUXC_SW_MUX_CTL_PAD_I2C1_CLK", 0x73FA81F8, 0, 0xffffffff, 'x', "Mux control for I2C1_CLK pad" },
{ "IOMUXC_SW_MUX_CTL_PAD_I2C1_DAT", 0x73FA81FC, 0, 0xffffffff, 'x', "Mux control for I2C1_DAT pad" },
+/* M4IF */
+{ "M4IF_CR", 0x63fd8048, 0, 0xffffffff, 'x', "M4IF Control Register" },
};
diff --git a/target/test/test_backlight.sh b/target/test/test_backlight.sh
index 6ddbd99..1c145f6 100755
--- a/target/test/test_backlight.sh
+++ b/target/test/test_backlight.sh
@@ -3,7 +3,7 @@
#
# Script to test Armadeus Software release
#
-# Copyright (C) 2008-2012 The Armadeus Project - Armadeus Systems
+# Copyright (C) 2008-20123 The Armadeus Project - Armadeus Systems
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,8 +17,13 @@ SYS_DIR=/sys/class/backlight/imx-bl
load_driver()
{
+ LINUX_VERSION=`uname -r`
if [ "$1" == "APF9328" ] || [ "$1" == "APF27" ]; then
- modprobe imx_bl
+ if [ "$LINUX_VERSION" == "2.6.29.6" ]; then
+ modprobe imx_bl
+ else
+ SYS_DIR=/sys/class/backlight/imxfb-bl
+ fi
elif [ "$1" == "APF51" ]; then
echo "Not supported yet"
exit 0
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2013-01-30 10:22:46
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 2e8243fe1d2a79c616e55b8d70c938a139f63898 (commit)
via 176d05a786fdb6c9d6cd8d3cf666b27ebb873d91 (commit)
from c086375319881a6942eeedf3bcd8e06d93af0d84 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2e8243fe1d2a79c616e55b8d70c938a139f63898
Merge: 176d05a c086375
Author: Jeremie Scheer <jer...@ar...>
Date: Wed Jan 30 11:22:26 2013 +0100
Merge branch 'master' of ssh://git.code.sf.net/p/armadeus/code
commit 176d05a786fdb6c9d6cd8d3cf666b27ebb873d91
Author: Jeremie Scheer <jer...@ar...>
Date: Wed Jan 30 11:21:41 2013 +0100
[BUILDROOT] Update Qwt patch 133 to version 6.0.1 with BR mainline patch.
-----------------------------------------------------------------------
Summary of changes:
.../buildroot/2012.02/133-qwt-add_package.patch | 262 ++++++++++----------
1 files changed, 125 insertions(+), 137 deletions(-)
diff --git a/patches/buildroot/2012.02/133-qwt-add_package.patch b/patches/buildroot/2012.02/133-qwt-add_package.patch
index 552296a..356a201 100644
--- a/patches/buildroot/2012.02/133-qwt-add_package.patch
+++ b/patches/buildroot/2012.02/133-qwt-add_package.patch
@@ -1,11 +1,19 @@
-Add package QWT 5.2.1 to Buildroot. An option enables the build of the examples.
+From afba84d1fcec911094ba54e1777155fa76913fe1 Mon Sep 17 00:00:00 2001
+From: Laurent GONZALEZ <br...@ge...>
+Date: Sat, 02 Jun 2012 06:14:00 +0000
+Subject: libqwt: new package
-Signed-off-by: Jérémie Scheer <jer...@ar...>
+Patch initially written by Thomas Petazzoni, then reworked and updated
+by Laurent Gonzalez, and finally cleaned up by Thomas again.
-Index: buildroot/package/Config.in
-===================================================================
---- buildroot.orig/package/Config.in 2012-05-04 18:01:25.000000000 +0200
-+++ buildroot/package/Config.in 2012-05-04 18:09:24.000000000 +0200
+[Peter: generic-package, deps, download, rename to qwt, move under Qt]
+Signed-off-by: Thomas Petazzoni <tho...@fr...>
+Signed-off-by: Peter Korsgaard <ja...@su...>
+---
+diff --git a/package/Config.in b/package/Config.in
+index ea0586b..4f05665 100644
+--- a/package/Config.in
++++ b/package/Config.in
@@ -140,6 +140,7 @@
comment "other GUIs"
source "package/efl/Config.in"
@@ -14,150 +22,130 @@ Index: buildroot/package/Config.in
source "package/x11r7/Config.in"
comment "X libraries and helper libraries"
-Index: buildroot/package/qwt/Config.in
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/Config.in 2012-05-04 18:01:25.000000000 +0200
-@@ -0,0 +1,20 @@
-+comment "Qwt requires Qt to be installed"
-+ depends on !BR2_PACKAGE_QT
-+
-+menuconfig BR2_PACKAGE_QWT
-+ bool "Qwt"
-+ depends on BR2_PACKAGE_QT
+diff --git a/package/qwt/Config.in b/package/qwt/Config.in
+new file mode 100644
+index 0000000..d72b30e
+--- /dev/null
++++ b/package/qwt/Config.in
+@@ -0,0 +1,22 @@
++config BR2_PACKAGE_QWT
++ bool "qwt"
++ depends on BR2_PACKAGE_QT_GUI_MODULE
+ help
-+ Qwt for Embedded Linux.
++ Qwt is a graphics extension to the Qt GUI application
++ framework. It provides a 2D plotting widget and more.
+
-+ http://qwt.sourceforge.net/
++ http://http://sourceforge.net/projects/qwt
+
+if BR2_PACKAGE_QWT
+
-+config BR2_PACKAGE_QWT_EXAMPLES
-+ bool "Examples"
++config BR2_PACKAGE_QWT_SVG
++ bool "SVG support"
+ select BR2_PACKAGE_QT_SVG
-+ help
-+ Compile & install the examples.
-+
-+endif #BR2_PACKAGE_QWT
-Index: buildroot/package/qwt/qwt-5.2.1-change_install_dir_and_no_designer.patch
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/qwt-5.2.1-change_install_dir_and_no_designer.patch 2012-05-04 18:01:25.000000000 +0200
-@@ -0,0 +1,30 @@
-+--- qwt-5.2.1/qwtconfig.pri.orig 2010-09-28 14:34:01.000000000 +0200
-++++ qwt-5.2.1/qwtconfig.pri 2010-09-28 15:37:02.000000000 +0200
-+@@ -115,7 +115,7 @@
-+ # Otherwise you have to build it from the designer directory.
-+ ######################################################################
-+
-+-CONFIG += QwtDesigner
-++#CONFIG += QwtDesigner
-+
-+ ######################################################################
-+ # If you want to auto build the examples, enable the line below
-+
-+--- qwt-5.2.1/src/src.pro.orig 2010-09-28 14:40:39.000000000 +0200
-++++ qwt-5.2.1/src/src.pro 2010-09-28 14:41:29.000000000 +0200
-+@@ -218,9 +218,12 @@
-+ }
-+
-+ # Install directives
-+-
-+-headers.files = $$HEADERS
-+-doc.files = $${QWT_ROOT}/doc/html $${QWT_ROOT}/doc/qwt-5.2.0.qch
-++
-++target.path = /usr/lib
-++headers.files = $$HEADERS
-++headers.path = /usr/include/qwt-5.2.1
-++doc.files = $${QWT_ROOT}/doc/html $${QWT_ROOT}/doc/qwt-5.2.0.qch
-++doc.path = /usr/doc/qwt-5.2.1
-+ unix {
-+ doc.files += $${QWT_ROOT}/doc/man
-+ }
-Index: buildroot/package/qwt/qwt.mk
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/qwt.mk 2012-05-04 18:03:07.000000000 +0200
-@@ -0,0 +1,82 @@
-+######################################################################
-+#
-+# QWT
-+#
-+######################################################################
-+
-+QWT_VERSION:=5.2.1
-+QWT_SOURCE:=qwt-$(QWT_VERSION).zip
-+QWT_SITE:=http://sourceforge.net/projects/qwt/files/qwt/$(QWT_VERSION)
-+QWT_UNZIP:=unzip
-+QWT_TARGET_DIR:=$(BUILD_DIR)/qwt-$(QWT_VERSION)
-+QWT_CONFIG_FILE:=qwt.pro
-+QWT_EXAMPLES_CONFIG_FILE:=examples.pro
-+QT_HOST_DIR:=$(HOST_DIR)/usr
-+
-+$(DL_DIR)/$(QWT_SOURCE):
-+ $(call DOWNLOAD,$(QWT_SITE),$(QWT_SOURCE))
-+
-+qwt-source: $(DL_DIR)/$(QWT_SOURCE)
+
++config BR2_PACKAGE_QWT_MATHML
++ bool "MathML support"
+
-+$(QWT_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QWT_SOURCE)
-+ $(QWT_UNZIP) -d $(BUILD_DIR) $(DL_DIR)/$(QWT_SOURCE)
-+ support/scripts/apply-patches.sh $(QWT_TARGET_DIR) package/qwt/ \
-+ qwt-$(QWT_VERSION)-\*.patch \
-+ qwt-$(QWT_VERSION)-\*.patch.$(ARCH)
-+ touch $@
-+
-+$(QWT_TARGET_DIR)/.configured: $(QWT_TARGET_DIR)/.unpacked
-+ -[ -f $(QWT_TARGET_DIR)/Makefile ] && $(MAKE) -C $(QWT_TARGET_DIR) distclean
-+ $(QT_HOST_DIR)/bin/qmake $(QWT_TARGET_DIR)/$(QWT_CONFIG_FILE)
-+ touch $@
-+
-+$(QWT_TARGET_DIR)/.compiled: $(QWT_TARGET_DIR)/.configured
-+ $(MAKE) -C $(QWT_TARGET_DIR)
-+ touch $@
-+
-+$(STAGING_DIR)/usr/lib/libqwt.so: $(QWT_TARGET_DIR)/.compiled
-+ (export INSTALL_ROOT=$(STAGING_DIR); $(MAKE) -C $(QWT_TARGET_DIR) install)
-+
-+$(TARGET_DIR)/usr/lib/libqwt.so: $(STAGING_DIR)/usr/lib/libqwt.so
-+ cp -dpf $(STAGING_DIR)/usr/lib/libqwt.so* $(TARGET_DIR)/usr/lib/
-+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libqwt.so*
-+
-+$(QWT_TARGET_DIR)/examples/.configured:
-+ -[ -f $(QWT_TARGET_DIR)/examples/Makefile ] && $(MAKE) -C $(QWT_TARGET_DIR)/examples distclean
-+ $(QT_HOST_DIR)/bin/qmake $(QWT_TARGET_DIR)/examples/$(QWT_EXAMPLES_CONFIG_FILE)
-+ touch $@
++endif
+
-+$(QWT_TARGET_DIR)/examples/.compiled: $(QWT_TARGET_DIR)/examples/.configured
-+ $(MAKE) -C $(QWT_TARGET_DIR)/examples
-+ touch $@
++comment "qwt depends on QT gui module"
++ depends on !BR2_PACKAGE_QT_GUI_MODULE
+diff --git a/package/qwt/qwt-remove-installed-check.patch b/package/qwt/qwt-remove-installed-check.patch
+new file mode 100644
+index 0000000..7490a7b
+--- /dev/null
++++ b/package/qwt/qwt-remove-installed-check.patch
+@@ -0,0 +1,32 @@
++Remove useless check at build time
++
++At build time, Qwt looks whether the Qwt libraries are already
++installed in the destination directory, to avoid confusion between
++libraries installed system-wide and locally-built shared
++libraries. However, this behaviour conflicts with how Buildroot builds
++and installs libraries, so get rid of it.
++
++Signed-off-by: Thomas Petazzoni <tho...@fr...>
++
++Index: qwt-6.0.0/qwtbuild.pri
++===================================================================
++--- qwt-6.0.0.orig/qwtbuild.pri 2011-09-12 19:37:35.663275952 +0200
+++++ qwt-6.0.0/qwtbuild.pri 2011-09-12 19:37:41.913275949 +0200
++@@ -53,17 +53,3 @@
++ !debug_and_release {
++ OBJECTS_DIR = obj
++ }
++-
++-unix {
++-
++- exists( $${QMAKE_LIBDIR_QT}/libqwt.* ) {
++-
++- # On some Linux distributions the Qwt libraries are installed
++- # in the same directory as the Qt libraries. Unfortunately
++- # qmake always adds QMAKE_LIBDIR_QT at the beginning of the
++- # linker path, so that the installed libraries will be
++- # used instead of the local ones.
++-
++- error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" )
++- }
++-}
+diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
+new file mode 100644
+index 0000000..1560ea4
+--- /dev/null
++++ b/package/qwt/qwt.mk
+@@ -0,0 +1,52 @@
++#############################################################
++#
++# qwt
++#
++#############################################################
+
-+$(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/bode: $(QWT_TARGET_DIR)/examples/.compiled
-+ mkdir -p $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin
-+ cp -f $(QWT_TARGET_DIR)/examples/bin/* $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin
++QWT_VERSION = 6.0.1
++QWT_SOURCE = qwt-$(QWT_VERSION).tar.bz2
++QWT_SITE = http://downloads.sourceforge.net/project/qwt/qwt/$(QWT_VERSION)
++QWT_INSTALL_STAGING = YES
++QWT_DEPENDENCIES = qt
+
-+$(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin/bode: $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/bode
-+ mkdir -p $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin
-+ cp -f $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/* $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin
++QWT_CONFIG = 's%QWT_INSTALL_PREFIX.*/usr/local/.*%QWT_INSTALL_PREFIX = /usr%'
++QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDesigner.*$$/\# QWT_CONFIG += QwtDesigner/'
++QWT_CONFIG += -e 's%/features%/mkspecs/features%'
+
-+ifneq ($(BR2_PACKAGE_QWT_EXAMPLES),y)
-+qwt: qt $(TARGET_DIR)/usr/lib/libqwt.so
++ifeq ($(BR2_PACKAGE_QWT_SVG),y)
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/QWT_CONFIG += QwtSvg/'
+else
-+qwt: qt $(TARGET_DIR)/usr/lib/libqwt.so $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin/bode
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/\# QWT_CONFIG += QwtSvg/'
+endif
+
-+qwt-clean:
-+ -$(MAKE) -C $(QWT_TARGET_DIR) clean
-+ -rm $(TARGET_DIR)/usr/lib/libqwt.so.*
-+
-+qwt-dirclean:
-+ rm -rf $(QWT_TARGET_DIR)
-+
-+#############################################################
-+#
-+# Toplevel Makefile options
-+#
-+#############################################################
-+ifeq ($(BR2_PACKAGE_QWT),y)
-+TARGETS+=qwt
++ifeq ($(BR2_PACKAGE_QWT_MATHML),y)
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/QWT_CONFIG += QwtMathML/'
++else
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/\# QWT_CONFIG += QwtMathML/'
+endif
++
++define QWT_CONFIGURE_CMDS
++ $(SED) $(QWT_CONFIG) $(@D)/qwtconfig.pri
++ (cd $(@D); $(QT_QMAKE))
++endef
++
++define QWT_BUILD_CMDS
++ $(MAKE) -C $(@D)
++endef
++
++# After installation, we fixup the INSTALL_PREFIX in qwtconfig.pri so
++# that when building with qmake, -L$(STAGING_DIR)/usr/lib is used and
++# not -L/usr/lib.
++define QWT_INSTALL_STAGING_CMDS
++ $(MAKE) -C $(@D) install INSTALL_ROOT=$(STAGING_DIR)
++ $(SED) "s%QWT_INSTALL_PREFIX = .*%QWT_INSTALL_PREFIX = $(STAGING_DIR)/usr%" \
++ $(STAGING_DIR)/usr/mkspecs/features/qwtconfig.pri
++endef
++
++define QWT_INSTALL_TARGET_CMDS
++ $(MAKE) -C $(@D) install INSTALL_ROOT=$(TARGET_DIR)
++ rm -Rf $(TARGET_DIR)/usr/mkspecs
++endef
++
++$(eval $(call GENTARGETS,package,qwt))
+--
+cgit v0.9.1
+
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2013-01-29 13:17:42
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 7b71a8fa4848afbf8db8f803decd7a1c161d72d2 (commit)
from afb27cd715c32f5749f99a524c7acc00f8283a9c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7b71a8fa4848afbf8db8f803decd7a1c161d72d2
Author: Jeremie Scheer <jer...@ar...>
Date: Tue Jan 29 14:17:06 2013 +0100
[BUILDROOT] Update Qwt patch 133 to version 6.0.1 with BR mainline patch.
-----------------------------------------------------------------------
Summary of changes:
.../buildroot/2012.02/133-qwt-add_package.patch | 262 ++++++++++----------
1 files changed, 125 insertions(+), 137 deletions(-)
diff --git a/patches/buildroot/2012.02/133-qwt-add_package.patch b/patches/buildroot/2012.02/133-qwt-add_package.patch
index 552296a..356a201 100644
--- a/patches/buildroot/2012.02/133-qwt-add_package.patch
+++ b/patches/buildroot/2012.02/133-qwt-add_package.patch
@@ -1,11 +1,19 @@
-Add package QWT 5.2.1 to Buildroot. An option enables the build of the examples.
+From afba84d1fcec911094ba54e1777155fa76913fe1 Mon Sep 17 00:00:00 2001
+From: Laurent GONZALEZ <br...@ge...>
+Date: Sat, 02 Jun 2012 06:14:00 +0000
+Subject: libqwt: new package
-Signed-off-by: Jérémie Scheer <jer...@ar...>
+Patch initially written by Thomas Petazzoni, then reworked and updated
+by Laurent Gonzalez, and finally cleaned up by Thomas again.
-Index: buildroot/package/Config.in
-===================================================================
---- buildroot.orig/package/Config.in 2012-05-04 18:01:25.000000000 +0200
-+++ buildroot/package/Config.in 2012-05-04 18:09:24.000000000 +0200
+[Peter: generic-package, deps, download, rename to qwt, move under Qt]
+Signed-off-by: Thomas Petazzoni <tho...@fr...>
+Signed-off-by: Peter Korsgaard <ja...@su...>
+---
+diff --git a/package/Config.in b/package/Config.in
+index ea0586b..4f05665 100644
+--- a/package/Config.in
++++ b/package/Config.in
@@ -140,6 +140,7 @@
comment "other GUIs"
source "package/efl/Config.in"
@@ -14,150 +22,130 @@ Index: buildroot/package/Config.in
source "package/x11r7/Config.in"
comment "X libraries and helper libraries"
-Index: buildroot/package/qwt/Config.in
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/Config.in 2012-05-04 18:01:25.000000000 +0200
-@@ -0,0 +1,20 @@
-+comment "Qwt requires Qt to be installed"
-+ depends on !BR2_PACKAGE_QT
-+
-+menuconfig BR2_PACKAGE_QWT
-+ bool "Qwt"
-+ depends on BR2_PACKAGE_QT
+diff --git a/package/qwt/Config.in b/package/qwt/Config.in
+new file mode 100644
+index 0000000..d72b30e
+--- /dev/null
++++ b/package/qwt/Config.in
+@@ -0,0 +1,22 @@
++config BR2_PACKAGE_QWT
++ bool "qwt"
++ depends on BR2_PACKAGE_QT_GUI_MODULE
+ help
-+ Qwt for Embedded Linux.
++ Qwt is a graphics extension to the Qt GUI application
++ framework. It provides a 2D plotting widget and more.
+
-+ http://qwt.sourceforge.net/
++ http://http://sourceforge.net/projects/qwt
+
+if BR2_PACKAGE_QWT
+
-+config BR2_PACKAGE_QWT_EXAMPLES
-+ bool "Examples"
++config BR2_PACKAGE_QWT_SVG
++ bool "SVG support"
+ select BR2_PACKAGE_QT_SVG
-+ help
-+ Compile & install the examples.
-+
-+endif #BR2_PACKAGE_QWT
-Index: buildroot/package/qwt/qwt-5.2.1-change_install_dir_and_no_designer.patch
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/qwt-5.2.1-change_install_dir_and_no_designer.patch 2012-05-04 18:01:25.000000000 +0200
-@@ -0,0 +1,30 @@
-+--- qwt-5.2.1/qwtconfig.pri.orig 2010-09-28 14:34:01.000000000 +0200
-++++ qwt-5.2.1/qwtconfig.pri 2010-09-28 15:37:02.000000000 +0200
-+@@ -115,7 +115,7 @@
-+ # Otherwise you have to build it from the designer directory.
-+ ######################################################################
-+
-+-CONFIG += QwtDesigner
-++#CONFIG += QwtDesigner
-+
-+ ######################################################################
-+ # If you want to auto build the examples, enable the line below
-+
-+--- qwt-5.2.1/src/src.pro.orig 2010-09-28 14:40:39.000000000 +0200
-++++ qwt-5.2.1/src/src.pro 2010-09-28 14:41:29.000000000 +0200
-+@@ -218,9 +218,12 @@
-+ }
-+
-+ # Install directives
-+-
-+-headers.files = $$HEADERS
-+-doc.files = $${QWT_ROOT}/doc/html $${QWT_ROOT}/doc/qwt-5.2.0.qch
-++
-++target.path = /usr/lib
-++headers.files = $$HEADERS
-++headers.path = /usr/include/qwt-5.2.1
-++doc.files = $${QWT_ROOT}/doc/html $${QWT_ROOT}/doc/qwt-5.2.0.qch
-++doc.path = /usr/doc/qwt-5.2.1
-+ unix {
-+ doc.files += $${QWT_ROOT}/doc/man
-+ }
-Index: buildroot/package/qwt/qwt.mk
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/qwt/qwt.mk 2012-05-04 18:03:07.000000000 +0200
-@@ -0,0 +1,82 @@
-+######################################################################
-+#
-+# QWT
-+#
-+######################################################################
-+
-+QWT_VERSION:=5.2.1
-+QWT_SOURCE:=qwt-$(QWT_VERSION).zip
-+QWT_SITE:=http://sourceforge.net/projects/qwt/files/qwt/$(QWT_VERSION)
-+QWT_UNZIP:=unzip
-+QWT_TARGET_DIR:=$(BUILD_DIR)/qwt-$(QWT_VERSION)
-+QWT_CONFIG_FILE:=qwt.pro
-+QWT_EXAMPLES_CONFIG_FILE:=examples.pro
-+QT_HOST_DIR:=$(HOST_DIR)/usr
-+
-+$(DL_DIR)/$(QWT_SOURCE):
-+ $(call DOWNLOAD,$(QWT_SITE),$(QWT_SOURCE))
-+
-+qwt-source: $(DL_DIR)/$(QWT_SOURCE)
+
++config BR2_PACKAGE_QWT_MATHML
++ bool "MathML support"
+
-+$(QWT_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QWT_SOURCE)
-+ $(QWT_UNZIP) -d $(BUILD_DIR) $(DL_DIR)/$(QWT_SOURCE)
-+ support/scripts/apply-patches.sh $(QWT_TARGET_DIR) package/qwt/ \
-+ qwt-$(QWT_VERSION)-\*.patch \
-+ qwt-$(QWT_VERSION)-\*.patch.$(ARCH)
-+ touch $@
-+
-+$(QWT_TARGET_DIR)/.configured: $(QWT_TARGET_DIR)/.unpacked
-+ -[ -f $(QWT_TARGET_DIR)/Makefile ] && $(MAKE) -C $(QWT_TARGET_DIR) distclean
-+ $(QT_HOST_DIR)/bin/qmake $(QWT_TARGET_DIR)/$(QWT_CONFIG_FILE)
-+ touch $@
-+
-+$(QWT_TARGET_DIR)/.compiled: $(QWT_TARGET_DIR)/.configured
-+ $(MAKE) -C $(QWT_TARGET_DIR)
-+ touch $@
-+
-+$(STAGING_DIR)/usr/lib/libqwt.so: $(QWT_TARGET_DIR)/.compiled
-+ (export INSTALL_ROOT=$(STAGING_DIR); $(MAKE) -C $(QWT_TARGET_DIR) install)
-+
-+$(TARGET_DIR)/usr/lib/libqwt.so: $(STAGING_DIR)/usr/lib/libqwt.so
-+ cp -dpf $(STAGING_DIR)/usr/lib/libqwt.so* $(TARGET_DIR)/usr/lib/
-+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libqwt.so*
-+
-+$(QWT_TARGET_DIR)/examples/.configured:
-+ -[ -f $(QWT_TARGET_DIR)/examples/Makefile ] && $(MAKE) -C $(QWT_TARGET_DIR)/examples distclean
-+ $(QT_HOST_DIR)/bin/qmake $(QWT_TARGET_DIR)/examples/$(QWT_EXAMPLES_CONFIG_FILE)
-+ touch $@
++endif
+
-+$(QWT_TARGET_DIR)/examples/.compiled: $(QWT_TARGET_DIR)/examples/.configured
-+ $(MAKE) -C $(QWT_TARGET_DIR)/examples
-+ touch $@
++comment "qwt depends on QT gui module"
++ depends on !BR2_PACKAGE_QT_GUI_MODULE
+diff --git a/package/qwt/qwt-remove-installed-check.patch b/package/qwt/qwt-remove-installed-check.patch
+new file mode 100644
+index 0000000..7490a7b
+--- /dev/null
++++ b/package/qwt/qwt-remove-installed-check.patch
+@@ -0,0 +1,32 @@
++Remove useless check at build time
++
++At build time, Qwt looks whether the Qwt libraries are already
++installed in the destination directory, to avoid confusion between
++libraries installed system-wide and locally-built shared
++libraries. However, this behaviour conflicts with how Buildroot builds
++and installs libraries, so get rid of it.
++
++Signed-off-by: Thomas Petazzoni <tho...@fr...>
++
++Index: qwt-6.0.0/qwtbuild.pri
++===================================================================
++--- qwt-6.0.0.orig/qwtbuild.pri 2011-09-12 19:37:35.663275952 +0200
+++++ qwt-6.0.0/qwtbuild.pri 2011-09-12 19:37:41.913275949 +0200
++@@ -53,17 +53,3 @@
++ !debug_and_release {
++ OBJECTS_DIR = obj
++ }
++-
++-unix {
++-
++- exists( $${QMAKE_LIBDIR_QT}/libqwt.* ) {
++-
++- # On some Linux distributions the Qwt libraries are installed
++- # in the same directory as the Qt libraries. Unfortunately
++- # qmake always adds QMAKE_LIBDIR_QT at the beginning of the
++- # linker path, so that the installed libraries will be
++- # used instead of the local ones.
++-
++- error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" )
++- }
++-}
+diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
+new file mode 100644
+index 0000000..1560ea4
+--- /dev/null
++++ b/package/qwt/qwt.mk
+@@ -0,0 +1,52 @@
++#############################################################
++#
++# qwt
++#
++#############################################################
+
-+$(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/bode: $(QWT_TARGET_DIR)/examples/.compiled
-+ mkdir -p $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin
-+ cp -f $(QWT_TARGET_DIR)/examples/bin/* $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin
++QWT_VERSION = 6.0.1
++QWT_SOURCE = qwt-$(QWT_VERSION).tar.bz2
++QWT_SITE = http://downloads.sourceforge.net/project/qwt/qwt/$(QWT_VERSION)
++QWT_INSTALL_STAGING = YES
++QWT_DEPENDENCIES = qt
+
-+$(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin/bode: $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/bode
-+ mkdir -p $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin
-+ cp -f $(STAGING_DIR)/usr/local/qwt-5.2.1/examples/bin/* $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin
++QWT_CONFIG = 's%QWT_INSTALL_PREFIX.*/usr/local/.*%QWT_INSTALL_PREFIX = /usr%'
++QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDesigner.*$$/\# QWT_CONFIG += QwtDesigner/'
++QWT_CONFIG += -e 's%/features%/mkspecs/features%'
+
-+ifneq ($(BR2_PACKAGE_QWT_EXAMPLES),y)
-+qwt: qt $(TARGET_DIR)/usr/lib/libqwt.so
++ifeq ($(BR2_PACKAGE_QWT_SVG),y)
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/QWT_CONFIG += QwtSvg/'
+else
-+qwt: qt $(TARGET_DIR)/usr/lib/libqwt.so $(TARGET_DIR)/usr/local/qwt-5.2.1/examples/bin/bode
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtSvg.*$$/\# QWT_CONFIG += QwtSvg/'
+endif
+
-+qwt-clean:
-+ -$(MAKE) -C $(QWT_TARGET_DIR) clean
-+ -rm $(TARGET_DIR)/usr/lib/libqwt.so.*
-+
-+qwt-dirclean:
-+ rm -rf $(QWT_TARGET_DIR)
-+
-+#############################################################
-+#
-+# Toplevel Makefile options
-+#
-+#############################################################
-+ifeq ($(BR2_PACKAGE_QWT),y)
-+TARGETS+=qwt
++ifeq ($(BR2_PACKAGE_QWT_MATHML),y)
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/QWT_CONFIG += QwtMathML/'
++else
++ QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtMathML.*$$/\# QWT_CONFIG += QwtMathML/'
+endif
++
++define QWT_CONFIGURE_CMDS
++ $(SED) $(QWT_CONFIG) $(@D)/qwtconfig.pri
++ (cd $(@D); $(QT_QMAKE))
++endef
++
++define QWT_BUILD_CMDS
++ $(MAKE) -C $(@D)
++endef
++
++# After installation, we fixup the INSTALL_PREFIX in qwtconfig.pri so
++# that when building with qmake, -L$(STAGING_DIR)/usr/lib is used and
++# not -L/usr/lib.
++define QWT_INSTALL_STAGING_CMDS
++ $(MAKE) -C $(@D) install INSTALL_ROOT=$(STAGING_DIR)
++ $(SED) "s%QWT_INSTALL_PREFIX = .*%QWT_INSTALL_PREFIX = $(STAGING_DIR)/usr%" \
++ $(STAGING_DIR)/usr/mkspecs/features/qwtconfig.pri
++endef
++
++define QWT_INSTALL_TARGET_CMDS
++ $(MAKE) -C $(@D) install INSTALL_ROOT=$(TARGET_DIR)
++ rm -Rf $(TARGET_DIR)/usr/mkspecs
++endef
++
++$(eval $(call GENTARGETS,package,qwt))
+--
+cgit v0.9.1
+
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2013-01-28 13:05:03
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via c086375319881a6942eeedf3bcd8e06d93af0d84 (commit)
from 64ca04193068d944f35ae2b1f55a2245fbbb8f0c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c086375319881a6942eeedf3bcd8e06d93af0d84
Author: Fabien Marteau <fab...@ar...>
Date: Mon Jan 28 14:04:39 2013 +0100
[linux][imx28] adding_spi3
-----------------------------------------------------------------------
Summary of changes:
.../2.6.35/461-armadeus-adding_spi3_on_apf28.patch | 97 ++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
create mode 100644 patches/linux/2.6.35/461-armadeus-adding_spi3_on_apf28.patch
diff --git a/patches/linux/2.6.35/461-armadeus-adding_spi3_on_apf28.patch b/patches/linux/2.6.35/461-armadeus-adding_spi3_on_apf28.patch
new file mode 100644
index 0000000..2f7df9f
--- /dev/null
+++ b/patches/linux/2.6.35/461-armadeus-adding_spi3_on_apf28.patch
@@ -0,0 +1,97 @@
+Adding spi3 master on imx28 platform
+
+Signed-off-by: Fabien Marteau <fab...@ar...>
+---
+Index: linux-2.6.35.3/arch/arm/mach-mx28/device.c
+===================================================================
+--- linux-2.6.35.3.orig/arch/arm/mach-mx28/device.c 2013-01-28 13:52:20.000000000 +0100
++++ linux-2.6.35.3/arch/arm/mach-mx28/device.c 2013-01-28 13:59:31.000000000 +0100
+@@ -662,10 +662,16 @@
+ #endif
+
+ #if defined(CONFIG_SPI_MXS) || defined(CONFIG_SPI_MXS_MODULE)
+-static struct mxs_spi_platform_data spi_data = {
++static struct mxs_spi_platform_data spi_data2 = {
+ .clk = "ssp.2",
+ .slave_mode = 0,
+ };
++
++static struct mxs_spi_platform_data spi_data3 = {
++ .clk = "ssp.3",
++ .slave_mode = 0,
++};
++
+ static struct resource ssp2_resources[] = {
+ {
+ .start = SSP2_PHYS_ADDR,
+@@ -686,18 +692,48 @@
+ },
+ };
+
++static struct resource ssp3_resources[] = {
++ {
++ .start = SSP3_PHYS_ADDR,
++ .end = SSP3_PHYS_ADDR + 0x2000 - 1,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .start = MXS_DMA_CHANNEL_AHB_APBH_SSP3,
++ .end = MXS_DMA_CHANNEL_AHB_APBH_SSP3,
++ .flags = IORESOURCE_DMA,
++ }, {
++ .start = IRQ_SSP3_DMA,
++ .end = IRQ_SSP3_DMA,
++ .flags = IORESOURCE_IRQ,
++ }, {
++ .start = IRQ_SSP3,
++ .end = IRQ_SSP3,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
+ static void __init mx28_init_spi(void)
+ {
+ struct platform_device *pdev;
++ struct platform_device *pdev2;
+
+ pdev = mxs_get_device("mxs-spi", 0);
+ if (pdev == NULL || IS_ERR(pdev))
+ return;
+ pdev->resource = ssp2_resources;
+ pdev->num_resources = ARRAY_SIZE(ssp2_resources);
+- pdev->dev.platform_data = &spi_data;
++ pdev->dev.platform_data = &spi_data2;
+
+ mxs_add_device(pdev, 3);
++
++ pdev2 = mxs_get_device("mxs-spi", 1);
++ if (pdev2 == NULL || IS_ERR(pdev2))
++ return;
++ pdev2->resource = ssp3_resources;
++ pdev2->num_resources = ARRAY_SIZE(ssp3_resources);
++ pdev2->dev.platform_data = &spi_data3;
++
++ mxs_add_device(pdev2, 3);
+ }
+ #else
+ static void mx28_init_spi(void)
+Index: linux-2.6.35.3/arch/arm/plat-mxs/device.c
+===================================================================
+--- linux-2.6.35.3.orig/arch/arm/plat-mxs/device.c 2013-01-28 11:45:01.000000000 +0100
++++ linux-2.6.35.3/arch/arm/plat-mxs/device.c 2013-01-28 11:48:51.000000000 +0100
+@@ -187,6 +187,16 @@
+ .release = mxs_nop_release,
+ },
+ },
++ {
++ .name = "mxs-spi",
++ .id = 1,
++ .dev = {
++ .dma_mask = &common_dmamask,
++ .coherent_dma_mask = DMA_BIT_MASK(32),
++ .release = mxs_nop_release,
++ },
++ },
++
+ };
+ #endif
+
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-27 22:21:50
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 64ca04193068d944f35ae2b1f55a2245fbbb8f0c (commit)
from dba083e544a2699bb0a71978ddf6f40f743c97f5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 64ca04193068d944f35ae2b1f55a2245fbbb8f0c
Author: Julien Boibessot <jul...@ar...>
Date: Sun Jan 27 23:21:01 2013 +0100
[TEST] Makes RS232 test a little more generic
-----------------------------------------------------------------------
Summary of changes:
target/test/test_rs232.sh | 39 ++++++++++++++++++++++++++++-----------
1 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/target/test/test_rs232.sh b/target/test/test_rs232.sh
index 4a83cfd..db22eae 100755
--- a/target/test/test_rs232.sh
+++ b/target/test/test_rs232.sh
@@ -3,7 +3,7 @@
#
# Script to test Armadeus Software release
#
-# Copyright (C) 2008-2011 The Armadeus Project - ARMadeus Systems
+# Copyright (C) 2008-2013 The Armadeus Project - Armadeus Systems
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,9 @@ source ./test_env.sh
echo_jumper_help()
{
+ if [ "$HELP" == "NO" ]; then
+ return
+ fi
if [ "$1" == "APF9328" ]; then
echo " (Pin 1 & 3 of UART connector)"
elif [ "$1" == "APF27" ]; then
@@ -66,19 +69,24 @@ test_serial_port()
fi
}
-echo_available_ports()
+configure_ports_devices()
{
+ LINUX_VERSION=`uname -r`
if [ "$1" == "APF9328" ]; then
- echo " Available one: [ 1 ]"
- SERIAL_DEVICES="/dev/ttySMX"
+ if [ "$LINUX_VERSION" == "2.6.29.6" ]; then
+ SERIAL_DEVICES="/dev/ttySMX"
+ else
+ SERIAL_DEVICES="/dev/ttymxc"
+ fi
elif [ "$1" == "APF27" ]; then
- echo " Available one: [ 2 ]"
- SERIAL_DEVICES="/dev/ttySMX"
+ if [ "$LINUX_VERSION" == "2.6.29.6" ]; then
+ SERIAL_DEVICES="/dev/ttySMX"
+ else
+ SERIAL_DEVICES="/dev/ttymxc"
+ fi
elif [ "$1" == "APF51" ]; then
- echo " Available one: [ 0 ]"
SERIAL_DEVICES="/dev/ttymxc"
elif [ "$1" == "APF28" ]; then
- echo " Available one: [ 0 1 2 3 4 ]"
SERIAL_DEVICES="/dev/ttySP"
else
echo "$1 platform not supported by this test"
@@ -86,11 +94,22 @@ echo_available_ports()
fi
}
+
show_test_banner "Serial ports"
PORTS="$1"
+execute_for_target configure_ports_devices
+HELP="NO"
+# No parameter given -> script in manual/help mode
if [ "$1" == "" ]; then
+ HELP="YES"
echo "Please give the port number to test !"
- execute_for_target echo_available_ports
+ PORTS=`ls $SERIAL_DEVICES*`
+ echo -n " Available one: [ "
+ for port in $PORTS; do
+ port_num=`echo $port | awk '{print substr($0,length($0))}'`
+ echo -n "$port_num "
+ done
+ echo "]"
read -p "> " PORTS
[ "$PORTS" == "" ] && exit_failed
fi
@@ -98,5 +117,3 @@ fi
for PORT in $PORTS; do
test_serial_port $PORT
done
-
-
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-01-27 14:09:14
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via dba083e544a2699bb0a71978ddf6f40f743c97f5 (commit)
from d923f5351dc0ba6793842022e95a226ac3597387 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit dba083e544a2699bb0a71978ddf6f40f743c97f5
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 27 15:08:23 2013 +0100
[LINUX][3.8] mxs: gpio-mxs: Add IRQ_TYPE_EDGE_BOTH support
-----------------------------------------------------------------------
Summary of changes:
...o-mxs-add_support_for_both_edge_interrupt.patch | 77 ++++++++++++++++++++
1 files changed, 77 insertions(+), 0 deletions(-)
create mode 100644 patches/linux/3.8/0206-armadeus-mxs-gpio-mxs-add_support_for_both_edge_interrupt.patch
diff --git a/patches/linux/3.8/0206-armadeus-mxs-gpio-mxs-add_support_for_both_edge_interrupt.patch b/patches/linux/3.8/0206-armadeus-mxs-gpio-mxs-add_support_for_both_edge_interrupt.patch
new file mode 100644
index 0000000..01a5955
--- /dev/null
+++ b/patches/linux/3.8/0206-armadeus-mxs-gpio-mxs-add_support_for_both_edge_interrupt.patch
@@ -0,0 +1,77 @@
+This patch adds support for IRQ_TYPE_EDGE_BOTH needed for some driver
+(gpio-keys).
+Inspired to gpio-mxc.c
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+
+Index: linux-3.8-rc5/drivers/gpio/gpio-mxs.c
+===================================================================
+--- linux-3.8-rc5.orig/drivers/gpio/gpio-mxs.c
++++ linux-3.8-rc5/drivers/gpio/gpio-mxs.c
+@@ -65,6 +65,7 @@ struct mxs_gpio_port {
+ struct irq_domain *domain;
+ struct bgpio_chip bgc;
+ enum mxs_gpio_id devid;
++ u32 both_edges;
+ };
+
+ static inline int is_imx23_gpio(struct mxs_gpio_port *port)
+@@ -81,13 +82,24 @@ static inline int is_imx28_gpio(struct m
+
+ static int mxs_gpio_set_irq_type(struct irq_data *d, unsigned int type)
+ {
++ u32 val;
+ u32 pin_mask = 1 << d->hwirq;
++ u32 gpio_idx = d->hwirq;
+ struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);
+ struct mxs_gpio_port *port = gc->private;
+ void __iomem *pin_addr;
+ int edge;
+
++ port->both_edges &= ~(1 << gpio_idx);
+ switch (type) {
++ case IRQ_TYPE_EDGE_BOTH:
++ val = gpio_get_value(port->bgc.gc.base + gpio_idx);
++ if (val)
++ edge = GPIO_INT_LOW_LEV;
++ else
++ edge = GPIO_INT_HIGH_LEV;
++ port->both_edges |= 1 << gpio_idx;
++ break;
+ case IRQ_TYPE_EDGE_RISING:
+ edge = GPIO_INT_RISE_EDGE;
+ break;
+@@ -123,6 +135,22 @@ static int mxs_gpio_set_irq_type(struct
+
+ return 0;
+ }
++static void mxs_flip_edge(struct mxs_gpio_port *port, u32 gpio)
++{
++ u32 bit, val, edge;
++ void __iomem *pin_addr;
++
++ bit = 1<<gpio;
++
++ pin_addr = port->base + PINCTRL_IRQPOL(port);
++ val = readl(pin_addr);
++ edge = val&bit;
++
++ if (edge)
++ writel(bit, pin_addr + MXS_CLR);
++ else
++ writel(bit, pin_addr + MXS_SET);
++}
+
+ /* MXS has one interrupt *per* gpio port */
+ static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
+@@ -137,6 +165,9 @@ static void mxs_gpio_irq_handler(u32 irq
+
+ while (irq_stat != 0) {
+ int irqoffset = fls(irq_stat) - 1;
++ if (port->both_edges & (1 << irqoffset))
++ mxs_flip_edge(port, irqoffset);
++
+ generic_handle_irq(irq_find_mapping(port->domain, irqoffset));
+ irq_stat &= ~(1 << irqoffset);
+ }
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-01-27 13:24:06
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via d923f5351dc0ba6793842022e95a226ac3597387 (commit)
via d978ef40c26de7ea6f1a7f8af14e1b17e455e6bb (commit)
via 20182a0af88055418b56d57b0b21d582ed2136d6 (commit)
via 87018708ee8d9f11ffe618d5a66520e09bf39315 (commit)
from c01aa961bcb22f9105131c3dacf9729480e09e68 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d923f5351dc0ba6793842022e95a226ac3597387
Merge: d978ef4 c01aa96
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 27 14:23:23 2013 +0100
Merge branch 'master' of ssh://git.code.sf.net/p/armadeus/code
commit d978ef40c26de7ea6f1a7f8af14e1b17e455e6bb
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 27 14:23:05 2013 +0100
[LINUX][3.8] suppress now mainlined patches 0206 and 0207
commit 20182a0af88055418b56d57b0b21d582ed2136d6
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 27 14:22:15 2013 +0100
[LINUX][3.8] adapt patch 0203
commit 87018708ee8d9f11ffe618d5a66520e09bf39315
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 27 14:21:43 2013 +0100
[LINUX] 3.8: move rc4 support to rc5
-----------------------------------------------------------------------
Summary of changes:
...x-3.8-rc4.config => apf27-linux-3.8-rc5.config} | 0
...x-3.8-rc4.config => apf28-linux-3.8-rc5.config} | 0
...x-3.8-rc4.config => apf51-linux-3.8-rc5.config} | 0
...3.8-rc4.config => apf9328-linux-3.8-rc5.config} | 0
patches/linux/{3.8-rc4 => 3.8-rc5} | 0
...armadeus-mx27-ehci-mxc-add_per_clk_enable.patch | 16 ++++++------
...mx27-framebuffer-fix_platform_device_name.patch | 19 --------------
.../3.8/0207-armadeus-imxfb-fix_devtype_set.patch | 27 --------------------
8 files changed, 8 insertions(+), 54 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.8-rc4.config => apf27-linux-3.8-rc5.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.8-rc4.config => apf28-linux-3.8-rc5.config} (100%)
rename buildroot/target/device/armadeus/apf51/{apf51-linux-3.8-rc4.config => apf51-linux-3.8-rc5.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.8-rc4.config => apf9328-linux-3.8-rc5.config} (100%)
rename patches/linux/{3.8-rc4 => 3.8-rc5} (100%)
delete mode 100644 patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
delete mode 100644 patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc4.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc4.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc5.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc4.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc4.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc5.config
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc4.config b/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc4.config
rename to buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc5.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc4.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc5.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc4.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc5.config
diff --git a/patches/linux/3.8-rc4 b/patches/linux/3.8-rc5
similarity index 100%
rename from patches/linux/3.8-rc4
rename to patches/linux/3.8-rc5
diff --git a/patches/linux/3.8/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch b/patches/linux/3.8/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
index cba4fd7..29df863 100644
--- a/patches/linux/3.8/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
+++ b/patches/linux/3.8/0203-armadeus-mx27-ehci-mxc-add_per_clk_enable.patch
@@ -3,20 +3,20 @@ EHCI PER clock (aka usb_div) must be enabled to have EHCI driver working.
Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
---
-Index: linux-3.8-rc1/drivers/usb/host/ehci-mxc.c
+Index: linux-3.8-rc5/drivers/usb/host/ehci-mxc.c
===================================================================
---- linux-3.8-rc1.orig/drivers/usb/host/ehci-mxc.c 2012-12-22 02:19:00.000000000 +0100
-+++ linux-3.8-rc1/drivers/usb/host/ehci-mxc.c 2013-01-01 21:19:57.000000000 +0100
-@@ -31,7 +31,7 @@
+--- linux-3.8-rc5.orig/drivers/usb/host/ehci-mxc.c
++++ linux-3.8-rc5/drivers/usb/host/ehci-mxc.c
+@@ -42,7 +42,7 @@ static const char hcd_name[] = "ehci-mxc
#define ULPI_VIEWPORT_OFFSET 0x170
struct ehci_mxc_priv {
- struct clk *usbclk, *ahbclk, *phyclk;
+ struct clk *usbclk, *ahbclk, *perclk, *phyclk;
- struct usb_hcd *hcd;
};
-@@ -150,6 +150,13 @@
+ static struct hc_driver __read_mostly ehci_mxc_hc_driver;
+@@ -111,6 +111,13 @@ static int ehci_mxc_drv_probe(struct pla
}
clk_prepare_enable(priv->ahbclk);
@@ -30,7 +30,7 @@ Index: linux-3.8-rc1/drivers/usb/host/ehci-mxc.c
/* "dr" device has its own clock on i.MX51 */
priv->phyclk = devm_clk_get(&pdev->dev, "phy");
if (IS_ERR(priv->phyclk))
-@@ -233,6 +240,8 @@
+@@ -191,6 +198,8 @@ err_init:
if (priv->phyclk)
clk_disable_unprepare(priv->phyclk);
@@ -39,7 +39,7 @@ Index: linux-3.8-rc1/drivers/usb/host/ehci-mxc.c
clk_disable_unprepare(priv->ahbclk);
err_clk_ahb:
clk_disable_unprepare(priv->usbclk);
-@@ -259,6 +268,7 @@
+@@ -216,6 +225,7 @@ static int __exit ehci_mxc_drv_remove(st
clk_disable_unprepare(priv->usbclk);
clk_disable_unprepare(priv->ahbclk);
diff --git a/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch b/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
deleted file mode 100644
index 3299e41..0000000
--- a/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Framebuffer platform device is now identified by a device id (imx1-fb or
-imx21-fb) instead of by driver name (imx-fb).
-
-Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
----
-
-Index: linux-3.8-rc2/arch/arm/mach-imx/devices/platform-imx-fb.c
-===================================================================
---- linux-3.8-rc2.orig/arch/arm/mach-imx/devices/platform-imx-fb.c
-+++ linux-3.8-rc2/arch/arm/mach-imx/devices/platform-imx-fb.c
-@@ -54,7 +54,7 @@ struct platform_device *__init imx_add_i
- .flags = IORESOURCE_IRQ,
- },
- };
-- return imx_add_platform_device_dmamask("imx-fb", 0,
-+ return imx_add_platform_device_dmamask(data->devid, 0,
- res, ARRAY_SIZE(res),
- pdata, sizeof(*pdata), DMA_BIT_MASK(32));
- }
diff --git a/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch b/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
deleted file mode 100644
index db33d95..0000000
--- a/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-The devtype field for fbi (struct imxfb_info) must be set after memset call to avoid
-some wrong behaviour (pixel size).
-
-Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
----
-
-Index: linux-3.8-rc2/drivers/video/imxfb.c
-===================================================================
---- linux-3.8-rc2.orig/drivers/video/imxfb.c
-+++ linux-3.8-rc2/drivers/video/imxfb.c
-@@ -729,6 +729,8 @@ static int __init imxfb_init_fbinfo(stru
-
- memset(fbi, 0, sizeof(struct imxfb_info));
-
-+ fbi->devtype = pdev->id_entry->driver_data;
-+
- strlcpy(info->fix.id, IMX_NAME, sizeof(info->fix.id));
-
- info->fix.type = FB_TYPE_PACKED_PIXELS;
-@@ -790,7 +792,6 @@ static int __init imxfb_probe(struct pla
- return -ENOMEM;
-
- fbi = info->par;
-- fbi->devtype = pdev->id_entry->driver_data;
-
- if (!fb_mode)
- fb_mode = pdata->mode[0].mode.name;
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-26 13:50:12
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via c01aa961bcb22f9105131c3dacf9729480e09e68 (commit)
from 11e9d0e5b32d758f8e6d12837ddf6b5c58de4bc3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c01aa961bcb22f9105131c3dacf9729480e09e68
Author: Julien Boibessot <jul...@ar...>
Date: Sat Jan 26 14:45:52 2013 +0100
[TEST] Fixes RTC test
-----------------------------------------------------------------------
Summary of changes:
target/test/test_rtc.sh | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/target/test/test_rtc.sh b/target/test/test_rtc.sh
index 576acd8..2275260 100755
--- a/target/test/test_rtc.sh
+++ b/target/test/test_rtc.sh
@@ -35,6 +35,7 @@ test_rtc()
echo "Trying to get current time with NTP"
ntpd -nqp 217.147.208.1
+ echo "Current time:"
date
if [ "$?" == 0 ]; then
echo "Please wait "$TEST_DURATION"s"
@@ -46,8 +47,9 @@ test_rtc()
DATE=`date +:%T`
AFTER=`convert_in_secs $DATE`
DIFF=$(($AFTER - $BEFORE - $TEST_DURATION))
-
+ echo "RTC stored time after $TEST_DURATION secs:"
date
+ DIFF=`echo ${DIFF#-}` # abs() value
if [ "$DIFF" -gt "$TOLERANCE" ]; then
echo "$AFTER $BEFORE ($DIFF)"
exit_failed
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-01-26 13:32:54
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 11e9d0e5b32d758f8e6d12837ddf6b5c58de4bc3 (commit)
from 52bba7a3c907cad538245d0a2c3154794bc7a9c2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 11e9d0e5b32d758f8e6d12837ddf6b5c58de4bc3
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sat Jan 26 14:32:11 2013 +0100
[LINUX][APF28] kernel config: EHCI support must be set to have chipidea host support
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf28/apf28-linux-3.8.config | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.8.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.8.config
index 0044f03..10877e6 100644
--- a/buildroot/target/device/armadeus/apf28/apf28-linux-3.8.config
+++ b/buildroot/target/device/armadeus/apf28/apf28-linux-3.8.config
@@ -121,6 +121,7 @@ CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_MON=y
+CONFIG_USB_EHCI_HCD=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_ACM=y
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-01-26 13:01:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 52bba7a3c907cad538245d0a2c3154794bc7a9c2 (commit)
from b7d5c26720105dae1a66da7af84c081cd97889b2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 52bba7a3c907cad538245d0a2c3154794bc7a9c2
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sat Jan 26 14:00:36 2013 +0100
[DEBUG] Add HW_PINCTRL_DRIVERxx register to imxregs (APF28)
-----------------------------------------------------------------------
Summary of changes:
target/linux/debug/imxregs/imx28regs.h | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/target/linux/debug/imxregs/imx28regs.h b/target/linux/debug/imxregs/imx28regs.h
index c5947da..77d8e6f 100644
--- a/target/linux/debug/imxregs/imx28regs.h
+++ b/target/linux/debug/imxregs/imx28regs.h
@@ -27,6 +27,27 @@
static struct reg_info regs[] =
{
+/* PINCTRL */
+{ "HW_PINCTRL_DRIVE0", 0x80018300, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 0" },
+{ "HW_PINCTRL_DRIVE1", 0x80018310, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 1" },
+{ "HW_PINCTRL_DRIVE2", 0x80018320, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 2" },
+{ "HW_PINCTRL_DRIVE3", 0x80018330, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 3" },
+{ "HW_PINCTRL_DRIVE4", 0x80018340, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 4" },
+{ "HW_PINCTRL_DRIVE5", 0x80018350, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 5" },
+{ "HW_PINCTRL_DRIVE6", 0x80018360, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 6" },
+{ "HW_PINCTRL_DRIVE7", 0x80018370, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 7" },
+{ "HW_PINCTRL_DRIVE8", 0x80018380, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 8" },
+{ "HW_PINCTRL_DRIVE9", 0x80018390, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 9" },
+{ "HW_PINCTRL_DRIVE10", 0x800183a0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 10" },
+{ "HW_PINCTRL_DRIVE11", 0x800183b0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 11" },
+{ "HW_PINCTRL_DRIVE12", 0x800183c0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 12" },
+{ "HW_PINCTRL_DRIVE13", 0x800183d0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 13" },
+{ "HW_PINCTRL_DRIVE14", 0x800183e0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 14" },
+{ "HW_PINCTRL_DRIVE15", 0x800183f0, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 15" },
+{ "HW_PINCTRL_DRIVE16", 0x80018400, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 16" },
+{ "HW_PINCTRL_DRIVE17", 0x80018410, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 17" },
+{ "HW_PINCTRL_DRIVE18", 0x80018420, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 18" },
+{ "HW_PINCTRL_DRIVE19", 0x80018430, 0, 0xffffffff, 'x', "PINCTRL Driver Strength and Voltage Register 19" },
/* DIGCTL */
{ "HW_DIGCTL_CHIP_ID", 0x8001c310, 0, 0xffffffff, 'x', "Digital Control Chip Revision Register" },
/* Clock */
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-23 15:22:00
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b7d5c26720105dae1a66da7af84c081cd97889b2 (commit)
from a8d0d15a7134bc9e0342c5cfd3150ad59a441e92 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b7d5c26720105dae1a66da7af84c081cd97889b2
Author: Julien Boibessot <jul...@ar...>
Date: Wed Jan 23 16:07:24 2013 +0100
[LINUX] 3.0: 3.0.33 is the latest APF51 validated kernel so move to it
-----------------------------------------------------------------------
Summary of changes:
patches/linux/{3.0.12 => 3.0.33} | 0
1 files changed, 0 insertions(+), 0 deletions(-)
rename patches/linux/{3.0.12 => 3.0.33} (100%)
diff --git a/patches/linux/3.0.12 b/patches/linux/3.0.33
similarity index 100%
rename from patches/linux/3.0.12
rename to patches/linux/3.0.33
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-23 14:57:10
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via a8d0d15a7134bc9e0342c5cfd3150ad59a441e92 (commit)
from 71bfdf952cca34cb139d7b13681ee2c9bc6a43f9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a8d0d15a7134bc9e0342c5cfd3150ad59a441e92
Author: Julien Boibessot <jul...@ar...>
Date: Wed Jan 23 15:55:34 2013 +0100
[LINUX] 3.x: Add Armadeus boot logo support (create patches/linux/common/ for this purpose)
-----------------------------------------------------------------------
Summary of changes:
...15-armadeus-logo-add_armadeus-project_tux.patch |19266 +-------------------
...15-armadeus-logo-add_armadeus-project_tux.patch | 1 +
...15-armadeus-logo-add_armadeus-project_tux.patch | 1 +
...5-armadeus-logo-add_armadeus-project_tux.patch} | 10 +-
4 files changed, 8 insertions(+), 19270 deletions(-)
mode change 100644 => 120000 patches/linux/3.0/015-armadeus-logo-add_armadeus-project_tux.patch
create mode 120000 patches/linux/3.7/0015-armadeus-logo-add_armadeus-project_tux.patch
create mode 120000 patches/linux/3.8/0015-armadeus-logo-add_armadeus-project_tux.patch
copy patches/linux/{3.0/015-armadeus-logo-add_armadeus-project_tux.patch => common/0015-armadeus-logo-add_armadeus-project_tux.patch} (99%)
diff --git a/patches/linux/3.0/015-armadeus-logo-add_armadeus-project_tux.patch b/patches/linux/3.0/015-armadeus-logo-add_armadeus-project_tux.patch
deleted file mode 100644
index 84b8982..0000000
--- a/patches/linux/3.0/015-armadeus-logo-add_armadeus-project_tux.patch
+++ /dev/null
@@ -1,19265 +0,0 @@
-Index: linux-2.6.36/drivers/video/logo/Kconfig
-===================================================================
---- linux-2.6.36.orig/drivers/video/logo/Kconfig 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/video/logo/Kconfig 2010-10-21 14:29:22.000000000 +0200
-@@ -82,4 +82,11 @@
- depends on M32R
- default y
-
-+config LOGO_ARMADEUS_CLUT224
-+ bool "224-color Armadeus Linux logo"
-+ depends on ARM
-+ default y
-+ help
-+ Choose this if you want to have the Armadeus Tux as boot logo
-+
- endif # LOGO
-Index: linux-2.6.36/drivers/video/logo/logo.c
-===================================================================
---- linux-2.6.36.orig/drivers/video/logo/logo.c 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/video/logo/logo.c 2010-10-21 14:29:22.000000000 +0200
-@@ -100,6 +100,10 @@
- /* M32R Linux logo */
- logo = &logo_m32r_clut224;
- #endif
-+#ifdef CONFIG_LOGO_ARMADEUS_CLUT224
-+ /* Armadeus Linux logo */
-+ logo = &logo_armadeus_clut224;
-+#endif
- }
- return logo;
- }
-Index: linux-2.6.36/include/linux/linux_logo.h
-===================================================================
---- linux-2.6.36.orig/include/linux/linux_logo.h 2010-10-21 14:42:43.000000000 +0200
-+++ linux-2.6.36/include/linux/linux_logo.h 2010-10-21 14:45:46.000000000 +0200
-@@ -35,6 +35,7 @@
- extern const struct linux_logo logo_linux_mono;
- extern const struct linux_logo logo_linux_vga16;
- extern const struct linux_logo logo_linux_clut224;
-+extern const struct linux_logo logo_armadeus_clut224;
- extern const struct linux_logo logo_blackfin_vga16;
- extern const struct linux_logo logo_blackfin_clut224;
- extern const struct linux_logo logo_dec_clut224;
-Index: linux-2.6.36/drivers/video/logo/Makefile
-===================================================================
---- linux-2.6.36.orig/drivers/video/logo/Makefile 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/video/logo/Makefile 2010-10-21 14:29:22.000000000 +0200
-@@ -15,6 +15,7 @@
- obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
- obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
- obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
-+obj-$(CONFIG_LOGO_ARMADEUS_CLUT224) += logo_armadeus_clut224.o
-
- obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o
-
-Index: linux-2.6.36/drivers/video/logo/logo_armadeus_clut224.ppm
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.36/drivers/video/logo/logo_armadeus_clut224.ppm 2010-10-21 14:29:22.000000000 +0200
-@@ -0,0 +1,19205 @@
-+P3
-+# CREATOR: The GIMP's PNM Filter Version 1.0
-+# Armadeus project 224 colors Tux logo
-+80 80
-+255
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+6
-+6
-+6
-+10
-+10
-+10
-+10
-+10
-+10
-+10
-+10
-+10
-+6
-+6
-+6
-+6
-+6
-+6
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+10
-+10
-+10
-+14
-+14
-+14
-+22
-+22
-+22
-+26
-+26
-+26
-+30
-+30
-+30
-+34
-+34
-+34
-+30
-+30
-+30
-+30
-+30
-+30
-+26
-+26
-+26
-+18
-+18
-+18
-+14
-+14
-+14
-+10
-+10
-+10
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+14
-+14
-+14
-+26
-+26
-+26
-+42
-+42
-+42
-+54
-+54
-+54
-+66
-+66
-+66
-+78
-+78
-+78
-+78
-+78
-+78
-+78
-+78
-+78
-+74
-+74
-+74
-+66
-+66
-+66
-+54
-+54
-+54
-+42
-+42
-+42
-+26
-+26
-+26
-+18
-+18
-+18
-+10
-+10
-+10
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+22
-+22
-+22
-+42
-+42
-+42
-+66
-+66
-+66
-+86
-+86
-+86
-+66
-+66
-+66
-+38
-+38
-+38
-+38
-+38
-+38
-+22
-+22
-+22
-+26
-+26
-+26
-+34
-+34
-+34
-+54
-+54
-+54
-+66
-+66
-+66
-+86
-+86
-+86
-+70
-+70
-+70
-+46
-+46
-+46
-+26
-+26
-+26
-+14
-+14
-+14
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+50
-+50
-+50
-+82
-+82
-+82
-+58
-+58
-+58
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+54
-+54
-+54
-+86
-+86
-+86
-+66
-+66
-+66
-+38
-+38
-+38
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+22
-+22
-+22
-+50
-+50
-+50
-+78
-+78
-+78
-+34
-+34
-+34
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+70
-+70
-+70
-+78
-+78
-+78
-+46
-+46
-+46
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+42
-+42
-+42
-+82
-+82
-+82
-+26
-+26
-+26
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+14
-+14
-+14
-+46
-+46
-+46
-+34
-+34
-+34
-+6
-+6
-+6
-+2
-+2
-+6
-+42
-+42
-+42
-+78
-+78
-+78
-+42
-+42
-+42
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+30
-+30
-+30
-+66
-+66
-+66
-+58
-+58
-+58
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+26
-+26
-+26
-+86
-+86
-+86
-+101
-+101
-+101
-+46
-+46
-+46
-+10
-+10
-+10
-+2
-+2
-+6
-+58
-+58
-+58
-+70
-+70
-+70
-+34
-+34
-+34
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+86
-+86
-+86
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+30
-+30
-+30
-+94
-+94
-+94
-+94
-+94
-+94
-+58
-+58
-+58
-+26
-+26
-+26
-+2
-+2
-+6
-+6
-+6
-+6
-+78
-+78
-+78
-+54
-+54
-+54
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+22
-+22
-+22
-+62
-+62
-+62
-+62
-+62
-+62
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+26
-+26
-+26
-+54
-+54
-+54
-+38
-+38
-+38
-+18
-+18
-+18
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+34
-+34
-+34
-+82
-+82
-+82
-+38
-+38
-+38
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+30
-+30
-+30
-+78
-+78
-+78
-+30
-+30
-+30
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+78
-+78
-+78
-+50
-+50
-+50
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+38
-+38
-+38
-+86
-+86
-+86
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+54
-+54
-+54
-+66
-+66
-+66
-+26
-+26
-+26
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+82
-+82
-+82
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+14
-+14
-+14
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+82
-+82
-+82
-+34
-+34
-+34
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+46
-+46
-+46
-+86
-+86
-+86
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+6
-+6
-+6
-+22
-+22
-+22
-+34
-+34
-+34
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+34
-+34
-+34
-+10
-+10
-+10
-+50
-+50
-+50
-+22
-+22
-+22
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+86
-+86
-+86
-+42
-+42
-+42
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+46
-+46
-+46
-+86
-+86
-+86
-+2
-+2
-+6
-+2
-+2
-+6
-+38
-+38
-+38
-+116
-+116
-+116
-+94
-+94
-+94
-+22
-+22
-+22
-+22
-+22
-+22
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+14
-+14
-+14
-+86
-+86
-+86
-+137
-+137
-+137
-+161
-+161
-+161
-+154
-+153
-+152
-+38
-+38
-+38
-+26
-+26
-+26
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+86
-+86
-+86
-+46
-+46
-+46
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+46
-+46
-+46
-+86
-+86
-+86
-+2
-+2
-+6
-+14
-+14
-+14
-+134
-+134
-+134
-+198
-+198
-+198
-+195
-+195
-+195
-+116
-+116
-+116
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+101
-+98
-+89
-+187
-+187
-+187
-+210
-+210
-+210
-+218
-+218
-+218
-+214
-+214
-+214
-+134
-+134
-+134
-+14
-+14
-+14
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+86
-+86
-+86
-+50
-+50
-+50
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+46
-+46
-+46
-+86
-+86
-+86
-+2
-+2
-+6
-+54
-+54
-+54
-+218
-+218
-+218
-+195
-+195
-+195
-+226
-+226
-+226
-+246
-+246
-+246
-+58
-+58
-+58
-+2
-+2
-+6
-+2
-+2
-+6
-+30
-+30
-+30
-+210
-+210
-+210
-+253
-+253
-+253
-+173
-+173
-+172
-+123
-+123
-+123
-+221
-+221
-+221
-+234
-+234
-+234
-+74
-+74
-+74
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+70
-+70
-+70
-+58
-+58
-+58
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+46
-+46
-+46
-+82
-+82
-+82
-+2
-+2
-+6
-+106
-+106
-+106
-+171
-+171
-+170
-+26
-+26
-+26
-+86
-+86
-+86
-+226
-+226
-+226
-+123
-+123
-+123
-+10
-+10
-+10
-+14
-+14
-+14
-+46
-+46
-+46
-+231
-+231
-+231
-+190
-+190
-+190
-+6
-+6
-+6
-+70
-+70
-+70
-+90
-+90
-+90
-+238
-+238
-+238
-+159
-+158
-+157
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+70
-+70
-+70
-+58
-+58
-+58
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+86
-+86
-+86
-+6
-+6
-+6
-+116
-+116
-+116
-+106
-+106
-+106
-+6
-+6
-+6
-+70
-+70
-+70
-+147
-+147
-+147
-+127
-+127
-+127
-+18
-+18
-+18
-+38
-+38
-+38
-+54
-+54
-+54
-+221
-+221
-+221
-+106
-+106
-+106
-+2
-+2
-+6
-+14
-+14
-+14
-+46
-+46
-+46
-+190
-+190
-+190
-+198
-+198
-+198
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+74
-+74
-+74
-+62
-+62
-+62
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+94
-+94
-+94
-+14
-+14
-+14
-+101
-+101
-+101
-+127
-+127
-+127
-+2
-+2
-+6
-+18
-+18
-+18
-+116
-+116
-+116
-+130
-+98
-+46
-+121
-+92
-+8
-+121
-+92
-+8
-+100
-+78
-+10
-+161
-+161
-+161
-+106
-+106
-+106
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+195
-+195
-+195
-+195
-+195
-+195
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+74
-+74
-+74
-+62
-+62
-+62
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+1
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+38
-+38
-+38
-+90
-+90
-+90
-+14
-+14
-+14
-+58
-+58
-+58
-+210
-+210
-+210
-+26
-+26
-+26
-+52
-+36
-+6
-+155
-+116
-+10
-+226
-+170
-+11
-+236
-+186
-+11
-+225
-+175
-+15
-+184
-+144
-+12
-+215
-+174
-+15
-+182
-+146
-+52
-+37
-+28
-+9
-+2
-+2
-+6
-+70
-+70
-+70
-+246
-+246
-+246
-+137
-+137
-+137
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+70
-+70
-+70
-+66
-+66
-+66
-+26
-+26
-+26
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+38
-+38
-+38
-+86
-+86
-+86
-+14
-+14
-+14
-+10
-+10
-+10
-+195
-+195
-+195
-+203
-+179
-+129
-+192
-+133
-+9
-+225
-+175
-+15
-+239
-+182
-+13
-+236
-+190
-+10
-+232
-+195
-+16
-+232
-+200
-+30
-+245
-+216
-+46
-+241
-+208
-+19
-+232
-+195
-+16
-+184
-+144
-+12
-+203
-+179
-+129
-+211
-+206
-+186
-+42
-+42
-+42
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+50
-+50
-+50
-+74
-+74
-+74
-+30
-+30
-+30
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+34
-+34
-+34
-+86
-+86
-+86
-+14
-+14
-+14
-+2
-+2
-+6
-+121
-+87
-+25
-+192
-+133
-+9
-+219
-+162
-+10
-+239
-+182
-+13
-+236
-+186
-+11
-+232
-+195
-+16
-+241
-+208
-+19
-+245
-+216
-+46
-+245
-+216
-+46
-+245
-+216
-+46
-+246
-+215
-+20
-+241
-+208
-+19
-+241
-+208
-+19
-+226
-+184
-+13
-+121
-+87
-+25
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+50
-+50
-+50
-+82
-+82
-+82
-+34
-+34
-+34
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+34
-+34
-+34
-+82
-+82
-+82
-+30
-+30
-+30
-+61
-+42
-+6
-+180
-+123
-+7
-+206
-+145
-+10
-+230
-+174
-+11
-+239
-+182
-+13
-+236
-+190
-+10
-+238
-+202
-+15
-+241
-+208
-+19
-+237
-+201
-+75
-+245
-+216
-+46
-+246
-+215
-+20
-+246
-+215
-+20
-+246
-+215
-+20
-+226
-+184
-+13
-+215
-+174
-+15
-+184
-+144
-+12
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+26
-+26
-+26
-+94
-+94
-+94
-+42
-+42
-+42
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+30
-+30
-+30
-+78
-+78
-+78
-+50
-+50
-+50
-+104
-+69
-+6
-+192
-+133
-+9
-+216
-+158
-+10
-+236
-+178
-+12
-+236
-+186
-+11
-+232
-+195
-+16
-+241
-+208
-+19
-+245
-+216
-+46
-+245
-+216
-+46
-+246
-+215
-+20
-+246
-+215
-+20
-+241
-+208
-+19
-+198
-+155
-+10
-+200
-+144
-+11
-+216
-+158
-+10
-+155
-+116
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+90
-+90
-+90
-+54
-+54
-+54
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+30
-+30
-+30
-+78
-+78
-+78
-+46
-+46
-+46
-+22
-+22
-+22
-+137
-+92
-+6
-+210
-+164
-+10
-+239
-+182
-+13
-+236
-+190
-+10
-+238
-+202
-+15
-+241
-+208
-+19
-+246
-+215
-+20
-+246
-+215
-+20
-+241
-+208
-+19
-+210
-+164
-+10
-+185
-+133
-+11
-+210
-+150
-+10
-+216
-+158
-+10
-+210
-+150
-+10
-+100
-+78
-+10
-+2
-+2
-+6
-+6
-+6
-+6
-+54
-+54
-+54
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+62
-+62
-+62
-+74
-+74
-+74
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+34
-+34
-+34
-+78
-+78
-+78
-+50
-+50
-+50
-+6
-+6
-+6
-+80
-+60
-+22
-+139
-+102
-+15
-+190
-+146
-+13
-+226
-+184
-+13
-+232
-+200
-+30
-+232
-+195
-+16
-+215
-+174
-+15
-+190
-+146
-+13
-+168
-+122
-+10
-+192
-+133
-+9
-+210
-+150
-+10
-+213
-+154
-+11
-+202
-+158
-+25
-+168
-+150
-+104
-+101
-+98
-+89
-+2
-+2
-+6
-+2
-+2
-+6
-+78
-+78
-+78
-+116
-+116
-+116
-+58
-+58
-+58
-+2
-+2
-+6
-+22
-+22
-+22
-+90
-+90
-+90
-+46
-+46
-+46
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+38
-+38
-+38
-+86
-+86
-+86
-+50
-+50
-+50
-+6
-+6
-+6
-+127
-+127
-+127
-+168
-+150
-+104
-+156
-+107
-+11
-+168
-+122
-+10
-+198
-+155
-+10
-+184
-+144
-+12
-+197
-+138
-+11
-+200
-+144
-+11
-+206
-+145
-+10
-+206
-+145
-+10
-+197
-+138
-+11
-+203
-+179
-+129
-+195
-+195
-+195
-+198
-+198
-+198
-+173
-+173
-+172
-+14
-+14
-+14
-+2
-+2
-+6
-+22
-+22
-+22
-+116
-+116
-+116
-+116
-+116
-+116
-+22
-+22
-+22
-+2
-+2
-+6
-+74
-+74
-+74
-+70
-+70
-+70
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+50
-+50
-+50
-+101
-+101
-+101
-+26
-+26
-+26
-+10
-+10
-+10
-+137
-+137
-+137
-+190
-+190
-+190
-+168
-+150
-+104
-+156
-+107
-+11
-+197
-+138
-+11
-+200
-+144
-+11
-+197
-+138
-+11
-+192
-+133
-+9
-+180
-+123
-+7
-+190
-+142
-+34
-+203
-+179
-+129
-+187
-+187
-+187
-+202
-+202
-+202
-+221
-+221
-+221
-+214
-+214
-+214
-+66
-+66
-+66
-+2
-+2
-+6
-+2
-+2
-+6
-+50
-+50
-+50
-+62
-+62
-+62
-+6
-+6
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+90
-+90
-+90
-+50
-+50
-+50
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+34
-+34
-+34
-+74
-+74
-+74
-+74
-+74
-+74
-+2
-+2
-+6
-+6
-+6
-+6
-+144
-+144
-+144
-+198
-+198
-+198
-+190
-+190
-+190
-+170
-+164
-+156
-+154
-+121
-+60
-+156
-+107
-+11
-+156
-+107
-+11
-+168
-+124
-+44
-+168
-+150
-+104
-+187
-+187
-+187
-+190
-+190
-+190
-+210
-+210
-+210
-+246
-+246
-+246
-+253
-+253
-+253
-+253
-+253
-+253
-+182
-+182
-+182
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+62
-+62
-+62
-+74
-+74
-+74
-+34
-+34
-+34
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+22
-+22
-+22
-+54
-+54
-+54
-+94
-+94
-+94
-+18
-+18
-+18
-+2
-+2
-+6
-+46
-+46
-+46
-+234
-+234
-+234
-+221
-+221
-+221
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+187
-+187
-+187
-+187
-+187
-+187
-+190
-+190
-+190
-+190
-+190
-+190
-+195
-+195
-+195
-+214
-+214
-+214
-+242
-+242
-+242
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+82
-+82
-+82
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+14
-+14
-+14
-+86
-+86
-+86
-+54
-+54
-+54
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+46
-+46
-+46
-+90
-+90
-+90
-+46
-+46
-+46
-+18
-+18
-+18
-+6
-+6
-+6
-+182
-+182
-+182
-+253
-+253
-+253
-+246
-+246
-+246
-+206
-+206
-+206
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+190
-+206
-+206
-+206
-+231
-+231
-+231
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+202
-+202
-+202
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+42
-+42
-+42
-+86
-+86
-+86
-+42
-+42
-+42
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+14
-+14
-+14
-+38
-+38
-+38
-+74
-+74
-+74
-+66
-+66
-+66
-+2
-+2
-+6
-+6
-+6
-+6
-+90
-+90
-+90
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+238
-+238
-+238
-+198
-+198
-+198
-+190
-+190
-+190
-+190
-+190
-+190
-+195
-+195
-+195
-+221
-+221
-+221
-+246
-+246
-+246
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+82
-+82
-+82
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+78
-+78
-+78
-+70
-+70
-+70
-+34
-+34
-+34
-+14
-+14
-+14
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+34
-+34
-+34
-+66
-+66
-+66
-+78
-+78
-+78
-+6
-+6
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+218
-+218
-+218
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+246
-+246
-+246
-+226
-+226
-+226
-+231
-+231
-+231
-+246
-+246
-+246
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+179
-+179
-+178
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+90
-+90
-+90
-+62
-+62
-+62
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+58
-+58
-+58
-+90
-+90
-+90
-+18
-+18
-+18
-+2
-+2
-+6
-+2
-+2
-+6
-+111
-+111
-+110
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+231
-+231
-+231
-+18
-+18
-+18
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+94
-+94
-+94
-+54
-+54
-+54
-+26
-+26
-+26
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+22
-+22
-+22
-+50
-+50
-+50
-+90
-+90
-+90
-+26
-+26
-+26
-+2
-+2
-+6
-+2
-+2
-+6
-+14
-+14
-+14
-+195
-+195
-+195
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+242
-+242
-+242
-+54
-+54
-+54
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+38
-+38
-+38
-+86
-+86
-+86
-+50
-+50
-+50
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+14
-+14
-+14
-+38
-+38
-+38
-+82
-+82
-+82
-+34
-+34
-+34
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+42
-+42
-+42
-+195
-+195
-+195
-+246
-+246
-+246
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+242
-+242
-+242
-+242
-+242
-+242
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+246
-+246
-+246
-+238
-+238
-+238
-+226
-+226
-+226
-+231
-+231
-+231
-+101
-+101
-+101
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+38
-+38
-+38
-+82
-+82
-+82
-+42
-+42
-+42
-+14
-+14
-+14
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+62
-+62
-+62
-+66
-+66
-+66
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+70
-+70
-+70
-+171
-+171
-+170
-+206
-+206
-+206
-+234
-+234
-+234
-+246
-+246
-+246
-+250
-+250
-+250
-+250
-+250
-+250
-+238
-+238
-+238
-+226
-+226
-+226
-+231
-+231
-+231
-+238
-+238
-+238
-+250
-+250
-+250
-+250
-+250
-+250
-+250
-+250
-+250
-+246
-+246
-+246
-+231
-+231
-+231
-+214
-+214
-+214
-+206
-+206
-+206
-+202
-+202
-+202
-+202
-+202
-+202
-+198
-+198
-+198
-+202
-+202
-+202
-+182
-+182
-+182
-+18
-+18
-+18
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+62
-+62
-+62
-+66
-+66
-+66
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+82
-+82
-+82
-+18
-+18
-+18
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+94
-+94
-+94
-+182
-+182
-+182
-+218
-+218
-+218
-+242
-+242
-+242
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+234
-+234
-+234
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+246
-+246
-+246
-+238
-+238
-+238
-+226
-+226
-+226
-+210
-+210
-+210
-+202
-+202
-+202
-+195
-+195
-+195
-+195
-+195
-+195
-+210
-+210
-+210
-+159
-+158
-+157
-+6
-+6
-+6
-+14
-+14
-+14
-+50
-+50
-+50
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+86
-+86
-+86
-+46
-+46
-+46
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+22
-+22
-+22
-+54
-+54
-+54
-+70
-+70
-+70
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+2
-+2
-+6
-+22
-+22
-+22
-+169
-+169
-+168
-+231
-+231
-+231
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+242
-+242
-+242
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+246
-+246
-+246
-+231
-+231
-+231
-+206
-+206
-+206
-+198
-+198
-+198
-+226
-+226
-+226
-+94
-+94
-+94
-+2
-+2
-+6
-+6
-+6
-+6
-+38
-+38
-+38
-+30
-+30
-+30
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+62
-+62
-+62
-+66
-+66
-+66
-+26
-+26
-+26
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+30
-+30
-+30
-+74
-+74
-+74
-+50
-+50
-+50
-+2
-+2
-+6
-+26
-+26
-+26
-+26
-+26
-+26
-+2
-+2
-+6
-+106
-+106
-+106
-+238
-+238
-+238
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+246
-+246
-+246
-+218
-+218
-+218
-+202
-+202
-+202
-+210
-+210
-+210
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+30
-+30
-+30
-+22
-+22
-+22
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+18
-+18
-+18
-+86
-+86
-+86
-+42
-+42
-+42
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+14
-+14
-+14
-+42
-+42
-+42
-+90
-+90
-+90
-+22
-+22
-+22
-+2
-+2
-+6
-+42
-+42
-+42
-+2
-+2
-+6
-+18
-+18
-+18
-+218
-+218
-+218
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+221
-+221
-+221
-+218
-+218
-+218
-+101
-+101
-+101
-+2
-+2
-+6
-+14
-+14
-+14
-+18
-+18
-+18
-+38
-+38
-+38
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+78
-+78
-+78
-+58
-+58
-+58
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+54
-+54
-+54
-+82
-+82
-+82
-+2
-+2
-+6
-+26
-+26
-+26
-+22
-+22
-+22
-+2
-+2
-+6
-+123
-+123
-+123
-+253
-+253
-+253
-+253
-+253
-+253
-+252
-+252
-+252
-+240
-+240
-+239
-+216
-+215
-+215
-+161
-+161
-+161
-+106
-+105
-+104
-+66
-+66
-+66
-+44
-+43
-+41
-+34
-+33
-+31
-+38
-+37
-+36
-+56
-+55
-+54
-+84
-+83
-+82
-+130
-+130
-+129
-+182
-+182
-+182
-+217
-+217
-+217
-+237
-+237
-+237
-+252
-+252
-+252
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+250
-+250
-+250
-+238
-+238
-+238
-+198
-+198
-+198
-+6
-+6
-+6
-+38
-+38
-+38
-+58
-+58
-+58
-+26
-+26
-+26
-+38
-+38
-+38
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+46
-+46
-+46
-+78
-+78
-+78
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+30
-+30
-+30
-+74
-+74
-+74
-+58
-+58
-+58
-+2
-+2
-+6
-+42
-+42
-+42
-+2
-+2
-+6
-+22
-+22
-+22
-+231
-+231
-+231
-+252
-+252
-+252
-+240
-+240
-+239
-+182
-+182
-+182
-+111
-+111
-+110
-+46
-+46
-+46
-+26
-+25
-+23
-+26
-+25
-+23
-+25
-+24
-+22
-+25
-+24
-+22
-+25
-+24
-+22
-+25
-+24
-+22
-+25
-+24
-+22
-+25
-+24
-+22
-+26
-+25
-+23
-+26
-+25
-+23
-+49
-+48
-+47
-+106
-+106
-+106
-+192
-+192
-+192
-+249
-+249
-+249
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+246
-+246
-+246
-+46
-+46
-+46
-+38
-+38
-+38
-+42
-+42
-+42
-+14
-+14
-+14
-+38
-+38
-+38
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+86
-+86
-+86
-+46
-+46
-+46
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+14
-+14
-+14
-+42
-+42
-+42
-+90
-+90
-+90
-+18
-+18
-+18
-+18
-+18
-+18
-+26
-+26
-+26
-+2
-+2
-+6
-+116
-+116
-+116
-+251
-+251
-+251
-+217
-+216
-+216
-+123
-+123
-+123
-+44
-+43
-+41
-+26
-+25
-+23
-+26
-+25
-+23
-+25
-+24
-+22
-+28
-+27
-+25
-+33
-+32
-+30
-+36
-+35
-+33
-+36
-+35
-+33
-+35
-+34
-+32
-+32
-+31
-+28
-+29
-+28
-+27
-+26
-+25
-+23
-+26
-+25
-+23
-+26
-+25
-+23
-+26
-+25
-+23
-+87
-+86
-+84
-+217
-+216
-+216
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+94
-+94
-+94
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+34
-+34
-+34
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+74
-+74
-+74
-+58
-+58
-+58
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+66
-+66
-+66
-+82
-+82
-+82
-+2
-+2
-+6
-+38
-+38
-+38
-+6
-+6
-+6
-+14
-+14
-+14
-+206
-+206
-+206
-+196
-+196
-+195
-+84
-+83
-+82
-+27
-+26
-+24
-+26
-+25
-+23
-+26
-+25
-+23
-+34
-+33
-+31
-+56
-+55
-+54
-+95
-+95
-+93
-+135
-+135
-+134
-+157
-+157
-+157
-+160
-+160
-+159
-+154
-+153
-+152
-+130
-+130
-+129
-+100
-+99
-+98
-+66
-+66
-+66
-+56
-+55
-+54
-+46
-+45
-+44
-+33
-+32
-+30
-+46
-+46
-+46
-+160
-+160
-+159
-+248
-+248
-+248
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+144
-+144
-+144
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+46
-+46
-+46
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+42
-+42
-+42
-+74
-+74
-+74
-+30
-+30
-+30
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+14
-+14
-+14
-+42
-+42
-+42
-+90
-+90
-+90
-+26
-+26
-+26
-+6
-+6
-+6
-+42
-+42
-+42
-+2
-+2
-+6
-+74
-+74
-+74
-+184
-+184
-+184
-+60
-+59
-+56
-+26
-+25
-+23
-+26
-+25
-+23
-+29
-+28
-+27
-+60
-+59
-+56
-+127
-+127
-+127
-+217
-+217
-+217
-+253
-+253
-+253
-+245
-+245
-+245
-+252
-+252
-+252
-+253
-+253
-+253
-+253
-+253
-+253
-+217
-+216
-+216
-+190
-+190
-+189
-+208
-+207
-+207
-+212
-+212
-+212
-+184
-+184
-+184
-+130
-+130
-+129
-+50
-+50
-+50
-+88
-+88
-+86
-+217
-+217
-+217
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+182
-+182
-+182
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+46
-+46
-+46
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+86
-+86
-+86
-+38
-+38
-+38
-+10
-+10
-+10
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+66
-+66
-+66
-+82
-+82
-+82
-+2
-+2
-+6
-+22
-+22
-+22
-+18
-+18
-+18
-+2
-+2
-+6
-+147
-+147
-+147
-+100
-+99
-+98
-+26
-+25
-+23
-+26
-+25
-+23
-+29
-+28
-+27
-+79
-+79
-+77
-+181
-+181
-+180
-+251
-+251
-+251
-+248
-+248
-+248
-+198
-+198
-+197
-+130
-+130
-+129
-+198
-+198
-+197
-+253
-+253
-+253
-+252
-+252
-+252
-+115
-+114
-+113
-+35
-+34
-+32
-+111
-+111
-+110
-+231
-+231
-+230
-+253
-+253
-+253
-+218
-+218
-+218
-+66
-+66
-+66
-+35
-+34
-+32
-+161
-+161
-+161
-+249
-+249
-+249
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+206
-+206
-+206
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+38
-+38
-+38
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+86
-+86
-+86
-+46
-+46
-+46
-+14
-+14
-+14
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+46
-+46
-+46
-+86
-+86
-+86
-+18
-+18
-+18
-+2
-+2
-+6
-+34
-+34
-+34
-+10
-+10
-+10
-+6
-+6
-+6
-+210
-+210
-+210
-+154
-+153
-+152
-+28
-+27
-+25
-+26
-+25
-+23
-+53
-+52
-+50
-+198
-+198
-+197
-+253
-+253
-+253
-+253
-+253
-+253
-+226
-+226
-+226
-+119
-+119
-+118
-+27
-+26
-+24
-+94
-+93
-+92
-+181
-+181
-+180
-+157
-+157
-+157
-+60
-+59
-+56
-+61
-+60
-+58
-+173
-+173
-+172
-+246
-+246
-+246
-+253
-+253
-+253
-+161
-+161
-+161
-+27
-+26
-+24
-+26
-+25
-+23
-+90
-+90
-+90
-+230
-+230
-+229
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+221
-+221
-+221
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+6
-+6
-+6
-+30
-+30
-+30
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+82
-+82
-+82
-+54
-+54
-+54
-+18
-+18
-+18
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+26
-+26
-+26
-+66
-+66
-+66
-+62
-+62
-+62
-+2
-+2
-+6
-+2
-+2
-+6
-+38
-+38
-+38
-+10
-+10
-+10
-+26
-+26
-+26
-+238
-+238
-+238
-+226
-+226
-+226
-+79
-+79
-+77
-+26
-+25
-+23
-+50
-+50
-+50
-+181
-+181
-+180
-+249
-+249
-+249
-+253
-+253
-+253
-+247
-+247
-+247
-+198
-+198
-+197
-+144
-+143
-+142
-+106
-+106
-+106
-+100
-+99
-+98
-+95
-+95
-+93
-+127
-+127
-+127
-+192
-+192
-+192
-+251
-+251
-+251
-+253
-+253
-+253
-+216
-+215
-+215
-+79
-+79
-+77
-+26
-+25
-+23
-+26
-+25
-+23
-+29
-+28
-+27
-+181
-+181
-+180
-+252
-+252
-+252
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+231
-+231
-+231
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+10
-+10
-+10
-+30
-+30
-+30
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+66
-+66
-+66
-+58
-+58
-+58
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+10
-+10
-+10
-+38
-+38
-+38
-+78
-+78
-+78
-+6
-+6
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+46
-+46
-+46
-+14
-+14
-+14
-+42
-+42
-+42
-+246
-+246
-+246
-+250
-+250
-+250
-+161
-+161
-+161
-+36
-+35
-+33
-+26
-+25
-+23
-+53
-+52
-+50
-+130
-+130
-+129
-+208
-+208
-+208
-+249
-+249
-+249
-+253
-+253
-+253
-+253
-+253
-+253
-+230
-+230
-+229
-+210
-+210
-+210
-+214
-+214
-+214
-+242
-+242
-+242
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+196
-+196
-+195
-+46
-+46
-+46
-+26
-+25
-+23
-+26
-+25
-+23
-+26
-+25
-+23
-+94
-+93
-+92
-+231
-+231
-+230
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+234
-+234
-+234
-+10
-+10
-+10
-+2
-+2
-+6
-+2
-+2
-+6
-+22
-+22
-+22
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+66
-+66
-+66
-+62
-+62
-+62
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+50
-+50
-+50
-+74
-+74
-+74
-+2
-+2
-+6
-+2
-+2
-+6
-+14
-+14
-+14
-+70
-+70
-+70
-+34
-+34
-+34
-+62
-+62
-+62
-+250
-+250
-+250
-+253
-+253
-+253
-+224
-+223
-+223
-+84
-+83
-+82
-+26
-+25
-+23
-+26
-+25
-+23
-+34
-+33
-+31
-+74
-+73
-+72
-+144
-+144
-+144
-+203
-+203
-+202
-+240
-+240
-+239
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+231
-+231
-+230
-+106
-+105
-+104
-+26
-+25
-+23
-+26
-+25
-+23
-+26
-+25
-+23
-+38
-+37
-+36
-+173
-+173
-+172
-+250
-+250
-+250
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+253
-+234
-+234
-+234
-+14
-+14
-+14
-+2
-+2
-+6
-+2
-+2
-+6
-+30
-+30
-+30
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+66
-+66
-+66
-+62
-+62
-+62
-+22
-+22
-+22
-+6
-+6
-+6
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+0
-+6
-+6
-+6
-+18
-+18
-+18
-+54
-+54
-+54
-+62
-+62
-+62
-+2
-+2
-+6
-+2
-+2
-+6
-+2
-+2
-+6
-+30
-+30
-+30
-+46
-+46
-+46
-+70
-+70
-+70
-+25...
[truncated message content] |
|
From: Julien B a. A. <ar...@us...> - 2013-01-22 13:02:33
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 71bfdf952cca34cb139d7b13681ee2c9bc6a43f9 (commit)
via 3a9640e885df3ebb2ac391520cfc2bd73b46e59c (commit)
from ee60c0338a348953b13bc2a7ae7f280b7ca709c9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 71bfdf952cca34cb139d7b13681ee2c9bc6a43f9
Author: Julien Boibessot <jul...@ar...>
Date: Tue Jan 22 14:01:25 2013 +0100
[LINUX] Move 3.7 support to 3.7.4
commit 3a9640e885df3ebb2ac391520cfc2bd73b46e59c
Author: Julien Boibessot <jul...@ar...>
Date: Tue Jan 22 12:12:50 2013 +0100
[BUILD] Add a comment to armadeus_env.sh generated file
-----------------------------------------------------------------------
Summary of changes:
Makefile | 5 +++--
...linux-3.7.1.config => apf27-linux-3.7.4.config} | 0
...linux-3.7.1.config => apf28-linux-3.7.4.config} | 0
...nux-3.7.1.config => apf9328-linux-3.7.4.config} | 0
patches/linux/{3.7.1 => 3.7.4} | 0
5 files changed, 3 insertions(+), 2 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.7.1.config => apf27-linux-3.7.4.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.7.1.config => apf28-linux-3.7.4.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.7.1.config => apf9328-linux-3.7.4.config} (100%)
rename patches/linux/{3.7.1 => 3.7.4} (100%)
diff --git a/Makefile b/Makefile
index 771b6cd..75d5200 100644
--- a/Makefile
+++ b/Makefile
@@ -181,14 +181,15 @@ clean:
@echo " Ctrl+c to stop now"
@read answer
rm -rf $(BUILDROOT_DIR)/output
- rm -f armadeus_env.sh
+ rm -f $(ARMADEUS_ENV_FILE)
buildroot-dirclean:
rm -rf $(BUILDROOT_DIR)
# Generate shell's most useful variables:
shell_env:
- @echo ARMADEUS_BUILDROOT_DIR=$(BUILDROOT_DIR) > $(ARMADEUS_ENV_FILE)
+ @echo "# Automatically generated file !" > $(ARMADEUS_ENV_FILE)
+ @echo ARMADEUS_BUILDROOT_DIR=$(BUILDROOT_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_BUILDROOT_VERSION=$(BUILDROOT_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_BUILDROOT_PATCH_DIR=$(BUILDROOT_PATCH_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_LINUX_DIR=$(ARMADEUS_LINUX_DIR) >> $(ARMADEUS_ENV_FILE)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.1.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.7.4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.7.1.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.7.4.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.1.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.7.4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.7.1.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.7.4.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.1.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.1.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.7.4.config
diff --git a/patches/linux/3.7.1 b/patches/linux/3.7.4
similarity index 100%
rename from patches/linux/3.7.1
rename to patches/linux/3.7.4
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-20 20:56:56
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ee60c0338a348953b13bc2a7ae7f280b7ca709c9 (commit)
via af8670157ff63ec3d43da86420c2990bc257e022 (commit)
from 05df53c6a4a23cce58ed41a4a29f3273baebc4f2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ee60c0338a348953b13bc2a7ae7f280b7ca709c9
Author: Julien Boibessot <jul...@ar...>
Date: Sun Jan 20 21:56:15 2013 +0100
[LINUX] 3.8: move rc2 support to rc4
commit af8670157ff63ec3d43da86420c2990bc257e022
Author: Julien Boibessot <jul...@ar...>
Date: Sun Jan 20 21:53:37 2013 +0100
[LINUX] 3.8: APF51: fix default config so that DTB is bootable
-----------------------------------------------------------------------
Summary of changes:
...x-3.8-rc2.config => apf27-linux-3.8-rc4.config} | 0
...x-3.8-rc2.config => apf28-linux-3.8-rc4.config} | 0
...x-3.8-rc2.config => apf51-linux-3.8-rc4.config} | 0
.../device/armadeus/apf51/apf51-linux-3.8.config | 9 ++++-----
...3.8-rc2.config => apf9328-linux-3.8-rc4.config} | 0
patches/linux/{3.8-rc2 => 3.8-rc4} | 0
6 files changed, 4 insertions(+), 5 deletions(-)
rename buildroot/target/device/armadeus/apf27/{apf27-linux-3.8-rc2.config => apf27-linux-3.8-rc4.config} (100%)
rename buildroot/target/device/armadeus/apf28/{apf28-linux-3.8-rc2.config => apf28-linux-3.8-rc4.config} (100%)
rename buildroot/target/device/armadeus/apf51/{apf51-linux-3.8-rc2.config => apf51-linux-3.8-rc4.config} (100%)
rename buildroot/target/device/armadeus/apf9328/{apf9328-linux-3.8-rc2.config => apf9328-linux-3.8-rc4.config} (100%)
rename patches/linux/{3.8-rc2 => 3.8-rc4} (100%)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc2.config b/buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc2.config
rename to buildroot/target/device/armadeus/apf27/apf27-linux-3.8-rc4.config
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc2.config b/buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc2.config
rename to buildroot/target/device/armadeus/apf28/apf28-linux-3.8-rc4.config
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc2.config b/buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc2.config
rename to buildroot/target/device/armadeus/apf51/apf51-linux-3.8-rc4.config
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-3.8.config b/buildroot/target/device/armadeus/apf51/apf51-linux-3.8.config
index 8ec9ac2..097e725 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-linux-3.8.config
+++ b/buildroot/target/device/armadeus/apf51/apf51-linux-3.8.config
@@ -28,18 +28,17 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_IMX=y
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_NEON=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_APM_EMULATION=y
+# CONFIG_SUSPEND is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc2.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc4.config
similarity index 100%
rename from buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc2.config
rename to buildroot/target/device/armadeus/apf9328/apf9328-linux-3.8-rc4.config
diff --git a/patches/linux/3.8-rc2 b/patches/linux/3.8-rc4
similarity index 100%
rename from patches/linux/3.8-rc2
rename to patches/linux/3.8-rc4
hooks/post-receive
--
armadeus
|
|
From: jorasse <jo...@us...> - 2013-01-18 00:10:27
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 05df53c6a4a23cce58ed41a4a29f3273baebc4f2 (commit)
from 1760bbaa5e39f3e715fd31334ce21f38fa5d2250 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 05df53c6a4a23cce58ed41a4a29f3273baebc4f2
Author: Eric Jarrige <eri...@ar...>
Date: Fri Jan 18 01:08:34 2013 +0100
[LINUX] 2.6.35: APF28:Â disable by default DMA mode for Application UART - DMA mode may be source of extra delays with communication based on too few amount of bytes : terminal, GPS, GSM/GPRS..
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf28/apf28-linux-2.6.35.config | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf28/apf28-linux-2.6.35.config b/buildroot/target/device/armadeus/apf28/apf28-linux-2.6.35.config
index b425914..c2991f1 100644
--- a/buildroot/target/device/armadeus/apf28/apf28-linux-2.6.35.config
+++ b/buildroot/target/device/armadeus/apf28/apf28-linux-2.6.35.config
@@ -263,15 +263,15 @@ CONFIG_MXS_PWM_CHANNELS=8
CONFIG_MXS_AUART_DMA_SUPPORT=y
CONFIG_MXS_AUART_PORTS=5
CONFIG_MXS_AUART0_DEVICE_ENABLE=y
-CONFIG_MXS_AUART0_DMA_ENABLE=y
+# CONFIG_MXS_AUART0_DMA_ENABLE is not set
CONFIG_MXS_AUART1_DEVICE_ENABLE=y
-CONFIG_MXS_AUART1_DMA_ENABLE=y
+# CONFIG_MXS_AUART1_DMA_ENABLE is not set
CONFIG_MXS_AUART2_DEVICE_ENABLE=y
-CONFIG_MXS_AUART2_DMA_ENABLE=y
+# CONFIG_MXS_AUART2_DMA_ENABLE is not set
CONFIG_MXS_AUART3_DEVICE_ENABLE=y
-CONFIG_MXS_AUART3_DMA_ENABLE=y
+# CONFIG_MXS_AUART3_DMA_ENABLE is not set
CONFIG_MXS_AUART4_DEVICE_ENABLE=y
-CONFIG_MXS_AUART4_DMA_ENABLE=y
+# CONFIG_MXS_AUART4_DMA_ENABLE is not set
# CONFIG_MXS_RAM_FREQ_SCALING is not set
#
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2013-01-17 20:17:13
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 1760bbaa5e39f3e715fd31334ce21f38fa5d2250 (commit)
via 50be3cca75028e8297481c39f9e062b9274ad583 (commit)
from 7a044ab38e21c3c79f11c7b936326b9ab0781c50 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1760bbaa5e39f3e715fd31334ce21f38fa5d2250
Author: Julien Boibessot <jul...@ar...>
Date: Thu Jan 17 21:16:21 2013 +0100
[TEST] Fixes mplayer test on APF28 (thanks Nouchi)
commit 50be3cca75028e8297481c39f9e062b9274ad583
Author: Julien Boibessot <jul...@ar...>
Date: Wed Jan 16 09:31:50 2013 +0100
Fixes comments
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf28/apf28-u-boot-2012.04.h | 4 ++--
.../device/armadeus/apf28/apf28-u-boot-2012.10.h | 4 ++--
target/test/packages/test_mplayer.sh | 18 ++++++++++++++----
3 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.04.h b/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.04.h
index 09977ca..e03fad7 100644
--- a/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.04.h
+++ b/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.04.h
@@ -1,5 +1,5 @@
/*
- * Configuration settings for the Armadeus Project motherboard APF28.
+ * Configuration settings for the Armadeus Project APF28 module.
*
* Copyright (C) 2011-2012 ej / Armadeus Project <eri...@ar...>
*
@@ -33,7 +33,7 @@
* SoC configurations
*/
#define CONFIG_MX28 /* i.MX28 SoC */
-#define CONFIG_MACH_TYPE 3845 /* APF9328 */
+#define CONFIG_MACH_TYPE 3845 /* APF28 */
/*
* Enable the call to miscellaneous platform dependent initialization.
diff --git a/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.10.h b/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.10.h
index 4b7db71..3562df1 100644
--- a/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.10.h
+++ b/buildroot/target/device/armadeus/apf28/apf28-u-boot-2012.10.h
@@ -1,5 +1,5 @@
/*
- * Configuration settings for the Armadeus Project motherboard APF28.
+ * Configuration settings for the Armadeus Project APF28 module.
*
* Copyright (C) 2011-2012 ej / Armadeus Project <eri...@ar...>
*
@@ -33,7 +33,7 @@
* SoC configurations
*/
#define CONFIG_MX28 /* i.MX28 SoC */
-#define CONFIG_MACH_TYPE 3845 /* APF9328 */
+#define CONFIG_MACH_TYPE 3845 /* APF28 */
/*
* Enable the call to miscellaneous platform dependent initialization.
diff --git a/target/test/packages/test_mplayer.sh b/target/test/packages/test_mplayer.sh
index cbb80b2..03e11ea 100755
--- a/target/test/packages/test_mplayer.sh
+++ b/target/test/packages/test_mplayer.sh
@@ -1,9 +1,9 @@
#!/bin/sh
#
-# Script to test a Buildroot package for Armadeus Software release
+# Script to test mplayer's Buildroot package for Armadeus software release
#
-# Copyright (C) 2008 The Armadeus Project
+# Copyright (C) 2008-2013 The Armadeus Project
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,13 +20,22 @@ source ./test_env.sh
EXEC_NAME="mplayer"
FILE_WEB_ADDRESS="http://www.armadeus.com//assos_downloads/misc/apf27.mpg"
VIDEO_FILE_NAME="$TEMP_DIR/apf27.mpg"
+FBDEV=fbdev
+platform_specific_stuff()
+{
+ if [ "$1" == "APF28" ]; then
+ FBDEV=fbdev2
+ fi
+}
+
+# for the end of the test:
remove_files()
{
if [ "$1" == "APF9328" ]; then
# We are a little short in memory on APF9328
rm -f $VIDEO_FILE_NAME
- elif [ "$1" == "APF27" ] || [ "$1" == "APF51" ]; then
+ elif [ "$1" == "APF27" ] || [ "$1" == "APF51" ] || [ "$1" == "APF28" ]; then
echo
else
echo "Platform not supported by this test"
@@ -56,8 +65,9 @@ test_mplayer()
fi
fi
+ execute_for_target platform_specific_stuff
# Launch it
- $EXEC_NAME -vo fbdev -nosound -fs $VIDEO_FILE_NAME
+ $EXEC_NAME -vo $FBDEV -nosound -fs $VIDEO_FILE_NAME
RES=$?
# Make cursor blink again
echo 1 > /sys/class/graphics/fbcon/cursor_blink
hooks/post-receive
--
armadeus
|
|
From: jorasse <jo...@us...> - 2013-01-14 23:13:56
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 7a044ab38e21c3c79f11c7b936326b9ab0781c50 (commit)
from 288d696b320bd58b59fa008555ffd6b413eb71c7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7a044ab38e21c3c79f11c7b936326b9ab0781c50
Author: Eric Jarrige <eri...@ar...>
Date: Tue Jan 15 00:18:09 2013 +0100
[UBOOT] 2012.10: APF27: add I2C driver with support for I2C multibus
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf27/apf27-u-boot-2012.10.h | 14 ++++++----
...-add-support-for-the-armadeus-APF27-board.patch | 15 +++++++++++-
...pf27-Add-FPGA-support-for-the-apf27-board.patch | 2 +-
.../u-boot/2012.10/370-imx27-add-i2c-driver.patch | 25 ++++++++++++++++++++
4 files changed, 48 insertions(+), 8 deletions(-)
create mode 100644 patches/u-boot/2012.10/370-imx27-add-i2c-driver.patch
diff --git a/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.10.h b/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.10.h
index da1cb11..4839d5b 100644
--- a/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.10.h
+++ b/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.10.h
@@ -25,7 +25,7 @@
#define CONFIG_VERSION_VARIABLE
#define CONFIG_ENV_VERSION "3.3"
-#define CONFIG_IDENT_STRING " apf27 patch 3.8"
+#define CONFIG_IDENT_STRING " apf27 patch 3.9"
#define CONFIG_BOARD_NAME apf27
/*
@@ -92,11 +92,14 @@
#define CONFIG_CMD_ASKENV /* ask for env variable */
#define CONFIG_CMD_BSP /* Board Specific functions */
#define CONFIG_CMD_CACHE /* icache, dcache */
+#define CONFIG_CMD_DATE
#define CONFIG_CMD_DHCP /* DHCP Support */
#define CONFIG_CMD_DNS
+#define CONFIG_CMD_EEPROM
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_FAT /* FAT support */
#define CONFIG_CMD_IMX_FUSE /* imx iim fuse */
+#define CONFIG_CMD_I2C
#define CONFIG_CMD_MII /* MII support */
#define CONFIG_CMD_MMC
#define CONFIG_CMD_MTDPARTS /* MTD partition support */
@@ -376,13 +379,12 @@
*/
#ifdef CONFIG_CMD_I2C
-#define CONFIG_HARD_I2C 1
-
+#define CONFIG_HARD_I2C
+#define CONFIG_I2C_MXC
+#define CONFIG_I2C_MULTI_BUS
+#define CONFIG_SYS_I2C_BASE IMX_I2C1_BASE
#define CONFIG_SYS_I2C_SPEED 100000 /* 100 kHz */
#define CONFIG_SYS_I2C_SLAVE 0x7F
-
-#define CONFIG_I2C_CMD_TREE
-#define CONFIG_I2C_MULTI_BUS 2
#define CONFIG_SYS_I2C_NOPROBES { }
#ifdef CONFIG_CMD_EEPROM
diff --git a/patches/u-boot/2012.10/302-apf27-add-support-for-the-armadeus-APF27-board.patch b/patches/u-boot/2012.10/302-apf27-add-support-for-the-armadeus-APF27-board.patch
index 2b90aec..228d747 100644
--- a/patches/u-boot/2012.10/302-apf27-add-support-for-the-armadeus-APF27-board.patch
+++ b/patches/u-boot/2012.10/302-apf27-add-support-for-the-armadeus-APF27-board.patch
@@ -81,7 +81,7 @@ new file mode 100644
index 0000000..bf3e5ec
--- /dev/null
+++ b/board/armadeus/apf27/apf27.c
-@@ -0,0 +1,410 @@
+@@ -0,0 +1,423 @@
+/*
+ * Copyright (C) 2007 Sascha Hauer, Pengutronix
+ * Copyright (C) 2008-2012 Eric Jarrige <eri...@ar...>
@@ -253,6 +253,9 @@ index 0000000..bf3e5ec
+ writel(ACFG_GIUS_F_VAL, ®s->port[PORTF].gius);
+}
+
++void bus_i2c_init(void *base, int speed, int slave_addr,
++ int (*idle_bus_fn)(void *p), void *p);
++
+static int apf27_devices_init(void)
+{
+ struct gpio_port_regs *regs = (struct gpio_port_regs *)IMX_GPIO_BASE;
@@ -278,6 +281,10 @@ index 0000000..bf3e5ec
+ PF23_AIN_FEC_TX_EN,
+ PE12_PF_UART1_TXD,
+ PE13_PF_UART1_RXD,
++ PC5_PF_I2C2_DATA,
++ PC6_PF_I2C2_CLK,
++ PD17_PF_I2C_DATA,
++ PD18_PF_I2C_CLK,
+ };
+
+ for (i = 0; i < ARRAY_SIZE(mode); i++)
@@ -289,6 +296,12 @@ index 0000000..bf3e5ec
+ writel(readl(®s->port[PORTF].gpio_dr) | (1 << 16),
+ ®s->port[PORTF].gpio_dr);
+#endif
++#if defined(CONFIG_I2C_MXC) && defined(CONFIG_I2C_MULTI_BUS)
++ bus_i2c_init(IMX_I2C1_BASE, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE,
++ NULL, NULL);
++ bus_i2c_init(IMX_I2C2_BASE, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE,
++ NULL, NULL);
++#endif
+ return 0;
+}
+
diff --git a/patches/u-boot/2012.10/304-apf27-Add-FPGA-support-for-the-apf27-board.patch b/patches/u-boot/2012.10/304-apf27-Add-FPGA-support-for-the-apf27-board.patch
index 5055b2c..a3c013e 100644
--- a/patches/u-boot/2012.10/304-apf27-Add-FPGA-support-for-the-apf27-board.patch
+++ b/patches/u-boot/2012.10/304-apf27-Add-FPGA-support-for-the-apf27-board.patch
@@ -32,7 +32,7 @@ index bf3e5ec..fa5dfd8 100644
#include <jffs2/jffs2.h>
#include <nand.h>
#include <netdev.h>
-@@ -359,6 +360,21 @@ misc_init_r(void)
+@@ -386,6 +387,21 @@ misc_init_r(void)
struct mtd_device *dev;
struct part_info *part;
diff --git a/patches/u-boot/2012.10/370-imx27-add-i2c-driver.patch b/patches/u-boot/2012.10/370-imx27-add-i2c-driver.patch
new file mode 100644
index 0000000..913d98e
--- /dev/null
+++ b/patches/u-boot/2012.10/370-imx27-add-i2c-driver.patch
@@ -0,0 +1,25 @@
+Signed-off-by: Eric Jarrige <eri...@ar...>
+---
+diff -purN uboot/arch/arm/cpu/arm926ejs/mx27/generic.c uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
+--- uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
++++ uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
+@@ -159,6 +159,8 @@ unsigned int mxc_get_clock(enum mxc_cloc
+ switch (clk) {
+ case MXC_ARM_CLK:
+ return imx_get_armclk();
++ case MXC_IPG_PERCLK:
++ return imx_get_ahbclk()/2;
+ case MXC_UART_CLK:
+ return imx_get_perclk1();
+ case MXC_FEC_CLK:
+diff -purN uboot/arch/arm/include/asm/arch-mx27/clock.h uboot/arch/arm/include/asm/arch-mx27/clock.h
+--- uboot/arch/arm/include/asm/arch-mx27/clock.h
++++ uboot/arch/arm/include/asm/arch-mx27/clock.h
+@@ -26,6 +26,7 @@
+
+ enum mxc_clock {
+ MXC_ARM_CLK,
++ MXC_IPG_PERCLK,
+ MXC_UART_CLK,
+ MXC_ESDHC_CLK,
+ MXC_FEC_CLK,
hooks/post-receive
--
armadeus
|
|
From: jorasse <jo...@us...> - 2013-01-14 20:45:10
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 288d696b320bd58b59fa008555ffd6b413eb71c7 (commit)
from f39081101716f7454fd062c4379ab2eba8b354cc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 288d696b320bd58b59fa008555ffd6b413eb71c7
Author: Eric Jarrige <eri...@ar...>
Date: Mon Jan 14 21:49:11 2013 +0100
[UBOOT] 2012.04: APF27: add I2C driver and support for I2C multibus
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf27/apf27-u-boot-2012.04.h | 14 +-
...-Add-support-for-the-armadeus-apf27-board.patch | 15 +-
.../2012.04/304-Add-FPGA-support-apf27.patch | 2 +-
.../u-boot/2012.04/370-imx27-add-i2c-driver.patch | 690 ++++++++++++++++++++
...c_i2c-add_support_for_the_iMX51_processor.patch | 26 -
5 files changed, 712 insertions(+), 35 deletions(-)
create mode 100644 patches/u-boot/2012.04/370-imx27-add-i2c-driver.patch
delete mode 100644 patches/u-boot/2012.04/424-armadeus-mxc_i2c-add_support_for_the_iMX51_processor.patch
diff --git a/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.04.h b/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.04.h
index 315e5fc..a62c410 100644
--- a/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.04.h
+++ b/buildroot/target/device/armadeus/apf27/apf27-u-boot-2012.04.h
@@ -25,7 +25,7 @@
#define CONFIG_VERSION_VARIABLE
#define CONFIG_ENV_VERSION "3.2"
-#define CONFIG_IDENT_STRING " apf27 patch 3.7"
+#define CONFIG_IDENT_STRING " apf27 patch 3.8"
#define CONFIG_BOARD_NAME apf27
/*
@@ -79,13 +79,13 @@
#define CONFIG_CMD_ASKENV /* ask for env variable */
#define CONFIG_CMD_BSP /* Board Specific functions */
#define CONFIG_CMD_CACHE /* icache, dcache */
-/*#define CONFIG_CMD_DATE */ /* support for RTC, date/time...*/
+#define CONFIG_CMD_DATE /* support for RTC, date/time...*/
#define CONFIG_CMD_DHCP /* DHCP Support */
#define CONFIG_CMD_DNS
-/*#define CONFIG_CMD_EEPROM */ /* EEPROM read/write support */
+#define CONFIG_CMD_EEPROM /* EEPROM read/write support */
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_FAT /* FAT support */
-/*#define CONFIG_CMD_I2C */ /* I2C serial bus support */
+#define CONFIG_CMD_I2C /* I2C serial bus support */
#define CONFIG_CMD_IMX_FUSE /* imx iim fuse */
#define CONFIG_CMD_MII /* MII support */
#define CONFIG_CMD_MMC
@@ -386,12 +386,12 @@
#ifdef CONFIG_CMD_I2C
#define CONFIG_HARD_I2C 1
-
+#define CONFIG_I2C_MXC
+#define CONFIG_I2C_MULTI_BUS
+#define CONFIG_SYS_I2C_BASE IMX_I2C1_BASE
#define CONFIG_SYS_I2C_SPEED 100000 /* 100 kHz */
#define CONFIG_SYS_I2C_SLAVE 0x7F
-
#define CONFIG_I2C_CMD_TREE
-#define CONFIG_I2C_MULTI_BUS 2
#define CONFIG_SYS_I2C_NOPROBES { }
#ifdef CONFIG_CMD_EEPROM
diff --git a/patches/u-boot/2012.04/302-Add-support-for-the-armadeus-apf27-board.patch b/patches/u-boot/2012.04/302-Add-support-for-the-armadeus-apf27-board.patch
index 4c00a2f..310640f 100644
--- a/patches/u-boot/2012.04/302-Add-support-for-the-armadeus-apf27-board.patch
+++ b/patches/u-boot/2012.04/302-Add-support-for-the-armadeus-apf27-board.patch
@@ -78,7 +78,7 @@ new file mode 100644
index 0000000..c55da1a
--- /dev/null
+++ b/board/armadeus/apf27/apf27.c
-@@ -0,0 +1,325 @@
+@@ -0,0 +1,338 @@
+/*
+ * Copyright (C) 2007 Sascha Hauer, Pengutronix
+ * Copyright (C) 2008-2012 Eric Jarrige <eri...@ar...>
@@ -247,6 +247,9 @@ index 0000000..c55da1a
+ writel(CONFIG_SYS_GIUS_F_VAL, ®s->port[PORTF].gius);
+}
+
++void bus_i2c_init(void *base, int speed, int slave_addr,
++ int (*idle_bus_fn)(void *p), void *p);
++
+static int apf27_devices_init(void)
+{
+ struct gpio_regs *regs = (struct gpio_regs *)IMX_GPIO_BASE;
@@ -272,6 +275,10 @@ index 0000000..c55da1a
+ PF23_AIN_FEC_TX_EN,
+ PE12_PF_UART1_TXD,
+ PE13_PF_UART1_RXD,
++ PC5_PF_I2C2_DATA,
++ PC6_PF_I2C2_CLK,
++ PD17_PF_I2C_DATA,
++ PD18_PF_I2C_CLK,
+ };
+
+ for (i = 0; i < ARRAY_SIZE(mode); i++)
@@ -283,6 +290,12 @@ index 0000000..c55da1a
+ writel(readl(®s->port[PORTF].dr) | (1 << 16),
+ ®s->port[PORTF].dr);
+#endif
++#if defined(CONFIG_I2C_MXC) && defined(CONFIG_I2C_MULTI_BUS)
++ bus_i2c_init(IMX_I2C1_BASE, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE,
++ NULL, NULL);
++ bus_i2c_init(IMX_I2C2_BASE, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE,
++ NULL, NULL);
++#endif
+ return 0;
+}
+
diff --git a/patches/u-boot/2012.04/304-Add-FPGA-support-apf27.patch b/patches/u-boot/2012.04/304-Add-FPGA-support-apf27.patch
index 8693bec..2d0f7eb 100644
--- a/patches/u-boot/2012.04/304-Add-FPGA-support-apf27.patch
+++ b/patches/u-boot/2012.04/304-Add-FPGA-support-apf27.patch
@@ -36,7 +36,7 @@ index c55da1a..98152f1 100644
#include <jffs2/jffs2.h>
#include <nand.h>
#include <netdev.h>
-@@ -256,6 +257,21 @@ misc_init_r(void)
+@@ -269,6 +270,21 @@ misc_init_r(void)
struct mtd_device *dev;
struct part_info *part;
diff --git a/patches/u-boot/2012.04/370-imx27-add-i2c-driver.patch b/patches/u-boot/2012.04/370-imx27-add-i2c-driver.patch
new file mode 100644
index 0000000..abfa819
--- /dev/null
+++ b/patches/u-boot/2012.04/370-imx27-add-i2c-driver.patch
@@ -0,0 +1,690 @@
+Signed-off-by: Eric Jarrige <eri...@ar...>
+---
+diff -purN uboot/arch/arm/cpu/arm926ejs/mx27/generic.c uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
+--- uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
++++ uboot/arch/arm/cpu/arm926ejs/mx27/generic.c
+@@ -158,6 +158,8 @@ unsigned int mxc_get_clock(enum mxc_cloc
+ switch (clk) {
+ case MXC_ARM_CLK:
+ return imx_get_armclk();
++ case MXC_IPG_PERCLK:
++ return imx_get_ahbclk()/2;
+ case MXC_UART_CLK:
+ return imx_get_perclk1();
+ case MXC_FEC_CLK:
+diff -purN uboot/arch/arm/include/asm/arch-mx27/clock.h uboot/arch/arm/include/asm/arch-mx27/clock.h
+--- uboot/arch/arm/include/asm/arch-mx27/clock.h
++++ uboot/arch/arm/include/asm/arch-mx27/clock.h
+@@ -26,6 +26,7 @@
+
+ enum mxc_clock {
+ MXC_ARM_CLK,
++ MXC_IPG_PERCLK,
+ MXC_UART_CLK,
+ MXC_ESDHC_CLK,
+ MXC_FEC_CLK,
+diff -purN uboot/drivers/i2c/mxc_i2c.c uboot/drivers/i2c/mxc_i2c.c
+--- uboot/drivers/i2c/mxc_i2c.c
++++ uboot/drivers/i2c/mxc_i2c.c
+@@ -31,13 +31,12 @@
+ */
+
+ #include <common.h>
+-#include <asm/io.h>
+-
+-#if defined(CONFIG_HARD_I2C)
+-
+ #include <asm/arch/clock.h>
+ #include <asm/arch/imx-regs.h>
++#include <asm/errno.h>
++#include <asm/io.h>
+ #include <i2c.h>
++#include <watchdog.h>
+
+ struct mxc_i2c_regs {
+ uint32_t iadr;
+@@ -56,34 +55,14 @@ struct mxc_i2c_regs {
+
+ #define I2SR_ICF (1 << 7)
+ #define I2SR_IBB (1 << 5)
++#define I2SR_IAL (1 << 4)
+ #define I2SR_IIF (1 << 1)
+ #define I2SR_RX_NO_AK (1 << 0)
+
+-#if defined(CONFIG_SYS_I2C_MX31_PORT1)
+-#define I2C_BASE 0x43f80000
+-#define I2C_CLK_OFFSET 26
+-#elif defined (CONFIG_SYS_I2C_MX31_PORT2)
+-#define I2C_BASE 0x43f98000
+-#define I2C_CLK_OFFSET 28
+-#elif defined (CONFIG_SYS_I2C_MX31_PORT3)
+-#define I2C_BASE 0x43f84000
+-#define I2C_CLK_OFFSET 30
+-#elif defined(CONFIG_SYS_I2C_MX53_PORT1)
+-#define I2C_BASE I2C1_BASE_ADDR
+-#elif defined(CONFIG_SYS_I2C_MX53_PORT2)
+-#define I2C_BASE I2C2_BASE_ADDR
+-#elif defined(CONFIG_SYS_I2C_MX35_PORT1)
+-#define I2C_BASE I2C_BASE_ADDR
+-#elif defined(CONFIG_SYS_I2C_MX35_PORT2)
+-#define I2C_BASE I2C2_BASE_ADDR
+-#elif defined(CONFIG_SYS_I2C_MX35_PORT3)
+-#define I2C_BASE I2C3_BASE_ADDR
+-#else
+-#error "define CONFIG_SYS_I2C_MX<Processor>_PORTx to use the mx I2C driver"
++#if defined(CONFIG_HARD_I2C) && !defined(CONFIG_SYS_I2C_BASE)
++#error "define CONFIG_SYS_I2C_BASE to use the mxc_i2c driver"
+ #endif
+
+-#define I2C_MAX_TIMEOUT 10000
+-
+ static u16 i2c_clk_div[50][2] = {
+ { 22, 0x20 }, { 24, 0x21 }, { 26, 0x22 }, { 28, 0x23 },
+ { 30, 0x00 }, { 32, 0x24 }, { 36, 0x25 }, { 40, 0x26 },
+@@ -114,7 +93,7 @@ static uint8_t i2c_imx_get_clk(unsigned
+ (struct clock_control_regs *)CCM_BASE;
+
+ /* start the required I2C clock */
+- writel(readl(&sc_regs->cgr0) | (3 << I2C_CLK_OFFSET),
++ writel(readl(&sc_regs->cgr0) | (3 << CONFIG_SYS_I2C_CLK_OFFSET),
+ &sc_regs->cgr0);
+ #endif
+
+@@ -134,46 +113,29 @@ static uint8_t i2c_imx_get_clk(unsigned
+ }
+
+ /*
+- * Reset I2C Controller
++ * Set I2C Bus speed
+ */
+-void i2c_reset(void)
++int bus_i2c_set_bus_speed(void *base, int speed)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+-
+- writeb(0, &i2c_regs->i2cr); /* Reset module */
+- writeb(0, &i2c_regs->i2sr);
+-}
+-
+-/*
+- * Init I2C Bus
+- */
+-void i2c_init(int speed, int unused)
+-{
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
++ struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)base;
+ u8 clk_idx = i2c_imx_get_clk(speed);
+ u8 idx = i2c_clk_div[clk_idx][1];
+
+ /* Store divider value */
+ writeb(idx, &i2c_regs->ifdr);
+
+- i2c_reset();
+-}
+-
+-/*
+- * Set I2C Speed
+- */
+-int i2c_set_bus_speed(unsigned int speed)
+-{
+- i2c_init(speed, 0);
++ /* Reset module */
++ writeb(0, &i2c_regs->i2cr);
++ writeb(0, &i2c_regs->i2sr);
+ return 0;
+ }
+
+ /*
+ * Get I2C Speed
+ */
+-unsigned int i2c_get_bus_speed(void)
++unsigned int bus_i2c_get_bus_speed(void *base)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
++ struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)base;
+ u8 clk_idx = readb(&i2c_regs->ifdr);
+ u8 clk_div;
+
+@@ -183,216 +145,163 @@ unsigned int i2c_get_bus_speed(void)
+ return mxc_get_clock(MXC_IPG_PERCLK) / i2c_clk_div[clk_div][0];
+ }
+
+-/*
+- * Wait for bus to be busy (or free if for_busy = 0)
+- *
+- * for_busy = 1: Wait for IBB to be asserted
+- * for_busy = 0: Wait for IBB to be de-asserted
+- */
+-int i2c_imx_bus_busy(int for_busy)
+-{
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- unsigned int temp;
+-
+- int timeout = I2C_MAX_TIMEOUT;
+-
+- while (timeout--) {
+- temp = readb(&i2c_regs->i2sr);
+-
+- if (for_busy && (temp & I2SR_IBB))
+- return 0;
+- if (!for_busy && !(temp & I2SR_IBB))
+- return 0;
+-
+- udelay(1);
++#define ST_BUS_IDLE (0 | (I2SR_IBB << 8))
++#define ST_BUS_BUSY (I2SR_IBB | (I2SR_IBB << 8))
++#define ST_IIF (I2SR_IIF | (I2SR_IIF << 8))
++
++static int wait_for_sr_state(struct mxc_i2c_regs *i2c_regs, unsigned state)
++{
++ unsigned sr;
++ ulong elapsed;
++ ulong start_time = get_timer(0);
++ for (;;) {
++ sr = readb(&i2c_regs->i2sr);
++ if (sr & I2SR_IAL) {
++ writeb(sr & ~I2SR_IAL, &i2c_regs->i2sr);
++ printf("%s: Arbitration lost sr=%x cr=%x state=%x\n",
++ __func__, sr, readb(&i2c_regs->i2cr), state);
++ return -ERESTART;
++ }
++ if ((sr & (state >> 8)) == (unsigned char)state)
++ return sr;
++ WATCHDOG_RESET();
++ elapsed = get_timer(start_time);
++ if (elapsed > (CONFIG_SYS_HZ / 10)) /* .1 seconds */
++ break;
+ }
+-
+- return 1;
++ printf("%s: failed sr=%x cr=%x state=%x\n", __func__,
++ sr, readb(&i2c_regs->i2cr), state);
++ return -ETIMEDOUT;
+ }
+
+-/*
+- * Wait for transaction to complete
+- */
+-int i2c_imx_trx_complete(void)
++static int tx_byte(struct mxc_i2c_regs *i2c_regs, u8 byte)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- int timeout = I2C_MAX_TIMEOUT;
+-
+- while (timeout--) {
+- if (readb(&i2c_regs->i2sr) & I2SR_IIF) {
+- writeb(0, &i2c_regs->i2sr);
+- return 0;
+- }
+-
+- udelay(1);
+- }
++ int ret;
+
+- return 1;
++ writeb(0, &i2c_regs->i2sr);
++ writeb(byte, &i2c_regs->i2dr);
++ ret = wait_for_sr_state(i2c_regs, ST_IIF);
++ if (ret < 0)
++ return ret;
++ if (ret & I2SR_RX_NO_AK)
++ return -ENODEV;
++ return 0;
+ }
+
+ /*
+- * Check if the transaction was ACKed
++ * Stop I2C transaction
+ */
+-int i2c_imx_acked(void)
++static void i2c_imx_stop(struct mxc_i2c_regs *i2c_regs)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
++ int ret;
++ unsigned int temp = readb(&i2c_regs->i2cr);
+
+- return readb(&i2c_regs->i2sr) & I2SR_RX_NO_AK;
++ temp &= ~(I2CR_MSTA | I2CR_MTX);
++ writeb(temp, &i2c_regs->i2cr);
++ ret = wait_for_sr_state(i2c_regs, ST_BUS_IDLE);
++ if (ret < 0)
++ printf("%s:trigger stop failed\n", __func__);
+ }
+
+ /*
+- * Start the controller
++ * Send start signal, chip address and
++ * write register address
+ */
+-int i2c_imx_start(void)
++static int i2c_init_transfer_(struct mxc_i2c_regs *i2c_regs,
++ uchar chip, uint addr, int alen)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- unsigned int temp = 0;
+- int result;
+- int speed = i2c_get_bus_speed();
+- u8 clk_idx = i2c_imx_get_clk(speed);
+- u8 idx = i2c_clk_div[clk_idx][1];
+-
+- /* Store divider value */
+- writeb(idx, &i2c_regs->ifdr);
++ unsigned int temp;
++ int ret;
+
+ /* Enable I2C controller */
++ if (!(readb(&i2c_regs->i2cr) & I2CR_IEN)) {
++ writeb(I2CR_IEN, &i2c_regs->i2cr);
++ /* Wait for controller to be stable */
++ udelay(50);
++ }
++ if (readb(&i2c_regs->iadr) == (chip << 1))
++ writeb((chip << 1) ^ 2, &i2c_regs->iadr);
+ writeb(0, &i2c_regs->i2sr);
+- writeb(I2CR_IEN, &i2c_regs->i2cr);
+-
+- /* Wait controller to be stable */
+- udelay(50);
++ ret = wait_for_sr_state(i2c_regs, ST_BUS_IDLE);
++ if (ret < 0)
++ return ret;
+
+ /* Start I2C transaction */
+ temp = readb(&i2c_regs->i2cr);
+ temp |= I2CR_MSTA;
+ writeb(temp, &i2c_regs->i2cr);
+
+- result = i2c_imx_bus_busy(1);
+- if (result)
+- return result;
++ ret = wait_for_sr_state(i2c_regs, ST_BUS_BUSY);
++ if (ret < 0)
++ return ret;
+
+ temp |= I2CR_MTX | I2CR_TX_NO_AK;
+ writeb(temp, &i2c_regs->i2cr);
+
+- return 0;
+-}
+-
+-/*
+- * Stop the controller
+- */
+-void i2c_imx_stop(void)
+-{
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- unsigned int temp = 0;
+-
+- /* Stop I2C transaction */
+- temp = readb(&i2c_regs->i2cr);
+- temp |= ~(I2CR_MSTA | I2CR_MTX);
+- writeb(temp, &i2c_regs->i2cr);
+-
+- i2c_imx_bus_busy(0);
+-
+- /* Disable I2C controller */
+- writeb(0, &i2c_regs->i2cr);
+-}
+-
+-/*
+- * Set chip address and access mode
+- *
+- * read = 1: READ access
+- * read = 0: WRITE access
+- */
+-int i2c_imx_set_chip_addr(uchar chip, int read)
+-{
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- int ret;
+-
+- writeb((chip << 1) | read, &i2c_regs->i2dr);
+-
+- ret = i2c_imx_trx_complete();
+- if (ret)
+- return ret;
+-
+- ret = i2c_imx_acked();
+- if (ret)
++ /* write slave address */
++ ret = tx_byte(i2c_regs, chip << 1);
++ if (ret < 0)
+ return ret;
+
+- return ret;
+-}
+-
+-/*
+- * Write register address
+- */
+-int i2c_imx_set_reg_addr(uint addr, int alen)
+-{
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+- int ret = 0;
+-
+ while (alen--) {
+- writeb((addr >> (alen * 8)) & 0xff, &i2c_regs->i2dr);
+-
+- ret = i2c_imx_trx_complete();
+- if (ret)
+- break;
+-
+- ret = i2c_imx_acked();
+- if (ret)
+- break;
++ ret = tx_byte(i2c_regs, (addr >> (alen * 8)) & 0xff);
++ if (ret < 0)
++ return ret;
+ }
+-
+- return ret;
++ return 0;
+ }
+
+-/*
+- * Try if a chip add given address responds (probe the chip)
+- */
+-int i2c_probe(uchar chip)
++static int i2c_idle_bus(void *base);
++
++static int i2c_init_transfer(struct mxc_i2c_regs *i2c_regs,
++ uchar chip, uint addr, int alen)
+ {
++ int retry;
+ int ret;
++ for (retry = 0; retry < 3; retry++) {
++ ret = i2c_init_transfer_(i2c_regs, chip, addr, alen);
++ if (ret >= 0)
++ return 0;
++ i2c_imx_stop(i2c_regs);
++ if (ret == -ENODEV)
++ return ret;
+
+- ret = i2c_imx_start();
+- if (ret)
+- return ret;
+-
+- ret = i2c_imx_set_chip_addr(chip, 0);
+- if (ret)
+- return ret;
+-
+- i2c_imx_stop();
+-
++ printf("%s: failed for chip 0x%x retry=%d\n", __func__, chip,
++ retry);
++ if (ret != -ERESTART)
++ writeb(0, &i2c_regs->i2cr); /* Disable controller */
++ udelay(100);
++ if (i2c_idle_bus(i2c_regs) < 0)
++ break;
++ }
++ printf("%s: give up i2c_regs=%p\n", __func__, i2c_regs);
+ return ret;
+ }
+
+ /*
+ * Read data from I2C device
+ */
+-int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)
++int bus_i2c_read(void *base, uchar chip, uint addr, int alen, uchar *buf,
++ int len)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+ int ret;
+ unsigned int temp;
+ int i;
++ struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)base;
+
+- ret = i2c_imx_start();
+- if (ret)
+- return ret;
+-
+- /* write slave address */
+- ret = i2c_imx_set_chip_addr(chip, 0);
+- if (ret)
+- return ret;
+-
+- ret = i2c_imx_set_reg_addr(addr, alen);
+- if (ret)
++ ret = i2c_init_transfer(i2c_regs, chip, addr, alen);
++ if (ret < 0)
+ return ret;
+
+ temp = readb(&i2c_regs->i2cr);
+ temp |= I2CR_RSTA;
+ writeb(temp, &i2c_regs->i2cr);
+
+- ret = i2c_imx_set_chip_addr(chip, 1);
+- if (ret)
++ ret = tx_byte(i2c_regs, (chip << 1) | 1);
++ if (ret < 0) {
++ i2c_imx_stop(i2c_regs);
+ return ret;
++ }
+
+ /* setup bus to read data */
+ temp = readb(&i2c_regs->i2cr);
+@@ -400,73 +309,192 @@ int i2c_read(uchar chip, uint addr, int
+ if (len == 1)
+ temp |= I2CR_TX_NO_AK;
+ writeb(temp, &i2c_regs->i2cr);
+- readb(&i2c_regs->i2dr);
++ writeb(0, &i2c_regs->i2sr);
++ readb(&i2c_regs->i2dr); /* dummy read to clear ICF */
+
+ /* read data */
+ for (i = 0; i < len; i++) {
+- ret = i2c_imx_trx_complete();
+- if (ret)
++ ret = wait_for_sr_state(i2c_regs, ST_IIF);
++ if (ret < 0) {
++ i2c_imx_stop(i2c_regs);
+ return ret;
++ }
+
+ /*
+ * It must generate STOP before read I2DR to prevent
+ * controller from generating another clock cycle
+ */
+ if (i == (len - 1)) {
+- temp = readb(&i2c_regs->i2cr);
+- temp &= ~(I2CR_MSTA | I2CR_MTX);
+- writeb(temp, &i2c_regs->i2cr);
+- i2c_imx_bus_busy(0);
++ i2c_imx_stop(i2c_regs);
+ } else if (i == (len - 2)) {
+ temp = readb(&i2c_regs->i2cr);
+ temp |= I2CR_TX_NO_AK;
+ writeb(temp, &i2c_regs->i2cr);
+ }
+-
++ writeb(0, &i2c_regs->i2sr);
+ buf[i] = readb(&i2c_regs->i2dr);
+ }
+-
+- i2c_imx_stop();
+-
+- return ret;
++ i2c_imx_stop(i2c_regs);
++ return 0;
+ }
+
+ /*
+ * Write data to I2C device
+ */
+-int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)
++int bus_i2c_write(void *base, uchar chip, uint addr, int alen,
++ const uchar *buf, int len)
+ {
+- struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
+ int ret;
+ int i;
++ struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)base;
+
+- ret = i2c_imx_start();
+- if (ret)
++ ret = i2c_init_transfer(i2c_regs, chip, addr, alen);
++ if (ret < 0)
+ return ret;
+
+- /* write slave address */
+- ret = i2c_imx_set_chip_addr(chip, 0);
+- if (ret)
+- return ret;
++ for (i = 0; i < len; i++) {
++ ret = tx_byte(i2c_regs, buf[i]);
++ if (ret < 0)
++ break;
++ }
++ i2c_imx_stop(i2c_regs);
++ return ret;
++}
+
+- ret = i2c_imx_set_reg_addr(addr, alen);
++struct i2c_parms {
++ void *base;
++ void *idle_bus_data;
++ int (*idle_bus_fn)(void *p);
++};
++
++struct sram_data {
++ unsigned curr_i2c_bus;
++ struct i2c_parms i2c_data[3];
++};
++
++/*
++ * For SPL boot some boards need i2c before SDRAM is initialized so force
++ * variables to live in SRAM
++ */
++static struct sram_data __attribute__((section(".data"))) srdata;
++
++void *get_base(void)
++{
++#ifdef CONFIG_SYS_I2C_BASE
++#ifdef CONFIG_I2C_MULTI_BUS
++ void *ret = srdata.i2c_data[srdata.curr_i2c_bus].base;
+ if (ret)
+ return ret;
++#endif
++ return (void *)CONFIG_SYS_I2C_BASE;
++#elif defined(CONFIG_I2C_MULTI_BUS)
++ return srdata.i2c_data[srdata.curr_i2c_bus].base;
++#else
++ return srdata.i2c_data[0].base;
++#endif
++}
+
+- for (i = 0; i < len; i++) {
+- writeb(buf[i], &i2c_regs->i2dr);
++static struct i2c_parms *i2c_get_parms(void *base)
++{
++ int i = 0;
++ struct i2c_parms *p = srdata.i2c_data;
++ while (i < ARRAY_SIZE(srdata.i2c_data)) {
++ if (p->base == base)
++ return p;
++ p++;
++ i++;
++ }
++ printf("Invalid I2C base: %p\n", base);
++ return NULL;
++}
+
+- ret = i2c_imx_trx_complete();
+- if (ret)
+- return ret;
++static int i2c_idle_bus(void *base)
++{
++ struct i2c_parms *p = i2c_get_parms(base);
++ if (p && p->idle_bus_fn)
++ return p->idle_bus_fn(p->idle_bus_data);
++ return 0;
++}
+
+- ret = i2c_imx_acked();
+- if (ret)
+- return ret;
++#ifdef CONFIG_I2C_MULTI_BUS
++unsigned int i2c_get_bus_num(void)
++{
++ return srdata.curr_i2c_bus;
++}
++
++int i2c_set_bus_num(unsigned bus_idx)
++{
++ if (bus_idx >= ARRAY_SIZE(srdata.i2c_data))
++ return -1;
++ if (!srdata.i2c_data[bus_idx].base)
++ return -1;
++ srdata.curr_i2c_bus = bus_idx;
++ return 0;
++}
++#endif
++
++int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)
++{
++ return bus_i2c_read(get_base(), chip, addr, alen, buf, len);
++}
++
++int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)
++{
++ return bus_i2c_write(get_base(), chip, addr, alen, buf, len);
++}
++
++/*
++ * Test if a chip at a given address responds (probe the chip)
++ */
++int i2c_probe(uchar chip)
++{
++ return bus_i2c_write(get_base(), chip, 0, 0, NULL, 0);
++}
++
++void bus_i2c_init(void *base, int speed, int unused,
++ int (*idle_bus_fn)(void *p), void *idle_bus_data)
++{
++ int i = 0;
++ struct i2c_parms *p = srdata.i2c_data;
++ if (!base)
++ return;
++ for (;;) {
++ if (!p->base || (p->base == base)) {
++ p->base = base;
++ if (idle_bus_fn) {
++ p->idle_bus_fn = idle_bus_fn;
++ p->idle_bus_data = idle_bus_data;
++ }
++ break;
++ }
++ p++;
++ i++;
++ if (i >= ARRAY_SIZE(srdata.i2c_data))
++ return;
+ }
++ bus_i2c_set_bus_speed(base, speed);
++}
++
++/*
++ * Init I2C Bus
++ */
++void i2c_init(int speed, int unused)
++{
++ bus_i2c_init(get_base(), speed, unused, NULL, NULL);
++}
+
+- i2c_imx_stop();
++/*
++ * Set I2C Speed
++ */
++int i2c_set_bus_speed(unsigned int speed)
++{
++ return bus_i2c_set_bus_speed(get_base(), speed);
++}
+
+- return ret;
++/*
++ * Get I2C Speed
++ */
++unsigned int i2c_get_bus_speed(void)
++{
++ return bus_i2c_get_bus_speed(get_base());
+ }
+-#endif /* CONFIG_HARD_I2C */
diff --git a/patches/u-boot/2012.04/424-armadeus-mxc_i2c-add_support_for_the_iMX51_processor.patch b/patches/u-boot/2012.04/424-armadeus-mxc_i2c-add_support_for_the_iMX51_processor.patch
deleted file mode 100644
index 32bed66..0000000
--- a/patches/u-boot/2012.04/424-armadeus-mxc_i2c-add_support_for_the_iMX51_processor.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Signed-off-by: Philippe Reynes <tr...@ya...>
-Signed-off-by: Julien Boibessot <jul...@ar...>
-
----
- drivers/i2c/mxc_i2c.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c
-index c88ac7c..cc410c0 100644
---- a/drivers/i2c/mxc_i2c.c
-+++ b/drivers/i2c/mxc_i2c.c
-@@ -68,9 +68,9 @@ struct mxc_i2c_regs {
- #elif defined (CONFIG_SYS_I2C_MX31_PORT3)
- #define I2C_BASE 0x43f84000
- #define I2C_CLK_OFFSET 30
--#elif defined(CONFIG_SYS_I2C_MX53_PORT1)
-+#elif defined(CONFIG_SYS_I2C_MX53_PORT1) || defined(CONFIG_SYS_I2C_MX51_PORT1)
- #define I2C_BASE I2C1_BASE_ADDR
--#elif defined(CONFIG_SYS_I2C_MX53_PORT2)
-+#elif defined(CONFIG_SYS_I2C_MX53_PORT2) || defined(CONFIG_SYS_I2C_MX51_PORT2)
- #define I2C_BASE I2C2_BASE_ADDR
- #elif defined(CONFIG_SYS_I2C_MX35_PORT1)
- #define I2C_BASE I2C_BASE_ADDR
---
-1.7.4.4
-
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2013-01-13 12:58:02
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via f39081101716f7454fd062c4379ab2eba8b354cc (commit)
via 367d85e2e74f54c67cd80393ea8b10fa8492b915 (commit)
from c64f3a140a2ac16207bc0d73c46e31cfc76f3648 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f39081101716f7454fd062c4379ab2eba8b354cc
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 13 13:57:30 2013 +0100
[LINUX][3.8] imx-fb: fix imxfb_info configuration order
commit 367d85e2e74f54c67cd80393ea8b10fa8492b915
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Sun Jan 13 13:57:19 2013 +0100
[LINUX][3.8] imx-fb: modifies platform device name
-----------------------------------------------------------------------
Summary of changes:
...mx27-framebuffer-fix_platform_device_name.patch | 19 ++++++++++++++
.../3.8/0207-armadeus-imxfb-fix_devtype_set.patch | 27 ++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
create mode 100644 patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
create mode 100644 patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
diff --git a/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch b/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
new file mode 100644
index 0000000..3299e41
--- /dev/null
+++ b/patches/linux/3.8/0206-armadeus-mx27-framebuffer-fix_platform_device_name.patch
@@ -0,0 +1,19 @@
+Framebuffer platform device is now identified by a device id (imx1-fb or
+imx21-fb) instead of by driver name (imx-fb).
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+
+Index: linux-3.8-rc2/arch/arm/mach-imx/devices/platform-imx-fb.c
+===================================================================
+--- linux-3.8-rc2.orig/arch/arm/mach-imx/devices/platform-imx-fb.c
++++ linux-3.8-rc2/arch/arm/mach-imx/devices/platform-imx-fb.c
+@@ -54,7 +54,7 @@ struct platform_device *__init imx_add_i
+ .flags = IORESOURCE_IRQ,
+ },
+ };
+- return imx_add_platform_device_dmamask("imx-fb", 0,
++ return imx_add_platform_device_dmamask(data->devid, 0,
+ res, ARRAY_SIZE(res),
+ pdata, sizeof(*pdata), DMA_BIT_MASK(32));
+ }
diff --git a/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch b/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
new file mode 100644
index 0000000..db33d95
--- /dev/null
+++ b/patches/linux/3.8/0207-armadeus-imxfb-fix_devtype_set.patch
@@ -0,0 +1,27 @@
+The devtype field for fbi (struct imxfb_info) must be set after memset call to avoid
+some wrong behaviour (pixel size).
+
+Signed-off-by: Gwenhael Goavec-Merou <gwe...@ar...>
+---
+
+Index: linux-3.8-rc2/drivers/video/imxfb.c
+===================================================================
+--- linux-3.8-rc2.orig/drivers/video/imxfb.c
++++ linux-3.8-rc2/drivers/video/imxfb.c
+@@ -729,6 +729,8 @@ static int __init imxfb_init_fbinfo(stru
+
+ memset(fbi, 0, sizeof(struct imxfb_info));
+
++ fbi->devtype = pdev->id_entry->driver_data;
++
+ strlcpy(info->fix.id, IMX_NAME, sizeof(info->fix.id));
+
+ info->fix.type = FB_TYPE_PACKED_PIXELS;
+@@ -790,7 +792,6 @@ static int __init imxfb_probe(struct pla
+ return -ENOMEM;
+
+ fbi = info->par;
+- fbi->devtype = pdev->id_entry->driver_data;
+
+ if (!fb_mode)
+ fb_mode = pdata->mode[0].mode.name;
hooks/post-receive
--
armadeus
|