summaryrefslogtreecommitdiff
path: root/target/linux/cns3xxx/files
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-09 18:51:46 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-09 18:51:46 +0000
commitfc74ddd9808689a2ecfc39ec6b04d2fb8cf4aa8e (patch)
treea6d96d08faa76cb2ef37f2f678ddb2ecd561e4b0 /target/linux/cns3xxx/files
parentd5d0bd890fba306006563ddb264d51f6466e583e (diff)
cns3xxx: add linux 3.8 support and use it by default
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35908 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/cns3xxx/files')
-rw-r--r--target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/headsmp.S2
-rw-r--r--target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/platsmp.c21
-rw-r--r--target/linux/cns3xxx/files/drivers/i2c/busses/i2c-cns3xxx.c4
-rw-r--r--target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c6
-rw-r--r--target/linux/cns3xxx/files/drivers/spi/spi-cns3xxx.c6
-rw-r--r--target/linux/cns3xxx/files/drivers/usb/dwc/otg_driver.c6
-rw-r--r--target/linux/cns3xxx/files/drivers/usb/dwc/otg_pcd.c4
7 files changed, 25 insertions, 24 deletions
diff --git a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/headsmp.S b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/headsmp.S
index 456fd67f97..3b46bdc324 100644
--- a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/headsmp.S
+++ b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/headsmp.S
@@ -13,7 +13,7 @@
#include <linux/linkage.h>
#include <linux/init.h>
- __INIT
+ __CPUINIT
/*
* CNS3XXX specific entry point for secondary CPUs. This provides
diff --git a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/platsmp.c b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/platsmp.c
index 16ad562651..77ac97a20c 100644
--- a/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/platsmp.c
+++ b/target/linux/cns3xxx/files/arch/arm/mach-cns3xxx/platsmp.c
@@ -49,12 +49,6 @@ struct cpu_cache_fns cpu_cache_save;
#define SCU_CPU_STATUS 0x08
static void __iomem *scu_base;
-/*
- * control for which core is the next to come out of the secondary
- * boot "holding pen"
- */
-volatile int __cpuinitdata pen_release = -1;
-
static void __init cns3xxx_set_fiq_regs(void)
{
struct pt_regs FIQ_regs;
@@ -108,7 +102,7 @@ static void __cpuinit write_pen_release(int val)
static DEFINE_SPINLOCK(boot_lock);
-void __cpuinit platform_secondary_init(unsigned int cpu)
+static void __cpuinit cns3xxx_secondary_init(unsigned int cpu)
{
/*
* if any interrupts are already enabled for the primary
@@ -143,7 +137,7 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
spin_unlock(&boot_lock);
}
-int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
+static int __cpuinit cns3xxx_boot_secondary(unsigned int cpu, struct task_struct *idle)
{
unsigned long timeout;
@@ -192,7 +186,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
* Initialise the CPU possible map early - this describes the CPUs
* which may be present or become present in the system.
*/
-void __init smp_init_cpus(void)
+static void __init cns3xxx_smp_init_cpus(void)
{
unsigned int i, ncores;
unsigned int status;
@@ -214,7 +208,7 @@ void __init smp_init_cpus(void)
set_smp_cross_call(gic_raise_softirq);
}
-void __init platform_smp_prepare_cpus(unsigned int max_cpus)
+static void __init cns3xxx_smp_prepare_cpus(unsigned int max_cpus)
{
int i;
@@ -348,3 +342,10 @@ void smp_dma_flush_range(const void *start, const void *end)
}
raw_local_irq_restore(flags);
}
+
+struct smp_operations cns3xxx_smp_ops __initdata = {
+ .smp_init_cpus = cns3xxx_smp_init_cpus,
+ .smp_prepare_cpus = cns3xxx_smp_prepare_cpus,
+ .smp_secondary_init = cns3xxx_secondary_init,
+ .smp_boot_secondary = cns3xxx_boot_secondary,
+};
diff --git a/target/linux/cns3xxx/files/drivers/i2c/busses/i2c-cns3xxx.c b/target/linux/cns3xxx/files/drivers/i2c/busses/i2c-cns3xxx.c
index f578eac054..c3fd7c8972 100644
--- a/target/linux/cns3xxx/files/drivers/i2c/busses/i2c-cns3xxx.c
+++ b/target/linux/cns3xxx/files/drivers/i2c/busses/i2c-cns3xxx.c
@@ -259,7 +259,7 @@ static irqreturn_t cns3xxx_i2c_isr(int irq, void *dev_id)
return IRQ_HANDLED;
}
-static int __devinit cns3xxx_i2c_probe(struct platform_device *pdev)
+static int cns3xxx_i2c_probe(struct platform_device *pdev)
{
struct cns3xxx_i2c *i2c;
struct resource *res, *res2;
@@ -331,7 +331,7 @@ static int __devinit cns3xxx_i2c_probe(struct platform_device *pdev)
return ret;
}
-static int __devexit cns3xxx_i2c_remove(struct platform_device *pdev)
+static int cns3xxx_i2c_remove(struct platform_device *pdev)
{
struct cns3xxx_i2c *i2c = platform_get_drvdata(pdev);
struct resource *res;
diff --git a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
index a9edefe4bb..959589dc14 100644
--- a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
+++ b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
@@ -629,7 +629,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
dma_unmap_single(NULL, rx_ring->phys_tab[i],
RX_SEGMENT_MRU, DMA_FROM_DEVICE);
- skb = build_skb(rx_ring->buff_tab[i]);
+ skb = build_skb(rx_ring->buff_tab[i], 0);
if (!skb)
break;
@@ -1153,7 +1153,7 @@ static const struct net_device_ops cns3xxx_netdev_ops = {
.ndo_validate_addr = eth_validate_addr,
};
-static int __devinit eth_init_one(struct platform_device *pdev)
+static int eth_init_one(struct platform_device *pdev)
{
int i;
struct port *port;
@@ -1297,7 +1297,7 @@ err_free:
return err;
}
-static int __devexit eth_remove_one(struct platform_device *pdev)
+static int eth_remove_one(struct platform_device *pdev)
{
struct net_device *dev = platform_get_drvdata(pdev);
struct sw *sw = netdev_priv(dev);
diff --git a/target/linux/cns3xxx/files/drivers/spi/spi-cns3xxx.c b/target/linux/cns3xxx/files/drivers/spi/spi-cns3xxx.c
index c66ef82447..2642639867 100644
--- a/target/linux/cns3xxx/files/drivers/spi/spi-cns3xxx.c
+++ b/target/linux/cns3xxx/files/drivers/spi/spi-cns3xxx.c
@@ -324,7 +324,7 @@ static void __init cns3xxx_spi_initial(void)
return;
}
-static int __devinit cns3xxx_spi_probe(struct platform_device *pdev)
+static int cns3xxx_spi_probe(struct platform_device *pdev)
{
struct spi_master *master;
struct cns3xxx_spi *hw;
@@ -384,7 +384,7 @@ err_nomem:
return err;
}
-static int __devexit cns3xxx_spi_remove(struct platform_device *dev)
+static int cns3xxx_spi_remove(struct platform_device *dev)
{
struct cns3xxx_spi *hw = platform_get_drvdata(dev);
@@ -419,7 +419,7 @@ static int cns3xxx_spi_resume(struct platform_device *pdev)
static struct platform_driver cns3xxx_spi_driver = {
.probe = cns3xxx_spi_probe,
- .remove = __devexit_p(cns3xxx_spi_remove),
+ .remove = cns3xxx_spi_remove,
.suspend = cns3xxx_spi_suspend,
.resume = cns3xxx_spi_resume,
.driver = {
diff --git a/target/linux/cns3xxx/files/drivers/usb/dwc/otg_driver.c b/target/linux/cns3xxx/files/drivers/usb/dwc/otg_driver.c
index 002c394797..f1fece8bf8 100644
--- a/target/linux/cns3xxx/files/drivers/usb/dwc/otg_driver.c
+++ b/target/linux/cns3xxx/files/drivers/usb/dwc/otg_driver.c
@@ -636,7 +636,7 @@ static int dwc_otg_driver_cleanup(struct platform_device *pdev)
*
* @param[in] lmdev lm_device definition
*/
-static int __devinit dwc_otg_driver_probe(struct platform_device *pdev)
+static int dwc_otg_driver_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
int retval = 0;
@@ -795,7 +795,7 @@ static int __devinit dwc_otg_driver_probe(struct platform_device *pdev)
return retval;
}
-static int __devexit dwc_otg_driver_remove(struct platform_device *pdev)
+static int dwc_otg_driver_remove(struct platform_device *pdev)
{
return dwc_otg_driver_cleanup(pdev);
}
@@ -803,7 +803,7 @@ static int __devexit dwc_otg_driver_remove(struct platform_device *pdev)
static struct platform_driver dwc_otg_platform_driver = {
.driver.name = "dwc_otg",
.probe = dwc_otg_driver_probe,
- .remove = __devexit_p(dwc_otg_driver_remove),
+ .remove = dwc_otg_driver_remove,
};
static int __init dwc_otg_init_module(void)
diff --git a/target/linux/cns3xxx/files/drivers/usb/dwc/otg_pcd.c b/target/linux/cns3xxx/files/drivers/usb/dwc/otg_pcd.c
index 85c6fd9074..823989a6f5 100644
--- a/target/linux/cns3xxx/files/drivers/usb/dwc/otg_pcd.c
+++ b/target/linux/cns3xxx/files/drivers/usb/dwc/otg_pcd.c
@@ -820,7 +820,7 @@ struct free_param {
dma_addr_t dma_addr;
uint32_t size;
};
-void free_list_agent_fn(void *data){
+static void free_list_agent_fn(struct work_struct *work) {
struct list_head free_list;
struct free_param *cur,*next;
@@ -830,7 +830,7 @@ void free_list_agent_fn(void *data){
spin_unlock(&tofree_list_lock);
list_for_each_entry_safe(cur,next,&free_list,list){
- if(cur==&free_list) break;
+ if(&cur->list==&free_list) break;
dma_free_coherent(NULL,cur->size,cur->addr,cur->dma_addr);
list_del(&cur->list);
kfree(cur);