[kernel] r15828 - in dists/trunk/linux-2.6/debian: . config/mipsel patches/features/all patches/features/mips patches/series
Ben Hutchings
benh at alioth.debian.org
Sun Jun 6 00:11:08 UTC 2010
Author: benh
Date: Sun Jun 6 00:10:25 2010
New Revision: 15828
Log:
[mipsel] Add a loongson-2f flavour
[mipsel] Loongson: Define rtc device on MC146818-equipped systems
Added:
dists/trunk/linux-2.6/debian/config/mipsel/config.loongson-2f
dists/trunk/linux-2.6/debian/patches/features/all/RTC-rtc-cmos-Fix-binary-mode-support.patch
dists/trunk/linux-2.6/debian/patches/features/mips/MIPS-Loongson-Define-rtc-device-on-MC146818-systems.patch
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/config/mipsel/defines
dists/trunk/linux-2.6/debian/patches/series/1~experimental.2
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog Sat Jun 5 20:42:09 2010 (r15827)
+++ dists/trunk/linux-2.6/debian/changelog Sun Jun 6 00:10:25 2010 (r15828)
@@ -7,6 +7,8 @@
* writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync
(Closes: #582808)
* writeback: fix non-integrity write-back
+ * [mipsel] Add a loongson-2f flavour
+ * [mipsel] Loongson: Define rtc device on MC146818-equipped systems
[ maximilian attems ]
* topconfig enable CFQ_GROUP_IOSCHED, MFD_WM8994, REGULATOR_MAX8649,
Added: dists/trunk/linux-2.6/debian/config/mipsel/config.loongson-2f
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/config/mipsel/config.loongson-2f Sun Jun 6 00:10:25 2010 (r15828)
@@ -0,0 +1,73 @@
+##
+## file: arch/mips/Kconfig
+##
+CONFIG_MACH_LOONGSON=y
+# CONFIG_32BIT is not set
+CONFIG_64BIT=y
+CONFIG_PCI=y
+CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+CONFIG_MIPS32_N32=y
+
+##
+## file: arch/mips/loongson/Kconfig
+##
+CONFIG_LEMOTE_MACH2F=y
+CONFIG_CS5536_MFGPT=y
+
+##
+## file: arch/mips/kernel/cpufreq/Kconfig
+##
+CONFIG_LOONGSON2_CPUFREQ=m
+
+##
+## file: drivers/ata/Kconfig
+##
+CONFIG_ATA=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_PATA_AMD=y
+
+##
+## file: drivers/char/Kconfig
+##
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+
+##
+## file: drivers/cpufreq/Kconfig
+##
+## choice: Default CPUFreq governor
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+## end choice
+
+##
+## file: drivers/serial/Kconfig
+##
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+##
+## file: drivers/video/Kconfig
+##
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+CONFIG_FB_SIS=y
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+
+##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_GENERIC=m
+
+##
+## file: drivers/video/console/Kconfig
+##
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_FRAMEBUFFER_CONSOLE=y
Modified: dists/trunk/linux-2.6/debian/config/mipsel/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/config/mipsel/defines Sat Jun 5 20:42:09 2010 (r15827)
+++ dists/trunk/linux-2.6/debian/config/mipsel/defines Sun Jun 6 00:10:25 2010 (r15828)
@@ -5,6 +5,7 @@
sb1a-bcm91480b
4kc-malta
5kc-malta
+ loongson-2f
kernel-arch: mips
[image]
@@ -41,3 +42,7 @@
[5kc-malta_image]
configs: mips/config.5kc-malta
+
+[loongson-2f_description]
+hardware: Loongson 2F
+hardware-long: Lemote Loongson 2F systems
Added: dists/trunk/linux-2.6/debian/patches/features/all/RTC-rtc-cmos-Fix-binary-mode-support.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/all/RTC-rtc-cmos-Fix-binary-mode-support.patch Sun Jun 6 00:10:25 2010 (r15828)
@@ -0,0 +1,163 @@
+From: Arnaud Patard <apatard at mandriva.com>
+Date: Thu, 29 Apr 2010 11:58:44 +0200
+Subject: [PATCH] RTC: rtc-cmos: Fix binary mode support
+
+commit 3804a89bfb84fb8849c72e3bbafddaee539b3430 upstream.
+
+As a follow-up to the thread about RTC support for some Loongson 2E/2F
+boards, this patch tries to address the "REVISIT"/"FIXME" comments about
+rtc binary mode handling and allow rtc to work with rtc in binary mode.
+I've also raised the message about 24-h mode not supported to warning
+otherwise, one may end up with no rtc without any message in the kernel
+log.
+
+Signed-off-by: Arnaud Patard <apatard at mandriva.com>
+To: linux-mips at linux-mips.org
+To: rtc-linux at googlegroups.com
+Cc: david-b at pacbell.net
+Cc: a.zummo at towertech.it
+Cc: akpm at linux-foundation.org
+Patchwork: http://patchwork.linux-mips.org/patch/1158/
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+---
+ drivers/rtc/rtc-cmos.c | 83 +++++++++++++++++++++++-------------------------
+ 1 files changed, 40 insertions(+), 43 deletions(-)
+
+diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
+index ece4dbd..96e8e70 100644
+--- a/drivers/rtc/rtc-cmos.c
++++ b/drivers/rtc/rtc-cmos.c
+@@ -238,31 +238,32 @@ static int cmos_read_alarm(struct device *dev, struct rtc_wkalrm *t)
+ rtc_control = CMOS_READ(RTC_CONTROL);
+ spin_unlock_irq(&rtc_lock);
+
+- /* REVISIT this assumes PC style usage: always BCD */
+-
+- if (((unsigned)t->time.tm_sec) < 0x60)
+- t->time.tm_sec = bcd2bin(t->time.tm_sec);
+- else
+- t->time.tm_sec = -1;
+- if (((unsigned)t->time.tm_min) < 0x60)
+- t->time.tm_min = bcd2bin(t->time.tm_min);
+- else
+- t->time.tm_min = -1;
+- if (((unsigned)t->time.tm_hour) < 0x24)
+- t->time.tm_hour = bcd2bin(t->time.tm_hour);
+- else
+- t->time.tm_hour = -1;
+-
+- if (cmos->day_alrm) {
+- if (((unsigned)t->time.tm_mday) <= 0x31)
+- t->time.tm_mday = bcd2bin(t->time.tm_mday);
++ if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
++ if (((unsigned)t->time.tm_sec) < 0x60)
++ t->time.tm_sec = bcd2bin(t->time.tm_sec);
+ else
+- t->time.tm_mday = -1;
+- if (cmos->mon_alrm) {
+- if (((unsigned)t->time.tm_mon) <= 0x12)
+- t->time.tm_mon = bcd2bin(t->time.tm_mon) - 1;
++ t->time.tm_sec = -1;
++ if (((unsigned)t->time.tm_min) < 0x60)
++ t->time.tm_min = bcd2bin(t->time.tm_min);
++ else
++ t->time.tm_min = -1;
++ if (((unsigned)t->time.tm_hour) < 0x24)
++ t->time.tm_hour = bcd2bin(t->time.tm_hour);
++ else
++ t->time.tm_hour = -1;
++
++ if (cmos->day_alrm) {
++ if (((unsigned)t->time.tm_mday) <= 0x31)
++ t->time.tm_mday = bcd2bin(t->time.tm_mday);
+ else
+- t->time.tm_mon = -1;
++ t->time.tm_mday = -1;
++
++ if (cmos->mon_alrm) {
++ if (((unsigned)t->time.tm_mon) <= 0x12)
++ t->time.tm_mon = bcd2bin(t->time.tm_mon)-1;
++ else
++ t->time.tm_mon = -1;
++ }
+ }
+ }
+ t->time.tm_year = -1;
+@@ -322,29 +323,26 @@ static void cmos_irq_disable(struct cmos_rtc *cmos, unsigned char mask)
+ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
+ {
+ struct cmos_rtc *cmos = dev_get_drvdata(dev);
+- unsigned char mon, mday, hrs, min, sec;
++ unsigned char mon, mday, hrs, min, sec, rtc_control;
+
+ if (!is_valid_irq(cmos->irq))
+ return -EIO;
+
+- /* REVISIT this assumes PC style usage: always BCD */
+-
+- /* Writing 0xff means "don't care" or "match all". */
+-
+ mon = t->time.tm_mon + 1;
+- mon = (mon <= 12) ? bin2bcd(mon) : 0xff;
+-
+ mday = t->time.tm_mday;
+- mday = (mday >= 1 && mday <= 31) ? bin2bcd(mday) : 0xff;
+-
+ hrs = t->time.tm_hour;
+- hrs = (hrs < 24) ? bin2bcd(hrs) : 0xff;
+-
+ min = t->time.tm_min;
+- min = (min < 60) ? bin2bcd(min) : 0xff;
+-
+ sec = t->time.tm_sec;
+- sec = (sec < 60) ? bin2bcd(sec) : 0xff;
++
++ rtc_control = CMOS_READ(RTC_CONTROL);
++ if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
++ /* Writing 0xff means "don't care" or "match all". */
++ mon = (mon <= 12) ? bin2bcd(mon) : 0xff;
++ mday = (mday >= 1 && mday <= 31) ? bin2bcd(mday) : 0xff;
++ hrs = (hrs < 24) ? bin2bcd(hrs) : 0xff;
++ min = (min < 60) ? bin2bcd(min) : 0xff;
++ sec = (sec < 60) ? bin2bcd(sec) : 0xff;
++ }
+
+ spin_lock_irq(&rtc_lock);
+
+@@ -478,7 +476,7 @@ static int cmos_procfs(struct device *dev, struct seq_file *seq)
+ "update_IRQ\t: %s\n"
+ "HPET_emulated\t: %s\n"
+ // "square_wave\t: %s\n"
+- // "BCD\t\t: %s\n"
++ "BCD\t\t: %s\n"
+ "DST_enable\t: %s\n"
+ "periodic_freq\t: %d\n"
+ "batt_status\t: %s\n",
+@@ -486,7 +484,7 @@ static int cmos_procfs(struct device *dev, struct seq_file *seq)
+ (rtc_control & RTC_UIE) ? "yes" : "no",
+ is_hpet_enabled() ? "yes" : "no",
+ // (rtc_control & RTC_SQWE) ? "yes" : "no",
+- // (rtc_control & RTC_DM_BINARY) ? "no" : "yes",
++ (rtc_control & RTC_DM_BINARY) ? "no" : "yes",
+ (rtc_control & RTC_DST_EN) ? "yes" : "no",
+ cmos->rtc->irq_freq,
+ (valid & RTC_VRT) ? "okay" : "dead");
+@@ -751,12 +749,11 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
+
+ spin_unlock_irq(&rtc_lock);
+
+- /* FIXME teach the alarm code how to handle binary mode;
++ /* FIXME:
+ * <asm-generic/rtc.h> doesn't know 12-hour mode either.
+ */
+- if (is_valid_irq(rtc_irq) &&
+- (!(rtc_control & RTC_24H) || (rtc_control & (RTC_DM_BINARY)))) {
+- dev_dbg(dev, "only 24-hr BCD mode supported\n");
++ if (is_valid_irq(rtc_irq) && !(rtc_control & RTC_24H)) {
++ dev_warn(dev, "only 24-hr supported\n");
+ retval = -ENXIO;
+ goto cleanup1;
+ }
+--
+1.7.1
+
Added: dists/trunk/linux-2.6/debian/patches/features/mips/MIPS-Loongson-Define-rtc-device-on-MC146818-systems.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/mips/MIPS-Loongson-Define-rtc-device-on-MC146818-systems.patch Sun Jun 6 00:10:25 2010 (r15828)
@@ -0,0 +1,114 @@
+From: apatard at mandriva.com <apatard at mandriva.com>
+Date: Wed, 2 Jun 2010 00:39:54 +0200
+Subject: [PATCH] MIPS: Loongson: Define rtc device on MC146818-equipped systems
+
+commit b224e7061338eb0a12793c456d008fd65560e002 upstream.
+
+This patch declare the rtc device present on systems with clock compatible
+with the mc146818 and handled by rtc-cmos. Introduce a new Kconfig entry
+because there are some systems without rtc_cmos compatible clock.
+
+Signed-off-by: Arnaud Patard <apatard at mandriva.com>
+To: linux-mips at linux-mips.org
+Cc: aba at not.so.argh.org
+Patchwork: http://patchwork.linux-mips.org/patch/1320/
+Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
+---
+ arch/mips/loongson/Kconfig | 6 +++++
+ arch/mips/loongson/common/Makefile | 1 +
+ arch/mips/loongson/common/rtc.c | 43 ++++++++++++++++++++++++++++++++++++
+ 3 files changed, 50 insertions(+), 0 deletions(-)
+ create mode 100644 arch/mips/loongson/common/rtc.c
+
+diff --git a/arch/mips/loongson/Kconfig b/arch/mips/loongson/Kconfig
+index 3df1967..c97ca69 100644
+--- a/arch/mips/loongson/Kconfig
++++ b/arch/mips/loongson/Kconfig
+@@ -23,6 +23,7 @@ config LEMOTE_FULOONG2E
+ select GENERIC_HARDIRQS_NO__DO_IRQ
+ select GENERIC_ISA_DMA_SUPPORT_BROKEN
+ select CPU_HAS_WB
++ select LOONGSON_MC146818
+ help
+ Lemote Fuloong(2e) mini-PC board based on the Chinese Loongson-2E CPU and
+ an FPGA northbridge
+@@ -51,6 +52,7 @@ config LEMOTE_MACH2F
+ select SYS_SUPPORTS_64BIT_KERNEL
+ select SYS_SUPPORTS_HIGHMEM
+ select SYS_SUPPORTS_LITTLE_ENDIAN
++ select LOONGSON_MC146818
+ help
+ Lemote Loongson 2F family machines utilize the 2F revision of
+ Loongson processor and the AMD CS5536 south bridge.
+@@ -83,3 +85,7 @@ config LOONGSON_UART_BASE
+ bool
+ default y
+ depends on EARLY_PRINTK || SERIAL_8250
++
++config LOONGSON_MC146818
++ bool
++ default n
+diff --git a/arch/mips/loongson/common/Makefile b/arch/mips/loongson/common/Makefile
+index cdd2e81..e526488 100644
+--- a/arch/mips/loongson/common/Makefile
++++ b/arch/mips/loongson/common/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_GENERIC_GPIO) += gpio.o
+ obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
+ obj-$(CONFIG_SERIAL_8250) += serial.o
+ obj-$(CONFIG_LOONGSON_UART_BASE) += uart_base.o
++obj-$(CONFIG_LOONGSON_MC146818) += rtc.o
+
+ #
+ # Enable CS5536 Virtual Support Module(VSM) to virtulize the PCI configure
+diff --git a/arch/mips/loongson/common/rtc.c b/arch/mips/loongson/common/rtc.c
+new file mode 100644
+index 0000000..a90d87c
+--- /dev/null
++++ b/arch/mips/loongson/common/rtc.c
+@@ -0,0 +1,43 @@
++/*
++ * Lemote Fuloong platform support
++ *
++ * Copyright(c) 2010 Arnaud Patard <apatard at mandriva.com>
++ *
++ * 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
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ */
++
++#include <linux/init.h>
++#include <linux/kernel.h>
++#include <linux/platform_device.h>
++#include <linux/mc146818rtc.h>
++
++struct resource loongson_rtc_resources[] = {
++ {
++ .start = RTC_PORT(0),
++ .end = RTC_PORT(1),
++ .flags = IORESOURCE_IO,
++ }, {
++ .start = RTC_IRQ,
++ .end = RTC_IRQ,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device loongson_rtc_device = {
++ .name = "rtc_cmos",
++ .id = -1,
++ .resource = loongson_rtc_resources,
++ .num_resources = ARRAY_SIZE(loongson_rtc_resources),
++};
++
++
++static int __init loongson_rtc_platform_init(void)
++{
++ platform_device_register(&loongson_rtc_device);
++ return 0;
++}
++
++device_initcall(loongson_rtc_platform_init);
+--
+1.7.1
+
Modified: dists/trunk/linux-2.6/debian/patches/series/1~experimental.2
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1~experimental.2 Sat Jun 5 20:42:09 2010 (r15827)
+++ dists/trunk/linux-2.6/debian/patches/series/1~experimental.2 Sun Jun 6 00:10:25 2010 (r15828)
@@ -2,3 +2,5 @@
+ bugfix/all/writeback-Update-dirty-flags-in-two-steps.patch
+ bugfix/all/writeback-ensure-WB_SYNC_NONE-writeback-with-sb-pinned-is-sync.patch
+ bugfix/all/writeback-fix-non-integrity-write-back.patch
++ features/all/RTC-rtc-cmos-Fix-binary-mode-support.patch
++ features/mips/MIPS-Loongson-Define-rtc-device-on-MC146818-systems.patch
More information about the Kernel-svn-changes
mailing list