Changeset 42038


Ignore:
Timestamp:
2014-08-07T14:40:53+02:00 (3 years ago)
Author:
nbd
Message:

ar71xx: add linux 3.14 support

Signed-off-by: Zhao, Gang <gang.zhao.42@…>
Signed-off-by: Felix Fietkau <nbd@…>

Location:
trunk/target/linux/ar71xx
Files:
7 added
1 edited
104 copied

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/config-3.14

    r42037 r42038  
    44# CONFIG_AG71XX_DEBUG_FS is not set 
    55CONFIG_AR8216_PHY=y 
    6 CONFIG_AR8216_PHY_LEDS=y 
    76CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
    87CONFIG_ARCH_DISCARD_MEMBLOCK=y 
     
    109CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y 
    1110CONFIG_ARCH_HIBERNATION_POSSIBLE=y 
     11CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 
     12CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y 
    1213CONFIG_ARCH_REQUIRE_GPIOLIB=y 
    1314CONFIG_ARCH_SUSPEND_POSSIBLE=y 
     
    133134CONFIG_CC_OPTIMIZE_FOR_SIZE=y 
    134135CONFIG_CEVT_R4K=y 
     136CONFIG_CLKDEV_LOOKUP=y 
    135137CONFIG_CLONE_BACKWARDS=y 
    136138CONFIG_CMDLINE="rootfstype=squashfs,jffs2 noinitrd" 
     
    158160CONFIG_GENERIC_IO=y 
    159161CONFIG_GENERIC_IRQ_SHOW=y 
     162CONFIG_GENERIC_NET_UTILS=y 
    160163CONFIG_GENERIC_PCI_IOMAP=y 
    161164CONFIG_GENERIC_SMP_IDLE_THREAD=y 
     
    173176CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    174177CONFIG_HAVE_ARCH_KGDB=y 
     178CONFIG_HAVE_ARCH_TRACEHOOK=y 
    175179# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set 
     180CONFIG_HAVE_CC_STACKPROTECTOR=y 
    176181CONFIG_HAVE_CLK=y 
     182CONFIG_HAVE_CONTEXT_TRACKING=y 
    177183CONFIG_HAVE_C_RECORDMCOUNT=y 
    178184CONFIG_HAVE_DEBUG_KMEMLEAK=y 
     185CONFIG_HAVE_DEBUG_STACKOVERFLOW=y 
    179186CONFIG_HAVE_DMA_API_DEBUG=y 
    180187CONFIG_HAVE_DMA_ATTRS=y 
     
    185192CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 
    186193CONFIG_HAVE_GENERIC_DMA_COHERENT=y 
    187 CONFIG_HAVE_GENERIC_HARDIRQS=y 
    188194CONFIG_HAVE_IDE=y 
    189195CONFIG_HAVE_KVM=y 
     
    194200CONFIG_HAVE_OPROFILE=y 
    195201CONFIG_HAVE_PERF_EVENTS=y 
     202CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 
    196203CONFIG_HW_HAS_PCI=y 
    197204CONFIG_HZ_PERIODIC=y 
     
    211218CONFIG_LEDS_GPIO=y 
    212219# CONFIG_LEDS_WNDR3700_USB is not set 
    213 # CONFIG_M25PXX_USE_FAST_READ is not set 
    214220CONFIG_MARVELL_PHY=y 
    215221CONFIG_MDIO_BOARDINFO=y 
     
    220226CONFIG_MIPS_MACHINE=y 
    221227CONFIG_MIPS_MT_DISABLED=y 
     228# CONFIG_MIPS_O32_FP64_SUPPORT is not set 
    222229CONFIG_MODULES_USE_ELF_REL=y 
    223230CONFIG_MTD_CFI_ADV_OPTIONS=y 
     
    291298CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 
    292299CONFIG_TICK_CPU_ACCOUNTING=y 
    293 CONFIG_UIDGID_CONVERTED=y 
    294 CONFIG_USB_ARCH_HAS_XHCI=y 
    295300CONFIG_USB_SUPPORT=y 
    296301CONFIG_ZONE_DMA_FLAG=0 
  • trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-alfa-ap96.c

    r31118 r42038  
    4949}; 
    5050 
    51 static int alfa_ap96_mmc_get_cd(struct device *dev) 
    52 { 
    53         return !gpio_get_value(ALFA_AP96_GPIO_MICROSD_CD); 
    54 } 
    55  
    5651static struct mmc_spi_platform_data alfa_ap96_mmc_data = { 
    57         .get_cd         = alfa_ap96_mmc_get_cd, 
     52        .flags          = MMC_SPI_USE_CD_GPIO, 
     53        .cd_gpio        = ALFA_AP96_GPIO_MICROSD_CD, 
     54        .cd_debounce    = 1, 
    5855        .caps           = MMC_CAP_NEEDS_POLL, 
    5956        .ocr_mask       = MMC_VDD_32_33 | MMC_VDD_33_34, 
  • trunk/target/linux/ar71xx/patches-3.14/206-spi-ath79-make-chipselect-logic-more-flexible.patch

    r42037 r42038  
    171171        struct spi_bitbang      bitbang; 
    172172        u32                     ioc_base; 
    173 @@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct 
     173@@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct  
    174174 { 
    175175        struct ath79_spi *sp = ath79_spidev_to_sp(spi); 
     
    179179        if (is_active) { 
    180180                /* set initial clock polarity */ 
    181 @@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct 
     181@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct  
    182182                ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base); 
    183183        } 
     
    271271 } 
    272272  
    273 @@ -155,6 +178,9 @@ static int ath79_spi_setup(struct spi_de 
    274  { 
    275         int status = 0; 
    276   
    277 +       if (spi->controller_data == NULL) 
    278 +               return -EINVAL; 
    279 + 
    280         if (spi->bits_per_word > 32) 
    281                 return -EINVAL; 
    282   
    283 @@ -215,6 +241,10 @@ static int ath79_spi_probe(struct platfo 
     273@@ -212,6 +235,10 @@ static int ath79_spi_probe(struct platfo 
    284274        unsigned long rate; 
    285275        int ret; 
     
    292282        if (master == NULL) { 
    293283                dev_err(&pdev->dev, "failed to allocate spi master\n"); 
    294 @@ -224,14 +254,10 @@ static int ath79_spi_probe(struct platfo 
     284@@ -221,15 +248,11 @@ static int ath79_spi_probe(struct platfo 
    295285        sp = spi_master_get_devdata(master); 
    296286        platform_set_drvdata(pdev, sp); 
    297287  
    298 -       pdata = pdev->dev.platform_data; 
     288-       pdata = dev_get_platdata(&pdev->dev); 
    299289- 
     290        master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); 
    300291        master->setup = ath79_spi_setup; 
    301292        master->cleanup = ath79_spi_cleanup; 
     
    307298+       master->num_chipselect = pdata->num_chipselect; 
    308299  
    309         sp->bitbang.master = spi_master_get(master); 
     300        sp->bitbang.master = master; 
    310301        sp->bitbang.chipselect = ath79_spi_chipselect; 
  • trunk/target/linux/ar71xx/patches-3.14/310-lib-add-rle-decompression.patch

    r42037 r42038  
    11--- a/lib/Kconfig 
    22+++ b/lib/Kconfig 
    3 @@ -197,6 +197,9 @@ config LZMA_COMPRESS 
     3@@ -221,6 +221,9 @@ config LZMA_COMPRESS 
    44 config LZMA_DECOMPRESS 
    55     tristate 
     
    1313--- a/lib/Makefile 
    1414+++ b/lib/Makefile 
    15 @@ -90,6 +90,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ 
     15@@ -94,6 +94,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ 
    1616 obj-$(CONFIG_RAID6_PQ) += raid6/ 
    1717 obj-$(CONFIG_LZMA_COMPRESS) += lzma/ 
  • trunk/target/linux/ar71xx/patches-3.14/401-mtd-physmap-add-lock-unlock.patch

    r42037 r42038  
    6868 { 
    6969        struct physmap_flash_info *info; 
    70 @@ -154,6 +214,13 @@ static int physmap_flash_probe(struct pl 
     70@@ -153,6 +213,13 @@ static int physmap_flash_probe(struct pl 
    7171  
    7272                simple_map_init(&info->map[i]); 
  • trunk/target/linux/ar71xx/patches-3.14/402-mtd-SST39VF6401B-support.patch

    r42037 r42038  
    99 #define SST39WF1602    0x274a 
    1010 #define SST39LF512     0x00D4 
    11 @@ -1568,6 +1569,18 @@ static const struct amd_flash_info jedec 
     11@@ -1569,6 +1570,18 @@ static const struct amd_flash_info jedec 
    1212                        ERASEINFO(0x10000,64), 
    1313                } 
  • trunk/target/linux/ar71xx/patches-3.14/405-mtd-tp-link-partition-parser.patch

    r42037 r42038  
    2222 comment "User Modules And Translation Layers" 
    2323  
    24  config MTD_BLKDEVS 
     24 # 
    2525--- a/drivers/mtd/Makefile 
    2626+++ b/drivers/mtd/Makefile 
  • trunk/target/linux/ar71xx/patches-3.14/406-mtd-m25p80-allow-to-specify-max-read-size.patch

    r42037 r42038  
    11--- a/drivers/mtd/devices/m25p80.c 
    22+++ b/drivers/mtd/devices/m25p80.c 
    3 @@ -93,6 +93,7 @@ struct m25p { 
    4         u8                      erase_opcode; 
     3@@ -115,6 +115,7 @@ struct m25p { 
     4        u8                      program_opcode; 
    55        u8                      *command; 
    6         bool                    fast_read; 
     6        enum read_type          flash_read; 
    77+       size_t                  max_read_len; 
    88 }; 
    99  
    1010 static inline struct m25p *mtd_to_m25p(struct mtd_info *mtd) 
    11 @@ -344,6 +345,7 @@ static int m25p80_read(struct mtd_info * 
    12         struct spi_transfer t[2]; 
     11@@ -517,6 +518,7 @@ static int m25p80_read(struct mtd_info * 
    1312        struct spi_message m; 
    1413        uint8_t opcode; 
     14        int dummy; 
    1515+       loff_t ofs; 
    1616  
    1717        pr_debug("%s: %s from 0x%08x, len %zd\n", dev_name(&flash->spi->dev), 
    1818                        __func__, (u32)from, len); 
    19 @@ -359,19 +361,10 @@ static int m25p80_read(struct mtd_info * 
    20         t[0].len = m25p_cmdsz(flash) + (flash->fast_read ? 1 : 0); 
     19@@ -534,29 +536,51 @@ static int m25p80_read(struct mtd_info * 
     20        t[0].len = m25p_cmdsz(flash) + dummy; 
    2121        spi_message_add_tail(&t[0], &m); 
    2222  
    2323-       t[1].rx_buf = buf; 
     24-       t[1].rx_nbits = m25p80_rx_nbits(flash); 
    2425-       t[1].len = len; 
    2526        spi_message_add_tail(&t[1], &m); 
     
    3435-       } 
    3536- 
    36         /* FIXME switch to OPCODE_FAST_READ.  It's required for higher 
    37          * clocks; and at this writing, every chip this driver handles 
    38          * supports that opcode. 
    39 @@ -380,13 +373,43 @@ static int m25p80_read(struct mtd_info * 
    4037        /* Set up the write data buffer. */ 
    41         opcode = flash->fast_read ? OPCODE_FAST_READ : OPCODE_NORM_READ; 
     38        opcode = flash->read_opcode; 
    4239        flash->command[0] = opcode; 
    4340-       m25p_addr2cmd(flash, from, flash->command); 
     
    4744+               size_t done; 
    4845+               int ret; 
    49 + 
     46  
     47-       spi_sync(flash->spi, &m); 
    5048+               ret = wait_till_ready(flash); 
    5149+               if (ret) { 
     
    5957+               else 
    6058+                       readlen = len; 
    61 + 
     59  
     60-       *retlen = m.actual_length - m25p_cmdsz(flash) - dummy; 
    6261+               t[1].rx_buf = buf + ofs; 
     62+               t[1].rx_nbits = m25p80_rx_nbits(flash); 
    6363+               t[1].len = readlen; 
    64 + 
     64  
    6565+               m25p_addr2cmd(flash, from + ofs, flash->command); 
    6666+ 
    6767+               spi_sync(flash->spi, &m); 
    68   
    69 -       spi_sync(flash->spi, &m); 
     68+ 
    7069+               done = m.actual_length - m25p_cmdsz(flash) - 
    71 +                      (flash->fast_read ? 1 : 0); 
     70+                      dummy; 
    7271+               if (done != readlen) { 
    7372+                       mutex_unlock(&flash->lock); 
    7473+                       return 1; 
    7574+               } 
    76   
    77 -       *retlen = m.actual_length - m25p_cmdsz(flash) - 
    78 -                       (flash->fast_read ? 1 : 0); 
     75+ 
    7976+               ofs += done; 
    8077+               len -= done; 
    8178+       } 
    82   
     79+ 
    8380+       *retlen = ofs; 
    8481        mutex_unlock(&flash->lock); 
    8582  
    8683        return 0; 
    87 @@ -1022,6 +1045,12 @@ static int m25p_probe(struct spi_device 
     84@@ -1193,6 +1217,12 @@ static int m25p_probe(struct spi_device  
    8885                flash->mtd._unlock = m25p80_unlock; 
    8986        } 
  • trunk/target/linux/ar71xx/patches-3.14/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch

    r42037 r42038  
    11--- a/drivers/mtd/devices/m25p80.c 
    22+++ b/drivers/mtd/devices/m25p80.c 
    3 @@ -1122,7 +1122,9 @@ static int m25p_probe(struct spi_device 
     3@@ -1344,7 +1344,9 @@ static int m25p_probe(struct spi_device  
    44        /* partitions should match sector boundaries; and it may be good to 
    55         * use readonly partitions for writeprotected sectors (BP2..BP0). 
  • trunk/target/linux/ar71xx/patches-3.14/409-mtd-rb4xx_nand_driver.patch

    r42037 r42038  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -544,4 +544,8 @@ config MTD_NAND_XWAY 
     3@@ -510,4 +510,8 @@ config MTD_NAND_XWAY 
    44          Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached 
    55          to the External Bus Unit (EBU). 
     
    1717 obj-$(CONFIG_MTD_NAND_PLATFORM)                += plat_nand.o 
    1818+obj-$(CONFIG_MTD_NAND_RB4XX)           += rb4xx_nand.o 
    19  obj-$(CONFIG_MTD_ALAUDA)               += alauda.o 
    2019 obj-$(CONFIG_MTD_NAND_PASEMI)          += pasemi_nand.o 
    2120 obj-$(CONFIG_MTD_NAND_ORION)           += orion_nand.o 
     21 obj-$(CONFIG_MTD_NAND_FSL_ELBC)                += fsl_elbc_nand.o 
  • trunk/target/linux/ar71xx/patches-3.14/410-mtd-rb750-nand-driver.patch

    r42037 r42038  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -548,4 +548,8 @@ config MTD_NAND_RB4XX 
     3@@ -514,4 +514,8 @@ config MTD_NAND_RB4XX 
    44        tristate "NAND flash driver for RouterBoard 4xx series" 
    55        depends on MTD_NAND && ATH79_MACH_RB4XX 
     
    1717 obj-$(CONFIG_MTD_NAND_RB4XX)           += rb4xx_nand.o 
    1818+obj-$(CONFIG_MTD_NAND_RB750)           += rb750_nand.o 
    19  obj-$(CONFIG_MTD_ALAUDA)               += alauda.o 
    2019 obj-$(CONFIG_MTD_NAND_PASEMI)          += pasemi_nand.o 
    2120 obj-$(CONFIG_MTD_NAND_ORION)           += orion_nand.o 
     21 obj-$(CONFIG_MTD_NAND_FSL_ELBC)                += fsl_elbc_nand.o 
  • trunk/target/linux/ar71xx/patches-3.14/412-mtd-m25p80-zero-partition-parser-data.patch

    r42037 r42038  
    11--- a/drivers/mtd/devices/m25p80.c 
    22+++ b/drivers/mtd/devices/m25p80.c 
    3 @@ -1072,6 +1072,7 @@ static int m25p_probe(struct spi_device 
     3@@ -1244,6 +1244,7 @@ static int m25p_probe(struct spi_device  
    44        if (info->flags & M25P_NO_ERASE) 
    55                flash->mtd.flags |= MTD_NO_ERASE; 
  • trunk/target/linux/ar71xx/patches-3.14/413-mtd-ar934x-nand-driver.patch

    r42037 r42038  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -552,4 +552,12 @@ config MTD_NAND_RB750 
     3@@ -518,4 +518,12 @@ config MTD_NAND_RB750 
    44        tristate "NAND flash driver for the RouterBoard 750" 
    55        depends on MTD_NAND && ATH79_MACH_RB750 
  • trunk/target/linux/ar71xx/patches-3.14/414-mtd-rb91x-nand-driver.patch

    r42037 r42038  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -552,6 +552,10 @@ config MTD_NAND_RB750 
     3@@ -518,6 +518,10 @@ config MTD_NAND_RB750 
    44        tristate "NAND flash driver for the RouterBoard 750" 
    55        depends on MTD_NAND && ATH79_MACH_RB750 
     
    1919 obj-$(CONFIG_MTD_NAND_RB750)           += rb750_nand.o 
    2020+obj-$(CONFIG_MTD_NAND_RB91X)           += rb91x_nand.o 
    21  obj-$(CONFIG_MTD_ALAUDA)               += alauda.o 
    2221 obj-$(CONFIG_MTD_NAND_PASEMI)          += pasemi_nand.o 
    2322 obj-$(CONFIG_MTD_NAND_ORION)           += orion_nand.o 
     23 obj-$(CONFIG_MTD_NAND_FSL_ELBC)                += fsl_elbc_nand.o 
  • trunk/target/linux/ar71xx/patches-3.14/420-net-ar71xx_mac_driver.patch

    r42037 r42038  
    1010          If you have a network (Ethernet) card belonging to this class, say Y 
    1111          and read the Ethernet-HOWTO, available from 
    12 @@ -85,4 +85,6 @@ config ALX 
     12@@ -80,4 +80,6 @@ config ALX 
    1313          To compile this driver as a module, choose M here.  The module 
    1414          will be called alx. 
  • trunk/target/linux/ar71xx/patches-3.14/425-net-phy-at803x-allow-to-configure-via-pdata.patch

    r42037 r42038  
    1414 #define AT803X_INTR_ENABLE                     0x12 
    1515 #define AT803X_INTR_STATUS                     0x13 
    16 @@ -28,10 +30,61 @@ 
    17  #define AT803X_MMD_ACCESS_CONTROL_DATA         0x0E 
    18  #define AT803X_FUNC_DATA                       0x4003 
     16@@ -32,10 +34,61 @@ 
     17 #define AT803X_DEBUG_SYSTEM_MODE_CTRL          0x05 
     18 #define AT803X_DEBUG_RGMII_TX_CLK_DLY          BIT(8) 
    1919  
    2020+#define AT803X_PCS_SMART_EEE_CTRL3             0x805D 
     
    7373+} 
    7474+ 
    75  static void at803x_set_wol_mac_addr(struct phy_device *phydev) 
     75 static int at803x_set_wol(struct phy_device *phydev, 
     76                          struct ethtool_wolinfo *wol) 
    7677 { 
    77         struct net_device *ndev = phydev->attached_dev; 
    78 @@ -62,8 +115,16 @@ static void at803x_set_wol_mac_addr(stru 
    79         } 
     78@@ -139,8 +192,16 @@ static int at803x_resume(struct phy_devi 
     79        return 0; 
    8080 } 
    8181  
     
    9191+       struct at803x_platform_data *pdata; 
    9292        int val; 
     93        int ret; 
    9394        u32 features; 
    94         int status; 
    95 @@ -105,6 +166,26 @@ static int at803x_config_init(struct phy 
    96         status = phy_write(phydev, AT803X_INTR_ENABLE, AT803X_WOL_ENABLE); 
    97         status = phy_read(phydev, AT803X_INTR_STATUS); 
     95@@ -188,6 +249,26 @@ static int at803x_config_init(struct phy 
     96                        return ret; 
     97        } 
    9898  
    9999+       pdata = dev_get_platdata(&phydev->dev); 
  • trunk/target/linux/ar71xx/patches-3.14/430-drivers-link-spi-before-mtd.patch

    r42037 r42038  
    11--- a/drivers/Makefile 
    22+++ b/drivers/Makefile 
    3 @@ -62,8 +62,8 @@ obj-$(CONFIG_IDE)             += ide/ 
     3@@ -64,8 +64,8 @@ obj-$(CONFIG_IDE)             += ide/ 
    44 obj-$(CONFIG_SCSI)             += scsi/ 
    55 obj-$(CONFIG_ATA)              += ata/ 
  • trunk/target/linux/ar71xx/patches-3.14/431-spi-add-various-flags.patch

    r42037 r42038  
    11--- a/include/linux/spi/spi.h 
    22+++ b/include/linux/spi/spi.h 
    3 @@ -519,6 +519,8 @@ struct spi_transfer { 
    4         dma_addr_t      rx_dma; 
    5   
     3@@ -583,6 +583,8 @@ struct spi_transfer { 
    64        unsigned        cs_change:1; 
     5        unsigned        tx_nbits:3; 
     6        unsigned        rx_nbits:3; 
    77+       unsigned        verify:1; 
    88+       unsigned        fast_write:1; 
    9         u8              bits_per_word; 
    10         u16             delay_usecs; 
    11         u32             speed_hz; 
    12 @@ -560,6 +562,7 @@ struct spi_message { 
     9 #define        SPI_NBITS_SINGLE        0x01 /* 1bit transfer */ 
     10 #define        SPI_NBITS_DUAL          0x02 /* 2bits transfer */ 
     11 #define        SPI_NBITS_QUAD          0x04 /* 4bits transfer */ 
     12@@ -627,6 +629,7 @@ struct spi_message { 
    1313        struct spi_device       *spi; 
    1414  
  • trunk/target/linux/ar71xx/patches-3.14/432-spi-rb4xx-spi-driver.patch

    r42037 r42038  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -354,6 +354,12 @@ config SPI_RSPI 
     3@@ -390,6 +390,12 @@ config SPI_RSPI 
    44        help 
    5           SPI driver for Renesas RSPI blocks. 
     5          SPI driver for Renesas RSPI and QSPI blocks. 
    66  
    77+config SPI_RB4XX 
     
    1616--- a/drivers/spi/Makefile 
    1717+++ b/drivers/spi/Makefile 
    18 @@ -55,6 +55,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
     18@@ -60,6 +60,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
    1919 spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_DMA)   += spi-pxa2xx-dma.o 
    2020 obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx-platform.o 
  • trunk/target/linux/ar71xx/patches-3.14/433-spi-rb4xx-cpld-driver.patch

    r42037 r42038  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -546,6 +546,13 @@ config SPI_TLE62X0 
     3@@ -586,6 +586,13 @@ config SPI_TLE62X0 
    44          sysfs interface, with each line presented as a kind of GPIO 
    55          exposing both switch control and diagnostic feedback. 
     
    1717--- a/drivers/spi/Makefile 
    1818+++ b/drivers/spi/Makefile 
    19 @@ -56,6 +56,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
     19@@ -61,6 +61,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
    2020 obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx-platform.o 
    2121 obj-$(CONFIG_SPI_PXA2XX_PCI)           += spi-pxa2xx-pci.o 
  • trunk/target/linux/ar71xx/patches-3.14/434-spi-ap83_spi_controller.patch

    r42037 r42038  
    1111--- a/drivers/spi/Kconfig 
    1212+++ b/drivers/spi/Kconfig 
    13 @@ -60,6 +60,14 @@ config SPI_ALTERA 
     13@@ -59,6 +59,14 @@ config SPI_ALTERA 
    1414        help 
    1515          This is the driver for the Altera SPI Controller. 
  • trunk/target/linux/ar71xx/patches-3.14/435-spi-vsc7385_driver.patch

    r42037 r42038  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -561,6 +561,11 @@ config SPI_RB4XX_CPLD 
     3@@ -601,6 +601,11 @@ config SPI_RB4XX_CPLD 
    44          SPI driver for the Xilinx CPLD chip present on the 
    55          MikroTik RB4xx boards. 
     
    1515--- a/drivers/spi/Makefile 
    1616+++ b/drivers/spi/Makefile 
    17 @@ -76,5 +76,6 @@ obj-$(CONFIG_SPI_TI_SSP)              += spi-ti-ssp. 
     17@@ -81,5 +81,6 @@ obj-$(CONFIG_SPI_TI_SSP)              += spi-ti-ssp. 
    1818 obj-$(CONFIG_SPI_TLE62X0)              += spi-tle62x0.o 
    1919 obj-$(CONFIG_SPI_TOPCLIFF_PCH)         += spi-topcliff-pch.o 
  • trunk/target/linux/ar71xx/patches-3.14/440-leds-wndr3700-usb-led-driver.patch

    r42037 r42038  
    11--- a/drivers/leds/Kconfig 
    22+++ b/drivers/leds/Kconfig 
    3 @@ -479,6 +479,13 @@ config LEDS_BLINKM 
     3@@ -487,6 +487,13 @@ config LEDS_BLINKM 
    44          This option enables support for the BlinkM RGB LED connected 
    55          through I2C. Say Y to enable support for the BlinkM LED. 
     
    1717--- a/drivers/leds/Makefile 
    1818+++ b/drivers/leds/Makefile 
    19 @@ -40,6 +40,7 @@ obj-$(CONFIG_LEDS_DA9052)             += leds-da905 
     19@@ -42,6 +42,7 @@ obj-$(CONFIG_LEDS_DA9052)             += leds-da905 
    2020 obj-$(CONFIG_LEDS_WM831X_STATUS)       += leds-wm831x-status.o 
    2121 obj-$(CONFIG_LEDS_WM8350)              += leds-wm8350.o 
  • trunk/target/linux/ar71xx/patches-3.14/441-leds-rb750-led-driver.patch

    r42037 r42038  
    11--- a/drivers/leds/Kconfig 
    22+++ b/drivers/leds/Kconfig 
    3 @@ -486,6 +486,10 @@ config LEDS_WNDR3700_USB 
     3@@ -494,6 +494,10 @@ config LEDS_WNDR3700_USB 
    44          This option enables support for the USB LED found on the 
    55          NETGEAR WNDR3700 board. 
     
    1414--- a/drivers/leds/Makefile 
    1515+++ b/drivers/leds/Makefile 
    16 @@ -47,6 +47,7 @@ obj-$(CONFIG_LEDS_LT3593)             += leds-lt359 
     16@@ -49,6 +49,7 @@ obj-$(CONFIG_LEDS_LT3593)             += leds-lt359 
    1717 obj-$(CONFIG_LEDS_ADP5520)             += leds-adp5520.o 
    1818 obj-$(CONFIG_LEDS_DELL_NETBOOKS)       += dell-led.o 
  • trunk/target/linux/ar71xx/patches-3.14/450-gpio-nxp-74hc153-gpio-chip-driver.patch

    r42037 r42038  
    11--- a/drivers/gpio/Kconfig 
    22+++ b/drivers/gpio/Kconfig 
    3 @@ -717,4 +717,12 @@ config GPIO_VIPERBOARD 
     3@@ -834,4 +834,12 @@ config GPIO_VIPERBOARD 
    44           River Tech's viperboard.h for detailed meaning 
    55           of the module parameters. 
     
    1616--- a/drivers/gpio/Makefile 
    1717+++ b/drivers/gpio/Makefile 
    18 @@ -50,6 +50,7 @@ obj-$(CONFIG_GPIO_MSM_V2)     += gpio-msm-v2 
     18@@ -56,6 +56,7 @@ obj-$(CONFIG_GPIO_MSM_V2)     += gpio-msm-v2 
    1919 obj-$(CONFIG_GPIO_MVEBU)        += gpio-mvebu.o 
    2020 obj-$(CONFIG_GPIO_MXC)         += gpio-mxc.o 
    2121 obj-$(CONFIG_GPIO_MXS)         += gpio-mxs.o 
    2222+obj-$(CONFIG_GPIO_NXP_74HC153) += gpio-nxp-74hc153.o 
     23 obj-$(CONFIG_GPIO_OCTEON)      += gpio-octeon.o 
    2324 obj-$(CONFIG_ARCH_OMAP)                += gpio-omap.o 
    2425 obj-$(CONFIG_GPIO_PCA953X)     += gpio-pca953x.o 
    25  obj-$(CONFIG_GPIO_PCF857X)     += gpio-pcf857x.o 
  • trunk/target/linux/ar71xx/patches-3.14/451-gpio-74x164-improve-platform-device-support.patch

    r42037 r42038  
    11--- a/drivers/gpio/gpio-74x164.c 
    22+++ b/drivers/gpio/gpio-74x164.c 
    3 @@ -109,10 +109,14 @@ static int gen_74x164_probe(struct spi_d 
     3@@ -107,8 +107,18 @@ static int gen_74x164_direction_output(s 
     4 static int gen_74x164_probe(struct spi_device *spi) 
    45 { 
    56        struct gen_74x164_chip *chip; 
    6         struct gen_74x164_chip_platform_data *pdata; 
     7+       struct gen_74x164_chip_platform_data *pdata; 
    78+       struct device_node *np; 
    89        int ret; 
    910  
    10 -       if (!spi->dev.of_node) { 
    11 -               dev_err(&spi->dev, "No device tree data available.\n"); 
    1211+       pdata = spi->dev.platform_data; 
    1312+       np = spi->dev.of_node; 
     
    1514+       if (!np && !pdata) { 
    1615+               dev_err(&spi->dev, "No configuration data available.\n"); 
    17                 return -EINVAL; 
    18         } 
     16+               return -EINVAL; 
     17+       } 
     18+ 
     19        /* 
     20         * bits_per_word cannot be configured in platform data 
     21         */ 
     22@@ -130,18 +140,27 @@ static int gen_74x164_probe(struct spi_d 
     23        chip->gpio_chip.set = gen_74x164_set_value; 
     24        chip->gpio_chip.base = -1; 
    1925  
    20 @@ -129,7 +133,6 @@ static int gen_74x164_probe(struct spi_d 
    21         if (!chip) 
    22                 return -ENOMEM; 
    23   
    24 -       pdata = spi->dev.platform_data; 
    25         if (pdata && pdata->base) 
    26                 chip->gpio_chip.base = pdata->base; 
    27         else 
    28 @@ -146,12 +149,19 @@ static int gen_74x164_probe(struct spi_d 
    29         chip->gpio_chip.get = gen_74x164_get_value; 
    30         chip->gpio_chip.set = gen_74x164_set_value; 
    31   
    32 -       if (of_property_read_u32(spi->dev.of_node, "registers-number", &chip->registers)) { 
    33 -               dev_err(&spi->dev, "Missing registers-number property in the DT.\n"); 
    34 -               ret = -EINVAL; 
    35 -               goto exit_destroy; 
     26-       if (of_property_read_u32(spi->dev.of_node, "registers-number", 
     27-                                &chip->registers)) { 
     28-               dev_err(&spi->dev, 
     29-                       "Missing registers-number property in the DT.\n"); 
     30-               return -EINVAL; 
    3631+       if (np) { 
    3732+               if (of_property_read_u32(spi->dev.of_node, "registers-number", &chip->registers)) { 
     
    4944        chip->gpio_chip.ngpio = GEN_74X164_NUMBER_GPIOS * chip->registers; 
    5045        chip->buffer = devm_kzalloc(&spi->dev, chip->registers, GFP_KERNEL); 
    51         if (!chip->buffer) { 
    52 @@ -159,6 +169,9 @@ static int gen_74x164_probe(struct spi_d 
    53                 goto exit_destroy; 
    54         } 
     46        if (!chip->buffer) 
     47                return -ENOMEM; 
    5548  
    5649+       if (pdata && pdata->init_data) 
    5750+               memcpy(chip->buffer, pdata->init_data, chip->registers); 
    5851+ 
    59         chip->gpio_chip.can_sleep = 1; 
     52        chip->gpio_chip.can_sleep = true; 
    6053        chip->gpio_chip.dev = &spi->dev; 
    6154        chip->gpio_chip.owner = THIS_MODULE; 
    62 --- a/include/linux/spi/74x164.h 
     55--- /dev/null 
    6356+++ b/include/linux/spi/74x164.h 
    64 @@ -4,6 +4,10 @@ 
    65  struct gen_74x164_chip_platform_data { 
    66         /* number assigned to the first GPIO */ 
    67         unsigned        base; 
     57@@ -0,0 +1,13 @@ 
     58+#ifndef LINUX_SPI_74X164_H 
     59+#define LINUX_SPI_74X164_H 
     60+ 
     61+struct gen_74x164_chip_platform_data { 
     62+       /* number assigned to the first GPIO */ 
     63+       unsigned        base; 
    6864+       /* number of chained registers */ 
    6965+       unsigned        num_registers; 
    7066+       /* address of a buffer containing initial data */ 
    7167+       u8              *init_data; 
    72  }; 
    73   
    74  #endif 
     68+}; 
     69+ 
     70+#endif 
  • trunk/target/linux/ar71xx/patches-3.14/452-gpio-add-gpio-latch-driver.patch

    r42037 r42038  
    11--- a/drivers/gpio/Kconfig 
    22+++ b/drivers/gpio/Kconfig 
    3 @@ -725,4 +725,9 @@ config GPIO_NXP_74HC153 
     3@@ -842,4 +842,9 @@ config GPIO_NXP_74HC153 
    44          Platform driver for NXP 74HC153 Dual 4-input Multiplexer. This 
    55          provides a GPIO interface supporting input mode only. 
     
    1313--- a/drivers/gpio/Makefile 
    1414+++ b/drivers/gpio/Makefile 
    15 @@ -31,6 +31,7 @@ obj-$(CONFIG_GPIO_IT8761E)    += gpio-it876 
    16  obj-$(CONFIG_GPIO_JANZ_TTL)    += gpio-janz-ttl.o 
     15@@ -35,6 +35,7 @@ obj-$(CONFIG_GPIO_JANZ_TTL)   += gpio-janz 
     16 obj-$(CONFIG_GPIO_KEMPLD)      += gpio-kempld.o 
    1717 obj-$(CONFIG_ARCH_KS8695)      += gpio-ks8695.o 
    18  obj-$(CONFIG_GPIO_LANGWELL)    += gpio-langwell.o 
     18 obj-$(CONFIG_GPIO_INTEL_MID)   += gpio-intel-mid.o 
    1919+obj-$(CONFIG_GPIO_LATCH)       += gpio-latch.o 
     20 obj-$(CONFIG_GPIO_LP3943)      += gpio-lp3943.o 
    2021 obj-$(CONFIG_ARCH_LPC32XX)     += gpio-lpc32xx.o 
    2122 obj-$(CONFIG_GPIO_LYNXPOINT)   += gpio-lynxpoint.o 
    22  obj-$(CONFIG_GPIO_MAX730X)     += gpio-max730x.o 
  • trunk/target/linux/ar71xx/patches-3.14/460-spi-bitbang-export-spi_bitbang_bufs.patch

    r42037 r42038  
    1919--- a/include/linux/spi/spi_bitbang.h 
    2020+++ b/include/linux/spi/spi_bitbang.h 
    21 @@ -44,6 +44,7 @@ extern void spi_bitbang_cleanup(struct s 
    22  extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m); 
     21@@ -39,6 +39,7 @@ extern int spi_bitbang_setup(struct spi_ 
     22 extern void spi_bitbang_cleanup(struct spi_device *spi); 
    2323 extern int spi_bitbang_setup_transfer(struct spi_device *spi, 
    2424                                      struct spi_transfer *t); 
  • trunk/target/linux/ar71xx/patches-3.14/461-spi-add-type-field-to-spi_transfer.patch

    r42037 r42038  
    11--- a/include/linux/spi/spi.h 
    22+++ b/include/linux/spi/spi.h 
    3 @@ -422,6 +422,12 @@ extern struct spi_master *spi_busnum_to_ 
     3@@ -475,6 +475,12 @@ extern struct spi_master *spi_busnum_to_ 
    44  
    55 /*---------------------------------------------------------------------------*/ 
     
    1414  * I/O INTERFACE between SPI controller and protocol drivers 
    1515  * 
    16 @@ -524,6 +530,7 @@ struct spi_transfer { 
     16@@ -591,6 +597,7 @@ struct spi_transfer { 
    1717        u8              bits_per_word; 
    1818        u16             delay_usecs; 
  • trunk/target/linux/ar71xx/patches-3.14/463-spi-ath79-add-fast-flash-read.patch

    r42037 r42038  
    3535  
    3636 static void ath79_spi_disable(struct ath79_spi *sp) 
    37 @@ -232,6 +239,110 @@ static u32 ath79_spi_txrx_mode0(struct s 
     37@@ -226,6 +233,110 @@ static u32 ath79_spi_txrx_mode0(struct s 
    3838        return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS); 
    3939 } 
     
    146146 { 
    147147        struct spi_master *master; 
    148 @@ -254,6 +365,8 @@ static int ath79_spi_probe(struct platfo 
     148@@ -248,6 +359,8 @@ static int ath79_spi_probe(struct platfo 
    149149        sp = spi_master_get_devdata(master); 
    150150        platform_set_drvdata(pdev, sp); 
     
    152152+       sp->state = ATH79_SPI_STATE_WAIT_CMD; 
    153153+ 
     154        master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); 
    154155        master->setup = ath79_spi_setup; 
    155156        master->cleanup = ath79_spi_cleanup; 
    156         master->bus_num = pdata->bus_num; 
    157 @@ -262,7 +375,7 @@ static int ath79_spi_probe(struct platfo 
    158         sp->bitbang.master = spi_master_get(master); 
     157@@ -257,7 +370,7 @@ static int ath79_spi_probe(struct platfo 
     158        sp->bitbang.master = master; 
    159159        sp->bitbang.chipselect = ath79_spi_chipselect; 
    160160        sp->bitbang.txrx_word[SPI_MODE_0] = ath79_spi_txrx_mode0; 
     
    164164  
    165165        r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 
    166 @@ -287,7 +400,8 @@ static int ath79_spi_probe(struct platfo 
     166@@ -282,7 +395,8 @@ static int ath79_spi_probe(struct platfo 
    167167        if (ret) 
    168                 goto err_clk_put; 
     168                goto err_put_master; 
    169169  
    170170-       rate = DIV_ROUND_UP(clk_get_rate(sp->clk), MHZ); 
  • trunk/target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch

    r42037 r42038  
    11--- a/drivers/usb/host/ehci-hcd.c 
    22+++ b/drivers/usb/host/ehci-hcd.c 
    3 @@ -249,6 +249,37 @@ static int ehci_reset (struct ehci_hcd * 
     3@@ -252,6 +252,37 @@ static int ehci_reset (struct ehci_hcd * 
    44        command |= CMD_RESET; 
    55        dbg_cmd (ehci, "reset", command); 
     
    3838        ehci->rh_state = EHCI_RH_HALTED; 
    3939        ehci->next_statechange = jiffies; 
    40         retval = handshake (ehci, &ehci->regs->command, 
     40        retval = ehci_handshake(ehci, &ehci->regs->command, 
    4141--- a/drivers/usb/host/ehci.h 
    4242+++ b/drivers/usb/host/ehci.h 
    43 @@ -202,6 +202,10 @@ struct ehci_hcd {                  /* one per controlle 
     43@@ -227,6 +227,10 @@ struct ehci_hcd {                  /* one per controlle 
    4444        unsigned                need_oc_pp_cycle:1; /* MPC834X port power */ 
    4545        unsigned                imx28_write_fix:1; /* For Freescale i.MX28 */ 
     
    5454--- a/include/linux/usb/ehci_pdriver.h 
    5555+++ b/include/linux/usb/ehci_pdriver.h 
    56 @@ -43,6 +43,8 @@ struct usb_ehci_pdata { 
     56@@ -46,6 +46,8 @@ struct usb_ehci_pdata { 
    5757        unsigned        big_endian_mmio:1; 
    5858        unsigned        no_io_watchdog:1; 
     
    6363        /* Turn on all power and clocks */ 
    6464        int (*power_on)(struct platform_device *pdev); 
    65 @@ -51,6 +53,7 @@ struct usb_ehci_pdata { 
    66         /* Turn on only VBUS suspend power and hotplug detection, 
     65@@ -55,6 +57,7 @@ struct usb_ehci_pdata { 
    6766         * turn off everything else */ 
    6867        void (*power_suspend)(struct platform_device *pdev); 
     68        int (*pre_setup)(struct usb_hcd *hcd); 
    6969+       void (*reset_notifier)(struct platform_device *pdev); 
    7070 }; 
     
    9898+               ehci->reset_notifier = ehci_platform_reset_notifier; 
    9999  
    100         ehci->caps = hcd->regs + pdata->caps_offset; 
    101         retval = ehci_setup(hcd); 
     100        if (pdata->pre_setup) { 
     101                retval = pdata->pre_setup(hcd); 
  • trunk/target/linux/ar71xx/patches-3.14/500-MIPS-fw-myloader.patch

    r42037 r42038  
    1111--- a/arch/mips/Kconfig 
    1212+++ b/arch/mips/Kconfig 
    13 @@ -998,6 +998,9 @@ config MIPS_MSC 
     13@@ -951,6 +951,9 @@ config MIPS_MSC 
    1414 config MIPS_NILE4 
    1515        bool 
  • trunk/target/linux/ar71xx/patches-3.14/505-MIPS-ath79-add-ath79_gpio_function_select.patch

    r42037 r42038  
    11--- a/arch/mips/ath79/common.h 
    22+++ b/arch/mips/ath79/common.h 
    3 @@ -26,6 +26,7 @@ void ath79_ddr_wb_flush(unsigned int reg 
     3@@ -27,6 +27,7 @@ void ath79_ddr_wb_flush(unsigned int reg 
    44 void ath79_gpio_function_enable(u32 mask); 
    55 void ath79_gpio_function_disable(u32 mask); 
  • trunk/target/linux/ar71xx/patches-3.14/509-MIPS-ath79-process-board-kernel-option.patch

    r42037 r42038  
    11--- a/arch/mips/ath79/setup.c 
    22+++ b/arch/mips/ath79/setup.c 
    3 @@ -218,6 +218,8 @@ void __init plat_time_init(void) 
    4         mips_hpt_frequency = clk_get_rate(clk) / 2; 
     3@@ -229,6 +229,8 @@ void __init plat_time_init(void) 
     4        mips_hpt_frequency = cpu_clk_rate / 2; 
    55 } 
    66  
  • trunk/target/linux/ar71xx/patches-3.14/520-MIPS-ath79-enable-UART-function.patch

    r42037 r42038  
    11--- a/arch/mips/ath79/dev-common.c 
    22+++ b/arch/mips/ath79/dev-common.c 
    3 @@ -87,6 +87,15 @@ void __init ath79_register_uart(void) 
    4         if (IS_ERR(clk)) 
    5                 panic("unable to get UART clock, err=%ld", PTR_ERR(clk)); 
     3@@ -80,6 +80,15 @@ void __init ath79_register_uart(void) 
     4  
     5        uart_clk_rate = ath79_get_sys_clk_rate("uart"); 
    66  
    77+       if (soc_is_ar71xx()) 
  • trunk/target/linux/ar71xx/patches-3.14/521-MIPS-ath79-enable-UART-for-early_serial.patch

    r42037 r42038  
    11--- a/arch/mips/ath79/early_printk.c 
    22+++ b/arch/mips/ath79/early_printk.c 
    3 @@ -56,6 +56,46 @@ static void prom_putchar_dummy(unsigned 
     3@@ -56,6 +56,46 @@ static void prom_putchar_dummy(unsigned  
    44        /* nothing to do */ 
    55 } 
  • trunk/target/linux/ar71xx/patches-3.14/523-MIPS-ath79-OTP-support.patch

    r42037 r42038  
    150150--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    151151+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    152 @@ -113,6 +113,14 @@ 
     152@@ -112,6 +112,14 @@ 
    153153 #define QCA955X_EHCI1_BASE     0x1b400000 
    154154 #define QCA955X_EHCI_SIZE      0x1000 
  • trunk/target/linux/ar71xx/patches-3.14/525-MIPS-ath79-enable-qca-usb-quirks.patch

    r42037 r42038  
    3030+       void __iomem *phy_reg; 
    3131+       u32 t; 
    32 + 
     32  
     33-       bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP); 
     34-       if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE) 
    3335+       phy_reg = ioremap(base, 4); 
    3436+       if (!phy_reg) 
    35 +               return; 
    36 + 
     37                return; 
     38  
    3739+       t = ioread32(phy_reg); 
    3840+       t &= ~0xff; 
     
    4244+       iounmap(phy_reg); 
    4345+} 
    44   
    45 -       bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP); 
    46 -       if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE) 
     46+ 
    4747+static void ar934x_usb_reset_notifier(struct platform_device *pdev) 
    4848+{ 
    4949+       if (pdev->id != -1) 
    50                 return; 
    51   
     50+               return; 
     51+ 
    5252+       enable_tx_tx_idp_violation_fix(0x18116c94); 
    5353+       dev_info(&pdev->dev, "TX-TX IDP fix enabled\n"); 
  • trunk/target/linux/ar71xx/patches-3.14/601-MIPS-ath79-add-more-register-defines.patch

    r42037 r42038  
    11--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    22+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    3 @@ -21,6 +21,10 @@ 
     3@@ -20,6 +20,10 @@ 
    44 #include <linux/bitops.h> 
    55  
     
    1212 #define AR71XX_EHCI_SIZE       0x1000 
    1313 #define AR71XX_OHCI_BASE       0x1c000000 
    14 @@ -40,6 +44,8 @@ 
     14@@ -39,6 +43,8 @@ 
    1515 #define AR71XX_PLL_SIZE                0x100 
    1616 #define AR71XX_RESET_BASE      (AR71XX_APB_BASE + 0x00060000) 
     
    2121 #define AR71XX_PCI_MEM_BASE    0x10000000 
    2222 #define AR71XX_PCI_MEM_SIZE    0x07000000 
    23 @@ -82,15 +88,21 @@ 
     23@@ -81,15 +87,21 @@ 
    2424  
    2525 #define AR933X_UART_BASE       (AR71XX_APB_BASE + 0x00020000) 
     
    4343 #define AR934X_SRIF_SIZE       0x1000 
    4444  
    45 @@ -107,11 +119,15 @@ 
     45@@ -106,11 +118,15 @@ 
    4646 #define QCA955X_PCI_CTRL_BASE1 (AR71XX_APB_BASE + 0x00280000) 
    4747 #define QCA955X_PCI_CTRL_SIZE  0x100 
     
    5959 #define AR9300_OTP_BASE                0x14000 
    6060 #define AR9300_OTP_STATUS      0x15f18 
    61 @@ -175,6 +191,9 @@ 
     61@@ -174,6 +190,9 @@ 
    6262 #define AR71XX_AHB_DIV_SHIFT           20 
    6363 #define AR71XX_AHB_DIV_MASK            0x7 
     
    6969 #define AR724X_PLL_REG_PCIE_CONFIG     0x18 
    7070  
    71 @@ -187,6 +206,8 @@ 
     71@@ -186,6 +205,8 @@ 
    7272 #define AR724X_DDR_DIV_SHIFT           22 
    7373 #define AR724X_DDR_DIV_MASK            0x3 
     
    7878 #define AR913X_PLL_REG_ETH_CONFIG      0x04 
    7979 #define AR913X_PLL_REG_ETH0_INT_CLOCK  0x14 
    80 @@ -199,6 +220,9 @@ 
     80@@ -198,6 +219,9 @@ 
    8181 #define AR913X_AHB_DIV_SHIFT           19 
    8282 #define AR913X_AHB_DIV_MASK            0x1 
     
    8888 #define AR933X_PLL_CLOCK_CTRL_REG      0x08 
    8989  
    90 @@ -220,6 +244,8 @@ 
     90@@ -219,6 +243,8 @@ 
    9191 #define AR934X_PLL_CPU_CONFIG_REG              0x00 
    9292 #define AR934X_PLL_DDR_CONFIG_REG              0x04 
     
    9797 #define AR934X_PLL_CPU_CONFIG_NFRAC_SHIFT      0 
    9898 #define AR934X_PLL_CPU_CONFIG_NFRAC_MASK       0x3f 
    99 @@ -252,9 +278,13 @@ 
     99@@ -251,9 +277,13 @@ 
    100100 #define AR934X_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21) 
    101101 #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) 
     
    111111 #define QCA955X_PLL_CPU_CONFIG_NFRAC_SHIFT     0 
    112112 #define QCA955X_PLL_CPU_CONFIG_NFRAC_MASK      0x3f 
    113 @@ -379,16 +409,83 @@ 
     113@@ -378,16 +408,83 @@ 
    114114 #define AR913X_RESET_USB_HOST          BIT(5) 
    115115 #define AR913X_RESET_USB_PHY           BIT(4) 
     
    195195  
    196196 #define AR934X_BOOTSTRAP_SW_OPTION8    BIT(23) 
    197 @@ -530,6 +627,12 @@ 
     197@@ -529,6 +626,12 @@ 
    198198 #define AR71XX_GPIO_REG_INT_ENABLE     0x24 
    199199 #define AR71XX_GPIO_REG_FUNC           0x28 
     
    208208  
    209209 #define AR71XX_GPIO_COUNT              16 
    210 @@ -561,4 +664,148 @@ 
     210@@ -560,4 +663,148 @@ 
    211211 #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13 
    212212 #define AR934X_SRIF_DPLL2_OUTDIV_MASK  0x7 
  • trunk/target/linux/ar71xx/patches-3.14/606-MIPS-ath79-pb44-fixes.patch

    r42037 r42038  
    5151 #define PB44_GPIO_SW_JUMP      (PB44_GPIO_EXP_BASE + 8) 
    5252 #define PB44_GPIO_LED_JUMP1    (PB44_GPIO_EXP_BASE + 9) 
    53 @@ -92,21 +117,66 @@ static struct ath79_spi_controller_data 
     53@@ -92,21 +117,66 @@ static struct ath79_spi_controller_data  
    5454        .cs_line = 0, 
    5555 }; 
  • trunk/target/linux/ar71xx/patches-3.14/609-MIPS-ath79-ap136-fixes.patch

    r42037 r42038  
    8787                .active_low     = 1, 
    8888        } 
    89 @@ -98,65 +106,152 @@ static struct gpio_keys_button ap136_gpi 
     89@@ -98,65 +106,151 @@ static struct gpio_keys_button ap136_gpi 
    9090        }, 
    9191 }; 
     
    157157-static struct ath9k_platform_data ap136_ath9k_data; 
    158158+       ath79_register_mdio(0, 0x0); 
     159+       ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0); 
    159160  
    160161-static int ap136_pci_plat_dev_init(struct pci_dev *dev) 
    161 +       ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0); 
    162 + 
    163162+       mdiobus_register_board_info(ap136_mdio0_info, 
    164163+                                   ARRAY_SIZE(ap136_mdio0_info)); 
     
    233232 } 
    234233-#else 
    235 -static inline void ap136_pci_init(void) {} 
     234-static inline void ap136_pci_init(u8 *eeprom) {} 
    236235-#endif /* CONFIG_PCI */ 
    237236  
  • trunk/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch

    r42037 r42038  
    11--- a/arch/mips/ath79/machtypes.h 
    22+++ b/arch/mips/ath79/machtypes.h 
    3 @@ -16,22 +16,144 @@ 
     3@@ -16,22 +16,143 @@ 
    44  
    55 enum ath79_mach_type { 
     
    127127+       ATH79_MACH_WNDAP360,            /* NETGEAR WNDAP360 */ 
    128128+       ATH79_MACH_WNDR3700,            /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */ 
    129 +       ATH79_MACH_WNDR3700_V4,         /* NETGEAR WNDR3700v4 */ 
    130 +       ATH79_MACH_WNDR4300,            /* NETGEAR WNDR4300 */ 
     129+       ATH79_MACH_WNDR4300,            /* NETGEAR WNDR3700v4/WNDR4300 */ 
    131130+       ATH79_MACH_WNR2000,             /* NETGEAR WNR2000 */ 
    132131+       ATH79_MACH_WNR2000_V3,          /* NETGEAR WNR2000 v3 */ 
  • trunk/target/linux/ar71xx/patches-3.14/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch

    r42037 r42038  
    4545--- a/arch/mips/ath79/clock.c 
    4646+++ b/arch/mips/ath79/clock.c 
    47 @@ -295,6 +295,82 @@ static void __init ar934x_clocks_init(vo 
     47@@ -350,6 +350,91 @@ static void __init ar934x_clocks_init(vo 
    4848        iounmap(dpll_base); 
    4949 } 
     
    5151+static void __init qca953x_clocks_init(void) 
    5252+{ 
     53+       unsigned long ref_rate; 
     54+       unsigned long cpu_rate; 
     55+       unsigned long ddr_rate; 
     56+       unsigned long ahb_rate; 
    5357+       u32 pll, out_div, ref_div, nint, frac, clk_ctrl, postdiv; 
    5458+       u32 cpu_pll, ddr_pll; 
     
    5761+       bootstrap = ath79_reset_rr(QCA953X_RESET_REG_BOOTSTRAP); 
    5862+       if (bootstrap & QCA953X_BOOTSTRAP_REF_CLK_40) 
    59 +               ath79_ref_clk.rate = 40 * 1000 * 1000; 
     63+               ref_rate = 40 * 1000 * 1000; 
    6064+       else 
    61 +               ath79_ref_clk.rate = 25 * 1000 * 1000; 
     65+               ref_rate = 25 * 1000 * 1000; 
    6266+ 
    6367+       pll = ath79_pll_rr(QCA953X_PLL_CPU_CONFIG_REG); 
     
    7175+              QCA953X_PLL_CPU_CONFIG_NFRAC_MASK; 
    7276+ 
    73 +       cpu_pll = nint * ath79_ref_clk.rate / ref_div; 
    74 +       cpu_pll += frac * (ath79_ref_clk.rate >> 6) / ref_div; 
     77+       cpu_pll = nint * ref_rate / ref_div; 
     78+       cpu_pll += frac * (ref_rate >> 6) / ref_div; 
    7579+       cpu_pll /= (1 << out_div); 
    7680+ 
     
    8589+              QCA953X_PLL_DDR_CONFIG_NFRAC_MASK; 
    8690+ 
    87 +       ddr_pll = nint * ath79_ref_clk.rate / ref_div; 
    88 +       ddr_pll += frac * (ath79_ref_clk.rate >> 6) / (ref_div << 4); 
     91+       ddr_pll = nint * ref_rate / ref_div; 
     92+       ddr_pll += frac * (ref_rate >> 6) / (ref_div << 4); 
    8993+       ddr_pll /= (1 << out_div); 
    9094+ 
     
    9599+ 
    96100+       if (clk_ctrl & QCA953X_PLL_CLK_CTRL_CPU_PLL_BYPASS) 
    97 +               ath79_cpu_clk.rate = ath79_ref_clk.rate; 
     101+               cpu_rate = ref_rate; 
    98102+       else if (clk_ctrl & QCA953X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL) 
    99 +               ath79_cpu_clk.rate = cpu_pll / (postdiv + 1); 
     103+               cpu_rate = cpu_pll / (postdiv + 1); 
    100104+       else 
    101 +               ath79_cpu_clk.rate = ddr_pll / (postdiv + 1); 
     105+               cpu_rate = ddr_pll / (postdiv + 1); 
    102106+ 
    103107+       postdiv = (clk_ctrl >> QCA953X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT) & 
     
    105109+ 
    106110+       if (clk_ctrl & QCA953X_PLL_CLK_CTRL_DDR_PLL_BYPASS) 
    107 +               ath79_ddr_clk.rate = ath79_ref_clk.rate; 
     111+               ddr_rate = ref_rate; 
    108112+       else if (clk_ctrl & QCA953X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL) 
    109 +               ath79_ddr_clk.rate = ddr_pll / (postdiv + 1); 
     113+               ddr_rate = ddr_pll / (postdiv + 1); 
    110114+       else 
    111 +               ath79_ddr_clk.rate = cpu_pll / (postdiv + 1); 
     115+               ddr_rate = cpu_pll / (postdiv + 1); 
    112116+ 
    113117+       postdiv = (clk_ctrl >> QCA953X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT) & 
     
    115119+ 
    116120+       if (clk_ctrl & QCA953X_PLL_CLK_CTRL_AHB_PLL_BYPASS) 
    117 +               ath79_ahb_clk.rate = ath79_ref_clk.rate; 
     121+               ahb_rate = ref_rate; 
    118122+       else if (clk_ctrl & QCA953X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL) 
    119 +               ath79_ahb_clk.rate = ddr_pll / (postdiv + 1); 
     123+               ahb_rate = ddr_pll / (postdiv + 1); 
    120124+       else 
    121 +               ath79_ahb_clk.rate = cpu_pll / (postdiv + 1); 
    122 + 
    123 +       ath79_wdt_clk.rate = ath79_ref_clk.rate; 
    124 +       ath79_uart_clk.rate = ath79_ref_clk.rate; 
     125+               ahb_rate = cpu_pll / (postdiv + 1); 
     126+ 
     127+       ath79_add_sys_clkdev("ref", ref_rate); 
     128+       ath79_add_sys_clkdev("cpu", cpu_rate); 
     129+       ath79_add_sys_clkdev("ddr", ddr_rate); 
     130+       ath79_add_sys_clkdev("ahb", ahb_rate); 
     131+ 
     132+       clk_add_alias("wdt", NULL, "ref", NULL); 
     133+       clk_add_alias("uart", NULL, "ref", NULL); 
    125134+} 
    126135+ 
    127136 static void __init qca955x_clocks_init(void) 
    128137 { 
    129         u32 pll, out_div, ref_div, nint, frac, clk_ctrl, postdiv; 
    130 @@ -383,6 +459,8 @@ void __init ath79_clocks_init(void) 
     138        unsigned long ref_rate; 
     139@@ -447,6 +532,8 @@ void __init ath79_clocks_init(void) 
    131140                ar933x_clocks_init(); 
    132141        else if (soc_is_ar934x()) 
     
    159168--- a/arch/mips/ath79/dev-common.c 
    160169+++ b/arch/mips/ath79/dev-common.c 
    161 @@ -100,6 +100,7 @@ void __init ath79_register_uart(void) 
     170@@ -93,6 +93,7 @@ void __init ath79_register_uart(void) 
    162171            soc_is_ar724x() || 
    163172            soc_is_ar913x() || 
     
    165174+           soc_is_qca953x() || 
    166175            soc_is_qca955x()) { 
    167                 ath79_uart_data[0].uartclk = clk_get_rate(clk); 
     176                ath79_uart_data[0].uartclk = uart_clk_rate; 
    168177                platform_device_register(&ath79_uart_device); 
    169178--- a/arch/mips/ath79/dev-wmac.c 
     
    299308--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    300309+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h 
    301 @@ -106,6 +106,9 @@ 
     310@@ -105,6 +105,9 @@ 
    302311 #define AR934X_SRIF_BASE       (AR71XX_APB_BASE + 0x00116000) 
    303312 #define AR934X_SRIF_SIZE       0x1000 
     
    309318 #define QCA955X_PCI_MEM_BASE1  0x12000000 
    310319 #define QCA955X_PCI_MEM_SIZE   0x02000000 
    311 @@ -280,6 +283,43 @@ 
     320@@ -279,6 +282,43 @@ 
    312321  
    313322 #define AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL   BIT(6) 
     
    353362 #define QCA955X_PLL_DDR_CONFIG_REG             0x04 
    354363 #define QCA955X_PLL_CLK_CTRL_REG               0x08 
    355 @@ -356,6 +396,10 @@ 
     364@@ -355,6 +395,10 @@ 
    356365 #define AR934X_RESET_REG_BOOTSTRAP             0xb0 
    357366 #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS  0xac 
     
    364373 #define QCA955X_RESET_REG_BOOTSTRAP            0xb0 
    365374 #define QCA955X_RESET_REG_EXT_INT_STATUS       0xac 
    366 @@ -504,6 +548,8 @@ 
     375@@ -503,6 +547,8 @@ 
    367376 #define AR934X_BOOTSTRAP_SDRAM_DISABLED BIT(1) 
    368377 #define AR934X_BOOTSTRAP_DDR1          BIT(0) 
     
    373382  
    374383 #define AR934X_PCIE_WMAC_INT_WMAC_MISC         BIT(0) 
    375 @@ -566,6 +612,7 @@ 
     384@@ -565,6 +611,7 @@ 
    376385 #define REV_ID_MAJOR_AR9341            0x0120 
    377386 #define REV_ID_MAJOR_AR9342            0x1120 
     
    381390 #define REV_ID_MAJOR_QCA9558           0x1130 
    382391  
    383 @@ -588,6 +635,8 @@ 
     392@@ -587,6 +634,8 @@ 
    384393  
    385394 #define AR934X_REV_ID_REVISION_MASK    0xf 
     
    390399  
    391400 /* 
    392 @@ -641,6 +690,7 @@ 
     401@@ -640,6 +689,7 @@ 
    393402 #define AR913X_GPIO_COUNT              22 
    394403 #define AR933X_GPIO_COUNT              30 
  • trunk/target/linux/ar71xx/patches-3.14/720-MIPS-ath79-add-Tube2H-support.patch

    r42037 r42038  
    2929--- a/arch/mips/ath79/Makefile 
    3030+++ b/arch/mips/ath79/Makefile 
    31 @@ -116,6 +116,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2) 
     31@@ -116,6 +116,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2)      
    3232 obj-$(CONFIG_ATH79_MACH_TL_WR2543N)    += mach-tl-wr2543n.o 
    3333 obj-$(CONFIG_ATH79_MACH_TL_WR703N)     += mach-tl-wr703n.o 
  • trunk/target/linux/ar71xx/patches-3.14/902-unaligned_access_hacks.patch

    r42037 r42038  
    168168--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 
    169169+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 
    170 @@ -40,8 +40,8 @@ static bool ipv4_pkt_to_tuple(const stru 
     170@@ -41,8 +41,8 @@ static bool ipv4_pkt_to_tuple(const stru 
    171171        if (ap == NULL) 
    172172                return false; 
     
    192192--- a/include/uapi/linux/in6.h 
    193193+++ b/include/uapi/linux/in6.h 
    194 @@ -36,7 +36,7 @@ struct in6_addr { 
    195  #define s6_addr                        in6_u.u6_addr8 
     194@@ -42,7 +42,7 @@ struct in6_addr { 
    196195 #define s6_addr16              in6_u.u6_addr16 
    197196 #define s6_addr32              in6_u.u6_addr32 
    198 -}; 
    199 +} __attribute__((packed, aligned(2))); 
    200   
    201  struct sockaddr_in6 { 
    202         unsigned short int      sin6_family;    /* AF_INET6 */ 
     197 #endif 
     198-}; 
     199+} __attribute__((packed, aligned(2))); 
     200 #endif /* __UAPI_DEF_IN6_ADDR */ 
     201  
     202 #if __UAPI_DEF_SOCKADDR_IN6 
    203203--- a/net/ipv6/af_inet6.c 
    204204+++ b/net/ipv6/af_inet6.c 
    205 @@ -60,6 +60,7 @@ 
     205@@ -62,6 +62,7 @@ 
    206206 #endif 
    207207  
     
    211211  
    212212 MODULE_AUTHOR("Cast of dozens"); 
    213 @@ -687,7 +688,7 @@ bool ipv6_opt_accepted(const struct sock 
     213@@ -679,11 +680,12 @@ bool ipv6_opt_accepted(const struct sock 
     214 { 
     215        const struct ipv6_pinfo *np = inet6_sk(sk); 
     216        const struct inet6_skb_parm *opt = IP6CB(skb); 
     217+       unsigned char *header = skb_network_header(skb); 
     218  
     219        if (np->rxopt.all) { 
    214220                if ((opt->hop && (np->rxopt.bits.hopopts || 
    215221                                  np->rxopt.bits.ohopopts)) || 
    216                     ((IPV6_FLOWINFO_MASK & 
    217 -                     *(__be32 *)skb_network_header(skb)) && 
    218 +                     net_hdr_word(skb_network_header(skb))) && 
     222-                   (ip6_flowinfo((struct ipv6hdr *) skb_network_header(skb)) && 
     223+                   (ip6_flowinfo((struct ipv6hdr *)net_hdr_word(header)) && 
    219224                     np->rxopt.bits.rxflow) || 
    220225                    (opt->srcrt && (np->rxopt.bits.srcrt || 
     
    222227--- a/net/ipv6/tcp_ipv6.c 
    223228+++ b/net/ipv6/tcp_ipv6.c 
    224 @@ -64,6 +64,7 @@ 
    225  #include <net/secure_seq.h> 
     229@@ -65,6 +65,7 @@ 
    226230 #include <net/tcp_memcontrol.h> 
     231 #include <net/busy_poll.h> 
    227232  
    228233+#include <asm/unaligned.h> 
     
    230235  
    231236 #include <linux/proc_fs.h> 
    232 @@ -763,10 +764,10 @@ static void tcp_v6_send_response(struct 
     237@@ -771,10 +772,10 @@ static void tcp_v6_send_response(struct  
    233238        topt = (__be32 *)(t1 + 1); 
    234239  
     
    247252--- a/include/linux/ipv6.h 
    248253+++ b/include/linux/ipv6.h 
    249 @@ -4,6 +4,7 @@ 
    250  #include <uapi/linux/ipv6.h> 
     254@@ -5,6 +5,7 @@ 
    251255  
    252256 #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3) 
     257 #define ipv6_authlen(p) (((p)->hdrlen+2) << 2) 
    253258+ 
    254259 /* 
     
    257262--- a/net/ipv6/datagram.c 
    258263+++ b/net/ipv6/datagram.c 
    259 @@ -365,7 +365,7 @@ int ipv6_recv_error(struct sock *sk, str 
     264@@ -373,7 +373,7 @@ int ipv6_recv_error(struct sock *sk, str 
    260265                                ipv6_iface_scope_id(&sin->sin6_addr, 
    261266                                                    IP6CB(skb)->iif); 
     
    266271                        sin->sin6_scope_id = 0; 
    267272                } 
    268 @@ -691,12 +691,12 @@ int ip6_datagram_send_ctl(struct net *ne 
     273@@ -722,12 +722,12 @@ int ip6_datagram_send_ctl(struct net *ne 
    269274                        } 
    270275  
     
    283288--- a/net/ipv6/ip6_gre.c 
    284289+++ b/net/ipv6/ip6_gre.c 
    285 @@ -391,7 +391,7 @@ static void ip6gre_err(struct sk_buff *s 
     290@@ -389,7 +389,7 @@ static void ip6gre_err(struct sk_buff *s 
    286291  
    287292        t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, 
     
    292297        if (t == NULL) 
    293298                return; 
    294 @@ -483,11 +483,11 @@ static int ip6gre_rcv(struct sk_buff *sk 
     299@@ -481,11 +481,11 @@ static int ip6gre_rcv(struct sk_buff *sk 
    295300                        offset += 4; 
    296301                } 
     
    322327+               fl6.flowlabel |= net_hdr_word(ipv6h) & IPV6_TCLASS_MASK; 
    323328        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FLOWLABEL) 
    324 -               fl6.flowlabel |= (*(__be32 *) ipv6h & IPV6_FLOWLABEL_MASK); 
    325 +               fl6.flowlabel |= net_hdr_word(ipv6h) & IPV6_FLOWLABEL_MASK; 
     329-               fl6.flowlabel |= ip6_flowlabel(ipv6h); 
     330+               fl6.flowlabel |= ip6_flowlabel((const struct ipv6hdr *)net_hdr_word(ipv6h)); 
    326331        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) 
    327332                fl6.flowi6_mark = skb->mark; 
     
    329334--- a/net/ipv6/ip6_tunnel.c 
    330335+++ b/net/ipv6/ip6_tunnel.c 
    331 @@ -1273,9 +1273,9 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str 
     336@@ -1288,9 +1288,9 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str 
    332337  
    333338        dsfield = ipv6_get_dsfield(ipv6h); 
     
    336341+               fl6.flowlabel |= net_hdr_word(ipv6h) & IPV6_TCLASS_MASK; 
    337342        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FLOWLABEL) 
    338 -               fl6.flowlabel |= (*(__be32 *) ipv6h & IPV6_FLOWLABEL_MASK); 
    339 +               fl6.flowlabel |= net_hdr_word(ipv6h) & IPV6_FLOWLABEL_MASK; 
     343-               fl6.flowlabel |= ip6_flowlabel(ipv6h); 
     344+               fl6.flowlabel |= ip6_flowlabel((const struct ipv6hdr *)net_hdr_word(ipv6h)); 
    340345        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) 
    341346                fl6.flowi6_mark = skb->mark; 
     
    368373--- a/net/ipv4/af_inet.c 
    369374+++ b/net/ipv4/af_inet.c 
    370 @@ -1381,8 +1381,8 @@ static struct sk_buff **inet_gro_receive 
     375@@ -1367,8 +1367,8 @@ static struct sk_buff **inet_gro_receive 
    371376        if (unlikely(ip_fast_csum((u8 *)iph, 5))) 
    372377                goto out_unlock; 
    373378  
    374379-       id = ntohl(*(__be32 *)&iph->id); 
    375 -       flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id ^ IP_DF)); 
     380-       flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); 
    376381+       id = ntohl(net_hdr_word(&iph->id)); 
    377 +       flush = (u16)((ntohl(net_hdr_word(iph)) ^ skb_gro_len(skb)) | (id ^ IP_DF)); 
     382+       flush = (u16)((ntohl(net_hdr_word(iph)) ^ skb_gro_len(skb)) | (id & ~IP_DF)); 
    378383        id >>= 16; 
    379384  
     
    381386--- a/net/ipv4/route.c 
    382387+++ b/net/ipv4/route.c 
    383 @@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look 
     388@@ -459,7 +459,7 @@ static struct neighbour *ipv4_neigh_look 
    384389        else if (skb) 
    385390                pkey = &ip_hdr(skb)->daddr; 
     
    392397--- a/net/ipv4/tcp_output.c 
    393398+++ b/net/ipv4/tcp_output.c 
    394 @@ -412,48 +412,53 @@ static void tcp_options_write(__be32 *pt 
     399@@ -422,48 +422,53 @@ static void tcp_options_write(__be32 *pt 
    395400        u16 options = opts->options;    /* mungable copy */ 
    396401  
     
    469474  
    470475        if (unlikely(opts->num_sack_blocks)) { 
    471 @@ -461,16 +466,17 @@ static void tcp_options_write(__be32 *pt 
     476@@ -471,16 +476,17 @@ static void tcp_options_write(__be32 *pt 
    472477                        tp->duplicate_sack : tp->selective_acks; 
    473478                int this_sack; 
     
    493498  
    494499                tp->rx_opt.dsack = 0; 
    495 @@ -479,9 +485,10 @@ static void tcp_options_write(__be32 *pt 
     500@@ -489,9 +495,10 @@ static void tcp_options_write(__be32 *pt 
    496501        if (unlikely(OPTION_FAST_OPEN_COOKIE & options)) { 
    497502                struct tcp_fastopen_cookie *foc = opts->fastopen_cookie; 
     
    509514--- a/net/ipv4/igmp.c 
    510515+++ b/net/ipv4/igmp.c 
    511 @@ -470,7 +470,7 @@ static struct sk_buff *add_grec(struct s 
     516@@ -496,7 +496,7 @@ static struct sk_buff *add_grec(struct s 
    512517                if (!skb) 
    513518                        return NULL; 
     
    558563--- a/net/core/flow_dissector.c 
    559564+++ b/net/core/flow_dissector.c 
    560 @@ -157,7 +157,7 @@ ipv6: 
    561                 ports = skb_header_pointer(skb, nhoff + poff, 
     565@@ -44,7 +44,7 @@ __be32 skb_flow_get_ports(const struct s 
     566                ports = skb_header_pointer(skb, thoff + poff, 
    562567                                           sizeof(_ports), &_ports); 
    563568                if (ports) 
    564 -                       flow->ports = *ports; 
    565 +                       flow->ports = net_hdr_word(ports); 
    566         } 
    567   
    568         flow->thoff = (u16) nhoff; 
     569-                       return *ports; 
     570+                       return (__be32)net_hdr_word(ports); 
     571        } 
     572  
     573        return 0; 
    569574--- a/include/uapi/linux/icmpv6.h 
    570575+++ b/include/uapi/linux/icmpv6.h 
     
    619624--- a/net/sched/cls_u32.c 
    620625+++ b/net/sched/cls_u32.c 
    621 @@ -142,7 +142,7 @@ next_knode: 
     626@@ -137,7 +137,7 @@ next_knode: 
    622627                        data = skb_header_pointer(skb, toff, 4, &hdata); 
    623628                        if (!data) 
     
    628633                                goto next_knode; 
    629634                        } 
    630 @@ -193,8 +193,8 @@ check_terminal: 
     635@@ -188,8 +188,8 @@ check_terminal: 
    631636                                                  &hdata); 
    632637                        if (!data) 
     
    641646--- a/net/ipv6/ip6_offload.c 
    642647+++ b/net/ipv6/ip6_offload.c 
    643 @@ -199,7 +199,7 @@ static struct sk_buff **ipv6_gro_receive 
     648@@ -242,7 +242,7 @@ static struct sk_buff **ipv6_gro_receive 
    644649                        continue; 
    645650  
    646                 iph2 = ipv6_hdr(p); 
     651                iph2 = (struct ipv6hdr *)(p->data + off); 
    647652-               first_word = *(__be32 *)iph ^ *(__be32 *)iph2 ; 
    648653+               first_word = net_hdr_word(iph) ^ net_hdr_word(iph2); 
    649654  
    650                 /* All fields must match except length and Traffic Class. */ 
    651                 if (nlen != skb_network_header_len(p) || 
     655                /* All fields must match except length and Traffic Class. 
     656                 * XXX skbs on the gro_list have all been parsed and pulled 
    652657--- a/include/net/addrconf.h 
    653658+++ b/include/net/addrconf.h 
     
    663668--- a/include/net/inet_ecn.h 
    664669+++ b/include/net/inet_ecn.h 
    665 @@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct 
     670@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct  
    666671 { 
    667672        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) 
     
    681686--- a/include/net/ipv6.h 
    682687+++ b/include/net/ipv6.h 
    683 @@ -107,7 +107,7 @@ struct frag_hdr { 
     688@@ -108,7 +108,7 @@ struct frag_hdr { 
    684689        __u8    reserved; 
    685690        __be16  frag_off; 
     
    688693+} __attribute__((packed, aligned(2))); 
    689694  
    690  #define        IP6_MF  0x0001 
    691   
    692 @@ -386,8 +386,8 @@ static inline void __ipv6_addr_set_half( 
     695 #define        IP6_MF          0x0001 
     696 #define        IP6_OFFSET      0xFFF8 
     697@@ -397,8 +397,8 @@ static inline void __ipv6_addr_set_half( 
    693698        } 
    694699 #endif 
     
    701706  
    702707 static inline void ipv6_addr_set(struct in6_addr *addr,  
    703 @@ -446,6 +446,8 @@ static inline bool ipv6_prefix_equal(con 
     708@@ -457,6 +457,8 @@ static inline bool ipv6_prefix_equal(con 
    704709        const __be32 *a1 = addr1->s6_addr32; 
    705710        const __be32 *a2 = addr2->s6_addr32; 
     
    710715        /* check complete u32 in prefix */ 
    711716        pdw = prefixlen >> 5; 
    712 @@ -454,7 +456,9 @@ static inline bool ipv6_prefix_equal(con 
     717@@ -465,7 +467,9 @@ static inline bool ipv6_prefix_equal(con 
    713718  
    714719        /* check incomplete u32 in prefix */ 
     
    721726  
    722727        return true; 
    723 @@ -587,13 +591,13 @@ static inline void ipv6_addr_set_v4mappe 
     728@@ -598,13 +602,13 @@ static inline void ipv6_addr_set_v4mappe 
    724729  */ 
    725730 static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) 
     
    737742                        return i * 32 + 31 - __fls(ntohl(xb)); 
    738743        } 
    739 @@ -657,12 +661,13 @@ extern void ipv6_select_ident(struct fra 
     744@@ -670,12 +674,13 @@ int ip6_dst_hoplimit(struct dst_entry *d 
    740745 static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, 
    741746                                __be32 flowlabel) 
     
    752757 } 
    753758  
    754  /* 
     759 static inline __be32 ip6_flowlabel(const struct ipv6hdr *hdr) 
    755760--- a/include/net/secure_seq.h 
    756761+++ b/include/net/secure_seq.h 
     
    761766+#include <linux/in6.h> 
    762767  
    763  extern __u32 secure_ip_id(__be32 daddr); 
    764  extern __u32 secure_ipv6_id(const __be32 daddr[4]); 
     768 __u32 secure_ip_id(__be32 daddr); 
     769 __u32 secure_ipv6_id(const __be32 daddr[4]); 
    765770--- a/include/uapi/linux/in.h 
    766771+++ b/include/uapi/linux/in.h 
    767 @@ -55,7 +55,7 @@ enum { 
     772@@ -78,7 +78,7 @@ enum { 
    768773 /* Internet address. */ 
    769774 struct in_addr { 
     
    776781--- a/net/core/secure_seq.c 
    777782+++ b/net/core/secure_seq.c 
    778 @@ -56,11 +56,12 @@ __u32 secure_tcpv6_sequence_number(const 
     783@@ -46,11 +46,12 @@ __u32 secure_tcpv6_sequence_number(const 
    779784        u32 secret[MD5_MESSAGE_BYTES / 4]; 
    780785        u32 hash[MD5_DIGEST_WORDS]; 
     
    790795                (((__force u16)sport << 16) + (__force u16)dport); 
    791796        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) 
    792 @@ -78,11 +79,12 @@ u32 secure_ipv6_port_ephemeral(const __b 
     797@@ -68,11 +69,12 @@ u32 secure_ipv6_port_ephemeral(const __b 
    793798        u32 secret[MD5_MESSAGE_BYTES / 4]; 
    794799        u32 hash[MD5_DIGEST_WORDS]; 
     
    804809        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) 
    805810                secret[i] = net_secret[i]; 
    806 @@ -185,11 +187,12 @@ u64 secure_dccpv6_sequence_number(__be32 
     811@@ -175,11 +177,12 @@ u64 secure_dccpv6_sequence_number(__be32 
    807812        u32 hash[MD5_DIGEST_WORDS]; 
    808813        u64 seq; 
     
    831836--- a/net/netfilter/nf_conntrack_proto_tcp.c 
    832837+++ b/net/netfilter/nf_conntrack_proto_tcp.c 
    833 @@ -454,7 +454,7 @@ static void tcp_sack(const struct sk_buf 
     838@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf 
    834839  
    835840        /* Fast path for timestamp-only option */ 
     
    856861--- a/net/xfrm/xfrm_input.c 
    857862+++ b/net/xfrm/xfrm_input.c 
    858 @@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb, 
     863@@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb,  
    859864        if (!pskb_may_pull(skb, hlen)) 
    860865                return -EINVAL; 
    861866  
    862 -       *spi = *(__be32*)(skb_transport_header(skb) + offset); 
    863 -       *seq = *(__be32*)(skb_transport_header(skb) + offset_seq); 
     867-       *spi = *(__be32 *)(skb_transport_header(skb) + offset); 
     868-       *seq = *(__be32 *)(skb_transport_header(skb) + offset_seq); 
    864869+       *spi = net_hdr_word(skb_transport_header(skb) + offset); 
    865870+       *seq = net_hdr_word(skb_transport_header(skb) + offset_seq); 
     
    867872 } 
    868873  
    869 --- a/net/ipv4/ip_gre.c 
    870 +++ b/net/ipv4/ip_gre.c 
    871 @@ -190,13 +190,13 @@ static int parse_gre_header(struct sk_bu 
    872         } 
    873   
    874         if (greh->flags & GRE_KEY) { 
    875 -               tpi->key = *options; 
    876 +               tpi->key = net_hdr_word(options); 
    877                 options++; 
    878         } else 
    879                 tpi->key = 0; 
    880   
    881         if (unlikely(greh->flags & GRE_SEQ)) { 
    882 -               tpi->seq = *options; 
    883 +               tpi->seq = net_hdr_word(options); 
    884                 options++; 
    885         } else 
    886                 tpi->seq = 0; 
    887874--- a/net/ipv4/tcp_input.c 
    888875+++ b/net/ipv4/tcp_input.c 
    889 @@ -3624,14 +3624,16 @@ static bool tcp_parse_aligned_timestamp( 
     876@@ -3631,14 +3631,16 @@ static bool tcp_parse_aligned_timestamp( 
    890877 { 
    891878        const __be32 *ptr = (const __be32 *)(th + 1); 
     
    914901  */ 
    915902 struct pptp_addr { 
    916         __be16          call_id; 
     903        __u16           call_id; 
    917904+       __u16           pad; 
    918905        struct in_addr  sin_addr; 
Note: See TracChangeset for help on using the changeset viewer.