* [PATCH 12/14] 85xx/mpc85xx_ds, ads, cds: move .pci_exclude_device setting to machine definitions
From: Dmitry Eremin-Solenikov @ 2011-07-19 8:53 UTC (permalink / raw)
To: Linux PPC Development; +Cc: Paul Mackerras
In-Reply-To: <1311065631-3429-1-git-send-email-dbaryshkov@gmail.com>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
arch/powerpc/platforms/85xx/mpc85xx_ads.c | 5 +++--
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 5 ++---
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 5 +++--
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
index 3b2c9bb..2483929 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -200,8 +200,6 @@ static void __init mpc85xx_ads_setup_arch(void)
#ifdef CONFIG_PCI
for_each_compatible_node(np, "pci", "fsl,mpc8540-pci")
fsl_add_bridge(np, 1);
-
- ppc_md.pci_exclude_device = mpc85xx_exclude_device;
#endif
}
@@ -254,6 +252,9 @@ define_machine(mpc85xx_ads) {
.probe = mpc85xx_ads_probe,
.setup_arch = mpc85xx_ads_setup_arch,
.init_IRQ = mpc85xx_ads_pic_init,
+#ifdef CONFIG_PCI
+ .pci_exclude_device = mpc85xx_exclude_device,
+#endif
.show_cpuinfo = mpc85xx_ads_show_cpuinfo,
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index 6299a2a..e209c23 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -297,9 +297,6 @@ static void __init mpc85xx_cds_setup_arch(void)
fsl_add_bridge(np, 0);
}
}
-
- ppc_md.pci_irq_fixup = mpc85xx_cds_pci_irq_fixup;
- ppc_md.pci_exclude_device = mpc85xx_exclude_device;
#endif
}
@@ -355,6 +352,8 @@ define_machine(mpc85xx_cds) {
#ifdef CONFIG_PCI
.restart = mpc85xx_cds_restart,
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pci_irq_fixup = mpc85xx_cds_pci_irq_fixup,
+ .pci_exclude_device = mpc85xx_exclude_device,
#else
.restart = fsl_rstcr_restart,
#endif
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index c7b97f7..53bf07d 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -182,8 +182,6 @@ static void __init mpc85xx_ds_setup_arch(void)
hose->dma_window_size);
}
}
-
- ppc_md.pci_exclude_device = mpc85xx_exclude_device;
#endif
#ifdef CONFIG_SMP
@@ -279,6 +277,7 @@ define_machine(mpc8544_ds) {
.init_IRQ = mpc85xx_ds_pic_init,
#ifdef CONFIG_PCI
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pci_exclude_device = mpc85xx_exclude_device,
#endif
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
@@ -293,6 +292,7 @@ define_machine(mpc8572_ds) {
.init_IRQ = mpc85xx_ds_pic_init,
#ifdef CONFIG_PCI
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pci_exclude_device = mpc85xx_exclude_device,
#endif
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
@@ -307,6 +307,7 @@ define_machine(p2020_ds) {
.init_IRQ = mpc85xx_ds_pic_init,
#ifdef CONFIG_PCI
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pci_exclude_device = mpc85xx_exclude_device,
#endif
.get_irq = mpic_get_irq,
.restart = fsl_rstcr_restart,
--
1.7.2.5
^ permalink raw reply related
* [PATCH 13/14] 85xx: consolidate of_platform_bus_probe calls
From: Dmitry Eremin-Solenikov @ 2011-07-19 8:53 UTC (permalink / raw)
To: Linux PPC Development; +Cc: Paul Mackerras
In-Reply-To: <1311065631-3429-1-git-send-email-dbaryshkov@gmail.com>
85xx board files have a lot of duplication in *_publish_devices()/
*_declare_of_platform_devices() functions. Merge that into a single
function common to most of the boards.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
arch/powerpc/platforms/85xx/Makefile | 2 +
arch/powerpc/platforms/85xx/ksi8560.c | 18 +---------
arch/powerpc/platforms/85xx/mpc8536_ds.c | 16 ++-------
arch/powerpc/platforms/85xx/mpc85xx.h | 4 ++
arch/powerpc/platforms/85xx/mpc85xx_ads.c | 20 ++---------
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 16 ++-------
arch/powerpc/platforms/85xx/mpc85xx_common.c | 26 ++++++++++++++
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 20 +++--------
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 46 ++-----------------------
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 16 ++-------
arch/powerpc/platforms/85xx/p1022_ds.c | 7 ++--
arch/powerpc/platforms/85xx/sbc8548.c | 18 ++--------
arch/powerpc/platforms/85xx/sbc8560.c | 20 ++---------
arch/powerpc/platforms/85xx/socrates.c | 13 +------
arch/powerpc/platforms/85xx/stx_gp3.c | 16 ++-------
arch/powerpc/platforms/85xx/tqm85xx.c | 16 ++-------
arch/powerpc/platforms/85xx/xes_mpc85xx.c | 20 +++--------
17 files changed, 77 insertions(+), 217 deletions(-)
create mode 100644 arch/powerpc/platforms/85xx/mpc85xx.h
create mode 100644 arch/powerpc/platforms/85xx/mpc85xx_common.c
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 43b2162..ca4b1b9 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -3,6 +3,8 @@
#
obj-$(CONFIG_SMP) += smp.o
+obj-y += mpc85xx_common.o
+
obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c
index c46f935..7657e1a 100644
--- a/arch/powerpc/platforms/85xx/ksi8560.c
+++ b/arch/powerpc/platforms/85xx/ksi8560.c
@@ -35,6 +35,7 @@
#include <asm/cpm2.h>
#include <sysdev/cpm2_pic.h>
+#include "mpc85xx.h"
#define KSI8560_CPLD_HVR 0x04 /* Hardware Version Register */
#define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */
@@ -215,22 +216,7 @@ static void ksi8560_show_cpuinfo(struct seq_file *m)
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .type = "soc", },
- { .type = "simple-bus", },
- { .name = "cpm", },
- { .name = "localbus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(ksi8560, declare_of_platform_devices);
+machine_device_initcall(ksi8560, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c
index f79f2f1..9ee6455 100644
--- a/arch/powerpc/platforms/85xx/mpc8536_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c
@@ -32,6 +32,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
void __init mpc8536_ds_pic_init(void)
{
struct mpic *mpic;
@@ -104,19 +106,7 @@ static void __init mpc8536_ds_setup_arch(void)
printk("MPC8536 DS board from Freescale Semiconductor\n");
}
-static struct of_device_id __initdata mpc8536_ds_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init mpc8536_ds_publish_devices(void)
-{
- return of_platform_bus_probe(NULL, mpc8536_ds_ids, NULL);
-}
-machine_device_initcall(mpc8536_ds, mpc8536_ds_publish_devices);
+machine_device_initcall(mpc8536_ds, mpc85xx_common_publish_devices);
machine_arch_initcall(mpc8536_ds, swiotlb_setup_bus_notifier);
diff --git a/arch/powerpc/platforms/85xx/mpc85xx.h b/arch/powerpc/platforms/85xx/mpc85xx.h
new file mode 100644
index 0000000..1a1b4eb
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/mpc85xx.h
@@ -0,0 +1,4 @@
+#ifndef MPC85xx_H
+#define MPC85xx_H
+extern int mpc85xx_common_publish_devices(void);
+#endif
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
index 2483929..3bc2acc 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -35,6 +35,8 @@
#include <sysdev/cpm2_pic.h>
#endif
+#include "mpc85xx.h"
+
#ifdef CONFIG_PCI
static int mpc85xx_exclude_device(struct pci_controller *hose,
u_char bus, u_char devfn)
@@ -219,23 +221,7 @@ static void mpc85xx_ads_show_cpuinfo(struct seq_file *m)
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .name = "soc", },
- { .type = "soc", },
- { .name = "cpm", },
- { .name = "localbus", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(mpc85xx_ads, declare_of_platform_devices);
+machine_device_initcall(mpc85xx_ads, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index e209c23..281ecc5 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -47,6 +47,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
/* CADMUS info */
/* xxx - galak, move into device tree */
#define CADMUS_BASE (0xf8004000)
@@ -328,19 +330,7 @@ static int __init mpc85xx_cds_probe(void)
return of_flat_dt_is_compatible(root, "MPC85xxCDS");
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- return of_platform_bus_probe(NULL, of_bus_ids, NULL);
-}
-machine_device_initcall(mpc85xx_cds, declare_of_platform_devices);
+machine_device_initcall(mpc85xx_cds, mpc85xx_common_publish_devices);
define_machine(mpc85xx_cds) {
.name = "MPC85xx CDS",
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_common.c b/arch/powerpc/platforms/85xx/mpc85xx_common.c
new file mode 100644
index 0000000..999567a
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/mpc85xx_common.c
@@ -0,0 +1,26 @@
+/*
+ * Routines common to most mpc85xx-based boards.
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/kernel.h>
+#include <linux/of_platform.h>
+
+#include "mpc85xx.h"
+
+static struct of_device_id __initdata mpc85xx_common_ids[] = {
+ { .type = "soc", },
+ { .compatible = "soc", },
+ { .compatible = "simple-bus", },
+ { .compatible = "gianfar", },
+ { .compatible = "fsl,qe", },
+ { .compatible = "fsl,cpm2", },
+ {},
+};
+
+int __init mpc85xx_common_publish_devices(void)
+{
+ return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL);
+}
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 53bf07d..7a0b728 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -36,6 +36,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
#undef DEBUG
#ifdef DEBUG
@@ -216,21 +218,9 @@ static int __init mpc8544_ds_probe(void)
return 0;
}
-static struct of_device_id __initdata mpc85xxds_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init mpc85xxds_publish_devices(void)
-{
- return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
-}
-machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
-machine_device_initcall(mpc8572_ds, mpc85xxds_publish_devices);
-machine_device_initcall(p2020_ds, mpc85xxds_publish_devices);
+machine_device_initcall(mpc8544_ds, mpc85xx_common_publish_devices);
+machine_device_initcall(mpc8572_ds, mpc85xx_common_publish_devices);
+machine_device_initcall(p2020_ds, mpc85xx_common_publish_devices);
machine_arch_initcall(mpc8544_ds, swiotlb_setup_bus_notifier);
machine_arch_initcall(mpc8572_ds, swiotlb_setup_bus_notifier);
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
index 747d1ee..fde37e5 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -53,6 +53,8 @@
#include <asm/mpic.h>
#include <asm/swiotlb.h>
+#include "mpc85xx.h"
+
#undef DEBUG
#ifdef DEBUG
#define DBG(fmt...) udbg_printf(fmt)
@@ -159,25 +161,6 @@ extern void __init mpc85xx_smp_init(void);
#endif
#ifdef CONFIG_QUICC_ENGINE
-static struct of_device_id mpc85xx_qe_ids[] __initdata = {
- { .type = "qe", },
- { .compatible = "fsl,qe", },
- { },
-};
-
-static void __init mpc85xx_publish_qe_devices(void)
-{
- struct device_node *np;
-
- np = of_find_compatible_node(NULL, NULL, "fsl,qe");
- if (!of_device_is_available(np)) {
- of_node_put(np);
- return;
- }
-
- of_platform_bus_probe(NULL, mpc85xx_qe_ids, NULL);
-}
-
static void __init mpc85xx_mds_reset_ucc_phys(void)
{
struct device_node *np;
@@ -348,7 +331,6 @@ static void __init mpc85xx_mds_qeic_init(void)
of_node_put(np);
}
#else
-static void __init mpc85xx_publish_qe_devices(void) { }
static void __init mpc85xx_mds_qe_init(void) { }
static void __init mpc85xx_mds_qeic_init(void) { }
#endif /* CONFIG_QUICC_ENGINE */
@@ -430,24 +412,12 @@ machine_arch_initcall(mpc8568_mds, board_fixups);
machine_arch_initcall(mpc8569_mds, board_fixups);
static struct of_device_id mpc85xx_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
{ .compatible = "fsl,rapidio-delta", },
{ .compatible = "fsl,mpc8548-guts", },
{ .compatible = "gpio-leds", },
{},
};
-static struct of_device_id p1021_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
static int __init mpc85xx_publish_devices(void)
{
if (machine_is(mpc8568_mds))
@@ -455,23 +425,15 @@ static int __init mpc85xx_publish_devices(void)
if (machine_is(mpc8569_mds))
simple_gpiochip_init("fsl,mpc8569mds-bcsr-gpio");
+ mpc85xx_common_publish_devices();
of_platform_bus_probe(NULL, mpc85xx_ids, NULL);
- mpc85xx_publish_qe_devices();
-
- return 0;
-}
-
-static int __init p1021_publish_devices(void)
-{
- of_platform_bus_probe(NULL, p1021_ids, NULL);
- mpc85xx_publish_qe_devices();
return 0;
}
machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices);
machine_device_initcall(mpc8569_mds, mpc85xx_publish_devices);
-machine_device_initcall(p1021_mds, p1021_publish_devices);
+machine_device_initcall(p1021_mds, mpc85xx_common_publish_devices);
machine_arch_initcall(mpc8568_mds, swiotlb_setup_bus_notifier);
machine_arch_initcall(mpc8569_mds, swiotlb_setup_bus_notifier);
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
index 7a3a37b..5846025 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
@@ -30,6 +30,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
#undef DEBUG
#ifdef DEBUG
@@ -108,19 +110,7 @@ static void __init mpc85xx_rdb_setup_arch(void)
printk(KERN_INFO "MPC85xx RDB board from Freescale Semiconductor\n");
}
-static struct of_device_id __initdata mpc85xxrdb_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init mpc85xxrdb_publish_devices(void)
-{
- return of_platform_bus_probe(NULL, mpc85xxrdb_ids, NULL);
-}
-machine_device_initcall(mpc85xx_rdb, mpc85xxrdb_publish_devices);
+machine_device_initcall(mpc85xx_rdb, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c
index 266b3aa..26e6f75 100644
--- a/arch/powerpc/platforms/85xx/p1022_ds.c
+++ b/arch/powerpc/platforms/85xx/p1022_ds.c
@@ -27,6 +27,8 @@
#include <sysdev/fsl_pci.h>
#include <asm/fsl_guts.h>
+#include "mpc85xx.h"
+
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
/*
@@ -325,10 +327,6 @@ static void __init p1022_ds_setup_arch(void)
}
static struct of_device_id __initdata p1022_ds_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
/* So that the DMA channel nodes can be probed individually: */
{ .compatible = "fsl,eloplus-dma", },
{},
@@ -338,6 +336,7 @@ static int __init p1022_ds_publish_devices(void)
{
return of_platform_bus_probe(NULL, p1022_ds_ids, NULL);
}
+machine_device_initcall(p1022_ds, mpc85xx_common_publish_devices);
machine_device_initcall(p1022_ds, p1022_ds_publish_devices);
machine_arch_initcall(p1022_ds, swiotlb_setup_bus_notifier);
diff --git a/arch/powerpc/platforms/85xx/sbc8548.c b/arch/powerpc/platforms/85xx/sbc8548.c
index 2eeb376..42343ac 100644
--- a/arch/powerpc/platforms/85xx/sbc8548.c
+++ b/arch/powerpc/platforms/85xx/sbc8548.c
@@ -49,6 +49,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
static int sbc_rev = -EINVAL;
static void __init sbc8548_pic_init(void)
@@ -152,21 +154,7 @@ static void sbc8548_show_cpuinfo(struct seq_file *m)
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .name = "soc", },
- { .type = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(sbc8548, declare_of_platform_devices);
+machine_device_initcall(sbc8548, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c
index 678f5a8..bbb656f 100644
--- a/arch/powerpc/platforms/85xx/sbc8560.c
+++ b/arch/powerpc/platforms/85xx/sbc8560.c
@@ -37,6 +37,8 @@
#include <sysdev/cpm2_pic.h>
#endif
+#include "mpc85xx.h"
+
#ifdef CONFIG_CPM2
static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
@@ -208,23 +210,7 @@ static void sbc8560_show_cpuinfo(struct seq_file *m)
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .name = "soc", },
- { .type = "soc", },
- { .name = "cpm", },
- { .name = "localbus", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(sbc8560, declare_of_platform_devices);
+machine_device_initcall(sbc8560, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/socrates.c b/arch/powerpc/platforms/85xx/socrates.c
index 747d8fb..fec496a 100644
--- a/arch/powerpc/platforms/85xx/socrates.c
+++ b/arch/powerpc/platforms/85xx/socrates.c
@@ -41,6 +41,7 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
#include "socrates_fpga_pic.h"
static void __init socrates_pic_init(void)
@@ -96,17 +97,7 @@ static void __init socrates_setup_arch(void)
#endif
}
-static struct of_device_id __initdata socrates_of_bus_ids[] = {
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init socrates_publish_devices(void)
-{
- return of_platform_bus_probe(NULL, socrates_of_bus_ids, NULL);
-}
-machine_device_initcall(socrates, socrates_publish_devices);
+machine_device_initcall(socrates, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/stx_gp3.c b/arch/powerpc/platforms/85xx/stx_gp3.c
index 5387e9f..ab80044 100644
--- a/arch/powerpc/platforms/85xx/stx_gp3.c
+++ b/arch/powerpc/platforms/85xx/stx_gp3.c
@@ -40,6 +40,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
#ifdef CONFIG_CPM2
#include <asm/cpm2.h>
#include <sysdev/cpm2_pic.h>
@@ -144,19 +146,7 @@ static void stx_gp3_show_cpuinfo(struct seq_file *m)
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
}
-static struct of_device_id __initdata of_bus_ids[] = {
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(stx_gp3, declare_of_platform_devices);
+machine_device_initcall(stx_gp3, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c
index 325de77..19e711f 100644
--- a/arch/powerpc/platforms/85xx/tqm85xx.c
+++ b/arch/powerpc/platforms/85xx/tqm85xx.c
@@ -38,6 +38,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
#ifdef CONFIG_CPM2
#include <asm/cpm2.h>
#include <sysdev/cpm2_pic.h>
@@ -173,19 +175,7 @@ static void __init tqm85xx_ti1520_fixup(struct pci_dev *pdev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1520,
tqm85xx_ti1520_fixup);
-static struct of_device_id __initdata of_bus_ids[] = {
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
- of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
- return 0;
-}
-machine_device_initcall(tqm85xx, declare_of_platform_devices);
+machine_device_initcall(tqm85xx, mpc85xx_common_publish_devices);
static const char *board[] __initdata = {
"tqc,tqm8540",
diff --git a/arch/powerpc/platforms/85xx/xes_mpc85xx.c b/arch/powerpc/platforms/85xx/xes_mpc85xx.c
index 0125604..0ee3721 100644
--- a/arch/powerpc/platforms/85xx/xes_mpc85xx.c
+++ b/arch/powerpc/platforms/85xx/xes_mpc85xx.c
@@ -33,6 +33,8 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
+#include "mpc85xx.h"
+
/* A few bit definitions needed for fixups on some boards */
#define MPC85xx_L2CTL_L2E 0x80000000 /* L2 enable */
#define MPC85xx_L2CTL_L2I 0x40000000 /* L2 flash invalidate */
@@ -177,21 +179,9 @@ static void __init xes_mpc85xx_setup_arch(void)
#endif
}
-static struct of_device_id __initdata xes_mpc85xx_ids[] = {
- { .type = "soc", },
- { .compatible = "soc", },
- { .compatible = "simple-bus", },
- { .compatible = "gianfar", },
- {},
-};
-
-static int __init xes_mpc85xx_publish_devices(void)
-{
- return of_platform_bus_probe(NULL, xes_mpc85xx_ids, NULL);
-}
-machine_device_initcall(xes_mpc8572, xes_mpc85xx_publish_devices);
-machine_device_initcall(xes_mpc8548, xes_mpc85xx_publish_devices);
-machine_device_initcall(xes_mpc8540, xes_mpc85xx_publish_devices);
+machine_device_initcall(xes_mpc8572, mpc85xx_common_publish_devices);
+machine_device_initcall(xes_mpc8548, mpc85xx_common_publish_devices);
+machine_device_initcall(xes_mpc8540, mpc85xx_common_publish_devices);
/*
* Called very early, device-tree isn't unflattened
--
1.7.2.5
^ permalink raw reply related
* [PATCH 14/14] 85xx: separate cpm2 pic init
From: Dmitry Eremin-Solenikov @ 2011-07-19 8:53 UTC (permalink / raw)
To: Linux PPC Development; +Cc: Paul Mackerras
In-Reply-To: <1311065631-3429-1-git-send-email-dbaryshkov@gmail.com>
Separate handling of CPM2 PIC initialization to mpc85xx_cpm2_pic_init()
function.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
arch/powerpc/platforms/85xx/ksi8560.c | 28 +------------------
arch/powerpc/platforms/85xx/mpc85xx.h | 7 ++++
arch/powerpc/platforms/85xx/mpc85xx_ads.c | 32 +--------------------
arch/powerpc/platforms/85xx/mpc85xx_common.c | 39 ++++++++++++++++++++++++++
arch/powerpc/platforms/85xx/sbc8560.c | 32 +--------------------
arch/powerpc/platforms/85xx/tqm85xx.c | 35 +----------------------
6 files changed, 50 insertions(+), 123 deletions(-)
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c
index 7657e1a..0f3e688 100644
--- a/arch/powerpc/platforms/85xx/ksi8560.c
+++ b/arch/powerpc/platforms/85xx/ksi8560.c
@@ -55,25 +55,11 @@ static void machine_restart(char *cmd)
for (;;);
}
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
- struct irq_chip *chip = irq_desc_get_chip(desc);
- int cascade_irq;
-
- while ((cascade_irq = cpm2_get_irq()) >= 0)
- generic_handle_irq(cascade_irq);
-
- chip->irq_eoi(&desc->irq_data);
-}
-
static void __init ksi8560_pic_init(void)
{
struct mpic *mpic;
struct resource r;
struct device_node *np;
-#ifdef CONFIG_CPM2
- int irq;
-#endif
np = of_find_node_by_type(NULL, "open-pic");
@@ -96,19 +82,7 @@ static void __init ksi8560_pic_init(void)
mpic_init(mpic);
-#ifdef CONFIG_CPM2
- /* Setup CPM2 PIC */
- np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
- if (np == NULL) {
- printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
- return;
- }
- irq = irq_of_parse_and_map(np, 0);
-
- cpm2_pic_init(np);
- of_node_put(np);
- irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+ mpc85xx_cpm2_pic_init();
}
#ifdef CONFIG_CPM2
diff --git a/arch/powerpc/platforms/85xx/mpc85xx.h b/arch/powerpc/platforms/85xx/mpc85xx.h
index 1a1b4eb..2aa7c5d 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx.h
+++ b/arch/powerpc/platforms/85xx/mpc85xx.h
@@ -1,4 +1,11 @@
#ifndef MPC85xx_H
#define MPC85xx_H
extern int mpc85xx_common_publish_devices(void);
+
+#ifdef CONFIG_CPM2
+extern void mpc85xx_cpm2_pic_init(void);
+#else
+static inline void __init mpc85xx_cpm2_pic_init(void) {}
+#endif /* CONFIG_CPM2 */
+
#endif
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
index 3bc2acc..0e90422 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -48,29 +48,11 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
}
#endif /* CONFIG_PCI */
-#ifdef CONFIG_CPM2
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
- struct irq_chip *chip = irq_desc_get_chip(desc);
- int cascade_irq;
-
- while ((cascade_irq = cpm2_get_irq()) >= 0)
- generic_handle_irq(cascade_irq);
-
- chip->irq_eoi(&desc->irq_data);
-}
-
-#endif /* CONFIG_CPM2 */
-
static void __init mpc85xx_ads_pic_init(void)
{
struct mpic *mpic;
struct resource r;
struct device_node *np = NULL;
-#ifdef CONFIG_CPM2
- int irq;
-#endif
np = of_find_node_by_type(np, "open-pic");
if (!np) {
@@ -92,19 +74,7 @@ static void __init mpc85xx_ads_pic_init(void)
mpic_init(mpic);
-#ifdef CONFIG_CPM2
- /* Setup CPM2 PIC */
- np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
- if (np == NULL) {
- printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
- return;
- }
- irq = irq_of_parse_and_map(np, 0);
-
- cpm2_pic_init(np);
- of_node_put(np);
- irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+ mpc85xx_cpm2_pic_init();
}
/*
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_common.c b/arch/powerpc/platforms/85xx/mpc85xx_common.c
index 999567a..4fdf382 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_common.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_common.c
@@ -8,6 +8,8 @@
#include <linux/kernel.h>
#include <linux/of_platform.h>
+#include <sysdev/cpm2_pic.h>
+
#include "mpc85xx.h"
static struct of_device_id __initdata mpc85xx_common_ids[] = {
@@ -24,3 +26,40 @@ int __init mpc85xx_common_publish_devices(void)
{
return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL);
}
+
+#ifdef CONFIG_CPM2
+static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
+{
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ int cascade_irq;
+
+ while ((cascade_irq = cpm2_get_irq()) >= 0)
+ generic_handle_irq(cascade_irq);
+
+ chip->irq_eoi(&desc->irq_data);
+}
+
+
+void __init mpc85xx_cpm2_pic_init(void)
+{
+ struct device_node *np;
+ int irq;
+
+ /* Setup CPM2 PIC */
+ np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
+ if (np == NULL) {
+ printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
+ return;
+ }
+ irq = irq_of_parse_and_map(np, 0);
+ if (irq == NO_IRQ) {
+ of_node_put(np);
+ printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
+ return;
+ }
+
+ cpm2_pic_init(np);
+ of_node_put(np);
+ irq_set_chained_handler(irq, cpm2_cascade);
+}
+#endif
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c
index bbb656f..f3b4737 100644
--- a/arch/powerpc/platforms/85xx/sbc8560.c
+++ b/arch/powerpc/platforms/85xx/sbc8560.c
@@ -39,29 +39,11 @@
#include "mpc85xx.h"
-#ifdef CONFIG_CPM2
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
- struct irq_chip *chip = irq_desc_get_chip(desc);
- int cascade_irq;
-
- while ((cascade_irq = cpm2_get_irq()) >= 0)
- generic_handle_irq(cascade_irq);
-
- chip->irq_eoi(&desc->irq_data);
-}
-
-#endif /* CONFIG_CPM2 */
-
static void __init sbc8560_pic_init(void)
{
struct mpic *mpic;
struct resource r;
struct device_node *np = NULL;
-#ifdef CONFIG_CPM2
- int irq;
-#endif
np = of_find_node_by_type(np, "open-pic");
if (!np) {
@@ -83,19 +65,7 @@ static void __init sbc8560_pic_init(void)
mpic_init(mpic);
-#ifdef CONFIG_CPM2
- /* Setup CPM2 PIC */
- np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
- if (np == NULL) {
- printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
- return;
- }
- irq = irq_of_parse_and_map(np, 0);
-
- cpm2_pic_init(np);
- of_node_put(np);
- irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+ mpc85xx_cpm2_pic_init();
}
/*
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c
index 19e711f..2418bf8 100644
--- a/arch/powerpc/platforms/85xx/tqm85xx.c
+++ b/arch/powerpc/platforms/85xx/tqm85xx.c
@@ -42,18 +42,6 @@
#ifdef CONFIG_CPM2
#include <asm/cpm2.h>
-#include <sysdev/cpm2_pic.h>
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
- struct irq_chip *chip = irq_desc_get_chip(desc);
- int cascade_irq;
-
- while ((cascade_irq = cpm2_get_irq()) >= 0)
- generic_handle_irq(cascade_irq);
-
- chip->irq_eoi(&desc->irq_data);
-}
#endif /* CONFIG_CPM2 */
static void __init tqm85xx_pic_init(void)
@@ -61,9 +49,6 @@ static void __init tqm85xx_pic_init(void)
struct mpic *mpic;
struct resource r;
struct device_node *np;
-#ifdef CONFIG_CPM2
- int irq;
-#endif
np = of_find_node_by_type(NULL, "open-pic");
if (!np) {
@@ -85,25 +70,7 @@ static void __init tqm85xx_pic_init(void)
mpic_init(mpic);
-#ifdef CONFIG_CPM2
- /* Setup CPM2 PIC */
- np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
- if (np == NULL) {
- printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
- return;
- }
- irq = irq_of_parse_and_map(np, 0);
-
- if (irq == NO_IRQ) {
- of_node_put(np);
- printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
- return;
- }
-
- cpm2_pic_init(np);
- of_node_put(np);
- irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+ mpc85xx_cpm2_pic_init();
}
/*
--
1.7.2.5
^ permalink raw reply related
* Re: [PATCH v2] net: filter: BPF 'JIT' compiler for PPC64
From: Eric Dumazet @ 2011-07-19 9:06 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: netdev, linuxppc-dev, Matt Evans
In-Reply-To: <1311062135.25044.409.camel@pasglop>
Le mardi 19 juillet 2011 à 17:55 +1000, Benjamin Herrenschmidt a écrit :
> On Tue, 2011-07-19 at 08:51 +0200, Eric Dumazet wrote:
>
> > > + case BPF_S_ANC_CPU:
> > > +#ifdef CONFIG_SMP
> > > + /*
> > > + * PACA ptr is r13:
> > > + * raw_smp_processor_id() = local_paca->paca_index
> > > + */
> >
> > This could break if one day linux supports more than 65536 cpus :)
> >
> > > + PPC_LHZ_OFFS(r_A, 13,
> > > + offsetof(struct paca_struct, paca_index));
> > > +#else
> > > + PPC_LI(r_A, 0);
> > > +#endif
> > > + break;
>
> As would our implementation of raw_smp_processor_id() and our
> spinlocks :-) I don't think we need to fix that -now- but you are
> welcome to add something like a
> BUILD_BUG_ON(sizeof(local_paca->paca_index) != 2); as a reminder :-)
Please Matt add to your next version this check. I dont think I have to
submit a one line patch later...
On x86_64, cpu_number field is already 32bit, we have some time before
it becomes 64bit ;)
We probably should add some extra check to make sure segment doesnt
change (%gs on x86_64, r13 on ppc64) on a future linux version.
^ permalink raw reply
* Re: [PATCH v2] net: filter: BPF 'JIT' compiler for PPC64
From: Benjamin Herrenschmidt @ 2011-07-19 9:22 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, linuxppc-dev, Matt Evans
In-Reply-To: <1311066368.2375.13.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
On Tue, 2011-07-19 at 11:06 +0200, Eric Dumazet wrote:
> Please Matt add to your next version this check. I dont think I have
> to
> submit a one line patch later...
>
> On x86_64, cpu_number field is already 32bit, we have some time before
> it becomes 64bit ;)
>
> We probably should add some extra check to make sure segment doesnt
> change (%gs on x86_64, r13 on ppc64) on a future linux version.
r13 isn't really a "segment" per-se, it can change if you aren't preempt
disabled, it's the PACA pointer, which is basically a low level per-cpu
data structure, so it will change if you migrate around (but if you are
in softirq context like most of the network stack, then it won't
change).
As for the CPU number being 16-bit, this is really due to how our
spinlocks work, using that as a lock token within the same 32-bit word
as the lock flag etc... We can easily fix that later if needed but I
don't see any emergency for us.
Cheers,
Ben.
^ permalink raw reply
* Re: [regression] 3.0-rc boot failure -- bisected to cd4ea6ae3982
From: Peter Zijlstra @ 2011-07-19 10:21 UTC (permalink / raw)
To: Anton Blanchard; +Cc: mahesh, linuxppc-dev, linux-kernel, mingo, torvalds
In-Reply-To: <20110719144451.79bc69ab@kryten>
On Tue, 2011-07-19 at 14:44 +1000, Anton Blanchard wrote:
>=20
> Our node distances are a bit arbitrary (I make them up based on
> information given to us in the device tree). In terms of memory we have
> a maximum of three levels. To give some gross estimates, on chip memory
> might be 30GB/sec, on node memory 10-15GB/sec and off node memory
> 5GB/sec.
>=20
> The only thing we tweak with node distances is to make sure we go into
> node reclaim before going off node:
>=20
> /*
> * Before going off node we want the VM to try and reclaim from the local
> * node. It does this if the remote distance is larger than RECLAIM_DISTA=
NCE.
> * With the default REMOTE_DISTANCE of 20 and the default RECLAIM_DISTANC=
E of
> * 20, we never reclaim and go off node straight away.
> *
> * To fix this we choose a smaller value of RECLAIM_DISTANCE.
> */
> #define RECLAIM_DISTANCE 10
> node distances:
> node 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 =
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31=20
> 0: 10 20 20 20 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 1: 20 10 20 20 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 2: 20 20 10 20 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 3: 20 20 20 10 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 4: 40 40 40 40 10 20 20 20 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 5: 40 40 40 40 20 10 20 20 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 6: 40 40 40 40 20 20 10 20 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 7: 40 40 40 40 20 20 20 10 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 8: 40 40 40 40 40 40 40 40 10 20 20 20 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 9: 40 40 40 40 40 40 40 40 20 10 20 20 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 10: 40 40 40 40 40 40 40 40 20 20 10 20 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 11: 40 40 40 40 40 40 40 40 20 20 20 10 40 40 40 40 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 12: 40 40 40 40 40 40 40 40 40 40 40 40 10 20 20 20 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 13: 40 40 40 40 40 40 40 40 40 40 40 40 20 10 20 20 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 14: 40 40 40 40 40 40 40 40 40 40 40 40 20 20 10 20 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 15: 40 40 40 40 40 40 40 40 40 40 40 40 20 20 20 10 40 =
40 40 40 40 40 40 40 40 40 40 40 0 0 0 0=20
> 16: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 10 =
20 20 20 40 40 40 40 40 40 40 40 0 0 0 0=20
> 17: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 20 =
10 20 20 40 40 40 40 40 40 40 40 0 0 0 0=20
> 18: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 20 =
20 10 20 40 40 40 40 40 40 40 40 0 0 0 0=20
> 19: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 20 =
20 20 10 40 40 40 40 40 40 40 40 0 0 0 0=20
> 20: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 10 20 20 20 40 40 40 40 0 0 0 0=20
> 21: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 20 10 20 20 40 40 40 40 0 0 0 0=20
> 22: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 20 20 10 20 40 40 40 40 0 0 0 0=20
> 23: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 20 20 20 10 40 40 40 40 0 0 0 0=20
> 24: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=20
> 25: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=20
> 26: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=20
> 27: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0=20
> 28: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 10 20 20 20 0 0 0 0=20
> 29: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 20 10 20 20 0 0 0 0=20
> 30: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 20 20 10 20 0 0 0 0=20
> 31: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 =
40 40 40 40 40 40 40 20 20 20 10 0 0 0 0=20
That looks very strange indeed.. up to node 23 there is the normal
symmetric matrix with all the trace elements on 10 (as we would expect
for local access), and some 4x4 sub-matrix stacked around the trace with
20, suggesting a single hop distance, and the rest on 40 being
out-there.
But row 24-27 and column 28-31 are way weird, how can that ever be?
Aren't the inter-connects symmetric and thus mandating a fully symmetric
matrix? That is, how can traffic from node 23 (row) to node 28 (column)
have inf bandwidth (0) yet traffic from node 28 (row) to node 23
(column) have a multi-hop distance of 40.
So the idea I had to generate numa sched domains from the node distance
( http://marc.info/?l=3Dlinux-kernel&m=3D130218515520540 ), would that stil=
l
work for you? [it does assume a symmetric matrix ]
^ permalink raw reply
* [PATCH] net: ibm_newemac: Don't start autonegotiation when disabled in BMCR (genmii)
From: Stefan Roese @ 2011-07-19 10:50 UTC (permalink / raw)
To: linuxppc-dev, netdev
As noticed on a custom 440GX board using the Micrel KSZ8041 PHY in
fiber mode, a strapped fixed PHY configuration will currently restart
the autonegotiation. This patch checks the BMCR_ANENABLE bit and
skips this autonegotiation if its disabled.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
drivers/net/ibm_newemac/phy.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ibm_newemac/phy.c b/drivers/net/ibm_newemac/phy.c
index ac9d964..90afc58 100644
--- a/drivers/net/ibm_newemac/phy.c
+++ b/drivers/net/ibm_newemac/phy.c
@@ -116,6 +116,11 @@ static int genmii_setup_aneg(struct mii_phy *phy, u32 advertise)
ctl = phy_read(phy, MII_BMCR);
if (ctl < 0)
return ctl;
+
+ /* Don't start auto negotiation when its disabled in BMCR */
+ if (!(ctl & BMCR_ANENABLE))
+ return 0;
+
ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | BMCR_SPEED1000 | BMCR_ANENABLE);
/* First clear the PHY */
--
1.7.6
^ permalink raw reply related
* Re: [v3 PATCH 1/1] booke/kprobe: make program exception to use one dedicated exception stack
From: tiejun.chen @ 2011-07-19 10:52 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <20110718105627.245c9fa4@schlenkerla.am.freescale.net>
Scott Wood wrote:
> On Sat, 16 Jul 2011 03:25:47 +0000
> "Chen, Tiejun" <Tiejun.Chen@windriver.com> wrote:
>
>>> -----Original Message-----
>>> From: Scott Wood [mailto:scottwood@freescale.com]
>>> Sent: Saturday, July 16, 2011 2:43 AM
>>> To: Chen, Tiejun
>>> Cc: Kumar Gala; linuxppc-dev@ozlabs.org
>>> Subject: Re: [v3 PATCH 1/1] booke/kprobe: make program
>>> exception to use one dedicated exception stack
>>>
>>> On Fri, 15 Jul 2011 13:28:15 +0800
>>> tiejun.chen <tiejun.chen@windriver.com> wrote:
>>>
>>>> Kumar Gala wrote:
>>>>> I'm still very confused why we need a unique stack frame
>>> for kprobe/program exceptions on book-e devices.
>>>> Its a bug at least for Book-E.
>>> But why only booke? There's nothing booke-specific about the
>> I don't mean this is reproduced only on booke, so I use 'at least' carefully to notice we really see this problem on booke.
>>
>>> stwu instruction.
>> Please note this root cause to this bug is not related to how to emulate stwu instruction. That should be issued from the overlap between an exception frame and the kprobed function stack frame on booke. Would you like to see that example I showed?
>
> As I understand it, the problem comes from the fact that stwu combines the
> creation of a stack frame with storing into that stack frame. If they were
Yes.
> separate instructions you'd have a new exception frame at a lower address
> by the time you actually store to the non-exception frame.
So when kprobe we should use a unique stack frame to skip that stack frame the
kprobed stwu want to create.
Tiejun
>
> -Scott
>
>
^ permalink raw reply
* Re: [RFC/PATCH] mm/futex: Fix futex writes on archs with SW tracking of dirty & young
From: Peter Zijlstra @ 2011-07-19 11:10 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: tony.luck, Shan Hai, linux-kernel, cmetcalf, dhowells, paulus,
tglx, walken, linuxppc-dev, akpm
In-Reply-To: <1311049762.25044.392.camel@pasglop>
On Tue, 2011-07-19 at 14:29 +1000, Benjamin Herrenschmidt wrote:
> The futex code currently attempts to write to user memory within
> a pagefault disabled section, and if that fails, tries to fix it
> up using get_user_pages().
>=20
> This doesn't work on archs where the dirty and young bits are
> maintained by software, since they will gate access permission
> in the TLB, and will not be updated by gup().
>=20
> In addition, there's an expectation on some archs that a
> spurious write fault triggers a local TLB flush, and that is
> missing from the picture as well.
>=20
> I decided that adding those "features" to gup() would be too much
> for this already too complex function, and instead added a new
> simpler fixup_user_fault() which is essentially a wrapper around
> handle_mm_fault() which the futex code can call.
>=20
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>=20
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
^ permalink raw reply
* Re: [PATCH] net: ibm_newemac: Don't start autonegotiation when disabled in BMCR (genmii)
From: Benjamin Herrenschmidt @ 2011-07-19 11:35 UTC (permalink / raw)
To: Stefan Roese; +Cc: linuxppc-dev, netdev
In-Reply-To: <1311072604-24840-1-git-send-email-sr@denx.de>
On Tue, 2011-07-19 at 12:50 +0200, Stefan Roese wrote:
> As noticed on a custom 440GX board using the Micrel KSZ8041 PHY in
> fiber mode, a strapped fixed PHY configuration will currently restart
> the autonegotiation. This patch checks the BMCR_ANENABLE bit and
> skips this autonegotiation if its disabled.
Won't that just break aneg on everything else ?
IE, most other PHYs rely on ANENABLE being set further down this same
function (especially if the FW doesn't do it but even then, we may reset
PHYs along the way etc...)
This is something that really a case where the device-tree should
indicate that aneg shall not be performed and from there don't call
setup_aneg at all.
Cheers,
Ben.
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> drivers/net/ibm_newemac/phy.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/ibm_newemac/phy.c b/drivers/net/ibm_newemac/phy.c
> index ac9d964..90afc58 100644
> --- a/drivers/net/ibm_newemac/phy.c
> +++ b/drivers/net/ibm_newemac/phy.c
> @@ -116,6 +116,11 @@ static int genmii_setup_aneg(struct mii_phy *phy, u32 advertise)
> ctl = phy_read(phy, MII_BMCR);
> if (ctl < 0)
> return ctl;
> +
> + /* Don't start auto negotiation when its disabled in BMCR */
> + if (!(ctl & BMCR_ANENABLE))
> + return 0;
> +
> ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | BMCR_SPEED1000 | BMCR_ANENABLE);
>
> /* First clear the PHY */
^ permalink raw reply
* Re: [PATCH] net: ibm_newemac: Don't start autonegotiation when disabled in BMCR (genmii)
From: Stefan Roese @ 2011-07-19 11:59 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, netdev
In-Reply-To: <1311075322.25044.418.camel@pasglop>
Hi Ben,
On Tuesday 19 July 2011 13:35:22 Benjamin Herrenschmidt wrote:
> On Tue, 2011-07-19 at 12:50 +0200, Stefan Roese wrote:
> > As noticed on a custom 440GX board using the Micrel KSZ8041 PHY in
> > fiber mode, a strapped fixed PHY configuration will currently restart
> > the autonegotiation. This patch checks the BMCR_ANENABLE bit and
> > skips this autonegotiation if its disabled.
>
> Won't that just break aneg on everything else ?
>
> IE, most other PHYs rely on ANENABLE being set further down this same
> function (especially if the FW doesn't do it but even then, we may reset
> PHYs along the way etc...)
If aneg is enabled for a PHY (e.g. not strapped to fixed configuration), I
don't see how this patch will change the current aneg behaviour. Perhaps I'm
missing something, but I tested this on some boards with aneg enabled (Sequoia
etc). And I didn't notice any problems.
> This is something that really a case where the device-tree should
> indicate that aneg shall not be performed and from there don't call
> setup_aneg at all.
I feel that this BMCR_ANENABLE bit should be evaluated, but I have no strong
preference here. If you prefer that this should be handled via a new dt
property (phy-aneg = "disabled" ?), I can implement it this way. Just let me
know.
Thanks,
Stefan
^ permalink raw reply
* Re: [PATCH] net: ibm_newemac: Don't start autonegotiation when disabled in BMCR (genmii)
From: Benjamin Herrenschmidt @ 2011-07-19 12:29 UTC (permalink / raw)
To: Stefan Roese; +Cc: linuxppc-dev, netdev
In-Reply-To: <201107191359.57421.sr@denx.de>
On Tue, 2011-07-19 at 13:59 +0200, Stefan Roese wrote:
> Hi Ben,
>
> On Tuesday 19 July 2011 13:35:22 Benjamin Herrenschmidt wrote:
> > On Tue, 2011-07-19 at 12:50 +0200, Stefan Roese wrote:
> > > As noticed on a custom 440GX board using the Micrel KSZ8041 PHY in
> > > fiber mode, a strapped fixed PHY configuration will currently restart
> > > the autonegotiation. This patch checks the BMCR_ANENABLE bit and
> > > skips this autonegotiation if its disabled.
> >
> > Won't that just break aneg on everything else ?
> >
> > IE, most other PHYs rely on ANENABLE being set further down this same
> > function (especially if the FW doesn't do it but even then, we may reset
> > PHYs along the way etc...)
>
> If aneg is enabled for a PHY (e.g. not strapped to fixed configuration), I
> don't see how this patch will change the current aneg behaviour. Perhaps I'm
> missing something, but I tested this on some boards with aneg enabled (Sequoia
> etc). And I didn't notice any problems.
But is aneg always enabled via straps ? The whole point of this function
is that aneg can be enabled or disabled via the ethtool API (thus
overriding whatever strapping)... I may be missing something but this
patch looks like it would break this no ?
> > This is something that really a case where the device-tree should
> > indicate that aneg shall not be performed and from there don't call
> > setup_aneg at all.
>
> I feel that this BMCR_ANENABLE bit should be evaluated, but I have no strong
> preference here. If you prefer that this should be handled via a new dt
> property (phy-aneg = "disabled" ?), I can implement it this way. Just let me
> know.
Don't we already have some bindings for PHY with a fixed setting ? I
don't remember off hand, we need to dbl check.
I don't like looking at BMCR because BCMR is a -control- register,
something that we can (and will) whack with anything ourselves, which
can be reset or reconfigured and I have learned to never trust board
straps :-)
Cheers,
Ben.
^ permalink raw reply
* Re: [PATCH 12/14] 85xx/mpc85xx_ds, ads, cds: move .pci_exclude_device setting to machine definitions
From: Kumar Gala @ 2011-07-19 13:59 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-13-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/mpc85xx_ads.c | 5 +++--
> arch/powerpc/platforms/85xx/mpc85xx_cds.c | 5 ++---
> arch/powerpc/platforms/85xx/mpc85xx_ds.c | 5 +++--
> 3 files changed, 8 insertions(+), 7 deletions(-)
I believe these are done this way for a reason (its been some time). I =
can't remember if it maters or not, but having pci_exclude_device() =
means that any code in fsl_add_bridge() would not be impacted by the =
exclude function.
Not sure what value making this change has at this point.
- k
>=20
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c =
b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> index 3b2c9bb..2483929 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> @@ -200,8 +200,6 @@ static void __init mpc85xx_ads_setup_arch(void)
> #ifdef CONFIG_PCI
> for_each_compatible_node(np, "pci", "fsl,mpc8540-pci")
> fsl_add_bridge(np, 1);
> -
> - ppc_md.pci_exclude_device =3D mpc85xx_exclude_device;
> #endif
> }
>=20
> @@ -254,6 +252,9 @@ define_machine(mpc85xx_ads) {
> .probe =3D mpc85xx_ads_probe,
> .setup_arch =3D mpc85xx_ads_setup_arch,
> .init_IRQ =3D mpc85xx_ads_pic_init,
> +#ifdef CONFIG_PCI
> + .pci_exclude_device =3D mpc85xx_exclude_device,
> +#endif
> .show_cpuinfo =3D mpc85xx_ads_show_cpuinfo,
> .get_irq =3D mpic_get_irq,
> .restart =3D fsl_rstcr_restart,
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c =
b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> index 6299a2a..e209c23 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> @@ -297,9 +297,6 @@ static void __init mpc85xx_cds_setup_arch(void)
> fsl_add_bridge(np, 0);
> }
> }
> -
> - ppc_md.pci_irq_fixup =3D mpc85xx_cds_pci_irq_fixup;
> - ppc_md.pci_exclude_device =3D mpc85xx_exclude_device;
> #endif
> }
>=20
> @@ -355,6 +352,8 @@ define_machine(mpc85xx_cds) {
> #ifdef CONFIG_PCI
> .restart =3D mpc85xx_cds_restart,
> .pcibios_fixup_bus =3D fsl_pcibios_fixup_bus,
> + .pci_irq_fixup =3D mpc85xx_cds_pci_irq_fixup,
> + .pci_exclude_device =3D mpc85xx_exclude_device,
> #else
> .restart =3D fsl_rstcr_restart,
> #endif
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c =
b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> index c7b97f7..53bf07d 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> @@ -182,8 +182,6 @@ static void __init mpc85xx_ds_setup_arch(void)
> hose->dma_window_size);
> }
> }
> -
> - ppc_md.pci_exclude_device =3D mpc85xx_exclude_device;
> #endif
>=20
> #ifdef CONFIG_SMP
> @@ -279,6 +277,7 @@ define_machine(mpc8544_ds) {
> .init_IRQ =3D mpc85xx_ds_pic_init,
> #ifdef CONFIG_PCI
> .pcibios_fixup_bus =3D fsl_pcibios_fixup_bus,
> + .pci_exclude_device =3D mpc85xx_exclude_device,
> #endif
> .get_irq =3D mpic_get_irq,
> .restart =3D fsl_rstcr_restart,
> @@ -293,6 +292,7 @@ define_machine(mpc8572_ds) {
> .init_IRQ =3D mpc85xx_ds_pic_init,
> #ifdef CONFIG_PCI
> .pcibios_fixup_bus =3D fsl_pcibios_fixup_bus,
> + .pci_exclude_device =3D mpc85xx_exclude_device,
> #endif
> .get_irq =3D mpic_get_irq,
> .restart =3D fsl_rstcr_restart,
> @@ -307,6 +307,7 @@ define_machine(p2020_ds) {
> .init_IRQ =3D mpc85xx_ds_pic_init,
> #ifdef CONFIG_PCI
> .pcibios_fixup_bus =3D fsl_pcibios_fixup_bus,
> + .pci_exclude_device =3D mpc85xx_exclude_device,
> #endif
> .get_irq =3D mpic_get_irq,
> .restart =3D fsl_rstcr_restart,
> --=20
> 1.7.2.5
^ permalink raw reply
* Re: [PATCH 10/14] 85xx/mpc85xx_rdb: merge p1020_rdb and p2020_rdb machine entries
From: Kumar Gala @ 2011-07-19 14:00 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-11-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> p1020_rdb and p2020_rdb machine entries bear no in-kernel differencies
> other than dt compatible strings. Merge them into single machine entry
> named mpc85xx_rdb
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 40 =
++++++----------------------
> 1 files changed, 9 insertions(+), 31 deletions(-)
>=20
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c =
b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> index 088f30b..7a3a37b 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> @@ -120,47 +120,25 @@ static int __init =
mpc85xxrdb_publish_devices(void)
> {
> return of_platform_bus_probe(NULL, mpc85xxrdb_ids, NULL);
> }
> -machine_device_initcall(p2020_rdb, mpc85xxrdb_publish_devices);
> -machine_device_initcall(p1020_rdb, mpc85xxrdb_publish_devices);
> +machine_device_initcall(mpc85xx_rdb, mpc85xxrdb_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> */
> -static int __init p2020_rdb_probe(void)
> +static int __init mpc85xx_rdb_probe(void)
> {
> unsigned long root =3D of_get_flat_dt_root();
>=20
> - if (of_flat_dt_is_compatible(root, "fsl,P2020RDB"))
> + if (of_flat_dt_is_compatible(root, "fsl,P1020RDB") ||
> + of_flat_dt_is_compatible(root, "fsl,P2020RDB")) {
> return 1;
> - return 0;
> + } else
> + return 0;
> }
>=20
> -static int __init p1020_rdb_probe(void)
> -{
> - unsigned long root =3D of_get_flat_dt_root();
> -
> - if (of_flat_dt_is_compatible(root, "fsl,P1020RDB"))
> - return 1;
> - return 0;
> -}
> -
> -define_machine(p2020_rdb) {
> - .name =3D "P2020 RDB",
> - .probe =3D p2020_rdb_probe,
> - .setup_arch =3D mpc85xx_rdb_setup_arch,
> - .init_IRQ =3D mpc85xx_rdb_pic_init,
> -#ifdef CONFIG_PCI
> - .pcibios_fixup_bus =3D fsl_pcibios_fixup_bus,
> -#endif
> - .get_irq =3D mpic_get_irq,
> - .restart =3D fsl_rstcr_restart,
> - .calibrate_decr =3D generic_calibrate_decr,
> - .progress =3D udbg_progress,
> -};
> -
> -define_machine(p1020_rdb) {
> - .name =3D "P1020 RDB",
> - .probe =3D p1020_rdb_probe,
> +define_machine(mpc85xx_rdb) {
> + .name =3D "MPC85xx RDB",
breaking 'name' this way isn't acceptable.
> + .probe =3D mpc85xx_rdb_probe,
> .setup_arch =3D mpc85xx_rdb_setup_arch,
> .init_IRQ =3D mpc85xx_rdb_pic_init,
> #ifdef CONFIG_PCI
> --=20
> 1.7.2.5
^ permalink raw reply
* Re: [PATCH 09/14] 85xx/sbc8548: read hardware revision when it's required for first time
From: Kumar Gala @ 2011-07-19 14:12 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-10-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Currently sbc8548 reads hardware revision during bootup. To simplify
> things read it when it's first required when the kernel is up and
> running.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/sbc8548.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
How is this simplifying things, seems more complicated to add an =
additional if() check.
- k
>=20
> diff --git a/arch/powerpc/platforms/85xx/sbc8548.c =
b/arch/powerpc/platforms/85xx/sbc8548.c
> index ecdd8c0..2eeb376 100644
> --- a/arch/powerpc/platforms/85xx/sbc8548.c
> +++ b/arch/powerpc/platforms/85xx/sbc8548.c
> @@ -49,7 +49,7 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> -static int sbc_rev;
> +static int sbc_rev =3D -EINVAL;
>=20
> static void __init sbc8548_pic_init(void)
> {
> @@ -82,7 +82,7 @@ static void __init sbc8548_pic_init(void)
> }
>=20
> /* Extract the HW Rev from the EPLD on the board */
> -static int __init sbc8548_hw_rev(void)
> +static int sbc8548_hw_rev(void)
> {
> struct device_node *np;
> struct resource res;
> @@ -130,7 +130,6 @@ static void __init sbc8548_setup_arch(void)
> }
> }
> #endif
> - sbc_rev =3D sbc8548_hw_rev();
> }
>=20
> static void sbc8548_show_cpuinfo(struct seq_file *m)
> @@ -140,6 +139,9 @@ static void sbc8548_show_cpuinfo(struct seq_file =
*m)
> pvid =3D mfspr(SPRN_PVR);
> svid =3D mfspr(SPRN_SVR);
>=20
> + if (sbc_rev =3D=3D -EINVAL)
> + sbc_rev =3D sbc8548_hw_rev();
> +
> seq_printf(m, "Vendor\t\t: Wind River\n");
> seq_printf(m, "Machine\t\t: SBC8548 v%d\n", sbc_rev);
> seq_printf(m, "PVR\t\t: 0x%x\n", pvid);
> --=20
> 1.7.2.5
^ permalink raw reply
* Re: [PATCH 11/14] 85xx: merge 32-bit QorIQ with DPA boards support
From: Kumar Gala @ 2011-07-19 14:12 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-12-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Board support files for p4080ds, p3041ds and p2040rdb don't differ at
> all (all differencies are hidden in dts files). So merge them into
> single board file containing all necessary stuff.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/Kconfig | 32 +------
> arch/powerpc/platforms/85xx/Makefile | 4 +-
> arch/powerpc/platforms/85xx/p2040_rdb.c | 88 =
-------------------
> arch/powerpc/platforms/85xx/p3041_ds.c | 90 =
--------------------
> .../platforms/85xx/{p4080_ds.c =3D> qoriq_dpa_ds.c} | 24 +++--
> 5 files changed, 20 insertions(+), 218 deletions(-)
> delete mode 100644 arch/powerpc/platforms/85xx/p2040_rdb.c
> delete mode 100644 arch/powerpc/platforms/85xx/p3041_ds.c
> rename arch/powerpc/platforms/85xx/{p4080_ds.c =3D> qoriq_dpa_ds.c} =
(72%)
NAK, there are other reasons these are split like they are today.
- k=
^ permalink raw reply
* Re: [PATCH 13/14] 85xx: consolidate of_platform_bus_probe calls
From: Kumar Gala @ 2011-07-19 14:15 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-14-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> 85xx board files have a lot of duplication in *_publish_devices()/
> *_declare_of_platform_devices() functions. Merge that into a single
> function common to most of the boards.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/Makefile | 2 +
> arch/powerpc/platforms/85xx/ksi8560.c | 18 +---------
> arch/powerpc/platforms/85xx/mpc8536_ds.c | 16 ++-------
> arch/powerpc/platforms/85xx/mpc85xx.h | 4 ++
> arch/powerpc/platforms/85xx/mpc85xx_ads.c | 20 ++---------
> arch/powerpc/platforms/85xx/mpc85xx_cds.c | 16 ++-------
> arch/powerpc/platforms/85xx/mpc85xx_common.c | 26 ++++++++++++++
> arch/powerpc/platforms/85xx/mpc85xx_ds.c | 20 +++--------
> arch/powerpc/platforms/85xx/mpc85xx_mds.c | 46 =
++-----------------------
> arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 16 ++-------
> arch/powerpc/platforms/85xx/p1022_ds.c | 7 ++--
> arch/powerpc/platforms/85xx/sbc8548.c | 18 ++--------
> arch/powerpc/platforms/85xx/sbc8560.c | 20 ++---------
> arch/powerpc/platforms/85xx/socrates.c | 13 +------
> arch/powerpc/platforms/85xx/stx_gp3.c | 16 ++-------
> arch/powerpc/platforms/85xx/tqm85xx.c | 16 ++-------
> arch/powerpc/platforms/85xx/xes_mpc85xx.c | 20 +++--------
> 17 files changed, 77 insertions(+), 217 deletions(-)
> create mode 100644 arch/powerpc/platforms/85xx/mpc85xx.h
> create mode 100644 arch/powerpc/platforms/85xx/mpc85xx_common.c
In general this looks ok, can you refactor so its earlier in the patch =
sequence
- k
>=20
> diff --git a/arch/powerpc/platforms/85xx/Makefile =
b/arch/powerpc/platforms/85xx/Makefile
> index 43b2162..ca4b1b9 100644
> --- a/arch/powerpc/platforms/85xx/Makefile
> +++ b/arch/powerpc/platforms/85xx/Makefile
> @@ -3,6 +3,8 @@
> #
> obj-$(CONFIG_SMP) +=3D smp.o
>=20
> +obj-y +=3D mpc85xx_common.o
> +
> obj-$(CONFIG_MPC8540_ADS) +=3D mpc85xx_ads.o
> obj-$(CONFIG_MPC8560_ADS) +=3D mpc85xx_ads.o
> obj-$(CONFIG_MPC85xx_CDS) +=3D mpc85xx_cds.o
> diff --git a/arch/powerpc/platforms/85xx/ksi8560.c =
b/arch/powerpc/platforms/85xx/ksi8560.c
> index c46f935..7657e1a 100644
> --- a/arch/powerpc/platforms/85xx/ksi8560.c
> +++ b/arch/powerpc/platforms/85xx/ksi8560.c
> @@ -35,6 +35,7 @@
> #include <asm/cpm2.h>
> #include <sysdev/cpm2_pic.h>
>=20
> +#include "mpc85xx.h"
>=20
> #define KSI8560_CPLD_HVR 0x04 /* Hardware Version =
Register */
> #define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */
> @@ -215,22 +216,7 @@ static void ksi8560_show_cpuinfo(struct seq_file =
*m)
> seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .type =3D "soc", },
> - { .type =3D "simple-bus", },
> - { .name =3D "cpm", },
> - { .name =3D "localbus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(ksi8560, declare_of_platform_devices);
> +machine_device_initcall(ksi8560, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c =
b/arch/powerpc/platforms/85xx/mpc8536_ds.c
> index f79f2f1..9ee6455 100644
> --- a/arch/powerpc/platforms/85xx/mpc8536_ds.c
> +++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c
> @@ -32,6 +32,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> void __init mpc8536_ds_pic_init(void)
> {
> struct mpic *mpic;
> @@ -104,19 +106,7 @@ static void __init mpc8536_ds_setup_arch(void)
> printk("MPC8536 DS board from Freescale Semiconductor\n");
> }
>=20
> -static struct of_device_id __initdata mpc8536_ds_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init mpc8536_ds_publish_devices(void)
> -{
> - return of_platform_bus_probe(NULL, mpc8536_ds_ids, NULL);
> -}
> -machine_device_initcall(mpc8536_ds, mpc8536_ds_publish_devices);
> +machine_device_initcall(mpc8536_ds, mpc85xx_common_publish_devices);
>=20
> machine_arch_initcall(mpc8536_ds, swiotlb_setup_bus_notifier);
>=20
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx.h =
b/arch/powerpc/platforms/85xx/mpc85xx.h
> new file mode 100644
> index 0000000..1a1b4eb
> --- /dev/null
> +++ b/arch/powerpc/platforms/85xx/mpc85xx.h
> @@ -0,0 +1,4 @@
> +#ifndef MPC85xx_H
> +#define MPC85xx_H
> +extern int mpc85xx_common_publish_devices(void);
> +#endif
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c =
b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> index 2483929..3bc2acc 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
> @@ -35,6 +35,8 @@
> #include <sysdev/cpm2_pic.h>
> #endif
>=20
> +#include "mpc85xx.h"
> +
> #ifdef CONFIG_PCI
> static int mpc85xx_exclude_device(struct pci_controller *hose,
> u_char bus, u_char devfn)
> @@ -219,23 +221,7 @@ static void mpc85xx_ads_show_cpuinfo(struct =
seq_file *m)
> seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .name =3D "soc", },
> - { .type =3D "soc", },
> - { .name =3D "cpm", },
> - { .name =3D "localbus", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(mpc85xx_ads, declare_of_platform_devices);
> +machine_device_initcall(mpc85xx_ads, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c =
b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> index e209c23..281ecc5 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
> @@ -47,6 +47,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> /* CADMUS info */
> /* xxx - galak, move into device tree */
> #define CADMUS_BASE (0xf8004000)
> @@ -328,19 +330,7 @@ static int __init mpc85xx_cds_probe(void)
> return of_flat_dt_is_compatible(root, "MPC85xxCDS");
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - return of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -}
> -machine_device_initcall(mpc85xx_cds, declare_of_platform_devices);
> +machine_device_initcall(mpc85xx_cds, mpc85xx_common_publish_devices);
>=20
> define_machine(mpc85xx_cds) {
> .name =3D "MPC85xx CDS",
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_common.c =
b/arch/powerpc/platforms/85xx/mpc85xx_common.c
> new file mode 100644
> index 0000000..999567a
> --- /dev/null
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_common.c
> @@ -0,0 +1,26 @@
> +/*
> + * Routines common to most mpc85xx-based boards.
> + *
> + * This is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#include <linux/kernel.h>
> +#include <linux/of_platform.h>
> +
> +#include "mpc85xx.h"
> +
> +static struct of_device_id __initdata mpc85xx_common_ids[] =3D {
> + { .type =3D "soc", },
> + { .compatible =3D "soc", },
> + { .compatible =3D "simple-bus", },
> + { .compatible =3D "gianfar", },
> + { .compatible =3D "fsl,qe", },
> + { .compatible =3D "fsl,cpm2", },
> + {},
> +};
> +
> +int __init mpc85xx_common_publish_devices(void)
> +{
> + return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL);
> +}
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c =
b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> index 53bf07d..7a0b728 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
> @@ -36,6 +36,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> #undef DEBUG
>=20
> #ifdef DEBUG
> @@ -216,21 +218,9 @@ static int __init mpc8544_ds_probe(void)
> return 0;
> }
>=20
> -static struct of_device_id __initdata mpc85xxds_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init mpc85xxds_publish_devices(void)
> -{
> - return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
> -}
> -machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
> -machine_device_initcall(mpc8572_ds, mpc85xxds_publish_devices);
> -machine_device_initcall(p2020_ds, mpc85xxds_publish_devices);
> +machine_device_initcall(mpc8544_ds, mpc85xx_common_publish_devices);
> +machine_device_initcall(mpc8572_ds, mpc85xx_common_publish_devices);
> +machine_device_initcall(p2020_ds, mpc85xx_common_publish_devices);
>=20
> machine_arch_initcall(mpc8544_ds, swiotlb_setup_bus_notifier);
> machine_arch_initcall(mpc8572_ds, swiotlb_setup_bus_notifier);
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c =
b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
> index 747d1ee..fde37e5 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
> @@ -53,6 +53,8 @@
> #include <asm/mpic.h>
> #include <asm/swiotlb.h>
>=20
> +#include "mpc85xx.h"
> +
> #undef DEBUG
> #ifdef DEBUG
> #define DBG(fmt...) udbg_printf(fmt)
> @@ -159,25 +161,6 @@ extern void __init mpc85xx_smp_init(void);
> #endif
>=20
> #ifdef CONFIG_QUICC_ENGINE
> -static struct of_device_id mpc85xx_qe_ids[] __initdata =3D {
> - { .type =3D "qe", },
> - { .compatible =3D "fsl,qe", },
> - { },
> -};
> -
> -static void __init mpc85xx_publish_qe_devices(void)
> -{
> - struct device_node *np;
> -
> - np =3D of_find_compatible_node(NULL, NULL, "fsl,qe");
> - if (!of_device_is_available(np)) {
> - of_node_put(np);
> - return;
> - }
> -
> - of_platform_bus_probe(NULL, mpc85xx_qe_ids, NULL);
> -}
> -
> static void __init mpc85xx_mds_reset_ucc_phys(void)
> {
> struct device_node *np;
> @@ -348,7 +331,6 @@ static void __init mpc85xx_mds_qeic_init(void)
> of_node_put(np);
> }
> #else
> -static void __init mpc85xx_publish_qe_devices(void) { }
> static void __init mpc85xx_mds_qe_init(void) { }
> static void __init mpc85xx_mds_qeic_init(void) { }
> #endif /* CONFIG_QUICC_ENGINE */
> @@ -430,24 +412,12 @@ machine_arch_initcall(mpc8568_mds, =
board_fixups);
> machine_arch_initcall(mpc8569_mds, board_fixups);
>=20
> static struct of_device_id mpc85xx_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> { .compatible =3D "fsl,rapidio-delta", },
> { .compatible =3D "fsl,mpc8548-guts", },
> { .compatible =3D "gpio-leds", },
> {},
> };
>=20
> -static struct of_device_id p1021_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> static int __init mpc85xx_publish_devices(void)
> {
> if (machine_is(mpc8568_mds))
> @@ -455,23 +425,15 @@ static int __init mpc85xx_publish_devices(void)
> if (machine_is(mpc8569_mds))
> simple_gpiochip_init("fsl,mpc8569mds-bcsr-gpio");
>=20
> + mpc85xx_common_publish_devices();
> of_platform_bus_probe(NULL, mpc85xx_ids, NULL);
> - mpc85xx_publish_qe_devices();
> -
> - return 0;
> -}
> -
> -static int __init p1021_publish_devices(void)
> -{
> - of_platform_bus_probe(NULL, p1021_ids, NULL);
> - mpc85xx_publish_qe_devices();
>=20
> return 0;
> }
>=20
> machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices);
> machine_device_initcall(mpc8569_mds, mpc85xx_publish_devices);
> -machine_device_initcall(p1021_mds, p1021_publish_devices);
> +machine_device_initcall(p1021_mds, mpc85xx_common_publish_devices);
>=20
> machine_arch_initcall(mpc8568_mds, swiotlb_setup_bus_notifier);
> machine_arch_initcall(mpc8569_mds, swiotlb_setup_bus_notifier);
> diff --git a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c =
b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> index 7a3a37b..5846025 100644
> --- a/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> +++ b/arch/powerpc/platforms/85xx/mpc85xx_rdb.c
> @@ -30,6 +30,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> #undef DEBUG
>=20
> #ifdef DEBUG
> @@ -108,19 +110,7 @@ static void __init mpc85xx_rdb_setup_arch(void)
> printk(KERN_INFO "MPC85xx RDB board from Freescale =
Semiconductor\n");
> }
>=20
> -static struct of_device_id __initdata mpc85xxrdb_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init mpc85xxrdb_publish_devices(void)
> -{
> - return of_platform_bus_probe(NULL, mpc85xxrdb_ids, NULL);
> -}
> -machine_device_initcall(mpc85xx_rdb, mpc85xxrdb_publish_devices);
> +machine_device_initcall(mpc85xx_rdb, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c =
b/arch/powerpc/platforms/85xx/p1022_ds.c
> index 266b3aa..26e6f75 100644
> --- a/arch/powerpc/platforms/85xx/p1022_ds.c
> +++ b/arch/powerpc/platforms/85xx/p1022_ds.c
> @@ -27,6 +27,8 @@
> #include <sysdev/fsl_pci.h>
> #include <asm/fsl_guts.h>
>=20
> +#include "mpc85xx.h"
> +
> #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
>=20
> /*
> @@ -325,10 +327,6 @@ static void __init p1022_ds_setup_arch(void)
> }
>=20
> static struct of_device_id __initdata p1022_ds_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> /* So that the DMA channel nodes can be probed individually: */
> { .compatible =3D "fsl,eloplus-dma", },
> {},
> @@ -338,6 +336,7 @@ static int __init p1022_ds_publish_devices(void)
> {
> return of_platform_bus_probe(NULL, p1022_ds_ids, NULL);
> }
> +machine_device_initcall(p1022_ds, mpc85xx_common_publish_devices);
> machine_device_initcall(p1022_ds, p1022_ds_publish_devices);
>=20
> machine_arch_initcall(p1022_ds, swiotlb_setup_bus_notifier);
> diff --git a/arch/powerpc/platforms/85xx/sbc8548.c =
b/arch/powerpc/platforms/85xx/sbc8548.c
> index 2eeb376..42343ac 100644
> --- a/arch/powerpc/platforms/85xx/sbc8548.c
> +++ b/arch/powerpc/platforms/85xx/sbc8548.c
> @@ -49,6 +49,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> static int sbc_rev =3D -EINVAL;
>=20
> static void __init sbc8548_pic_init(void)
> @@ -152,21 +154,7 @@ static void sbc8548_show_cpuinfo(struct seq_file =
*m)
> seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .name =3D "soc", },
> - { .type =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(sbc8548, declare_of_platform_devices);
> +machine_device_initcall(sbc8548, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/sbc8560.c =
b/arch/powerpc/platforms/85xx/sbc8560.c
> index 678f5a8..bbb656f 100644
> --- a/arch/powerpc/platforms/85xx/sbc8560.c
> +++ b/arch/powerpc/platforms/85xx/sbc8560.c
> @@ -37,6 +37,8 @@
> #include <sysdev/cpm2_pic.h>
> #endif
>=20
> +#include "mpc85xx.h"
> +
> #ifdef CONFIG_CPM2
>=20
> static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
> @@ -208,23 +210,7 @@ static void sbc8560_show_cpuinfo(struct seq_file =
*m)
> seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .name =3D "soc", },
> - { .type =3D "soc", },
> - { .name =3D "cpm", },
> - { .name =3D "localbus", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(sbc8560, declare_of_platform_devices);
> +machine_device_initcall(sbc8560, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/socrates.c =
b/arch/powerpc/platforms/85xx/socrates.c
> index 747d8fb..fec496a 100644
> --- a/arch/powerpc/platforms/85xx/socrates.c
> +++ b/arch/powerpc/platforms/85xx/socrates.c
> @@ -41,6 +41,7 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> #include "socrates_fpga_pic.h"
>=20
> static void __init socrates_pic_init(void)
> @@ -96,17 +97,7 @@ static void __init socrates_setup_arch(void)
> #endif
> }
>=20
> -static struct of_device_id __initdata socrates_of_bus_ids[] =3D {
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init socrates_publish_devices(void)
> -{
> - return of_platform_bus_probe(NULL, socrates_of_bus_ids, NULL);
> -}
> -machine_device_initcall(socrates, socrates_publish_devices);
> +machine_device_initcall(socrates, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/stx_gp3.c =
b/arch/powerpc/platforms/85xx/stx_gp3.c
> index 5387e9f..ab80044 100644
> --- a/arch/powerpc/platforms/85xx/stx_gp3.c
> +++ b/arch/powerpc/platforms/85xx/stx_gp3.c
> @@ -40,6 +40,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> #ifdef CONFIG_CPM2
> #include <asm/cpm2.h>
> #include <sysdev/cpm2_pic.h>
> @@ -144,19 +146,7 @@ static void stx_gp3_show_cpuinfo(struct seq_file =
*m)
> seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> }
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(stx_gp3, declare_of_platform_devices);
> +machine_device_initcall(stx_gp3, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c =
b/arch/powerpc/platforms/85xx/tqm85xx.c
> index 325de77..19e711f 100644
> --- a/arch/powerpc/platforms/85xx/tqm85xx.c
> +++ b/arch/powerpc/platforms/85xx/tqm85xx.c
> @@ -38,6 +38,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> #ifdef CONFIG_CPM2
> #include <asm/cpm2.h>
> #include <sysdev/cpm2_pic.h>
> @@ -173,19 +175,7 @@ static void __init tqm85xx_ti1520_fixup(struct =
pci_dev *pdev)
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1520,
> tqm85xx_ti1520_fixup);
>=20
> -static struct of_device_id __initdata of_bus_ids[] =3D {
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init declare_of_platform_devices(void)
> -{
> - of_platform_bus_probe(NULL, of_bus_ids, NULL);
> -
> - return 0;
> -}
> -machine_device_initcall(tqm85xx, declare_of_platform_devices);
> +machine_device_initcall(tqm85xx, mpc85xx_common_publish_devices);
>=20
> static const char *board[] __initdata =3D {
> "tqc,tqm8540",
> diff --git a/arch/powerpc/platforms/85xx/xes_mpc85xx.c =
b/arch/powerpc/platforms/85xx/xes_mpc85xx.c
> index 0125604..0ee3721 100644
> --- a/arch/powerpc/platforms/85xx/xes_mpc85xx.c
> +++ b/arch/powerpc/platforms/85xx/xes_mpc85xx.c
> @@ -33,6 +33,8 @@
> #include <sysdev/fsl_soc.h>
> #include <sysdev/fsl_pci.h>
>=20
> +#include "mpc85xx.h"
> +
> /* A few bit definitions needed for fixups on some boards */
> #define MPC85xx_L2CTL_L2E 0x80000000 /* L2 enable */
> #define MPC85xx_L2CTL_L2I 0x40000000 /* L2 flash =
invalidate */
> @@ -177,21 +179,9 @@ static void __init xes_mpc85xx_setup_arch(void)
> #endif
> }
>=20
> -static struct of_device_id __initdata xes_mpc85xx_ids[] =3D {
> - { .type =3D "soc", },
> - { .compatible =3D "soc", },
> - { .compatible =3D "simple-bus", },
> - { .compatible =3D "gianfar", },
> - {},
> -};
> -
> -static int __init xes_mpc85xx_publish_devices(void)
> -{
> - return of_platform_bus_probe(NULL, xes_mpc85xx_ids, NULL);
> -}
> -machine_device_initcall(xes_mpc8572, xes_mpc85xx_publish_devices);
> -machine_device_initcall(xes_mpc8548, xes_mpc85xx_publish_devices);
> -machine_device_initcall(xes_mpc8540, xes_mpc85xx_publish_devices);
> +machine_device_initcall(xes_mpc8572, mpc85xx_common_publish_devices);
> +machine_device_initcall(xes_mpc8548, mpc85xx_common_publish_devices);
> +machine_device_initcall(xes_mpc8540, mpc85xx_common_publish_devices);
>=20
> /*
> * Called very early, device-tree isn't unflattened
> --=20
> 1.7.2.5
^ permalink raw reply
* Re: [PATCH 14/14] 85xx: separate cpm2 pic init
From: Kumar Gala @ 2011-07-19 14:18 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-15-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Separate handling of CPM2 PIC initialization to =
mpc85xx_cpm2_pic_init()
> function.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/ksi8560.c | 28 =
+------------------
> arch/powerpc/platforms/85xx/mpc85xx.h | 7 ++++
> arch/powerpc/platforms/85xx/mpc85xx_ads.c | 32 =
+--------------------
> arch/powerpc/platforms/85xx/mpc85xx_common.c | 39 =
++++++++++++++++++++++++++
> arch/powerpc/platforms/85xx/sbc8560.c | 32 =
+--------------------
> arch/powerpc/platforms/85xx/tqm85xx.c | 35 =
+----------------------
> 6 files changed, 50 insertions(+), 123 deletions(-)
looks fine, move earlier in the sequence.
- k=
^ permalink raw reply
* Re: [PATCH 06/14] 85xx/sbc8560: correct compilation if CONFIG_PHYS_ADDR_T_64BIT is set
From: Kumar Gala @ 2011-07-19 14:18 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-7-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> If CONFIG_PHYS_ADDR_T_64BIT is set, compilation of sbc8560 fails with
> the following error:
>=20
> arch/powerpc/platforms/85xx/sbc8560.c: In function =
=91sbc8560_bdrstcr_init=92:
> arch/powerpc/platforms/85xx/sbc8560.c:286: error: format =91%x=92 =
expects type =91unsigned int=92, but argument 2 has type =
=91resource_size_t=92
>=20
> Fix that by using %pR format instead of just printing the start of
> resource.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/85xx/sbc8560.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
applied to next-3.2
- k=
^ permalink raw reply
* Re: [PATCH 07/14] 85xx/ksi8560: declare that localbus is compatbile with simple-bus
From: Kumar Gala @ 2011-07-19 14:19 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-8-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/boot/dts/ksi8560.dts | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
applied to next-3.2
- k
^ permalink raw reply
* Re: [PATCH 08/14] 85xx/sbc8560: declare that localbus is compatbile with simple-bus
From: Kumar Gala @ 2011-07-19 14:19 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-9-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/boot/dts/sbc8560.dts | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
applied to next-3.2
- k
^ permalink raw reply
* Re: [PATCH 00/14] Consolidation of 83xx/85xx board files
From: Kumar Gala @ 2011-07-19 14:20 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-1-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> I think it's already too late for this merge window, so this should =
stay
> for 3.2 merge window. Board files for mpc83xx platforms show lots of =
common
> code. Same goes for mpc85xx boards. This patchset is an initial =
attempt
> to merge some (most) of the common code. Based on the tree by Kumar =
Gala.
>=20
> The following changes since commit =
6471fc6630a507fd54fdaceceee1ddaf3c917cde:
>=20
> powerpc: Dont require a dma_ops struct to set dma mask (2011-07-08 =
00:21:36 -0500)
>=20
> Dmitry Eremin-Solenikov (14):
> 83xx: consolidate init_IRQ functions
> 83xx: consolidate of_platform_bus_probe calls
> mpc8349emitx: mark localbus as compatible with simple-bus
> 83xx/mpc834x_itx: drop pq2pro-localbus-specific code
> 83xx: headers cleanup
> 85xx/sbc8560: correct compilation if CONFIG_PHYS_ADDR_T_64BIT is =
set
> 85xx/ksi8560: declare that localbus is compatbile with simple-bus
> 85xx/sbc8560: declare that localbus is compatbile with simple-bus
> 85xx/sbc8548: read hardware revision when it's required for first =
time
> 85xx/mpc85xx_rdb: merge p1020_rdb and p2020_rdb machine entries
> 85xx: merge 32-bit QorIQ with DPA boards support
> 85xx/mpc85xx_ds,ads,cds: move .pci_exclude_device setting to =
machine definitions
> 85xx: consolidate of_platform_bus_probe calls
> 85xx: separate cpm2 pic init
Also patches subject should be of the form:
powerpc/85xx: ....
Please fix on next patch posting.
- k=
^ permalink raw reply
* Re: [PATCH 01/14] 83xx: consolidate init_IRQ functions
From: Kumar Gala @ 2011-07-19 14:21 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-2-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> On mpc83xx platform nearly all _init_IRQ functions look alike. They =
either
> just setup ipic, or setup ipic and QE PIC. Separate this to special =
functions
> to be either referenced from ppc_md, or called from board file.
>=20
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/platforms/83xx/asp834x.c | 20 +------------
> arch/powerpc/platforms/83xx/km83xx.c | 33 +--------------------
> arch/powerpc/platforms/83xx/misc.c | 46 =
+++++++++++++++++++++++++++++
> arch/powerpc/platforms/83xx/mpc830x_rdb.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc831x_rdb.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc832x_mds.c | 30 +------------------
> arch/powerpc/platforms/83xx/mpc832x_rdb.c | 31 +-------------------
> arch/powerpc/platforms/83xx/mpc834x_itx.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc834x_mds.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc836x_mds.c | 30 +------------------
> arch/powerpc/platforms/83xx/mpc836x_rdk.c | 28 +-----------------
> arch/powerpc/platforms/83xx/mpc837x_mds.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc837x_rdb.c | 18 +----------
> arch/powerpc/platforms/83xx/mpc83xx.h | 9 +++++
> arch/powerpc/platforms/83xx/sbc834x.c | 20 +------------
> 15 files changed, 68 insertions(+), 287 deletions(-)
>=20
> diff --git a/arch/powerpc/platforms/83xx/asp834x.c =
b/arch/powerpc/platforms/83xx/asp834x.c
> index aa0d84d..90b6c06 100644
> --- a/arch/powerpc/platforms/83xx/asp834x.c
> +++ b/arch/powerpc/platforms/83xx/asp834x.c
> @@ -36,24 +36,6 @@ static void __init asp834x_setup_arch(void)
> mpc834x_usb_cfg();
> }
>=20
> -static void __init asp834x_init_IRQ(void)
> -{
> - struct device_node *np;
> -
> - np =3D of_find_node_by_type(NULL, "ipic");
> - if (!np)
> - return;
> -
> - ipic_init(np, 0);
> -
> - of_node_put(np);
> -
> - /* Initialize the default interrupt mapping priorities,
> - * in case the boot rom changed something on us.
> - */
> - ipic_set_default_priority();
> -}
> -
> static struct __initdata of_device_id asp8347_ids[] =3D {
> { .type =3D "soc", },
> { .compatible =3D "soc", },
> @@ -82,7 +64,7 @@ define_machine(asp834x) {
> .name =3D "ASP8347E",
> .probe =3D asp834x_probe,
> .setup_arch =3D asp834x_setup_arch,
> - .init_IRQ =3D asp834x_init_IRQ,
> + .init_IRQ =3D mpc83xx_ipic_init_IRQ,
> .get_irq =3D ipic_get_irq,
> .restart =3D mpc83xx_restart,
> .time_init =3D mpc83xx_time_init,
> diff --git a/arch/powerpc/platforms/83xx/km83xx.c =
b/arch/powerpc/platforms/83xx/km83xx.c
> index a2b9b9e..71ba863 100644
> --- a/arch/powerpc/platforms/83xx/km83xx.c
> +++ b/arch/powerpc/platforms/83xx/km83xx.c
> @@ -140,37 +140,6 @@ static int __init =
kmeter_declare_of_platform_devices(void)
> }
> machine_device_initcall(mpc83xx_km, =
kmeter_declare_of_platform_devices);
>=20
> -static void __init mpc83xx_km_init_IRQ(void)
> -{
> - struct device_node *np;
> -
> - np =3D of_find_compatible_node(NULL, NULL, "fsl,pq2pro-pic");
> - if (!np) {
> - np =3D of_find_node_by_type(NULL, "ipic");
> - if (!np)
> - return;
> - }
> -
> - ipic_init(np, 0);
> -
> - /* Initialize the default interrupt mapping priorities,
> - * in case the boot rom changed something on us.
> - */
> - ipic_set_default_priority();
> - of_node_put(np);
> -
> -#ifdef CONFIG_QUICC_ENGINE
> - np =3D of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> - if (!np) {
> - np =3D of_find_node_by_type(NULL, "qeic");
> - if (!np)
> - return;
> - }
> - qe_ic_init(np, 0, qe_ic_cascade_low_ipic, =
qe_ic_cascade_high_ipic);
> - of_node_put(np);
> -#endif /* CONFIG_QUICC_ENGINE */
> -}
> -
> /* list of the supported boards */
> static char *board[] __initdata =3D {
> "Keymile,KMETER1",
> @@ -198,7 +167,7 @@ define_machine(mpc83xx_km) {
> .name =3D "mpc83xx-km-platform",
> .probe =3D mpc83xx_km_probe,
> .setup_arch =3D mpc83xx_km_setup_arch,
> - .init_IRQ =3D mpc83xx_km_init_IRQ,
> + .init_IRQ =3D mpc83xx_both_init_IRQ,
make this mpc83xx_ipic_and_qe_init_IRQ
> .get_irq =3D ipic_get_irq,
> .restart =3D mpc83xx_restart,
> .time_init =3D mpc83xx_time_init,
> diff --git a/arch/powerpc/platforms/83xx/misc.c =
b/arch/powerpc/platforms/83xx/misc.c
> index f01806c..95f2274 100644
> --- a/arch/powerpc/platforms/83xx/misc.c
> +++ b/arch/powerpc/platforms/83xx/misc.c
> @@ -11,9 +11,12 @@
>=20
> #include <linux/stddef.h>
> #include <linux/kernel.h>
> +#include <linux/of_platform.h>
>=20
> #include <asm/io.h>
> #include <asm/hw_irq.h>
> +#include <asm/ipic.h>
> +#include <asm/qe_ic.h>
> #include <sysdev/fsl_soc.h>
>=20
> #include "mpc83xx.h"
> @@ -65,3 +68,46 @@ long __init mpc83xx_time_init(void)
>=20
> return 0;
> }
> +
> +void __init mpc83xx_ipic_init_IRQ(void)
> +{
> + struct device_node *np;
> +
> + /* looking for fsl,pq2pro-pic which is asl compatible with =
fsl,ipic */
> + np =3D of_find_compatible_node(NULL, NULL, "fsl,ipic");
> + if (!np)
> + np =3D of_find_node_by_type(NULL, "ipic");
> + if (!np)
> + return;
> +
> + ipic_init(np, 0);
> +
> + of_node_put(np);
> +
> + /* Initialize the default interrupt mapping priorities,
> + * in case the boot rom changed something on us.
> + */
> + ipic_set_default_priority();
> +}
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +void __init mpc83xx_qe_init_IRQ(void)
> +{
> + struct device_node *np;
> +
> + np =3D of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> + if (!np) {
> + np =3D of_find_node_by_type(NULL, "qeic");
> + if (!np)
> + return;
> + }
> + qe_ic_init(np, 0, qe_ic_cascade_low_ipic, =
qe_ic_cascade_high_ipic);
> + of_node_put(np);
> +}
> +
> +void __init mpc83xx_both_init_IRQ(void)
make this mpc83xx_ipic_and_qe_init_IRQ
> +{
> + mpc83xx_ipic_init_IRQ();
> + mpc83xx_qe_init_IRQ();
> +}
> +#endif /* CONFIG_QUICC_ENGINE */
- k
^ permalink raw reply
* Re: [PATCH 03/14] mpc8349emitx: mark localbus as compatible with simple-bus
From: Kumar Gala @ 2011-07-19 14:23 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-4-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
> arch/powerpc/boot/dts/mpc8349emitx.dts | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
applied to next-3.2
- k
^ permalink raw reply
* Re: [PATCH 00/14] Consolidation of 83xx/85xx board files
From: Kumar Gala @ 2011-07-19 14:29 UTC (permalink / raw)
To: Dmitry Eremin-Solenikov; +Cc: Linux PPC Development, Paul Mackerras
In-Reply-To: <1311065631-3429-1-git-send-email-dbaryshkov@gmail.com>
On Jul 19, 2011, at 3:53 AM, Dmitry Eremin-Solenikov wrote:
> I think it's already too late for this merge window, so this should =
stay
> for 3.2 merge window. Board files for mpc83xx platforms show lots of =
common
> code. Same goes for mpc85xx boards. This patchset is an initial =
attempt
> to merge some (most) of the common code. Based on the tree by Kumar =
Gala.
>=20
> The following changes since commit =
6471fc6630a507fd54fdaceceee1ddaf3c917cde:
>=20
> powerpc: Dont require a dma_ops struct to set dma mask (2011-07-08 =
00:21:36 -0500)
>=20
> Dmitry Eremin-Solenikov (14):
> 83xx: consolidate init_IRQ functions
> 83xx: consolidate of_platform_bus_probe calls
> mpc8349emitx: mark localbus as compatible with simple-bus
> 83xx/mpc834x_itx: drop pq2pro-localbus-specific code
> 83xx: headers cleanup
> 85xx/sbc8560: correct compilation if CONFIG_PHYS_ADDR_T_64BIT is =
set
> 85xx/ksi8560: declare that localbus is compatbile with simple-bus
> 85xx/sbc8560: declare that localbus is compatbile with simple-bus
> 85xx/sbc8548: read hardware revision when it's required for first =
time
> 85xx/mpc85xx_rdb: merge p1020_rdb and p2020_rdb machine entries
> 85xx: merge 32-bit QorIQ with DPA boards support
> 85xx/mpc85xx_ds,ads,cds: move .pci_exclude_device setting to =
machine definitions
> 85xx: consolidate of_platform_bus_probe calls
> 85xx: separate cpm2 pic init
So for next round can you split this into two groups. One for 83xx and =
one for 85xx.
- k=
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox