upgrade 3.12 targets to 3.12.5
authorImre Kaloz <kaloz@openwrt.org>
Sat, 14 Dec 2013 17:37:14 +0000 (17:37 +0000)
committerImre Kaloz <kaloz@openwrt.org>
Sat, 14 Dec 2013 17:37:14 +0000 (17:37 +0000)
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
SVN-Revision: 39055

15 files changed:
include/kernel-version.mk
target/linux/generic/patches-3.12/100-overlayfs.patch
target/linux/generic/patches-3.12/471-mtd-m25p80-allow-to-disable-small-sector-erase.patch
target/linux/generic/patches-3.12/630-packet_socket_type.patch
target/linux/generic/patches-3.12/655-increase_skb_pad.patch
target/linux/generic/patches-3.12/656-skb_reduce_truesize-helper.patch
target/linux/generic/patches-3.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-3.12/721-phy_packets.patch
target/linux/generic/patches-3.12/820-usb_add_usb_find_device_by_name.patch
target/linux/generic/patches-3.12/902-debloat_proc.patch
target/linux/mxs/Makefile
target/linux/omap/Makefile
target/linux/omap/patches-3.12/202-ARM-OMAP2-hwmod-Extract-no-idle-and-no-reset-info-from-DT.patch
target/linux/omap/patches-3.12/800-ARM_OMAP2plus_irq_AM33XX_add_missing_register_check.patch [deleted file]
target/linux/sunxi/Makefile

index f4c881dc99c6335826aa3b063cbba3aa80155e9e..928318249f55de72df835bcc2b2ef12790e62277 100644 (file)
@@ -20,6 +20,9 @@ endif
 ifeq ($(LINUX_VERSION),3.10.21)
   LINUX_KERNEL_MD5SUM:=dc5f31aef4aac0cc271e7ecf1a4b485d
 endif
 ifeq ($(LINUX_VERSION),3.10.21)
   LINUX_KERNEL_MD5SUM:=dc5f31aef4aac0cc271e7ecf1a4b485d
 endif
+ifeq ($(LINUX_VERSION),3.12.5)
+  LINUX_KERNEL_MD5SUM:=5b5330f657f562f7bef6da100a7133b1
+endif
 
 # disable the md5sum check for unknown kernel versions
 LINUX_KERNEL_MD5SUM?=x
 
 # disable the md5sum check for unknown kernel versions
 LINUX_KERNEL_MD5SUM?=x
index 6f3ea9b22b8ad5d5ebb250f9f7576c48058a2748..374192431de453bb37d309dca390951f004b0132 100644 (file)
  
  /**
   * sb_permission - Check superblock-level permissions
  
  /**
   * sb_permission - Check superblock-level permissions
-@@ -3064,9 +3065,12 @@ finish_open_created:
+@@ -3065,9 +3066,12 @@ finish_open_created:
        error = may_open(&nd->path, acc_mode, open_flag);
        if (error)
                goto out;
        error = may_open(&nd->path, acc_mode, open_flag);
        if (error)
                goto out;
index 7373c679369a5653533cf64ee2c9d38fa9339d1f..dfc8975d0db995da5975831753266ecba87e4bb4 100644 (file)
@@ -30,7 +30,7 @@
  /****************************************************************************/
  
  struct m25p {
  /****************************************************************************/
  
  struct m25p {
-@@ -1046,7 +1052,7 @@ static int m25p_probe(struct spi_device
+@@ -1044,7 +1050,7 @@ static int m25p_probe(struct spi_device
                flash->mtd._write = m25p80_write;
  
        /* prefer "small sector" erase if possible */
                flash->mtd._write = m25p80_write;
  
        /* prefer "small sector" erase if possible */
index 210b18ef188f59b6aa77947f4234912fa1dfda7e..d1b0fe14da5ed36e97505fc48353de257083d6e7 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1386,6 +1386,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1393,6 +1393,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      When we registered the protocol we saved the socket in the data
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -1393,6 +1394,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1400,6 +1401,7 @@ static int packet_rcv_spkt(struct sk_buf
         */
  
        sk = pt->af_packet_priv;
         */
  
        sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      Yank back the headers [hope the device set this
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -1405,7 +1407,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1412,7 +1414,7 @@ static int packet_rcv_spkt(struct sk_buf
         *      so that this procedure is noop.
         */
  
         *      so that this procedure is noop.
         */
  
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1612,12 +1614,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1619,12 +1621,12 @@ static int packet_rcv(struct sk_buff *sk
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -1730,12 +1732,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1737,12 +1739,12 @@ static int tpacket_rcv(struct sk_buff *s
        struct timespec ts;
        __u32 ts_status;
  
        struct timespec ts;
        __u32 ts_status;
  
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2625,6 +2627,7 @@ static int packet_create(struct net *net
+@@ -2638,6 +2640,7 @@ static int packet_create(struct net *net
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3193,6 +3196,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3204,6 +3207,16 @@ packet_setsockopt(struct socket *sock, i
                po->tp_tx_has_off = !!val;
                return 0;
        }
                po->tp_tx_has_off = !!val;
                return 0;
        }
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        default:
                return -ENOPROTOOPT;
        }
        default:
                return -ENOPROTOOPT;
        }
-@@ -3244,6 +3257,13 @@ static int packet_getsockopt(struct sock
+@@ -3255,6 +3268,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
@@ -124,9 +124,9 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
                break;
 --- a/net/packet/internal.h
 +++ b/net/packet/internal.h
                break;
 --- a/net/packet/internal.h
 +++ b/net/packet/internal.h
-@@ -114,6 +114,7 @@ struct packet_sock {
-       unsigned int            tp_tx_has_off:1;
+@@ -115,6 +115,7 @@ struct packet_sock {
        unsigned int            tp_tstamp;
        unsigned int            tp_tstamp;
+       struct net_device __rcu *cached_dev;
        struct packet_type      prot_hook ____cacheline_aligned_in_smp;
 +      unsigned int            pkt_type;
  };
        struct packet_type      prot_hook ____cacheline_aligned_in_smp;
 +      unsigned int            pkt_type;
  };
index b2b07af57fdfc44e35e180049ba31df403251f78..fd3d70b2052f98cae346b5f71d49a86e6edcdcf8 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1750,7 +1750,7 @@ static inline int pskb_network_may_pull(
+@@ -1741,7 +1741,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
index 07cd2a689feb70077cdb602216eaf9623dacfeed..108a6315f9019c803d4c7374103ec96290e523a3 100644 (file)
@@ -14,7 +14,7 @@ when needed.
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1795,6 +1795,24 @@ static inline void pskb_trim_unique(stru
+@@ -1786,6 +1786,24 @@ static inline void pskb_trim_unique(stru
        BUG_ON(err);
  }
  
        BUG_ON(err);
  }
  
index 64b2b3718887ab167ac41e83480ac936083bc23d..27d115bf566016c53fb49bd1ed32729596cdc9ef 100644 (file)
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1577,6 +1595,9 @@ int ip6_route_add(struct fib6_config *cf
+@@ -1583,6 +1601,9 @@ int ip6_route_add(struct fib6_config *cf
                case RTN_THROW:
                        rt->dst.error = -EAGAIN;
                        break;
                case RTN_THROW:
                        rt->dst.error = -EAGAIN;
                        break;
                default:
                        rt->dst.error = -ENETUNREACH;
                        break;
                default:
                        rt->dst.error = -ENETUNREACH;
                        break;
-@@ -2156,6 +2177,17 @@ static int ip6_pkt_prohibit_out(struct s
+@@ -2162,6 +2183,17 @@ static int ip6_pkt_prohibit_out(struct s
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
  #endif
  
  /*
  #endif
  
  /*
-@@ -2362,7 +2394,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2368,7 +2400,8 @@ static int rtm_to_fib6_config(struct sk_
        if (rtm->rtm_type == RTN_UNREACHABLE ||
            rtm->rtm_type == RTN_BLACKHOLE ||
            rtm->rtm_type == RTN_PROHIBIT ||
        if (rtm->rtm_type == RTN_UNREACHABLE ||
            rtm->rtm_type == RTN_BLACKHOLE ||
            rtm->rtm_type == RTN_PROHIBIT ||
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -2564,6 +2597,9 @@ static int rt6_fill_node(struct net *net
+@@ -2570,6 +2603,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -2814,6 +2850,8 @@ static int ip6_route_dev_notify(struct n
+@@ -2820,6 +2856,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -3074,6 +3112,17 @@ static int __net_init ip6_route_net_init
+@@ -3080,6 +3118,17 @@ static int __net_init ip6_route_net_init
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -3092,6 +3141,8 @@ out:
+@@ -3098,6 +3147,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -3109,6 +3160,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3115,6 +3166,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -3205,6 +3257,9 @@ int __init ip6_route_init(void)
+@@ -3211,6 +3263,9 @@ int __init ip6_route_init(void)
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
index 9a1c011e21de2139ebaa0a8378f2f5911e6edc3e..9363ad125ef02103ca1d89808f6b40caf5442424 100644 (file)
@@ -34,7 +34,7 @@
  #define IF_GET_IFACE  0x0001          /* for querying only */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
  #define IF_GET_IFACE  0x0001          /* for querying only */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1780,6 +1780,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -1771,6 +1771,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -45,7 +45,7 @@
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -1907,16 +1911,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -1898,16 +1902,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
  }
  
  
@@ -79,7 +79,7 @@
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -2602,9 +2602,19 @@ int dev_hard_start_xmit(struct sk_buff *
+@@ -2598,9 +2598,19 @@ int dev_hard_start_xmit(struct sk_buff *
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(skb, dev);
  
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(skb, dev);
  
                if (rc == NETDEV_TX_OK)
                        txq_trans_update(txq);
                return rc;
                if (rc == NETDEV_TX_OK)
                        txq_trans_update(txq);
                return rc;
-@@ -2620,9 +2630,19 @@ gso:
+@@ -2616,9 +2626,19 @@ gso:
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(nskb, dev);
  
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(nskb, dev);
  
index 23d49863a1a5ef423ad2a50b2e225af2c79e74d2..99c7a3620ce62b9e176bde62bf3dddcd8ac7b60a 100644 (file)
@@ -74,7 +74,7 @@
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -690,6 +690,7 @@ static inline bool usb_device_no_sg_cons
+@@ -692,6 +692,7 @@ static inline bool usb_device_no_sg_cons
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
index a58fc4b4198c335fcbbd32ae76f39b997c65f1ef..a004f9c7e92ef0d76e3dd27269b1f5f1cdee6b83 100644 (file)
  }
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
  }
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
-@@ -1280,10 +1280,12 @@ static int __init setup_vmstat(void)
+@@ -1281,10 +1281,12 @@ static int __init setup_vmstat(void)
                start_cpu_timer(cpu);
  #endif
  #ifdef CONFIG_PROC_FS
                start_cpu_timer(cpu);
  #endif
  #ifdef CONFIG_PROC_FS
index d2d612de906ff074d567955a431e8a371dd751dc..be9deecdddc6c9c62e36bc3f3fb0dfdfbe5f6b73 100644 (file)
@@ -13,7 +13,7 @@ FEATURES:=ext4 rtc usb gpio
 CPU_TYPE:=arm926ej-s
 
 MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 CPU_TYPE:=arm926ej-s
 
 MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
-LINUX_VERSION:=3.12
+LINUX_VERSION:=3.12.5
 KERNELNAME:="zImage dtbs"
 
 define Target/Description
 KERNELNAME:="zImage dtbs"
 
 define Target/Description
index 3496018306e83ca44cfd1e8b3c7400992a4c12b2..b47c585a8b8180804a64ccd8bda6a15ad8497261 100644 (file)
@@ -13,7 +13,7 @@ FEATURES:=usb usbgadget ext4 targz fpu audio display
 CPU_TYPE:=cortex-a9
 CPU_SUBTYPE:=vfpv3
 
 CPU_TYPE:=cortex-a9
 CPU_SUBTYPE:=vfpv3
 
-LINUX_VERSION:=3.12
+LINUX_VERSION:=3.12.5
 
 MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
 
 
 MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
 
index 453ebd6cfe79dd15103ff6e2678179360287a6b4..56229603ab512dcdc37c4d2ecb55424f5199f09a 100644 (file)
@@ -1,36 +1,49 @@
+From f92d9597f781f6a5a39c73dc71604bd8a21c5299 Mon Sep 17 00:00:00 2001
+From: Rajendra Nayak <rnayak@ti.com>
+Date: Wed, 09 Oct 2013 07:26:55 +0000
+Subject: ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
+
 Now that we have DT bindings to specify which devices should not
 be reset and idled during init, make hwmod extract the information
 (and store them in internal flags) from Device tree.
 
 Signed-off-by: Rajendra Nayak <rnayak@ti.com>
 Now that we have DT bindings to specify which devices should not
 be reset and idled during init, make hwmod extract the information
 (and store them in internal flags) from Device tree.
 
 Signed-off-by: Rajendra Nayak <rnayak@ti.com>
+[paul@pwsan.com: updated to apply]
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
 
 ---
 
 ---
-arch/arm/mach-omap2/omap_hwmod.c |   23 ++++++++++++++++-------
- 1 file changed, 16 insertions(+), 7 deletions(-)
-
 --- a/arch/arm/mach-omap2/omap_hwmod.c
 +++ b/arch/arm/mach-omap2/omap_hwmod.c
 --- a/arch/arm/mach-omap2/omap_hwmod.c
 +++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -2363,11 +2363,11 @@ static struct device_node *of_dev_hwmod_
-  * are part of the device's address space can be ioremapped properly.
-  * No return value.
+@@ -2357,6 +2357,8 @@ static struct device_node *of_dev_hwmod_
+ /**
+  * _init_mpu_rt_base - populate the virtual address for a hwmod
+  * @oh: struct omap_hwmod * to locate the virtual address
++ * @data: (unused, caller should pass NULL)
++ * @np: struct device_node * of the IP block's device node in the DT data
+  *
+  * Cache the virtual address used by the MPU to access this IP block's
+  * registers.  This address is needed early so the OCP registers that
+@@ -2365,11 +2367,11 @@ static struct device_node *of_dev_hwmod_
+  * Returns 0 on success, -EINVAL if an invalid hwmod is passed, and
+  * -ENXIO on absent or invalid register target address space.
   */
   */
--static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
-+static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
-+                                   struct device_node *np)
+-static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
++static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
++                                  struct device_node *np)
  {
        struct omap_hwmod_addr_space *mem;
        void __iomem *va_start = NULL;
 -      struct device_node *np;
  
        if (!oh)
  {
        struct omap_hwmod_addr_space *mem;
        void __iomem *va_start = NULL;
 -      struct device_node *np;
  
        if (!oh)
-               return;
-@@ -2383,12 +2383,10 @@ static void __init _init_mpu_rt_base(str
+               return -EINVAL;
+@@ -2385,12 +2387,10 @@ static int __init _init_mpu_rt_base(stru
                         oh->name);
  
                /* Extract the IO space from device tree blob */
 -              if (!of_have_populated_dt())
 +              if (!np)
                         oh->name);
  
                /* Extract the IO space from device tree blob */
 -              if (!of_have_populated_dt())
 +              if (!np)
-                       return;
+                       return -ENXIO;
  
 -              np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
 -              if (np)
  
 -              np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
 -              if (np)
@@ -39,7 +52,7 @@ arch/arm/mach-omap2/omap_hwmod.c |   23 ++++++++++++++++-------
        } else {
                va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
        }
        } else {
                va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
        }
-@@ -2420,12 +2418,16 @@ static void __init _init_mpu_rt_base(str
+@@ -2423,12 +2423,16 @@ static int __init _init_mpu_rt_base(stru
  static int __init _init(struct omap_hwmod *oh, void *data)
  {
        int r;
  static int __init _init(struct omap_hwmod *oh, void *data)
  {
        int r;
@@ -51,22 +64,21 @@ arch/arm/mach-omap2/omap_hwmod.c |   23 ++++++++++++++++-------
 +      if (of_have_populated_dt())
 +              np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
 +
 +      if (of_have_populated_dt())
 +              np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
 +
-       if (oh->class->sysc)
--              _init_mpu_rt_base(oh, NULL);
-+              _init_mpu_rt_base(oh, NULL, np);
-       r = _init_clocks(oh, NULL);
-       if (r < 0) {
-@@ -2433,6 +2435,13 @@ static int __init _init(struct omap_hwmo
+       if (oh->class->sysc) {
+-              r = _init_mpu_rt_base(oh, NULL);
++              r = _init_mpu_rt_base(oh, NULL, np);
+               if (r < 0) {
+                       WARN(1, "omap_hwmod: %s: doesn't have mpu register target base\n",
+                            oh->name);
+@@ -2442,6 +2446,12 @@ static int __init _init(struct omap_hwmo
                return -EINVAL;
        }
  
                return -EINVAL;
        }
  
-+      if (np) {
++      if (np)
 +              if (of_find_property(np, "ti,no-reset-on-init", NULL))
 +                      oh->flags |= HWMOD_INIT_NO_RESET;
 +              if (of_find_property(np, "ti,no-idle-on-init", NULL))
 +                      oh->flags |= HWMOD_INIT_NO_IDLE;
 +              if (of_find_property(np, "ti,no-reset-on-init", NULL))
 +                      oh->flags |= HWMOD_INIT_NO_RESET;
 +              if (of_find_property(np, "ti,no-idle-on-init", NULL))
 +                      oh->flags |= HWMOD_INIT_NO_IDLE;
-+      }
 +
        oh->_state = _HWMOD_STATE_INITIALIZED;
  
 +
        oh->_state = _HWMOD_STATE_INITIALIZED;
  
diff --git a/target/linux/omap/patches-3.12/800-ARM_OMAP2plus_irq_AM33XX_add_missing_register_check.patch b/target/linux/omap/patches-3.12/800-ARM_OMAP2plus_irq_AM33XX_add_missing_register_check.patch
deleted file mode 100644 (file)
index ca92faa..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0bebda684857f76548ea48c8886785198701d8d3 Mon Sep 17 00:00:00 2001
-From: Markus Pargmann <mpa@pengutronix.de>
-Date: Thu, 17 Oct 2013 07:18:38 +0000
-Subject: ARM: OMAP2+: irq, AM33XX add missing register check
-
-am33xx has a INTC_PENDING_IRQ3 register that is not checked for pending
-interrupts. This patch adds AM33XX to the ifdef of SOCs that have to
-check this register.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
----
---- a/arch/arm/mach-omap2/irq.c
-+++ b/arch/arm/mach-omap2/irq.c
-@@ -233,7 +233,7 @@ static inline void omap_intc_handle_irq(
-                       goto out;
-               irqnr = readl_relaxed(base_addr + 0xd8);
--#ifdef CONFIG_SOC_TI81XX
-+#if IS_ENABLED(CONFIG_SOC_TI81XX) || IS_ENABLED(CONFIG_SOC_AM33XX)
-               if (irqnr)
-                       goto out;
-               irqnr = readl_relaxed(base_addr + 0xf8);
index 658de40028a2528fdd9171bbf0da5c82d70e062c..cd936dcf26eeb4d5003b33d24d08719b11d479ff 100644 (file)
@@ -15,7 +15,7 @@ CPU_TYPE:=cortex-a8
 CPU_SUBTYPE:=vfpv3
 MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 
 CPU_SUBTYPE:=vfpv3
 MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 
-LINUX_VERSION:=3.12
+LINUX_VERSION:=3.12.5
 KERNELNAME:="zImage dtbs"
 DEFAULT_PACKAGES += uboot-envtools uboot-sunxi
 
 KERNELNAME:="zImage dtbs"
 DEFAULT_PACKAGES += uboot-envtools uboot-sunxi