Skip to contentSkip to conversation

ARM MSM for 2.6.36

GIT PULL New Daniel Walker 1 participant 4 messages Jun 15, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

Russell,

Here are some patch that's have been submitted here a few times for review, and recently have seen any comments. One fixes a memory defect seen on our MSM7x30 platform, and the other enabled gpiolib for MSM and trout specifically.

Anyway, Please pull and let me know if there's any issues.

Daniel

The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:

Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)

are available in the git repository at:
git://codeaurora.org/quic/kernel/dwalker/linux-msm.git for-russell

Michael Bohan (1):
arm: mm: Don't free prohibited memmap entries

Pavel Machek (1):
Add GPIO support for HTC Dream.

 arch/arm/Kconfig                      |    1 +
 arch/arm/mach-msm/Makefile            |    2 +-
 arch/arm/mach-msm/board-trout-gpio.c  |  112 +++++++++++++++++++++++
 arch/arm/mach-msm/board-trout.h       |  157 +++++++++++++++++++++++++++++++++
 arch/arm/mach-msm/include/mach/gpio.h |    7 ++
 arch/arm/mm/init.c                    |   19 ++--
 6 files changed, 287 insertions(+), 11 deletions(-)
 create mode 100644 arch/arm/mach-msm/board-trout-gpio.c
#1 lore raw

PATCH 1/2 Add GPIO support for HTC Dream.

From: Pavel Machek <[email protected]>

[dwalker at codeaurora.org: renamed to trout]
---
 arch/arm/Kconfig                      |    1 +
 arch/arm/mach-msm/Makefile            |    2 +-
 arch/arm/mach-msm/board-trout-gpio.c  |  112 +++++++++++++++++++++++
 arch/arm/mach-msm/board-trout.h       |  157 +++++++++++++++++++++++++++++++++
 arch/arm/mach-msm/include/mach/gpio.h |    7 ++
 5 files changed, 278 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/mach-msm/board-trout-gpio.c
arch/arm/Kconfig +1 -0
index 1f254bd..c171f35 100644
@@ -586,6 +586,7 @@ config ARCH_MSM
 	bool "Qualcomm MSM"
 	select HAVE_CLK
 	select GENERIC_CLOCKEVENTS
+	select ARCH_REQUIRE_GPIOLIB
 	help
 	  Support for Qualcomm MSM/QSD based systems.  This runs on the
 	  apps processor of the MSM/QSD and depends on a shared memory
arch/arm/mach-msm/Makefile +1 -1
index 66677f0..7ff8020 100644
@@ -15,7 +15,7 @@ obj-$(CONFIG_ARCH_QSD8X50) += sirc.o
 obj-$(CONFIG_MSM_SMD) += smd.o smd_debug.o
 obj-$(CONFIG_MSM_SMD) += last_radio_log.o
 
-obj-$(CONFIG_MACH_TROUT) += board-trout.o devices-msm7x00.o
+obj-$(CONFIG_MACH_TROUT) += board-trout.o board-trout-gpio.o devices-msm7x00.o
 obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o devices-msm7x00.o
 obj-$(CONFIG_ARCH_MSM7X30) += board-msm7x30.o devices-msm7x30.o
 obj-$(CONFIG_ARCH_QSD8X50) += board-qsd8x50.o devices-qsd8x50.o
arch/arm/mach-msm/board-trout-gpio.c new file +112 -0

112 lines not on this page · raw message

arch/arm/mach-msm/board-trout.h +157 -0

162 lines not on this page · raw message

arch/arm/mach-msm/include/mach/gpio.h +7 -0
index 262b441..83e47c0 100644
@@ -16,6 +16,13 @@
 #ifndef __ASM_ARCH_MSM_GPIO_H
 #define __ASM_ARCH_MSM_GPIO_H
 
+#include <asm-generic/gpio.h>
+
+#define gpio_get_value  __gpio_get_value
+#define gpio_set_value  __gpio_set_value
+#define gpio_cansleep   __gpio_cansleep
+#define gpio_to_irq     __gpio_to_irq
+
 /**
  * struct msm_gpio - GPIO pin description
  * @gpio_cfg - configuration bitmap, as per gpio_tlmm_config()
Signature · 1 line
1.7.1
#2 lore raw

PATCH 2/2 arm: mm: Don't free prohibited memmap entries

In reply to Daniel Walker

From: Michael Bohan <[email protected]>

The VM subsystem assumes that there are valid memmap entries to the bank end aligned to MAX_ORDER_NR_PAGES. It will try and read these page structs, and so we cannot free any memmap entries that it may inspect.

---
 arch/arm/mm/init.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)
arch/arm/mm/init.c +9 -10
index f6a9994..e18c7ce 100644
@@ -495,28 +495,27 @@ static void __init free_unused_memmap_node(int node, struct meminfo *mi)
 	unsigned int i;
 
 	/*
-	 * [FIXME] This relies on each bank being in address order.  This
-	 * may not be the case, especially if the user has provided the
-	 * information on the command line.
+	 * This relies on each bank being in address order.
+	 * The banks are sorted previously in bootmem_init().
 	 */
 	for_each_nodebank(i, mi, node) {
 		struct membank *bank = &mi->bank[i];
 
 		bank_start = bank_pfn_start(bank);
-		if (bank_start < prev_bank_end) {
-			printk(KERN_ERR "MEM: unordered memory banks.  "
-				"Not freeing memmap.\n");
-			break;
-		}
 
 		/*
 		 * If we had a previous bank, and there is a space
 		 * between the current bank and the previous, free it.
 		 */
-		if (prev_bank_end && prev_bank_end != bank_start)
+		if (prev_bank_end && prev_bank_end < bank_start)
 			free_memmap(node, prev_bank_end, bank_start);
 
-		prev_bank_end = bank_pfn_end(bank);
+		/*
+		 * Align up here since the VM subsystem insists that the
+		 * memmap entries are valid from the bank end aligned to
+		 * MAX_ORDER_NR_PAGES.
+		 */
+		prev_bank_end = ALIGN(bank_pfn_end(bank), MAX_ORDER_NR_PAGES);
 	}
 }
 
Signature · 1 line
1.7.1
#3 lore raw
In reply to Daniel Walker
Quoted 6 lines · Daniel Walker

Russell,

Here are some patch that's have been submitted here a few times for review, and recently have seen any comments. One fixes a memory defect seen on our MSM7x30 platform, and the other enabled gpiolib for MSM and trout specifically.

Sorry, this paragraph is horrible ..

They haven't seen any comments, and they have been submitted a few times in the past..

Daniel