Changeset 47831


Ignore:
Timestamp:
2015-12-10T20:06:32+01:00 (2 years ago)
Author:
blogic
Message:

ralink: bump to the target to v4.3

Signed-off-by: John Crispin <blogic@…>

Location:
trunk/target/linux
Files:
17 added
1 deleted
5 edited
43 copied
7 moved

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/patches-4.3/142-mtd-spi-nor-include-mtd.h-header-for-struct-mtd_info.patch

    r47665 r47831  
    1818 1 file changed, 1 insertion(+), 2 deletions(-) 
    1919 
    20 diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h 
    21 index 7bed974..fac3f6f 100644 
    2220--- a/include/linux/mtd/spi-nor.h 
    2321+++ b/include/linux/mtd/spi-nor.h 
  • trunk/target/linux/ramips/Makefile

    r47619 r47831  
    1111BOARDNAME:=Ralink RT288x/RT3xxx 
    1212SUBTARGETS:=rt305x mt7620 mt7621 mt7628 mt7688 rt3883 rt288x 
    13 FEATURES:=squashfs gpio ubifs 
     13FEATURES:=squashfs gpio 
    1414MAINTAINER:=John Crispin <blogic@openwrt.org> 
    1515 
    16 KERNEL_PATCHVER:=3.18 
     16KERNEL_PATCHVER:=4.3 
    1717 
    1818include $(INCLUDE_DIR)/target.mk 
  • trunk/target/linux/ramips/dts/mt7621.dtsi

    r47119 r47831  
    7878 
    7979                        interrupt-parent = <&gic>; 
    80                         interrupts = <26>; 
     80                        interrupts = <0 26 4>; 
    8181 
    8282                        reg-shift = <2>; 
     
    211211 
    212212                interrupt-parent = <&gic>; 
    213                 interrupts = <20>; 
     213                interrupts = <0 20 4>; 
    214214        }; 
    215215 
    216216        xhci@1E1C0000 { 
    217                 status = "disabled"; 
     217                status = "okay"; 
    218218 
    219219                compatible = "xhci-platform"; 
     
    221221 
    222222                interrupt-parent = <&gic>; 
    223                 interrupts = <22>; 
    224         }; 
    225  
    226         gic: gic@1fbc0000 { 
    227                 #address-cells = <0>; 
    228                 #interrupt-cells = <1>; 
     223                interrupts = <0 22 4>; 
     224        }; 
     225 
     226        gic: interrupt-controller@1fbc0000 { 
     227                compatible = "mti,gic"; 
     228                reg = <0x1fbc0000 0x80>; 
     229 
    229230                interrupt-controller; 
    230                 compatible = "ralink,mt7621-gic"; 
    231                 reg = < 0x1fbc0000 0x80 /* gic */ 
    232                         0x1fbf0000 0x8000 /* cpc */ 
    233                         0x1fbf8000 0x8000 /* gpmc */ 
    234                 >; 
     231                #interrupt-cells = <3>; 
     232 
     233                mti,reserved-cpu-vectors = <7>; 
    235234        }; 
    236235 
     
    275274 
    276275                interrupt-parent = <&gic>; 
    277                 interrupts = <3>; 
     276                interrupts = <0 3 4>; 
    278277 
    279278                mdio-bus { 
     
    292291                reg = <0x1e110000 8000>; 
    293292                interrupt-parent = <&gic>; 
    294                 interrupts = <23>; 
     293                interrupts = <0 23 4>; 
    295294        }; 
    296295 
     
    314313                >; 
    315314 
     315                interrupt-parent = <&gic>; 
     316                interrupts = <0 4 4 
     317                                0 24 4 
     318                                0 25 4>; 
     319 
    316320                status = "okay"; 
    317321 
  • trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3052.c

    r44044 r47831  
    612612                /* select local register */ 
    613613                rt305x_mii_write(esw, 0, 31, 0x8000); 
    614         } else if (ralink_soc == MT762X_SOC_MT7628AN) { 
     614        } else if (ralink_soc == MT762X_SOC_MT7628AN || ralink_soc == MT762X_SOC_MT7688) { 
    615615                int i; 
    616616//              u32 phy_val; 
     
    10431043        u32 reg; 
    10441044 
    1045         if ((ralink_soc != RT305X_SOC_RT5350) && (ralink_soc != MT762X_SOC_MT7628AN)) 
     1045+       if ((ralink_soc != RT305X_SOC_RT5350) && (ralink_soc != MT762X_SOC_MT7628AN) && (ralink_soc != MT762X_SOC_MT7688)) 
    10461046                return -EINVAL; 
    10471047 
  • trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c

    r47306 r47831  
    576576 
    577577        /* VLAN header offload */ 
    578         if (vlan_tx_tag_present(skb)) { 
     578        if (skb_vlan_tag_present(skb)) { 
     579                u16 tag = skb_vlan_tag_get(skb); 
     580 
    579581                if (IS_ENABLED(CONFIG_SOC_MT7621)) 
    580                         txd.txd4 |= TX_DMA_INS_VLAN_MT7621 | vlan_tx_tag_get(skb); 
     582                        txd.txd4 |= TX_DMA_INS_VLAN_MT7621 | tag; 
    581583                else 
    582584                        txd.txd4 |= TX_DMA_INS_VLAN | 
    583                                 ((vlan_tx_tag_get(skb) >> VLAN_PRIO_SHIFT) << 4) | 
    584                                 (vlan_tx_tag_get(skb) & 0xF); 
     585                                ((tag >> VLAN_PRIO_SHIFT) << 4) | 
     586                                (tag & 0xF); 
    585587        } 
    586588 
     
    712714                                !(priv->flags & FE_FLAG_PADDING_BUG)) 
    713715                        return ret; 
    714  
    715                 if (vlan_tx_tag_present(skb)) 
     716                if (skb_vlan_tag_present(skb)) 
    716717                        len = ETH_ZLEN; 
    717718                else if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) 
     
    10001001                napi_complete(napi); 
    10011002                fe_int_enable(tx_intr | rx_intr); 
     1003        } else { 
     1004                        rx_done = budget; 
    10021005        } 
    10031006 
  • trunk/target/linux/ramips/mt7620/config-4.3

    r47830 r47831  
    1 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
     1CONFIG_ARCH_BINFMT_ELF_STATE=y 
    22CONFIG_ARCH_DISCARD_MEMBLOCK=y 
    33CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y 
     4CONFIG_ARCH_HAS_ELF_RANDOMIZE=y 
     5# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set 
    46CONFIG_ARCH_HAS_RESET_CONTROLLER=y 
    57# CONFIG_ARCH_HAS_SG_CHAIN is not set 
    6 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y 
    78CONFIG_ARCH_HIBERNATION_POSSIBLE=y 
    89CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 
    910CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y 
    1011CONFIG_ARCH_REQUIRE_GPIOLIB=y 
     12CONFIG_ARCH_SUPPORTS_UPROBES=y 
    1113CONFIG_ARCH_SUSPEND_POSSIBLE=y 
    1214CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 
    1315CONFIG_AT803X_PHY=y 
    14 CONFIG_ICPLUS_PHY=y 
    1516CONFIG_CC_OPTIMIZE_FOR_SIZE=y 
    1617CONFIG_CEVT_R4K=y 
     18CONFIG_CEVT_SYSTICK_QUIRK=y 
    1719CONFIG_CLKDEV_LOOKUP=y 
    1820CONFIG_CLKEVT_RT3352=y 
     
    3739CONFIG_CPU_SUPPORTS_HIGHMEM=y 
    3840CONFIG_CPU_SUPPORTS_MSA=y 
     41CONFIG_CRYPTO_RNG2=y 
     42CONFIG_CRYPTO_WORKQUEUE=y 
    3943CONFIG_CSRC_R4K=y 
    4044CONFIG_DEBUG_PINCTRL=y 
    4145CONFIG_DMA_NONCOHERENT=y 
    4246# CONFIG_DTB_MT7620A_EVAL is not set 
    43 # CONFIG_DTB_MT7628AN_EVAL is not set 
    4447CONFIG_DTB_RT_NONE=y 
    4548CONFIG_DTC=y 
     
    4750CONFIG_GENERIC_ATOMIC64=y 
    4851CONFIG_GENERIC_CLOCKEVENTS=y 
    49 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    5052CONFIG_GENERIC_CMOS_UPDATE=y 
    5153CONFIG_GENERIC_IO=y 
     54CONFIG_GENERIC_IRQ_CHIP=y 
    5255CONFIG_GENERIC_IRQ_SHOW=y 
    5356CONFIG_GENERIC_PCI_IOMAP=y 
    5457CONFIG_GENERIC_PHY=y 
     58CONFIG_GENERIC_SCHED_CLOCK=y 
    5559CONFIG_GENERIC_SMP_IDLE_THREAD=y 
    5660CONFIG_GPIOLIB=y 
     
    6468CONFIG_HAS_IOPORT_MAP=y 
    6569# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 
     70# CONFIG_HAVE_ARCH_BITREVERSE is not set 
    6671CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    6772CONFIG_HAVE_ARCH_KGDB=y 
     
    8590CONFIG_HAVE_GENERIC_DMA_COHERENT=y 
    8691CONFIG_HAVE_IDE=y 
     92CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 
    8793CONFIG_HAVE_KVM=y 
    8894CONFIG_HAVE_MACH_CLKDEV=y 
     
    94100CONFIG_HAVE_PERF_EVENTS=y 
    95101CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 
     102CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 
    96103CONFIG_HW_HAS_PCI=y 
    97104CONFIG_HZ_PERIODIC=y 
     105CONFIG_ICPLUS_PHY=y 
    98106CONFIG_INITRAMFS_SOURCE="" 
    99107CONFIG_IRQCHIP=y 
    100 CONFIG_IRQ_CPU=y 
    101108CONFIG_IRQ_DOMAIN=y 
    102109CONFIG_IRQ_FORCED_THREADING=y 
    103 CONFIG_IRQ_INTC=y 
     110CONFIG_IRQ_MIPS_CPU=y 
    104111CONFIG_IRQ_WORK=y 
    105112CONFIG_LIBFDT=y 
     113# CONFIG_MACH_INGENIC is not set 
     114# CONFIG_MACH_LOONGSON32 is not set 
     115# CONFIG_MACH_LOONGSON64 is not set 
    106116CONFIG_MDIO_BOARDINFO=y 
    107117CONFIG_MIPS=y 
     
    109119CONFIG_MIPS_L1_CACHE_SHIFT=5 
    110120# CONFIG_MIPS_MACHINE is not set 
     121CONFIG_MIPS_NO_APPENDED_DTB=y 
     122# CONFIG_MIPS_RAW_APPENDED_DTB is not set 
     123CONFIG_MIPS_SPRAM=y 
    111124CONFIG_MODULES_USE_ELF_REL=y 
    112125# CONFIG_MT7621_WDT is not set 
     
    145158CONFIG_PCI_DOMAINS=y 
    146159CONFIG_PERF_USE_VMALLOC=y 
     160CONFIG_PGTABLE_LEVELS=2 
    147161CONFIG_PHYLIB=y 
    148162CONFIG_PHY_RALINK_USB=y 
     
    150164CONFIG_PINCTRL_RT2880=y 
    151165# CONFIG_PINCTRL_SINGLE is not set 
    152 # CONFIG_PREEMPT_RCU is not set 
    153166CONFIG_RALINK=y 
    154 # CONFIG_RALINK_ILL_ACC is not set 
    155 CONFIG_RALINK_USBPHY=y 
    156167CONFIG_RALINK_WDT=y 
    157168# CONFIG_RCU_STALL_COMMON is not set 
    158169CONFIG_RESET_CONTROLLER=y 
     170CONFIG_SCHED_HRTICK=y 
     171# CONFIG_SCHED_INFO is not set 
    159172# CONFIG_SCSI_DMA is not set 
    160173CONFIG_SERIAL_8250_NR_UARTS=4 
    161174CONFIG_SERIAL_8250_RT288X=y 
    162175CONFIG_SERIAL_OF_PLATFORM=y 
     176# CONFIG_SG_SPLIT is not set 
    163177# CONFIG_SLAB is not set 
    164178CONFIG_SLUB=y 
    165179CONFIG_SOC_MT7620=y 
    166 # CONFIG_SOC_MT7621 is not set 
    167180# CONFIG_SOC_RT288X is not set 
    168181# CONFIG_SOC_RT305X is not set 
    169182# CONFIG_SOC_RT3883 is not set 
    170 CONFIG_SND_MT76XX_SOC_MT7620=y 
    171 # CONFIG_SND_MT76XX_SOC_MT7628 is not set 
    172183CONFIG_SPI=y 
    173184CONFIG_SPI_MASTER=y 
    174185# CONFIG_SPI_MT7621 is not set 
    175186CONFIG_SPI_RT2880=y 
     187CONFIG_SRCU=y 
     188# CONFIG_SUNXI_SRAM is not set 
    176189CONFIG_SWCONFIG=y 
     190CONFIG_SYSCTL_EXCEPTION_TRACE=y 
    177191CONFIG_SYS_HAS_CPU_MIPS32_R1=y 
    178192CONFIG_SYS_HAS_CPU_MIPS32_R2=y 
     
    183197CONFIG_SYS_SUPPORTS_MIPS16=y 
    184198CONFIG_TICK_CPU_ACCOUNTING=y 
    185 CONFIG_USB_PHY=y 
    186199CONFIG_USB_SUPPORT=y 
    187200CONFIG_USE_OF=y 
  • trunk/target/linux/ramips/mt7621/config-4.3

    r47830 r47831  
    1 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
     1CONFIG_ARCH_BINFMT_ELF_STATE=y 
    22CONFIG_ARCH_DISCARD_MEMBLOCK=y 
    33CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y 
     4CONFIG_ARCH_HAS_ELF_RANDOMIZE=y 
     5# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set 
    46CONFIG_ARCH_HAS_RESET_CONTROLLER=y 
    57# CONFIG_ARCH_HAS_SG_CHAIN is not set 
    6 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y 
    78CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 
    89CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y 
    910CONFIG_ARCH_REQUIRE_GPIOLIB=y 
     11CONFIG_ARCH_SUPPORTS_UPROBES=y 
    1012CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 
    1113CONFIG_BOARD_SCACHE=y 
    12 CONFIG_BOUNCE=y 
    1314CONFIG_CC_OPTIMIZE_FOR_SIZE=y 
    14 # CONFIG_CEVT_GIC is not set 
    1515CONFIG_CEVT_R4K=y 
    1616# CONFIG_CEVT_SYSTICK_QUIRK is not set 
     
    5151CONFIG_GENERIC_ATOMIC64=y 
    5252CONFIG_GENERIC_CLOCKEVENTS=y 
    53 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    5453CONFIG_GENERIC_CMOS_UPDATE=y 
    5554CONFIG_GENERIC_IO=y 
     55CONFIG_GENERIC_IRQ_CHIP=y 
    5656CONFIG_GENERIC_IRQ_SHOW=y 
    5757CONFIG_GENERIC_PCI_IOMAP=y 
     58CONFIG_GENERIC_SCHED_CLOCK=y 
    5859CONFIG_GENERIC_SMP_IDLE_THREAD=y 
    5960CONFIG_GPIOLIB=y 
     
    6768CONFIG_HAS_IOPORT_MAP=y 
    6869# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 
     70# CONFIG_HAVE_ARCH_BITREVERSE is not set 
    6971CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    7072CONFIG_HAVE_ARCH_KGDB=y 
     
    8890CONFIG_HAVE_GENERIC_DMA_COHERENT=y 
    8991CONFIG_HAVE_IDE=y 
     92CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 
    9093CONFIG_HAVE_KVM=y 
    9194CONFIG_HAVE_MACH_CLKDEV=y 
     
    97100CONFIG_HAVE_PERF_EVENTS=y 
    98101CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 
    99 CONFIG_HIGHMEM=y 
     102CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 
    100103CONFIG_HW_HAS_PCI=y 
    101104CONFIG_HZ_PERIODIC=y 
    102105CONFIG_INITRAMFS_SOURCE="" 
    103106CONFIG_IRQCHIP=y 
    104 CONFIG_IRQ_CPU=y 
    105107CONFIG_IRQ_DOMAIN=y 
    106108CONFIG_IRQ_FORCED_THREADING=y 
    107 CONFIG_IRQ_GIC=y 
     109CONFIG_IRQ_MIPS_CPU=y 
    108110CONFIG_IRQ_WORK=y 
    109111CONFIG_LIBFDT=y 
    110112CONFIG_LZO_COMPRESS=y 
    111113CONFIG_LZO_DECOMPRESS=y 
     114# CONFIG_MACH_INGENIC is not set 
     115# CONFIG_MACH_LOONGSON32 is not set 
     116# CONFIG_MACH_LOONGSON64 is not set 
    112117CONFIG_MDIO_BOARDINFO=y 
    113118CONFIG_MIPS=y 
     
    115120CONFIG_MIPS_CMP=y 
    116121CONFIG_MIPS_CPU_SCACHE=y 
     122CONFIG_MIPS_GIC=y 
    117123CONFIG_MIPS_GIC_IPI=y 
    118124# CONFIG_MIPS_HUGE_TLB_SUPPORT is not set 
    119 CONFIG_MIPS_L1_CACHE_SHIFT=6 
    120 CONFIG_MIPS_L1_CACHE_SHIFT_6=y 
     125CONFIG_MIPS_L1_CACHE_SHIFT=5 
    121126# CONFIG_MIPS_MACHINE is not set 
    122127CONFIG_MIPS_MT=y 
    123128CONFIG_MIPS_MT_FPAFF=y 
    124129CONFIG_MIPS_MT_SMP=y 
     130CONFIG_MIPS_NO_APPENDED_DTB=y 
    125131CONFIG_MIPS_PERF_SHARED_TC_COUNTERS=y 
     132# CONFIG_MIPS_RAW_APPENDED_DTB is not set 
     133CONFIG_MIPS_SPRAM=y 
    126134# CONFIG_MIPS_VPE_LOADER is not set 
    127 CONFIG_MTK_MTD_NAND=y 
    128135CONFIG_MODULES_USE_ELF_REL=y 
    129136CONFIG_MT7621_WDT=y 
     
    172179CONFIG_PCI_DOMAINS=y 
    173180CONFIG_PERF_USE_VMALLOC=y 
     181CONFIG_PGTABLE_LEVELS=2 
    174182CONFIG_PHYLIB=y 
    175183# CONFIG_PHY_RALINK_USB is not set 
     
    179187CONFIG_POWER_RESET=y 
    180188CONFIG_POWER_RESET_GPIO=y 
    181 # CONFIG_POWER_RESET_GPIO_RESTART is not set 
    182 # CONFIG_POWER_RESET_LTC2952 is not set 
    183 # CONFIG_POWER_RESET_SYSCON is not set 
    184189CONFIG_POWER_SUPPLY=y 
    185 # CONFIG_PREEMPT_RCU is not set 
    186190CONFIG_RALINK=y 
    187191# CONFIG_RALINK_WDT is not set 
     
    191195CONFIG_RPS=y 
    192196CONFIG_RTC_CLASS=y 
     197CONFIG_SCHED_HRTICK=y 
     198# CONFIG_SCHED_INFO is not set 
    193199CONFIG_SCHED_SMT=y 
    194200# CONFIG_SCSI_DMA is not set 
    195201CONFIG_SERIAL_8250_NR_UARTS=4 
    196202CONFIG_SERIAL_OF_PLATFORM=y 
     203# CONFIG_SG_SPLIT is not set 
    197204# CONFIG_SLAB is not set 
    198205CONFIG_SLUB=y 
     
    209216CONFIG_SPI_MT7621=y 
    210217# CONFIG_SPI_RT2880 is not set 
     218CONFIG_SRCU=y 
    211219CONFIG_STOP_MACHINE=y 
     220# CONFIG_SUNXI_SRAM is not set 
    212221CONFIG_SWCONFIG=y 
    213222CONFIG_SYNC_R4K=y 
     223CONFIG_SYSCTL_EXCEPTION_TRACE=y 
    214224CONFIG_SYS_HAS_CPU_MIPS32_R1=y 
    215225CONFIG_SYS_HAS_CPU_MIPS32_R2=y 
     
    217227CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 
    218228CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 
    219 CONFIG_SYS_SUPPORTS_HIGHMEM=y 
    220229CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 
    221230CONFIG_SYS_SUPPORTS_MIPS16=y 
  • trunk/target/linux/ramips/mt7628/config-4.3

    r47830 r47831  
    1 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
     1CONFIG_ARCH_BINFMT_ELF_STATE=y 
    22CONFIG_ARCH_DISCARD_MEMBLOCK=y 
    33CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y 
     4CONFIG_ARCH_HAS_ELF_RANDOMIZE=y 
     5# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set 
    46CONFIG_ARCH_HAS_RESET_CONTROLLER=y 
    57# CONFIG_ARCH_HAS_SG_CHAIN is not set 
    6 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y 
    78CONFIG_ARCH_HIBERNATION_POSSIBLE=y 
    89CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 
    910CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y 
    1011CONFIG_ARCH_REQUIRE_GPIOLIB=y 
     12CONFIG_ARCH_SUPPORTS_UPROBES=y 
    1113CONFIG_ARCH_SUSPEND_POSSIBLE=y 
    1214CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 
     
    1416CONFIG_CC_OPTIMIZE_FOR_SIZE=y 
    1517CONFIG_CEVT_R4K=y 
     18CONFIG_CEVT_SYSTICK_QUIRK=y 
    1619CONFIG_CLKDEV_LOOKUP=y 
    1720CONFIG_CLKEVT_RT3352=y 
     
    3639CONFIG_CPU_SUPPORTS_HIGHMEM=y 
    3740CONFIG_CPU_SUPPORTS_MSA=y 
     41CONFIG_CRYPTO_RNG2=y 
     42CONFIG_CRYPTO_WORKQUEUE=y 
    3843CONFIG_CSRC_R4K=y 
    3944CONFIG_DEBUG_PINCTRL=y 
     
    4550CONFIG_GENERIC_ATOMIC64=y 
    4651CONFIG_GENERIC_CLOCKEVENTS=y 
    47 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    4852CONFIG_GENERIC_CMOS_UPDATE=y 
    4953CONFIG_GENERIC_IO=y 
     54CONFIG_GENERIC_IRQ_CHIP=y 
    5055CONFIG_GENERIC_IRQ_SHOW=y 
    5156CONFIG_GENERIC_PCI_IOMAP=y 
    5257CONFIG_GENERIC_PHY=y 
     58CONFIG_GENERIC_SCHED_CLOCK=y 
    5359CONFIG_GENERIC_SMP_IDLE_THREAD=y 
    5460CONFIG_GPIOLIB=y 
     
    6268CONFIG_HAS_IOPORT_MAP=y 
    6369# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 
     70# CONFIG_HAVE_ARCH_BITREVERSE is not set 
    6471CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    6572CONFIG_HAVE_ARCH_KGDB=y 
     
    8390CONFIG_HAVE_GENERIC_DMA_COHERENT=y 
    8491CONFIG_HAVE_IDE=y 
     92CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 
    8593CONFIG_HAVE_KVM=y 
    8694CONFIG_HAVE_MACH_CLKDEV=y 
     
    92100CONFIG_HAVE_PERF_EVENTS=y 
    93101CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 
     102CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 
    94103CONFIG_HW_HAS_PCI=y 
    95104CONFIG_HZ_PERIODIC=y 
     
    97106CONFIG_INITRAMFS_SOURCE="" 
    98107CONFIG_IRQCHIP=y 
    99 CONFIG_IRQ_CPU=y 
    100108CONFIG_IRQ_DOMAIN=y 
    101109CONFIG_IRQ_FORCED_THREADING=y 
    102 CONFIG_IRQ_INTC=y 
     110CONFIG_IRQ_MIPS_CPU=y 
    103111CONFIG_IRQ_WORK=y 
    104112CONFIG_LIBFDT=y 
     113# CONFIG_MACH_INGENIC is not set 
     114# CONFIG_MACH_LOONGSON32 is not set 
     115# CONFIG_MACH_LOONGSON64 is not set 
    105116CONFIG_MDIO_BOARDINFO=y 
    106117CONFIG_MIPS=y 
     
    108119CONFIG_MIPS_L1_CACHE_SHIFT=5 
    109120# CONFIG_MIPS_MACHINE is not set 
     121CONFIG_MIPS_NO_APPENDED_DTB=y 
     122# CONFIG_MIPS_RAW_APPENDED_DTB is not set 
     123CONFIG_MIPS_SPRAM=y 
    110124CONFIG_MODULES_USE_ELF_REL=y 
    111125CONFIG_MT7621_WDT=y 
     
    142156CONFIG_PCI_DOMAINS=y 
    143157CONFIG_PERF_USE_VMALLOC=y 
     158CONFIG_PGTABLE_LEVELS=2 
    144159CONFIG_PHYLIB=y 
    145160CONFIG_PHY_RALINK_USB=y 
     
    147162CONFIG_PINCTRL_RT2880=y 
    148163# CONFIG_PINCTRL_SINGLE is not set 
    149 # CONFIG_PREEMPT_RCU is not set 
    150164CONFIG_RALINK=y 
    151 # CONFIG_RALINK_ILL_ACC is not set 
    152 CONFIG_RALINK_USBPHY=y 
    153165# CONFIG_RALINK_WDT is not set 
    154166# CONFIG_RCU_STALL_COMMON is not set 
    155167CONFIG_RESET_CONTROLLER=y 
     168CONFIG_SCHED_HRTICK=y 
     169# CONFIG_SCHED_INFO is not set 
    156170# CONFIG_SCSI_DMA is not set 
    157171CONFIG_SERIAL_8250_NR_UARTS=4 
    158172CONFIG_SERIAL_8250_RT288X=y 
    159173CONFIG_SERIAL_OF_PLATFORM=y 
     174# CONFIG_SG_SPLIT is not set 
    160175# CONFIG_SLAB is not set 
    161176CONFIG_SLUB=y 
    162177CONFIG_SOC_MT7620=y 
    163 # CONFIG_SOC_MT7621 is not set 
    164178# CONFIG_SOC_RT288X is not set 
    165179# CONFIG_SOC_RT305X is not set 
    166180# CONFIG_SOC_RT3883 is not set 
    167 # CONFIG_SND_MT76XX_SOC_MT7620 is not set 
    168 CONFIG_SND_MT76XX_SOC_MT7628=y 
    169181CONFIG_SPI=y 
    170182CONFIG_SPI_MASTER=y 
    171183CONFIG_SPI_MT7621=y 
    172184# CONFIG_SPI_RT2880 is not set 
     185CONFIG_SRCU=y 
     186# CONFIG_SUNXI_SRAM is not set 
    173187CONFIG_SWCONFIG=y 
     188CONFIG_SYSCTL_EXCEPTION_TRACE=y 
    174189CONFIG_SYS_HAS_CPU_MIPS32_R1=y 
    175190CONFIG_SYS_HAS_CPU_MIPS32_R2=y 
     
    180195CONFIG_SYS_SUPPORTS_MIPS16=y 
    181196CONFIG_TICK_CPU_ACCOUNTING=y 
    182 CONFIG_USB_PHY=y 
    183197CONFIG_USB_SUPPORT=y 
    184198CONFIG_USE_OF=y 
  • trunk/target/linux/ramips/mt7688/config-4.3

    r47830 r47831  
    1 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
     1CONFIG_ARCH_BINFMT_ELF_STATE=y 
    22CONFIG_ARCH_DISCARD_MEMBLOCK=y 
    33CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y 
     4CONFIG_ARCH_HAS_ELF_RANDOMIZE=y 
     5# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set 
    46CONFIG_ARCH_HAS_RESET_CONTROLLER=y 
    57# CONFIG_ARCH_HAS_SG_CHAIN is not set 
    6 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y 
    78CONFIG_ARCH_HIBERNATION_POSSIBLE=y 
    89CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 
    910CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y 
    1011CONFIG_ARCH_REQUIRE_GPIOLIB=y 
     12CONFIG_ARCH_SUPPORTS_UPROBES=y 
    1113CONFIG_ARCH_SUSPEND_POSSIBLE=y 
    1214CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 
     
    3739CONFIG_CPU_SUPPORTS_HIGHMEM=y 
    3840CONFIG_CPU_SUPPORTS_MSA=y 
     41CONFIG_CRYPTO_RNG2=y 
     42CONFIG_CRYPTO_WORKQUEUE=y 
    3943CONFIG_CSRC_R4K=y 
    4044CONFIG_DEBUG_PINCTRL=y 
     
    4650CONFIG_GENERIC_ATOMIC64=y 
    4751CONFIG_GENERIC_CLOCKEVENTS=y 
    48 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    4952CONFIG_GENERIC_CMOS_UPDATE=y 
    5053CONFIG_GENERIC_IO=y 
     54CONFIG_GENERIC_IRQ_CHIP=y 
    5155CONFIG_GENERIC_IRQ_SHOW=y 
    5256CONFIG_GENERIC_PCI_IOMAP=y 
    5357CONFIG_GENERIC_PHY=y 
     58CONFIG_GENERIC_SCHED_CLOCK=y 
    5459CONFIG_GENERIC_SMP_IDLE_THREAD=y 
    5560CONFIG_GPIOLIB=y 
     
    6368CONFIG_HAS_IOPORT_MAP=y 
    6469# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 
     70# CONFIG_HAVE_ARCH_BITREVERSE is not set 
    6571CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    6672CONFIG_HAVE_ARCH_KGDB=y 
     
    8490CONFIG_HAVE_GENERIC_DMA_COHERENT=y 
    8591CONFIG_HAVE_IDE=y 
     92CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 
    8693CONFIG_HAVE_KVM=y 
    8794CONFIG_HAVE_MACH_CLKDEV=y 
     
    93100CONFIG_HAVE_PERF_EVENTS=y 
    94101CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 
     102CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 
    95103CONFIG_HW_HAS_PCI=y 
    96104CONFIG_HZ_PERIODIC=y 
     
    98106CONFIG_INITRAMFS_SOURCE="" 
    99107CONFIG_IRQCHIP=y 
    100 CONFIG_IRQ_CPU=y 
    101108CONFIG_IRQ_DOMAIN=y 
    102109CONFIG_IRQ_FORCED_THREADING=y 
    103 CONFIG_IRQ_INTC=y 
     110CONFIG_IRQ_MIPS_CPU=y 
    104111CONFIG_IRQ_WORK=y 
    105112CONFIG_LIBFDT=y 
    106 CONFIG_LINKIT_BOOTSTRAP=y 
     113# CONFIG_MACH_INGENIC is not set 
     114# CONFIG_MACH_LOONGSON32 is not set 
     115# CONFIG_MACH_LOONGSON64 is not set 
    107116CONFIG_MDIO_BOARDINFO=y 
    108117CONFIG_MIPS=y 
     
    111120CONFIG_MIPS_L1_CACHE_SHIFT=5 
    112121# CONFIG_MIPS_MACHINE is not set 
     122CONFIG_MIPS_NO_APPENDED_DTB=y 
     123# CONFIG_MIPS_RAW_APPENDED_DTB is not set 
     124CONFIG_MIPS_SPRAM=y 
    113125CONFIG_MODULES_USE_ELF_REL=y 
    114126CONFIG_MT7621_WDT=y 
     
    145157CONFIG_PCI_DOMAINS=y 
    146158CONFIG_PERF_USE_VMALLOC=y 
     159CONFIG_PGTABLE_LEVELS=2 
    147160CONFIG_PHYLIB=y 
    148161CONFIG_PHY_RALINK_USB=y 
     
    150163CONFIG_PINCTRL_RT2880=y 
    151164# CONFIG_PINCTRL_SINGLE is not set 
    152 # CONFIG_PREEMPT_RCU is not set 
    153165CONFIG_PWM=y 
    154 # CONFIG_PWM_FSL_FTM is not set 
    155166CONFIG_PWM_MEDIATEK=y 
    156167CONFIG_PWM_SYSFS=y 
     
    159170# CONFIG_RCU_STALL_COMMON is not set 
    160171CONFIG_RESET_CONTROLLER=y 
     172CONFIG_SCHED_HRTICK=y 
     173# CONFIG_SCHED_INFO is not set 
    161174# CONFIG_SCSI_DMA is not set 
    162175CONFIG_SERIAL_8250_NR_UARTS=4 
     
    164177CONFIG_SERIAL_8250_RUNTIME_UARTS=4 
    165178CONFIG_SERIAL_OF_PLATFORM=y 
     179# CONFIG_SG_SPLIT is not set 
    166180# CONFIG_SLAB is not set 
    167181CONFIG_SLUB=y 
    168182CONFIG_SOC_MT7620=y 
    169 # CONFIG_SOC_MT7621 is not set 
    170183# CONFIG_SOC_RT288X is not set 
    171184# CONFIG_SOC_RT305X is not set 
    172185# CONFIG_SOC_RT3883 is not set 
    173 # CONFIG_SND_MT76XX_SOC_MT7620 is not set 
    174 CONFIG_SND_MT76XX_SOC_MT7628=y 
    175186CONFIG_SPI=y 
    176187CONFIG_SPI_MASTER=y 
     
    178189# CONFIG_SPI_RT2880 is not set 
    179190CONFIG_SPI_SPIDEV=y 
     191CONFIG_SRCU=y 
     192# CONFIG_SUNXI_SRAM is not set 
    180193CONFIG_SWCONFIG=y 
     194CONFIG_SYSCTL_EXCEPTION_TRACE=y 
    181195CONFIG_SYS_HAS_CPU_MIPS32_R1=y 
    182196CONFIG_SYS_HAS_CPU_MIPS32_R2=y 
  • trunk/target/linux/ramips/patches-4.3/0001-arch-mips-ralink-add-mt7621-support.patch

    r47830 r47831  
    1 From c8c69923236f2f3f184ddcc7eb41c113b5cc3223 Mon Sep 17 00:00:00 2001 
     1From 450b6e8257e22708173d0c1c86d34394fba0c5eb Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    3 Date: Sun, 27 Jul 2014 10:57:40 +0100 
    4 Subject: [PATCH 12/57] MIPS: ralink: add MT7621 support 
     3Date: Mon, 7 Dec 2015 17:08:31 +0100 
     4Subject: [PATCH 01/53] arch: mips: ralink: add mt7621 support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    8  arch/mips/include/asm/gic.h                |    4 + 
    98 arch/mips/include/asm/mach-ralink/irq.h    |    9 + 
    109 arch/mips/include/asm/mach-ralink/mt7621.h |   39 ++++ 
     10 arch/mips/kernel/mips-cm.c                 |    4 +- 
    1111 arch/mips/kernel/vmlinux.lds.S             |    1 + 
    1212 arch/mips/ralink/Kconfig                   |   18 ++ 
    1313 arch/mips/ralink/Makefile                  |    7 +- 
    1414 arch/mips/ralink/Platform                  |    5 + 
    15  arch/mips/ralink/irq-gic.c                 |  271 ++++++++++++++++++++++++++++ 
     15 arch/mips/ralink/irq-gic.c                 |  268 ++++++++++++++++++++++++++++ 
    1616 arch/mips/ralink/malta-amon.c              |   81 +++++++++ 
    17  arch/mips/ralink/mt7621.c                  |  183 +++++++++++++++++++ 
    18  10 files changed, 617 insertions(+), 1 deletion(-) 
     17 arch/mips/ralink/mt7621.c                  |  209 ++++++++++++++++++++++ 
     18 10 files changed, 638 insertions(+), 3 deletions(-) 
    1919 create mode 100644 arch/mips/include/asm/mach-ralink/irq.h 
    2020 create mode 100644 arch/mips/include/asm/mach-ralink/mt7621.h 
     
    2323 create mode 100644 arch/mips/ralink/mt7621.c 
    2424 
     25diff --git a/arch/mips/include/asm/mach-ralink/irq.h b/arch/mips/include/asm/mach-ralink/irq.h 
     26new file mode 100644 
     27index 0000000..4321865 
    2528--- /dev/null 
    2629+++ b/arch/mips/include/asm/mach-ralink/irq.h 
     
    3538+ 
    3639+#endif 
     40diff --git a/arch/mips/include/asm/mach-ralink/mt7621.h b/arch/mips/include/asm/mach-ralink/mt7621.h 
     41new file mode 100644 
     42index 0000000..21c8dc2 
    3743--- /dev/null 
    3844+++ b/arch/mips/include/asm/mach-ralink/mt7621.h 
     
    7783+ 
    7884+#endif 
     85diff --git a/arch/mips/kernel/mips-cm.c b/arch/mips/kernel/mips-cm.c 
     86index b8ceee5..b97de1d 100644 
     87--- a/arch/mips/kernel/mips-cm.c 
     88+++ b/arch/mips/kernel/mips-cm.c 
     89@@ -232,7 +232,7 @@ int mips_cm_probe(void) 
     90        write_gcr_base(base_reg); 
     91  
     92        /* disable CM regions */ 
     93-       write_gcr_reg0_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
     94+/*     write_gcr_reg0_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
     95        write_gcr_reg0_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
     96        write_gcr_reg1_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
     97        write_gcr_reg1_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
     98@@ -240,7 +240,7 @@ int mips_cm_probe(void) 
     99        write_gcr_reg2_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
     100        write_gcr_reg3_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
     101        write_gcr_reg3_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
     102- 
     103+*/ 
     104        /* probe for an L2-only sync region */ 
     105        mips_cm_probe_l2sync(); 
     106  
     107diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S 
     108index 07d32a4..86c6284 100644 
    79109--- a/arch/mips/kernel/vmlinux.lds.S 
    80110+++ b/arch/mips/kernel/vmlinux.lds.S 
     
    87117                SCHED_TEXT 
    88118                LOCK_TEXT 
     119diff --git a/arch/mips/ralink/Kconfig b/arch/mips/ralink/Kconfig 
     120index e9bc8c9..d078e61 100644 
    89121--- a/arch/mips/ralink/Kconfig 
    90122+++ b/arch/mips/ralink/Kconfig 
     
    101133        prompt "Ralink SoC selection" 
    102134        default SOC_RT305X 
    103 @@ -33,6 +38,15 @@ choice 
     135@@ -34,6 +39,15 @@ choice 
    104136        config SOC_MT7620 
    105                 bool "MT7620" 
     137                bool "MT7620/8" 
    106138  
    107139+       config SOC_MT7621 
     
    117149  
    118150 choice 
    119 @@ -64,6 +78,10 @@ choice 
     151@@ -65,6 +79,10 @@ choice 
    120152                depends on SOC_MT7620 
    121153                select BUILTIN_DTB 
     
    128160  
    129161 endif 
     162diff --git a/arch/mips/ralink/Makefile b/arch/mips/ralink/Makefile 
     163index a6c9d00..ca501db 100644 
    130164--- a/arch/mips/ralink/Makefile 
    131165+++ b/arch/mips/ralink/Makefile 
     
    153187 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 
    154188  
     189diff --git a/arch/mips/ralink/Platform b/arch/mips/ralink/Platform 
     190index 6d9c8c4..6095fcc 100644 
    155191--- a/arch/mips/ralink/Platform 
    156192+++ b/arch/mips/ralink/Platform 
    157 @@ -27,3 +27,8 @@ cflags-$(CONFIG_SOC_RT3883)   += -I$(srctr 
     193@@ -27,3 +27,8 @@ cflags-$(CONFIG_SOC_RT3883)   += -I$(srctree)/arch/mips/include/asm/mach-ralink/rt 
    158194 # 
    159195 load-$(CONFIG_SOC_MT7620)      += 0xffffffff80000000 
     
    164200+load-$(CONFIG_SOC_MT7621)      += 0xffffffff80001000 
    165201+cflags-$(CONFIG_SOC_MT7621)    += -I$(srctree)/arch/mips/include/asm/mach-ralink/mt7621 
     202diff --git a/arch/mips/ralink/irq-gic.c b/arch/mips/ralink/irq-gic.c 
     203new file mode 100644 
     204index 0000000..f1c541b 
    166205--- /dev/null 
    167206+++ b/arch/mips/ralink/irq-gic.c 
     
    435474+       of_irq_init(of_irq_ids); 
    436475+} 
     476diff --git a/arch/mips/ralink/malta-amon.c b/arch/mips/ralink/malta-amon.c 
     477new file mode 100644 
     478index 0000000..1e47844 
    437479--- /dev/null 
    438480+++ b/arch/mips/ralink/malta-amon.c 
     
    519561+       pr_debug("launch: cpu%d gone!\n", cpu); 
    520562+} 
     563diff --git a/arch/mips/ralink/mt7621.c b/arch/mips/ralink/mt7621.c 
     564new file mode 100644 
     565index 0000000..c28743b 
    521566--- /dev/null 
    522567+++ b/arch/mips/ralink/mt7621.c 
     
    709754+ 
    710755+       snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN, 
    711 +               "Mediatek %s ver:%u eco:%u", 
     756+               "MediaTek %s ver:%u eco:%u", 
    712757+               name, 
    713758+               (rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK, 
     
    731776+               return; 
    732777+} 
    733 --- a/arch/mips/kernel/mips-cm.c 
    734 +++ b/arch/mips/kernel/mips-cm.c 
    735 @@ -105,7 +105,7 @@ int mips_cm_probe(void) 
    736         write_gcr_base(base_reg); 
    737   
    738         /* disable CM regions */ 
    739 -       write_gcr_reg0_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
    740 +/*     write_gcr_reg0_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
    741         write_gcr_reg0_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
    742         write_gcr_reg1_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
    743         write_gcr_reg1_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
    744 @@ -113,7 +113,7 @@ int mips_cm_probe(void) 
    745         write_gcr_reg2_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
    746         write_gcr_reg3_base(CM_GCR_REGn_BASE_BASEADDR_MSK); 
    747         write_gcr_reg3_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); 
    748 - 
    749 +*/ 
    750         /* probe for an L2-only sync region */ 
    751         mips_cm_probe_l2sync(); 
    752   
     778--  
     7791.7.10.4 
     780 
  • trunk/target/linux/ramips/patches-4.3/0002-MIPS-ralink-add-MT7621-defconfig.patch

    r47830 r47831  
    1 From 8f92eac5ace0f834ec069b4bb8e9ad38f162de0e Mon Sep 17 00:00:00 2001 
     1From c96f2cc4d5f6e1bb11f3e7e04a7e21503a214d7c Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 27 Jan 2014 13:12:41 +0000 
    4 Subject: [PATCH 13/57] MIPS: ralink: add MT7621 defconfig 
     4Subject: [PATCH 02/53] MIPS: ralink: add MT7621 defconfig 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1010 create mode 100644 arch/mips/configs/mt7621_defconfig 
    1111 
     12diff --git a/arch/mips/configs/mt7621_defconfig b/arch/mips/configs/mt7621_defconfig 
     13new file mode 100644 
     14index 0000000..7719471 
    1215--- /dev/null 
    1316+++ b/arch/mips/configs/mt7621_defconfig 
     
    210213+# CONFIG_XZ_DEC_X86 is not set 
    211214+CONFIG_AVERAGE=y 
     215--  
     2161.7.10.4 
     217 
  • trunk/target/linux/ramips/patches-4.3/0004-MIPS-ralink-add-MT7621-pcie-driver.patch

    r47830 r47831  
    1 From 95d7eb13a864ef666cea7f0e86349e86d80d28ce Mon Sep 17 00:00:00 2001 
     1From fec11d4e8dc5cc79bcd7c8fd55038ac21ac39965 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 16 Mar 2014 05:22:39 +0000 
    4 Subject: [PATCH 16/57] MIPS: ralink: add MT7621 pcie driver 
     4Subject: [PATCH 04/53] MIPS: ralink: add MT7621 pcie driver 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    88 arch/mips/pci/Makefile     |    1 + 
    9  arch/mips/pci/pci-mt7621.c |  797 ++++++++++++++++++++++++++++++++++++++++++++ 
    10  2 files changed, 798 insertions(+) 
     9 arch/mips/pci/pci-mt7621.c |  813 ++++++++++++++++++++++++++++++++++++++++++++ 
     10 2 files changed, 814 insertions(+) 
    1111 create mode 100644 arch/mips/pci/pci-mt7621.c 
    1212 
    1313--- a/arch/mips/pci/Makefile 
    1414+++ b/arch/mips/pci/Makefile 
    15 @@ -42,6 +42,7 @@ obj-$(CONFIG_SIBYTE_BCM1x80)  += pci-bcm1 
     15@@ -43,6 +43,7 @@ 
    1616 obj-$(CONFIG_SNI_RM)           += fixup-sni.o ops-sni.o 
    1717 obj-$(CONFIG_LANTIQ)           += fixup-lantiq.o 
    1818 obj-$(CONFIG_PCI_LANTIQ)       += pci-lantiq.o ops-lantiq.o 
    1919+obj-$(CONFIG_SOC_MT7621)       += pci-mt7621.o 
     20 obj-$(CONFIG_SOC_RT288X)       += pci-rt2880.o 
    2021 obj-$(CONFIG_SOC_RT3883)       += pci-rt3883.o 
    2122 obj-$(CONFIG_TANBAC_TB0219)    += fixup-tb0219.o 
    22  obj-$(CONFIG_TANBAC_TB0226)    += fixup-tb0226.o 
    2323--- /dev/null 
    2424+++ b/arch/mips/pci/pci-mt7621.c 
     
    9898+#define RALINK_PCI_CONFIG_ADDR                         0x20 
    9999+#define RALINK_PCI_CONFIG_DATA_VIRTUAL_REG     0x24 
    100 +#define SURFBOARDINT_PCIE0       12      /* PCIE0 */ 
     100+#define SURFBOARDINT_PCIE0       11      /* PCIE0 */ 
    101101+#define RALINK_INT_PCIE0         SURFBOARDINT_PCIE0 
    102102+#define RALINK_INT_PCIE1         SURFBOARDINT_PCIE1 
    103103+#define RALINK_INT_PCIE2         SURFBOARDINT_PCIE2 
    104 +#define SURFBOARDINT_PCIE1       32     /* PCIE1 */ 
    105 +#define SURFBOARDINT_PCIE2       33     /* PCIE2 */ 
     104+#define SURFBOARDINT_PCIE1       31     /* PCIE1 */ 
     105+#define SURFBOARDINT_PCIE2       32     /* PCIE2 */ 
    106106+#define RALINK_PCI_MEMBASE              *(volatile u32 *)(RALINK_PCI_BASE + 0x0028) 
    107107+#define RALINK_PCI_IOBASE               *(volatile u32 *)(RALINK_PCI_BASE + 0x002C) 
  • trunk/target/linux/ramips/patches-4.3/0006-MIPS-ralink-add-cpu-frequency-scaling.patch

    r47830 r47831  
    1 From e76ecd496c9b074ab21b17f12494d823a407e89a Mon Sep 17 00:00:00 2001 
     1From bd30f19a006fb52bac80c6463c49dd2f4159f4ac Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 28 Jul 2013 16:26:41 +0200 
    4 Subject: [PATCH 21/57] MIPS: ralink: add cpu frequency scaling 
     4Subject: [PATCH 06/53] MIPS: ralink: add cpu frequency scaling 
    55 
    66This feature will break udelay() and cause the delay loop to have longer delays 
     
    99Signed-off-by: John Crispin <blogic@openwrt.org> 
    1010--- 
    11  arch/mips/ralink/cevt-rt3352.c |   36 ++++++++++++++++++++++++++++++++++++ 
    12  1 file changed, 36 insertions(+) 
     11 arch/mips/ralink/cevt-rt3352.c |   38 ++++++++++++++++++++++++++++++++++++++ 
     12 1 file changed, 38 insertions(+) 
    1313 
     14diff --git a/arch/mips/ralink/cevt-rt3352.c b/arch/mips/ralink/cevt-rt3352.c 
     15index a8e70a9..b36888c 100644 
    1416--- a/arch/mips/ralink/cevt-rt3352.c 
    1517+++ b/arch/mips/ralink/cevt-rt3352.c 
     
    2527        void __iomem *membase; 
    2628        struct clock_event_device dev; 
    27 @@ -36,6 +40,8 @@ struct systick_device { 
     29@@ -36,9 +40,26 @@ struct systick_device { 
    2830        int freq_scale; 
    2931 }; 
     
    3133+static void (*systick_freq_scaling)(struct systick_device *sdev, int status); 
    3234+ 
    33  static void systick_set_clock_mode(enum clock_event_mode mode, 
    34                                 struct clock_event_device *evt); 
    35   
    36 @@ -87,6 +93,21 @@ static struct irqaction systick_irqactio 
    37         .dev_id = &systick.dev, 
    38  }; 
     35 static int systick_set_oneshot(struct clock_event_device *evt); 
     36 static int systick_shutdown(struct clock_event_device *evt); 
    3937  
    4038+static inline void mt7620_freq_scaling(struct systick_device *sdev, int status) 
     
    5351+} 
    5452+ 
    55  static void systick_set_clock_mode(enum clock_event_mode mode, 
     53 static int systick_next_event(unsigned long delta, 
    5654                                struct clock_event_device *evt) 
    5755 { 
    58 @@ -101,9 +122,13 @@ static void systick_set_clock_mode(enum 
    59                 sdev->irq_requested = 1; 
    60                 iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN, 
    61                                 systick.membase + SYSTICK_CONFIG); 
    62 +               if (systick_freq_scaling) 
    63 +                       systick_freq_scaling(sdev, 1); 
    64                 break; 
     56@@ -99,6 +120,9 @@ static int systick_shutdown(struct clock_event_device *evt) 
     57        sdev->irq_requested = 0; 
     58        iowrite32(0, systick.membase + SYSTICK_CONFIG); 
    6559  
    66         case CLOCK_EVT_MODE_SHUTDOWN: 
    67 +               if (systick_freq_scaling) 
    68 +                       systick_freq_scaling(sdev, 0); 
    69                 if (sdev->irq_requested) 
    70                         free_irq(systick.dev.irq, &systick_irqaction); 
    71                 sdev->irq_requested = 0; 
    72 @@ -116,12 +141,23 @@ static void systick_set_clock_mode(enum 
    73         } 
     60+       if (systick_freq_scaling) 
     61+               systick_freq_scaling(sdev, 0); 
     62+ 
     63        return 0; 
     64 } 
     65  
     66@@ -114,15 +138,29 @@ static int systick_set_oneshot(struct clock_event_device *evt) 
     67        iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN, 
     68                  systick.membase + SYSTICK_CONFIG); 
     69  
     70+       if (systick_freq_scaling) 
     71+               systick_freq_scaling(sdev, 1); 
     72+ 
     73        return 0; 
    7474 } 
    7575  
     
    9494        systick.dev.name = np->name; 
    9595        clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60); 
     96--  
     971.7.10.4 
     98 
  • trunk/target/linux/ramips/patches-4.3/0007-MIPS-ralink-copy-the-commandline-from-the-devicetree.patch

    r47830 r47831  
    1 From ec26251ea980b1ee88733f178a4e86e3c70fd244 Mon Sep 17 00:00:00 2001 
     1From 67b7bff0fd364c194e653f69baa623ba2141bd4c Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 4 Aug 2014 18:46:02 +0200 
    4 Subject: [PATCH 22/57] MIPS: ralink: copy the commandline from the devicetree 
     4Subject: [PATCH 07/53] MIPS: ralink: copy the commandline from the devicetree 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    99 1 file changed, 2 insertions(+) 
    1010 
     11diff --git a/arch/mips/ralink/of.c b/arch/mips/ralink/of.c 
     12index 0d30dcd..da85bbf 100644 
    1113--- a/arch/mips/ralink/of.c 
    1214+++ b/arch/mips/ralink/of.c 
    13 @@ -74,6 +74,8 @@ void __init plat_mem_setup(void) 
    14          */ 
    15         __dt_setup_arch(__dtb_start); 
     15@@ -76,6 +76,8 @@ void __init plat_mem_setup(void) 
     16  
     17        strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE); 
    1618  
    1719+       strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE); 
     
    2022        if (memory_dtb) 
    2123                of_scan_flat_dt(early_init_dt_scan_memory, NULL); 
     24--  
     251.7.10.4 
     26 
  • trunk/target/linux/ramips/patches-4.3/0008-MIPS-ralink-mt7620-fix-usb-issue-during-frequency-sc.patch

    r47830 r47831  
    1 From 1f1c12e85defba9459b41ec95b86f23b4791f1ab Mon Sep 17 00:00:00 2001 
     1From 0fd52df8bce3be9edbc195b120bc9a68f970d9e5 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 4 Aug 2014 20:43:25 +0200 
    4 Subject: [PATCH 23/57] MIPS: ralink: mt7620: fix usb issue during frequency 
     4Subject: [PATCH 08/53] MIPS: ralink: mt7620: fix usb issue during frequency 
    55 scaling 
    66 
     
    1616 1 file changed, 19 insertions(+) 
    1717 
     18diff --git a/arch/mips/ralink/mt7620.c b/arch/mips/ralink/mt7620.c 
     19index 2ea5ff6..33a7e42 100644 
    1820--- a/arch/mips/ralink/mt7620.c 
    1921+++ b/arch/mips/ralink/mt7620.c 
    20 @@ -36,6 +36,12 @@ 
    21  #define PMU1_CFG               0x8C 
    22  #define DIG_SW_SEL             BIT(25) 
     22@@ -40,6 +40,12 @@ 
     23 /* is this a MT7620 or a MT7628 */ 
     24 enum mt762x_soc_type mt762x_soc; 
    2325  
    2426+/* clock scaling */ 
     
    3133 static int dram_type; 
    3234  
    33 @@ -337,6 +343,19 @@ void __init ralink_clk_init(void) 
     35@@ -423,6 +429,19 @@ void __init ralink_clk_init(void) 
    3436        ralink_clk_add("10000b00.spi", sys_rate); 
    3537        ralink_clk_add("10000c00.uartlite", periph_rate); 
     
    5153  
    5254 void __init ralink_of_remap(void) 
     55--  
     561.7.10.4 
     57 
  • trunk/target/linux/ramips/patches-4.3/0009-PCI-MIPS-adds-mt7620a-pcie-driver.patch

    r47830 r47831  
    1 From 307b7a71a634ae3848fb7c5c05759d647e140e12 Mon Sep 17 00:00:00 2001 
     1From 41aa7fc236fdb1f4c9b8b10df9b71f0d248cb36b Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    3 Date: Sat, 18 May 2013 22:06:15 +0200 
    4 Subject: [PATCH 32/57] PCI: MIPS: adds mt7620a pcie driver 
     3Date: Mon, 7 Dec 2015 17:11:12 +0100 
     4Subject: [PATCH 09/53] PCI: MIPS: adds mt7620a pcie driver 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    8  arch/mips/pci/Makefile      |    1 + 
    9  arch/mips/pci/pci-mt7620.c  |  363 +++++++++++++++++++++++++++++++++++++++++++ 
    10  arch/mips/ralink/Kconfig    |    1 + 
    11  3 files changed, 365 insertions(+) 
     8 arch/mips/include/asm/mach-ralink/mt7620.h |    1 + 
     9 arch/mips/pci/Makefile                     |    1 + 
     10 arch/mips/pci/pci-mt7620.c                 |  396 ++++++++++++++++++++++++++++ 
     11 arch/mips/ralink/Kconfig                   |    1 + 
     12 4 files changed, 399 insertions(+) 
    1213 create mode 100644 arch/mips/pci/pci-mt7620.c 
    1314 
     15diff --git a/arch/mips/include/asm/mach-ralink/mt7620.h b/arch/mips/include/asm/mach-ralink/mt7620.h 
     16index 1976fb8..72e64fa 100644 
     17--- a/arch/mips/include/asm/mach-ralink/mt7620.h 
     18+++ b/arch/mips/include/asm/mach-ralink/mt7620.h 
     19@@ -19,6 +19,7 @@ enum mt762x_soc_type { 
     20        MT762X_SOC_MT7620N, 
     21        MT762X_SOC_MT7628AN, 
     22 }; 
     23+extern enum mt762x_soc_type mt762x_soc; 
     24  
     25 #define MT7620_SYSC_BASE               0x10000000 
     26  
     27diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile 
     28index 04e61c3..ccbdc90 100644 
    1429--- a/arch/mips/pci/Makefile 
    1530+++ b/arch/mips/pci/Makefile 
    16 @@ -43,6 +43,7 @@ obj-$(CONFIG_SNI_RM)          += fixup-sni.o ops 
     31@@ -43,6 +43,7 @@ obj-$(CONFIG_SIBYTE_BCM1x80)  += pci-bcm1480.o pci-bcm1480ht.o 
     32 obj-$(CONFIG_SNI_RM)           += fixup-sni.o ops-sni.o 
    1733 obj-$(CONFIG_LANTIQ)           += fixup-lantiq.o 
    1834 obj-$(CONFIG_PCI_LANTIQ)       += pci-lantiq.o ops-lantiq.o 
     35+obj-$(CONFIG_SOC_MT7620)       += pci-mt7620.o 
    1936 obj-$(CONFIG_SOC_MT7621)       += pci-mt7621.o 
    20 +obj-$(CONFIG_SOC_MT7620)       += pci-mt7620.o 
    21  obj-$(CONFIG_SOC_RT2880)       += pci-rt2880.o 
     37 obj-$(CONFIG_SOC_RT288X)       += pci-rt2880.o 
    2238 obj-$(CONFIG_SOC_RT3883)       += pci-rt3883.o 
    23  obj-$(CONFIG_TANBAC_TB0219)    += fixup-tb0219.o 
     39diff --git a/arch/mips/pci/pci-mt7620.c b/arch/mips/pci/pci-mt7620.c 
     40new file mode 100644 
     41index 0000000..780e4e9 
    2442--- /dev/null 
    2543+++ b/arch/mips/pci/pci-mt7620.c 
     
    421439+ 
    422440+arch_initcall(mt7620_pci_init); 
     441diff --git a/arch/mips/ralink/Kconfig b/arch/mips/ralink/Kconfig 
     442index c2778f2..2aa5e42 100644 
    423443--- a/arch/mips/ralink/Kconfig 
    424444+++ b/arch/mips/ralink/Kconfig 
     
    431451        config SOC_MT7621 
    432452                bool "MT7621" 
    433 --- a/arch/mips/include/asm/mach-ralink/mt7620.h 
    434 +++ b/arch/mips/include/asm/mach-ralink/mt7620.h 
    435 @@ -19,6 +19,7 @@ enum mt762x_soc_type { 
    436         MT762X_SOC_MT7620N, 
    437         MT762X_SOC_MT7628AN, 
    438  }; 
    439 +extern enum mt762x_soc_type mt762x_soc; 
    440   
    441  #define MT7620_SYSC_BASE               0x10000000 
    442   
     453--  
     4541.7.10.4 
     455 
  • trunk/target/linux/ramips/patches-4.3/0010-arch-mips-ralink-add-spi1-clocks.patch

    r47830 r47831  
     1From 39ce22c870f4503bed5e451acfcab21eba3b6239 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Sun, 27 Jul 2014 09:49:07 +0100 
     4Subject: [PATCH 10/53] arch: mips: ralink: add spi1 clocks 
     5 
     6based on f3bc64d6d1f21c1b92d75f233a37b75d77af6963 
     7 
     8Signed-off-by: John Crispin <blogic@openwrt.org> 
     9--- 
     10 arch/mips/ralink/mt7620.c |    1 + 
     11 arch/mips/ralink/rt305x.c |    1 + 
     12 arch/mips/ralink/rt3883.c |    1 + 
     13 3 files changed, 3 insertions(+) 
     14 
     15diff --git a/arch/mips/ralink/mt7620.c b/arch/mips/ralink/mt7620.c 
     16index 33a7e42..0ba49a1 100644 
    117--- a/arch/mips/ralink/mt7620.c 
    218+++ b/arch/mips/ralink/mt7620.c 
    3 @@ -415,6 +415,7 @@ void __init ralink_clk_init(void) 
     19@@ -427,6 +427,7 @@ void __init ralink_clk_init(void) 
    420        ralink_clk_add("10000100.timer", periph_rate); 
    521        ralink_clk_add("10000120.watchdog", periph_rate); 
     
    723+       ralink_clk_add("10000b40.spi", sys_rate); 
    824        ralink_clk_add("10000c00.uartlite", periph_rate); 
    9         ralink_clk_add("10000d00.uart1", periph_rate); 
    10         ralink_clk_add("10000e00.uart2", periph_rate); 
     25        ralink_clk_add("10180000.wmac", xtal_rate); 
     26  
     27diff --git a/arch/mips/ralink/rt305x.c b/arch/mips/ralink/rt305x.c 
     28index c40776a..eeb747a 100644 
    1129--- a/arch/mips/ralink/rt305x.c 
    1230+++ b/arch/mips/ralink/rt305x.c 
    13 @@ -201,6 +201,7 @@ void __init ralink_clk_init(void) 
     31@@ -202,6 +202,7 @@ void __init ralink_clk_init(void) 
     32  
    1433        ralink_clk_add("cpu", cpu_rate); 
    15         ralink_clk_add("sys", sys_rate); 
    1634        ralink_clk_add("10000b00.spi", sys_rate); 
    1735+       ralink_clk_add("10000b40.spi", sys_rate); 
     
    1937        ralink_clk_add("10000120.watchdog", wdt_rate); 
    2038        ralink_clk_add("10000500.uart", uart_rate); 
     39diff --git a/arch/mips/ralink/rt3883.c b/arch/mips/ralink/rt3883.c 
     40index 86a535c..26827bc 100644 
    2141--- a/arch/mips/ralink/rt3883.c 
    2242+++ b/arch/mips/ralink/rt3883.c 
     
    2949        ralink_clk_add("10100000.ethernet", sys_rate); 
    3050        ralink_clk_add("10180000.wmac", 40000000); 
     51--  
     521.7.10.4 
     53 
  • trunk/target/linux/ramips/patches-4.3/0011-arch-mips-ralink-unify-soc-detection.patch

    r47830 r47831  
     1From 22ee5168a5dfeda748cabd0bbf728d6bdc6b925b Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:12:38 +0100 
     4Subject: [PATCH 11/53] arch: mips: ralink: unify soc detection 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 arch/mips/include/asm/mach-ralink/mt7620.h      |    8 -------- 
     9 arch/mips/include/asm/mach-ralink/ralink_regs.h |   14 ++++++++++++++ 
     10 arch/mips/include/asm/mach-ralink/rt305x.h      |   21 ++++++--------------- 
     11 arch/mips/ralink/prom.c                         |    5 ++++- 
     12 arch/mips/ralink/rt305x.c                       |   12 +++++------- 
     13 5 files changed, 29 insertions(+), 31 deletions(-) 
     14 
     15diff --git a/arch/mips/include/asm/mach-ralink/mt7620.h b/arch/mips/include/asm/mach-ralink/mt7620.h 
     16index 72e64fa..0ef882b 100644 
    117--- a/arch/mips/include/asm/mach-ralink/mt7620.h 
    218+++ b/arch/mips/include/asm/mach-ralink/mt7620.h 
     
    1632  
    1733 #define SYSC_REG_CHIP_NAME0            0x00 
     34diff --git a/arch/mips/include/asm/mach-ralink/ralink_regs.h b/arch/mips/include/asm/mach-ralink/ralink_regs.h 
     35index bd93014..8fcbd0f 100644 
    1836--- a/arch/mips/include/asm/mach-ralink/ralink_regs.h 
    1937+++ b/arch/mips/include/asm/mach-ralink/ralink_regs.h 
     
    3957 extern __iomem void *rt_memc_membase; 
    4058  
     59diff --git a/arch/mips/include/asm/mach-ralink/rt305x.h b/arch/mips/include/asm/mach-ralink/rt305x.h 
     60index 96f731b..2eea793 100644 
    4161--- a/arch/mips/include/asm/mach-ralink/rt305x.h 
    4262+++ b/arch/mips/include/asm/mach-ralink/rt305x.h 
     
    91111  
    92112 #define RT305X_SYSC_BASE               0x10000000 
    93 --- a/arch/mips/ralink/mt7620.c 
    94 +++ b/arch/mips/ralink/mt7620.c 
    95 @@ -43,8 +43,6 @@ 
    96  #define CLKCFG_FFRAC_MASK      0x001f 
    97  #define CLKCFG_FFRAC_USB_VAL   0x0003 
     113diff --git a/arch/mips/ralink/prom.c b/arch/mips/ralink/prom.c 
     114index 09419f6..d0978d5 100644 
     115--- a/arch/mips/ralink/prom.c 
     116+++ b/arch/mips/ralink/prom.c 
     117@@ -15,10 +15,13 @@ 
     118 #include <asm/bootinfo.h> 
     119 #include <asm/addrspace.h> 
    98120  
    99 -enum mt762x_soc_type mt762x_soc; 
    100 - 
    101  /* does the board have sdram or ddram */ 
    102  static int dram_type; 
     121+#include <asm/mach-ralink/ralink_regs.h> 
     122+ 
     123 #include "common.h" 
    103124  
    104 @@ -375,7 +373,7 @@ void __init ralink_clk_init(void) 
    105  #define RINT(x)                ((x) / 1000000) 
    106  #define RFRAC(x)       (((x) / 1000) % 1000) 
     125 struct ralink_soc_info soc_info; 
     126-struct rt2880_pmx_group *rt2880_pinmux_data = NULL; 
     127+enum ralink_soc_type ralink_soc; 
     128+EXPORT_SYMBOL_GPL(ralink_soc); 
    107129  
    108 -       if (mt762x_soc == MT762X_SOC_MT7628AN) { 
    109 +       if (ralink_soc == MT762X_SOC_MT7628AN) { 
    110                 if (xtal_rate == MHZ(40)) 
    111                         cpu_rate = MHZ(580); 
    112                 else 
    113 @@ -420,7 +418,7 @@ void __init ralink_clk_init(void) 
    114         ralink_clk_add("10000e00.uart2", periph_rate); 
    115         ralink_clk_add("10180000.wmac", xtal_rate); 
    116   
    117 -       if (IS_ENABLED(CONFIG_USB) && mt762x_soc != MT762X_SOC_MT7628AN) { 
    118 +       if (IS_ENABLED(CONFIG_USB) && ralink_soc != MT762X_SOC_MT7628AN) { 
    119                 /* 
    120                  * When the CPU goes into sleep mode, the BUS clock will be too low for 
    121                  * USB to function properly 
    122 @@ -508,11 +506,11 @@ void prom_soc_init(struct ralink_soc_inf 
    123   
    124         if (n0 == MT7620_CHIP_NAME0 && n1 == MT7620_CHIP_NAME1) { 
    125                 if (bga) { 
    126 -                       mt762x_soc = MT762X_SOC_MT7620A; 
    127 +                       ralink_soc = MT762X_SOC_MT7620A; 
    128                         name = "MT7620A"; 
    129                         soc_info->compatible = "ralink,mt7620a-soc"; 
    130                 } else { 
    131 -                       mt762x_soc = MT762X_SOC_MT7620N; 
    132 +                       ralink_soc = MT762X_SOC_MT7620N; 
    133                         name = "MT7620N"; 
    134                         soc_info->compatible = "ralink,mt7620n-soc"; 
    135  #ifdef CONFIG_PCI 
    136 @@ -520,7 +518,7 @@ void prom_soc_init(struct ralink_soc_inf 
    137  #endif 
    138                 } 
    139         } else if (n0 == MT7620_CHIP_NAME0 && n1 == MT7628_CHIP_NAME1) { 
    140 -               mt762x_soc = MT762X_SOC_MT7628AN; 
    141 +               ralink_soc = MT762X_SOC_MT7628AN; 
    142                 name = "MT7628AN"; 
    143                 soc_info->compatible = "ralink,mt7628an-soc"; 
    144         } else { 
    145 @@ -537,7 +535,7 @@ void prom_soc_init(struct ralink_soc_inf 
    146         dram_type = (cfg0 >> SYSCFG0_DRAM_TYPE_SHIFT) & SYSCFG0_DRAM_TYPE_MASK; 
    147   
    148         soc_info->mem_base = MT7620_DRAM_BASE; 
    149 -       if (mt762x_soc == MT762X_SOC_MT7628AN) 
    150 +       if (ralink_soc == MT762X_SOC_MT7628AN) 
    151                 mt7628_dram_init(soc_info); 
    152         else 
    153                 mt7620_dram_init(soc_info); 
    154 @@ -550,7 +548,7 @@ void prom_soc_init(struct ralink_soc_inf 
    155         pr_info("Digital PMU set to %s control\n", 
    156                 (pmu1 & DIG_SW_SEL) ? ("sw") : ("hw")); 
    157   
    158 -       if (mt762x_soc == MT762X_SOC_MT7628AN) 
    159 +       if (ralink_soc == MT762X_SOC_MT7628AN) 
    160                 rt2880_pinmux_data = mt7628an_pinmux_data; 
    161         else 
    162                 rt2880_pinmux_data = mt7620a_pinmux_data; 
     130 const char *get_system_type(void) 
     131 { 
     132diff --git a/arch/mips/ralink/rt305x.c b/arch/mips/ralink/rt305x.c 
     133index eeb747a..51f33a5 100644 
    163134--- a/arch/mips/ralink/rt305x.c 
    164135+++ b/arch/mips/ralink/rt305x.c 
     
    172143 static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 
    173144 static struct rt2880_pmx_func uartf_func[] = { 
    174 @@ -234,24 +232,24 @@ void prom_soc_init(struct ralink_soc_inf 
     145@@ -236,24 +234,24 @@ void prom_soc_init(struct ralink_soc_info *soc_info) 
    175146  
    176147                icache_sets = (read_c0_config1() >> 22) & 7; 
     
    202173                soc_info->compatible = "ralink,rt5350-soc"; 
    203174        } else { 
    204 --- a/arch/mips/ralink/prom.c 
    205 +++ b/arch/mips/ralink/prom.c 
    206 @@ -15,9 +15,13 @@ 
    207  #include <asm/bootinfo.h> 
    208  #include <asm/addrspace.h> 
    209   
    210 +#include <asm/mach-ralink/ralink_regs.h> 
    211 + 
    212  #include "common.h" 
    213   
    214  struct ralink_soc_info soc_info; 
    215 +enum ralink_soc_type ralink_soc; 
    216 +EXPORT_SYMBOL_GPL(ralink_soc); 
    217   
    218  const char *get_system_type(void) 
    219  { 
    220 --- a/arch/mips/ralink/mt7621.c 
    221 +++ b/arch/mips/ralink/mt7621.c 
    222 @@ -193,6 +193,7 @@ void prom_soc_init(struct ralink_soc_inf 
    223         soc_info->mem_size_min = MT7621_DDR2_SIZE_MIN; 
    224         soc_info->mem_size_max = MT7621_DDR2_SIZE_MAX; 
    225         soc_info->mem_base = MT7621_DRAM_BASE; 
    226 +       ralink_soc = MT762X_SOC_MT7621AT; 
    227   
    228         rt2880_pinmux_data = mt7621_pinmux_data; 
    229   
     175--  
     1761.7.10.4 
     177 
  • trunk/target/linux/ramips/patches-4.3/0014-arch-mips-cleanup-cevt-rt3352.patch

    r47830 r47831  
     1From e6ed424c36458aff8738fb1fbb0141196678058a Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:17:23 +0100 
     4Subject: [PATCH 14/53] arch: mips: cleanup cevt-rt3352 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 arch/mips/ralink/cevt-rt3352.c |   85 ++++++++++++++++++++++++++-------------- 
     9 1 file changed, 56 insertions(+), 29 deletions(-) 
     10 
     11diff --git a/arch/mips/ralink/cevt-rt3352.c b/arch/mips/ralink/cevt-rt3352.c 
     12index cecf44f..424635c 100644 
    113--- a/arch/mips/ralink/cevt-rt3352.c 
    214+++ b/arch/mips/ralink/cevt-rt3352.c 
    3 @@ -45,18 +45,33 @@ static void (*systick_freq_scaling)(stru 
    4  static void systick_set_clock_mode(enum clock_event_mode mode, 
    5                                 struct clock_event_device *evt); 
     15@@ -52,7 +52,7 @@ static inline void mt7620_freq_scaling(struct systick_device *sdev, int status) 
     16  
     17        sdev->freq_scale = status; 
     18  
     19-       pr_info("%s: %s autosleep mode\n", systick.dev.name, 
     20+       pr_info("%s: %s autosleep mode\n", sdev->dev.name, 
     21                        (status) ? ("enable") : ("disable")); 
     22        if (status) 
     23                rt_sysc_w32(rt_sysc_r32(CLK_LUT_CFG) | SLEEP_EN, CLK_LUT_CFG); 
     24@@ -60,18 +60,33 @@ static inline void mt7620_freq_scaling(struct systick_device *sdev, int status) 
     25                rt_sysc_w32(rt_sysc_r32(CLK_LUT_CFG) & ~SLEEP_EN, CLK_LUT_CFG); 
     26 } 
    627  
    728+static inline unsigned int read_count(struct systick_device *sdev) 
     
    4061  
    4162 static void systick_event_handler(struct clock_event_device *dev) 
    42 @@ -66,20 +81,25 @@ static void systick_event_handler(struct 
     63@@ -81,20 +96,25 @@ static void systick_event_handler(struct clock_event_device *dev) 
    4364  
    4465 static irqreturn_t systick_interrupt(int irq, void *dev_id) 
     
    4869+       struct clock_event_device *cdev; 
    4970+       struct systick_device *sdev; 
    50   
    51 -       dev->event_handler(dev); 
     71+ 
    5272+       if (read_c0_cause() & STATUSF_IP7) { 
    5373+               cdev = (struct clock_event_device *) dev_id; 
    5474+               sdev = container_of(cdev, struct systick_device, dev); 
    55 + 
     75  
     76-       dev->event_handler(dev); 
    5677+               /* Clear Count/Compare Interrupt */ 
    5778+               write_compare(sdev, read_compare(sdev)); 
     
    7091-                * gets used if available 
    7192-                */ 
    72 -               .rating         = 310, 
    73                 .features       = CLOCK_EVT_FEAT_ONESHOT, 
    74                 .set_next_event = systick_next_event, 
    75                 .set_mode       = systick_set_clock_mode, 
    76 @@ -126,13 +146,14 @@ static void systick_set_clock_mode(enum 
    77                         systick_freq_scaling(sdev, 1); 
    78                 break; 
     93-               .rating                 = 310, 
     94                .features               = CLOCK_EVT_FEAT_ONESHOT, 
     95                .set_next_event         = systick_next_event, 
     96                .set_state_shutdown     = systick_shutdown, 
     97@@ -116,9 +136,9 @@ static int systick_shutdown(struct clock_event_device *evt) 
     98        sdev = container_of(evt, struct systick_device, dev); 
    7999  
    80 +       case CLOCK_EVT_MODE_UNUSED: 
    81         case CLOCK_EVT_MODE_SHUTDOWN: 
    82                 if (systick_freq_scaling) 
    83                         systick_freq_scaling(sdev, 0); 
    84                 if (sdev->irq_requested) 
    85 -                       free_irq(systick.dev.irq, &systick_irqaction); 
    86 +                       remove_irq(systick.dev.irq, &systick_irqaction); 
    87                 sdev->irq_requested = 0; 
    88 -               iowrite32(0, systick.membase + SYSTICK_CONFIG); 
    89 +               iowrite32(CFG_CNT_EN, systick.membase + SYSTICK_CONFIG); 
    90                 break; 
     100        if (sdev->irq_requested) 
     101-               free_irq(systick.dev.irq, &systick_irqaction); 
     102+               remove_irq(systick.dev.irq, &systick_irqaction); 
     103        sdev->irq_requested = 0; 
     104-       iowrite32(0, systick.membase + SYSTICK_CONFIG); 
     105+       iowrite32(CFG_CNT_EN, systick.membase + SYSTICK_CONFIG); 
    91106  
    92         default: 
    93 @@ -142,38 +163,45 @@ static void systick_set_clock_mode(enum 
     107        if (systick_freq_scaling) 
     108                systick_freq_scaling(sdev, 0); 
     109@@ -145,38 +165,45 @@ static int systick_set_oneshot(struct clock_event_device *evt) 
    94110 } 
    95111  
     
    150166                        np->name, systick.dev.mult, systick.dev.shift); 
    151167 } 
     168--  
     1691.7.10.4 
     170 
  • trunk/target/linux/ramips/patches-4.3/0018-arch-mips-ralink-reset-pci-prior-to-reboot.patch

    r47830 r47831  
     1From d3c1e72c755cf67427b5d410039a096520d6537f Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:19:55 +0100 
     4Subject: [PATCH 18/53] arch: mips: ralink: reset pci prior to reboot 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 arch/mips/ralink/reset.c |   12 ++++++++++-- 
     9 1 file changed, 10 insertions(+), 2 deletions(-) 
     10 
     11diff --git a/arch/mips/ralink/reset.c b/arch/mips/ralink/reset.c 
     12index ee26d45..ee117c4 100644 
    113--- a/arch/mips/ralink/reset.c 
    214+++ b/arch/mips/ralink/reset.c 
     
    3446        rt_sysc_w32(RSTCTL_RESET_SYSTEM, SYSC_REG_RESET_CTRL); 
    3547        unreachable(); 
     48--  
     491.7.10.4 
     50 
  • trunk/target/linux/ramips/patches-4.3/0019-arch-mips-ralink-add-mt7621-cpu-feature-overrides.patch

    r47830 r47831  
     1From 43372c2be9fcf68bc40c322039c75893ce4e982c Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:20:47 +0100 
     4Subject: [PATCH 19/53] arch: mips: ralink: add mt7621 cpu-feature-overrides 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 .../asm/mach-ralink/mt7621/cpu-feature-overrides.h |   65 ++++++++++++++++++++ 
     9 1 file changed, 65 insertions(+) 
     10 create mode 100644 arch/mips/include/asm/mach-ralink/mt7621/cpu-feature-overrides.h 
     11 
     12diff --git a/arch/mips/include/asm/mach-ralink/mt7621/cpu-feature-overrides.h b/arch/mips/include/asm/mach-ralink/mt7621/cpu-feature-overrides.h 
     13new file mode 100644 
     14index 0000000..15db1b3 
    115--- /dev/null 
    216+++ b/arch/mips/include/asm/mach-ralink/mt7621/cpu-feature-overrides.h 
     
    6781+ 
    6882+#endif /* _MT7621_CPU_FEATURE_OVERRIDES_H */ 
     83--  
     841.7.10.4 
     85 
  • trunk/target/linux/ramips/patches-4.3/0020-arch-mips-ralink-mt7628-fixes.patch

    r47830 r47831  
     1From 0315355131c46c42164a4b180363bc79728f7015 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:27:15 +0100 
     4Subject: [PATCH 20/53] arch: mips: ralink: mt7628 fixes 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 arch/mips/ralink/mt7620.c |   76 +++++++++++++++++++++++++++++---------------- 
     9 1 file changed, 50 insertions(+), 26 deletions(-) 
     10 
     11diff --git a/arch/mips/ralink/mt7620.c b/arch/mips/ralink/mt7620.c 
     12index 794a7c7..41b4a3e 100644 
    113--- a/arch/mips/ralink/mt7620.c 
    214+++ b/arch/mips/ralink/mt7620.c 
    3 @@ -101,28 +101,28 @@ static struct rt2880_pmx_group mt7620a_p 
     15@@ -104,28 +104,28 @@ static struct rt2880_pmx_group mt7620a_pinmux_data[] = { 
    416 }; 
    517  
    618 static struct rt2880_pmx_func pwm1_grp_mt7628[] = { 
    7 -       FUNC("sdxc", 3, 19, 1), 
    8 +       FUNC("sdxc d6", 3, 19, 1), 
     19-       FUNC("sdcx", 3, 19, 1), 
     20+       FUNC("sdcx d6", 3, 19, 1), 
    921        FUNC("utif", 2, 19, 1), 
    1022        FUNC("gpio", 1, 19, 1), 
     
    1426  
    1527 static struct rt2880_pmx_func pwm0_grp_mt7628[] = { 
    16 -       FUNC("sdxc", 3, 18, 1), 
    17 +       FUNC("sdxc d7", 3, 18, 1), 
     28-       FUNC("sdcx", 3, 18, 1), 
     29+       FUNC("sdcx d7", 3, 18, 1), 
    1830        FUNC("utif", 2, 18, 1), 
    1931        FUNC("gpio", 1, 18, 1), 
     
    2335  
    2436 static struct rt2880_pmx_func uart2_grp_mt7628[] = { 
    25 -       FUNC("sdxc", 3, 20, 2), 
    26 +       FUNC("sdxc d5 d4", 3, 20, 2), 
     37-       FUNC("sdcx", 3, 20, 2), 
     38+       FUNC("sdcx d5 d4", 3, 20, 2), 
    2739        FUNC("pwm", 2, 20, 2), 
    2840        FUNC("gpio", 1, 20, 2), 
    29         FUNC("uart2", 0, 20, 2), 
     41        FUNC("uart", 0, 20, 2), 
    3042 }; 
    3143  
    3244 static struct rt2880_pmx_func uart1_grp_mt7628[] = { 
    33 -       FUNC("sdxc", 3, 45, 2), 
     45-       FUNC("sdcx", 3, 45, 2), 
    3446+       FUNC("sw_r", 3, 45, 2), 
    3547        FUNC("pwm", 2, 45, 2), 
    3648        FUNC("gpio", 1, 45, 2), 
    37         FUNC("uart1", 0, 45, 2), 
    38 @@ -165,7 +165,7 @@ static struct rt2880_pmx_func spi_cs1_gr 
     49        FUNC("uart", 0, 45, 2), 
     50@@ -168,7 +168,7 @@ static struct rt2880_pmx_func spi_cs1_grp_mt7628[] = { 
    3951        FUNC("-", 3, 6, 1), 
    4052        FUNC("refclk", 2, 6, 1), 
     
    4557  
    4658 static struct rt2880_pmx_func spis_grp_mt7628[] = { 
    47 @@ -182,27 +182,43 @@ static struct rt2880_pmx_func gpio_grp_m 
     59@@ -185,28 +185,44 @@ static struct rt2880_pmx_func gpio_grp_mt7628[] = { 
    4860        FUNC("gpio", 0, 11, 1), 
    4961 }; 
     
    101113  
    102114 static struct rt2880_pmx_group mt7628an_pinmux_data[] = { 
    103 -       GRP_G("pmw1", pwm1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_PWM1), 
    104 -       GRP_G("pmw0", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_PWM0), 
    105 +       GRP_G("pwm1", pwm1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_PWM1), 
    106 +       GRP_G("pwm0", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_PWM0), 
    107         GRP_G("uart2", uart2_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_UART2), 
    108         GRP_G("uart1", uart1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_UART1), 
    109         GRP_G("i2c", i2c_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_I2C), 
    110 @@ -216,6 +232,8 @@ static struct rt2880_pmx_group mt7628an_ 
    111         GRP_G("spi cs1", spi_cs1_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_CS1), 
    112         GRP_G("spis", spis_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_SPIS), 
    113         GRP_G("gpio", gpio_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_GPIO), 
    114 +       GRP_G("wled_an", wled_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_WLED_AN), 
    115 +       GRP_G("wled_kn", wled_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 1, MT7628_GPIO_MODE_WLED_KN), 
     115        GRP_G("pmw1", pwm1_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     116                                1, MT7628_GPIO_MODE_PWM1), 
     117-       GRP_G("pmw1", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     118+       GRP_G("pmw0", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     119                                1, MT7628_GPIO_MODE_PWM0), 
     120        GRP_G("uart2", uart2_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     121                                1, MT7628_GPIO_MODE_UART2), 
     122@@ -230,6 +246,10 @@ static struct rt2880_pmx_group mt7628an_pinmux_data[] = { 
     123                                1, MT7628_GPIO_MODE_SPIS), 
     124        GRP_G("gpio", gpio_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     125                                1, MT7628_GPIO_MODE_GPIO), 
     126+       GRP_G("wled_an", wled_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     127+                               1, MT7628_GPIO_MODE_WLED_AN), 
     128+       GRP_G("wled_kn", wled_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 
     129+                               1, MT7628_GPIO_MODE_WLED_KN), 
    116130        { 0 } 
    117131 }; 
    118132  
    119 @@ -529,7 +547,11 @@ void prom_soc_init(struct ralink_soc_inf 
     133@@ -542,7 +562,11 @@ void prom_soc_init(struct ralink_soc_info *soc_info) 
    120134                (rev & CHIP_REV_ECO_MASK)); 
    121135  
     
    129143  
    130144        soc_info->mem_base = MT7620_DRAM_BASE; 
    131         if (ralink_soc == MT762X_SOC_MT7628AN) 
     145        if (mt762x_soc == MT762X_SOC_MT7628AN) 
     146--  
     1471.7.10.4 
     148 
  • trunk/target/linux/ramips/patches-4.3/0024-GPIO-add-named-gpio-exports.patch

    r47830 r47831  
    1 From cc809a441d8f2924f785eb863dfa6aef47a25b0b Mon Sep 17 00:00:00 2001 
     1From 4267880319bc1a2270d352e0ded6d6386242a7ef Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Tue, 12 Aug 2014 20:49:27 +0200 
    4 Subject: [PATCH 30/36] GPIO: add named gpio exports 
     4Subject: [PATCH 24/53] GPIO: add named gpio exports 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    88 drivers/gpio/gpiolib-of.c     |   68 +++++++++++++++++++++++++++++++++++++++++ 
    9  drivers/gpio/gpiolib.c        |   11 +++++-- 
    10  include/asm-generic/gpio.h    |    5 +++ 
     9 drivers/gpio/gpiolib-sysfs.c  |   10 +++++- 
     10 include/asm-generic/gpio.h    |    6 ++++ 
    1111 include/linux/gpio/consumer.h |    8 +++++ 
    12  4 files changed, 90 insertions(+), 2 deletions(-) 
     12 4 files changed, 91 insertions(+), 1 deletion(-) 
    1313 
     14diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c 
     15index fa6e3c8..c3f34c0 100644 
    1416--- a/drivers/gpio/gpiolib-of.c 
    1517+++ b/drivers/gpio/gpiolib-of.c 
    16 @@ -22,6 +22,8 @@ 
    17  #include <linux/of_gpio.h> 
     18@@ -23,6 +23,8 @@ 
    1819 #include <linux/pinctrl/pinctrl.h> 
    1920 #include <linux/slab.h> 
     21 #include <linux/gpio/machine.h> 
    2022+#include <linux/init.h> 
    2123+#include <linux/platform_device.h> 
     
    2325 #include "gpiolib.h" 
    2426  
    25 @@ -316,3 +318,69 @@ void of_gpiochip_remove(struct gpio_chip 
     27@@ -450,3 +452,69 @@ void of_gpiochip_remove(struct gpio_chip *chip) 
    2628        gpiochip_remove_pin_ranges(chip); 
    2729        of_node_put(chip->of_node); 
     
    9395+} 
    9496+device_initcall(of_gpio_export_init); 
     97diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c 
     98index b57ed8e..0df781d 100644 
     99--- a/drivers/gpio/gpiolib-sysfs.c 
     100+++ b/drivers/gpio/gpiolib-sysfs.c 
     101@@ -544,7 +544,7 @@ static struct class gpio_class = { 
     102  * 
     103  * Returns zero on success, else an error. 
     104  */ 
     105-int gpiod_export(struct gpio_desc *desc, bool direction_may_change) 
     106+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name) 
     107 { 
     108        struct gpio_chip        *chip; 
     109        struct gpiod_data       *data; 
     110@@ -604,6 +604,8 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change) 
     111        offset = gpio_chip_hwgpio(desc); 
     112        if (chip->names && chip->names[offset]) 
     113                ioname = chip->names[offset]; 
     114+       if (name) 
     115+               ioname = name; 
     116  
     117        dev = device_create_with_groups(&gpio_class, chip->dev, 
     118                                        MKDEV(0, 0), data, gpio_groups, 
     119@@ -625,6 +627,12 @@ err_unlock: 
     120        gpiod_dbg(desc, "%s: status %d\n", __func__, status); 
     121        return status; 
     122 } 
     123+EXPORT_SYMBOL_GPL(__gpiod_export); 
     124+ 
     125+int gpiod_export(struct gpio_desc *desc, bool direction_may_change) 
     126+{ 
     127+       return __gpiod_export(desc, direction_may_change, NULL); 
     128+} 
     129 EXPORT_SYMBOL_GPL(gpiod_export); 
     130  
     131 static int match_export(struct device *dev, const void *desc) 
     132diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h 
     133index 40ec143..dcb07ab 100644 
    95134--- a/include/asm-generic/gpio.h 
    96135+++ b/include/asm-generic/gpio.h 
    97 @@ -123,6 +123,12 @@ static inline int gpio_export(unsigned g 
     136@@ -122,6 +122,12 @@ static inline int gpio_export(unsigned gpio, bool direction_may_change) 
    98137        return gpiod_export(gpio_to_desc(gpio), direction_may_change); 
    99138 } 
     
    108147                                   unsigned gpio) 
    109148 { 
     149diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h 
     150index 14cac67..8097374 100644 
    110151--- a/include/linux/gpio/consumer.h 
    111152+++ b/include/linux/gpio/consumer.h 
    112 @@ -323,6 +323,7 @@ static inline int desc_to_gpio(const str 
     153@@ -426,6 +426,7 @@ static inline struct gpio_desc *devm_get_gpiod_from_child( 
    113154  
    114155 #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) 
     
    118159 int gpiod_export_link(struct device *dev, const char *name, 
    119160                      struct gpio_desc *desc); 
    120 @@ -331,6 +332,13 @@ void gpiod_unexport(struct gpio_desc *de 
     161@@ -433,6 +434,13 @@ void gpiod_unexport(struct gpio_desc *desc); 
    121162  
    122163 #else  /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */ 
     
    132173                               bool direction_may_change) 
    133174 { 
    134 --- a/drivers/gpio/gpiolib-sysfs.c 
    135 +++ b/drivers/gpio/gpiolib-sysfs.c 
    136 @@ -517,7 +517,7 @@ static struct class gpio_class = { 
    137   * 
    138   * Returns zero on success, else an error. 
    139   */ 
    140 -int gpiod_export(struct gpio_desc *desc, bool direction_may_change) 
    141 +int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name) 
    142  { 
    143         struct gpio_chip        *chip; 
    144         unsigned long           flags; 
    145 @@ -566,6 +566,8 @@ int gpiod_export(struct gpio_desc *desc, 
    146         offset = gpio_chip_hwgpio(desc); 
    147         if (desc->chip->names && desc->chip->names[offset]) 
    148                 ioname = desc->chip->names[offset]; 
    149 +       if (name) 
    150 +               ioname = name; 
    151   
    152         dev = device_create_with_groups(&gpio_class, desc->chip->dev, 
    153                                         MKDEV(0, 0), desc, gpio_groups, 
    154 @@ -602,6 +604,12 @@ fail_unlock: 
    155         gpiod_dbg(desc, "%s: status %d\n", __func__, status); 
    156         return status; 
    157  } 
    158 +EXPORT_SYMBOL_GPL(__gpiod_export); 
    159 + 
    160 +int gpiod_export(struct gpio_desc *desc, bool direction_may_change) 
    161 +{ 
    162 +       return __gpiod_export(desc, direction_may_change, NULL); 
    163 +} 
    164  EXPORT_SYMBOL_GPL(gpiod_export); 
    165   
    166  static int match_export(struct device *dev, const void *data) 
     175--  
     1761.7.10.4 
     177 
  • trunk/target/linux/ramips/patches-4.3/0026-DT-Add-documentation-for-gpio-ralink.patch

    r47830 r47831  
    1 From 6827bd971fc4f323fc91e4506771a13b827c49a3 Mon Sep 17 00:00:00 2001 
     1From d410e5478c622c01fcf31427533df5f433df9146 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 28 Jul 2013 19:45:30 +0200 
    4 Subject: [PATCH 46/57] DT: Add documentation for gpio-ralink 
     4Subject: [PATCH 26/53] DT: Add documentation for gpio-ralink 
    55 
    66Describe gpio-ralink binding. 
     
    1515 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-ralink.txt 
    1616 
     17diff --git a/Documentation/devicetree/bindings/gpio/gpio-ralink.txt b/Documentation/devicetree/bindings/gpio/gpio-ralink.txt 
     18new file mode 100644 
     19index 0000000..b4acf02 
    1720--- /dev/null 
    1821+++ b/Documentation/devicetree/bindings/gpio/gpio-ralink.txt 
     
    5861+ 
    5962+       }; 
     63--  
     641.7.10.4 
     65 
  • trunk/target/linux/ramips/patches-4.3/0027-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch

    r47830 r47831  
    1 From 4b23ed96930650076caa524ffdde898cb937bdaa Mon Sep 17 00:00:00 2001 
     1From 69fdd2c4f937796b934e89c33acde9d082e27bfd Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 4 Aug 2014 20:36:29 +0200 
    4 Subject: [PATCH 47/57] GPIO: MIPS: ralink: add gpio driver for ralink SoC 
     4Subject: [PATCH 27/53] GPIO: MIPS: ralink: add gpio driver for ralink SoC 
    55 
    66Add gpio driver for Ralink SoC. This driver makes the gpio core on 
     
    1111Cc: linux-gpio@vger.kernel.org 
    1212--- 
    13  arch/mips/include/asm/mach-ralink/gpio.h |   24 +++ 
     13 arch/mips/include/asm/mach-ralink/gpio.h |   24 ++ 
    1414 drivers/gpio/Kconfig                     |    6 + 
    1515 drivers/gpio/Makefile                    |    1 + 
    16  drivers/gpio/gpio-ralink.c               |  345 ++++++++++++++++++++++++++++++ 
    17  4 files changed, 376 insertions(+) 
     16 drivers/gpio/gpio-ralink.c               |  355 ++++++++++++++++++++++++++++++ 
     17 4 files changed, 386 insertions(+) 
    1818 create mode 100644 arch/mips/include/asm/mach-ralink/gpio.h 
    1919 create mode 100644 drivers/gpio/gpio-ralink.c 
    2020 
     21diff --git a/arch/mips/include/asm/mach-ralink/gpio.h b/arch/mips/include/asm/mach-ralink/gpio.h 
     22new file mode 100644 
     23index 0000000..f68ee16 
    2124--- /dev/null 
    2225+++ b/arch/mips/include/asm/mach-ralink/gpio.h 
     
    4649+ 
    4750+#endif /* __ASM_MACH_RALINK_GPIO_H */ 
     51diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig 
     52index 8949b3f..4a3e7df 100644 
    4853--- a/drivers/gpio/Kconfig 
    4954+++ b/drivers/gpio/Kconfig 
    50 @@ -288,6 +288,12 @@ config GPIO_SCH311X 
     55@@ -404,6 +404,12 @@ config GPIO_SCH311X 
    5156          To compile this driver as a module, choose M here: the module will 
    5257          be called gpio-sch311x. 
     
    6166        bool "ST SPEAr13xx SPI Chip Select as GPIO support" 
    6267        depends on PLAT_SPEAR 
     68diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile 
     69index f79a7c4..13448d78 100644 
    6370--- a/drivers/gpio/Makefile 
    6471+++ b/drivers/gpio/Makefile 
    65 @@ -67,6 +67,7 @@ obj-$(CONFIG_GPIO_PCF857X)    += gpio-pcf85 
     72@@ -75,6 +75,7 @@ obj-$(CONFIG_GPIO_PCF857X)    += gpio-pcf857x.o 
    6673 obj-$(CONFIG_GPIO_PCH)         += gpio-pch.o 
    6774 obj-$(CONFIG_GPIO_PL061)       += gpio-pl061.o 
     
    7178 obj-$(CONFIG_GPIO_RDC321X)     += gpio-rdc321x.o 
    7279 obj-$(CONFIG_GPIO_RCAR)                += gpio-rcar.o 
     80diff --git a/drivers/gpio/gpio-ralink.c b/drivers/gpio/gpio-ralink.c 
     81new file mode 100644 
     82index 0000000..2be9b8a 
    7383--- /dev/null 
    7484+++ b/drivers/gpio/gpio-ralink.c 
     
    429439+ 
    430440+subsys_initcall(ralink_gpio_init); 
     441--  
     4421.7.10.4 
     443 
  • trunk/target/linux/ramips/patches-4.3/0028-GPIO-ralink-add-mt7621-gpio-controller.patch

    r47830 r47831  
    1 From 8481cdf6f96dc16cbcc129d046c021d17a891274 Mon Sep 17 00:00:00 2001 
     1From 61ac7d9b4228de8c332900902c2b93189b042eab Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 11:00:32 +0100 
    4 Subject: [PATCH 48/57] GPIO: ralink: add mt7621 gpio controller 
     4Subject: [PATCH 28/53] GPIO: ralink: add mt7621 gpio controller 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    88 arch/mips/Kconfig          |    3 + 
    9  drivers/gpio/Kconfig       |    6 ++ 
     9 drivers/gpio/Kconfig       |    6 + 
    1010 drivers/gpio/Makefile      |    1 + 
    11  drivers/gpio/gpio-mt7621.c |  177 ++++++++++++++++++++++++++++++++++++++++++++ 
    12  4 files changed, 187 insertions(+) 
     11 drivers/gpio/gpio-mt7621.c |  354 ++++++++++++++++++++++++++++++++++++++++++++ 
     12 4 files changed, 364 insertions(+) 
    1313 create mode 100644 drivers/gpio/gpio-mt7621.c 
    1414 
     15diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig 
     16index 0098bff..94ea345 100644 
    1517--- a/arch/mips/Kconfig 
    1618+++ b/arch/mips/Kconfig 
    17 @@ -455,6 +455,9 @@ config RALINK 
     19@@ -559,6 +559,9 @@ config RALINK 
    1820        select RESET_CONTROLLER 
    1921        select PINCTRL 
     
    2527 config SGI_IP22 
    2628        bool "SGI IP22 (Indy/Indigo2)" 
     29diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig 
     30index 4a3e7df..13f860c 100644 
    2731--- a/drivers/gpio/Kconfig 
    2832+++ b/drivers/gpio/Kconfig 
    29 @@ -898,6 +898,12 @@ config GPIO_BCM_KONA 
     33@@ -269,6 +269,12 @@ config GPIO_MB86S7X 
    3034        help 
    31           Turn on GPIO support for Broadcom "Kona" chips. 
     35          Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs. 
    3236  
    3337+config GPIO_MT7621 
     
    3741+         Say yes here to support the Mediatek SoC GPIO device 
    3842+ 
    39  comment "USB GPIO expanders:" 
    40   
    41  config GPIO_VIPERBOARD 
     43 config GPIO_MM_LANTIQ 
     44        bool "Lantiq Memory mapped GPIOs" 
     45        depends on LANTIQ && SOC_XWAY 
     46diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile 
     47index 13448d78..5563d6e 100644 
    4248--- a/drivers/gpio/Makefile 
    4349+++ b/drivers/gpio/Makefile 
    44 @@ -107,3 +107,5 @@ obj-$(CONFIG_GPIO_XILINX)   += gpio-xilinx 
    45  obj-$(CONFIG_GPIO_XTENSA)      += gpio-xtensa.o 
     50@@ -119,3 +119,4 @@ obj-$(CONFIG_GPIO_XTENSA)   += gpio-xtensa.o 
    4651 obj-$(CONFIG_GPIO_ZEVIO)       += gpio-zevio.o 
    4752 obj-$(CONFIG_GPIO_ZYNQ)                += gpio-zynq.o 
     53 obj-$(CONFIG_GPIO_ZX)          += gpio-zx.o 
    4854+obj-$(CONFIG_GPIO_MT7621)      += gpio-mt7621.o 
    49 + 
     55diff --git a/drivers/gpio/gpio-mt7621.c b/drivers/gpio/gpio-mt7621.c 
     56new file mode 100644 
     57index 0000000..7a98b94 
    5058--- /dev/null 
    5159+++ b/drivers/gpio/gpio-mt7621.c 
     
    405413+ 
    406414+subsys_initcall(mediatek_gpio_init); 
     415--  
     4161.7.10.4 
     417 
  • trunk/target/linux/ramips/patches-4.3/0029-phy-usb-add-ralink-phy.patch

    r47830 r47831  
     1From a10fc0cb650be725157eca50e2ceb34efc281ac2 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 22 Apr 2013 23:20:03 +0200 
     4Subject: [PATCH 29/53] phy: usb: add ralink phy 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 drivers/phy/Kconfig          |    5 ++ 
     9 drivers/phy/Makefile         |    1 + 
     10 drivers/phy/phy-ralink-usb.c |  175 ++++++++++++++++++++++++++++++++++++++++++ 
     11 3 files changed, 181 insertions(+) 
     12 create mode 100644 drivers/phy/phy-ralink-usb.c 
     13 
     14diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig 
     15index 47da573..96ef184 100644 
    116--- a/drivers/phy/Kconfig 
    217+++ b/drivers/phy/Kconfig 
    3 @@ -239,6 +239,11 @@ config PHY_XGENE 
     18@@ -331,6 +331,11 @@ config PHY_XGENE 
    419        help 
    520          This option enables support for APM X-Gene SoC multi-purpose PHY. 
     
    1328        tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family" 
    1429        depends on RESET_CONTROLLER 
     30diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile 
     31index a5b18c1..8dbf6cc 100644 
    1532--- a/drivers/phy/Makefile 
    1633+++ b/drivers/phy/Makefile 
    17 @@ -31,3 +31,4 @@ obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)  += 
    18  obj-$(CONFIG_PHY_XGENE)                        += phy-xgene.o 
    19  obj-$(CONFIG_PHY_STIH407_USB)          += phy-stih407-usb.o 
    20  obj-$(CONFIG_PHY_STIH41X_USB)          += phy-stih41x-usb.o 
     34@@ -46,3 +46,4 @@ obj-$(CONFIG_PHY_QCOM_UFS)    += phy-qcom-ufs-qmp-14nm.o 
     35 obj-$(CONFIG_PHY_TUSB1210)             += phy-tusb1210.o 
     36 obj-$(CONFIG_PHY_BRCMSTB_SATA)         += phy-brcmstb-sata.o 
     37 obj-$(CONFIG_PHY_PISTACHIO_USB)                += phy-pistachio-usb.o 
    2138+obj-$(CONFIG_PHY_RALINK_USB)           += phy-ralink-usb.o 
     39diff --git a/drivers/phy/phy-ralink-usb.c b/drivers/phy/phy-ralink-usb.c 
     40new file mode 100644 
     41index 0000000..6c74954 
    2242--- /dev/null 
    2343+++ b/drivers/phy/phy-ralink-usb.c 
     
    175195+       rstdev = devm_reset_control_get(&pdev->dev, "device"); 
    176196+ 
    177 +       rt_phy = devm_phy_create(dev, NULL, &ralink_usb_phy_ops, NULL); 
     197+       rt_phy = devm_phy_create(dev, NULL, &ralink_usb_phy_ops); 
    178198+       if (IS_ERR(rt_phy)) { 
    179199+               dev_err(dev, "failed to create PHY\n"); 
     
    198218+MODULE_AUTHOR("John Crispin <blogic@openwrt.org>"); 
    199219+MODULE_LICENSE("GPL v2"); 
     220--  
     2211.7.10.4 
     222 
  • trunk/target/linux/ramips/patches-4.3/0031-uvc-add-iPassion-iP2970-support.patch

    r47830 r47831  
    1 From 0d3e92b4d3e2160873b610aabd46bbc4853ff82e Mon Sep 17 00:00:00 2001 
     1From 975e76214cd2516eb6cfff4c3eec581872645e88 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Thu, 19 Sep 2013 01:50:59 +0200 
    4 Subject: [PATCH 57/57] uvc: add iPassion iP2970 support 
     4Subject: [PATCH 31/53] uvc: add iPassion iP2970 support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
    77--- 
    8  drivers/media/usb/uvc/uvc_driver.c |   14 ++++ 
     8 drivers/media/usb/uvc/uvc_driver.c |   12 +++ 
    99 drivers/media/usb/uvc/uvc_status.c |    2 + 
    1010 drivers/media/usb/uvc/uvc_video.c  |  147 ++++++++++++++++++++++++++++++++++++ 
    11  drivers/media/usb/uvc/uvcvideo.h   |    3 + 
    12  4 files changed, 166 insertions(+) 
     11 drivers/media/usb/uvc/uvcvideo.h   |    5 +- 
     12 4 files changed, 165 insertions(+), 1 deletion(-) 
    1313 
     14diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c 
     15index 4b5b3e8..6808bcc 100644 
    1416--- a/drivers/media/usb/uvc/uvc_driver.c 
    1517+++ b/drivers/media/usb/uvc/uvc_driver.c 
    16 @@ -2504,6 +2504,20 @@ static struct usb_device_id uvc_ids[] = 
     18@@ -2536,6 +2536,18 @@ static struct usb_device_id uvc_ids[] = { 
     19          .bInterfaceSubClass   = 1, 
    1720          .bInterfaceProtocol   = 0, 
    18           .driver_info          = UVC_QUIRK_PROBE_MINMAX 
    19                                 | UVC_QUIRK_IGNORE_SELECTOR_UNIT }, 
    20 + 
    21 +/* iPassion iP2970 */ 
     21          .driver_info          = UVC_QUIRK_FORCE_Y8 }, 
     22+       /* iPassion iP2970 */ 
    2223+       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE 
    2324+                               | USB_DEVICE_ID_MATCH_INT_INFO, 
     
    3132+                               | UVC_QUIRK_MOTION 
    3233+                               | UVC_QUIRK_SINGLE_ISO }, 
    33 + 
    3434        /* Generic USB Video Class */ 
    3535        { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) }, 
    3636        {} 
     37diff --git a/drivers/media/usb/uvc/uvc_status.c b/drivers/media/usb/uvc/uvc_status.c 
     38index f552ab9..7132ad4 100644 
    3739--- a/drivers/media/usb/uvc/uvc_status.c 
    3840+++ b/drivers/media/usb/uvc/uvc_status.c 
    39 @@ -139,6 +139,7 @@ static void uvc_status_complete(struct u 
     41@@ -139,6 +139,7 @@ static void uvc_status_complete(struct urb *urb) 
    4042                switch (dev->status[0] & 0x0f) { 
    4143                case UVC_STATUS_TYPE_CONTROL: 
     
    4547  
    4648                case UVC_STATUS_TYPE_STREAMING: 
    47 @@ -182,6 +183,7 @@ int uvc_status_init(struct uvc_device *d 
     49@@ -182,6 +183,7 @@ int uvc_status_init(struct uvc_device *dev) 
    4850        } 
    4951  
     
    5355        /* For high-speed interrupt endpoints, the bInterval value is used as 
    5456         * an exponent of two. Some developers forgot about it. 
     57diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c 
     58index f839654..b30aab6 100644 
    5559--- a/drivers/media/usb/uvc/uvc_video.c 
    5660+++ b/drivers/media/usb/uvc/uvc_video.c 
     
    6771 #include <media/v4l2-common.h> 
    6872  
    69 @@ -1080,9 +1085,149 @@ static void uvc_video_decode_data(struct 
     73@@ -1089,9 +1094,149 @@ static void uvc_video_decode_data(struct uvc_streaming *stream, 
    7074        } 
    7175 } 
     
    217221        if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) { 
    218222                uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n"); 
    219 @@ -1495,6 +1640,8 @@ static int uvc_init_video_isoc(struct uv 
     223@@ -1504,6 +1649,8 @@ static int uvc_init_video_isoc(struct uvc_streaming *stream, 
    220224        if (npackets == 0) 
    221225                return -ENOMEM; 
     
    226230  
    227231        for (i = 0; i < UVC_URBS; ++i) { 
     232diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h 
     233index 816dd1a..d0aa324 100644 
    228234--- a/drivers/media/usb/uvc/uvcvideo.h 
    229235+++ b/drivers/media/usb/uvc/uvcvideo.h 
    230 @@ -148,6 +148,8 @@ 
    231  #define UVC_QUIRK_PROBE_DEF            0x00000100 
     236@@ -152,7 +152,9 @@ 
    232237 #define UVC_QUIRK_RESTRICT_FRAME_RATE  0x00000200 
    233238 #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT        0x00000400 
    234 +#define UVC_QUIRK_MOTION               0x00000800 
    235 +#define UVC_QUIRK_SINGLE_ISO           0x00001000 
    236   
     239 #define UVC_QUIRK_FORCE_Y8             0x00000800 
     240- 
     241+#define UVC_QUIRK_MOTION               0x00001000 
     242+#define UVC_QUIRK_SINGLE_ISO           0x00002000 
     243+  
    237244 /* Format flags */ 
    238245 #define UVC_FMT_FLAG_COMPRESSED                0x00000001 
    239 @@ -551,6 +553,7 @@ struct uvc_device { 
     246 #define UVC_FMT_FLAG_STREAM            0x00000002 
     247@@ -550,6 +552,7 @@ struct uvc_device { 
    240248        __u8 *status; 
    241249        struct input_dev *input; 
     
    245253  
    246254 enum uvc_handle_state { 
     255--  
     2561.7.10.4 
     257 
  • trunk/target/linux/ramips/patches-4.3/0033-USB-add-xhci-hooks.patch

    r47830 r47831  
     1From 71fbde37e60c11f5a715c105d25b9c6cee8dae6c Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:14:03 +0100 
     4Subject: [PATCH 33/53] USB: add xhci hooks 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 drivers/usb/core/hcd-pci.c            |    5 + 
     9 drivers/usb/core/hub.c                |    2 +- 
     10 drivers/usb/core/port.c               |   10 +- 
     11 drivers/usb/host/Kconfig              |    9 +- 
     12 drivers/usb/host/Makefile             |   10 +- 
     13 drivers/usb/host/mtk-phy-7621.c       |  445 +++++ 
     14 drivers/usb/host/mtk-phy-7621.h       | 2871 +++++++++++++++++++++++++++++++++ 
     15 drivers/usb/host/mtk-phy-ahb.c        |   58 + 
     16 drivers/usb/host/mtk-phy.c            |  102 ++ 
     17 drivers/usb/host/mtk-phy.h            |  179 ++ 
     18 drivers/usb/host/pci-quirks.h         |    2 +- 
     19 drivers/usb/host/xhci-dbg.c           |    3 + 
     20 drivers/usb/host/xhci-mem.c           |   11 + 
     21 drivers/usb/host/xhci-mtk-power.c     |  115 ++ 
     22 drivers/usb/host/xhci-mtk-power.h     |   13 + 
     23 drivers/usb/host/xhci-mtk-scheduler.c |  608 +++++++ 
     24 drivers/usb/host/xhci-mtk-scheduler.h |   77 + 
     25 drivers/usb/host/xhci-mtk.c           |  265 +++ 
     26 drivers/usb/host/xhci-mtk.h           |  120 ++ 
     27 drivers/usb/host/xhci-plat.c          |   11 + 
     28 drivers/usb/host/xhci-ring.c          |  104 ++ 
     29 drivers/usb/host/xhci.c               |  209 ++- 
     30 drivers/usb/host/xhci.h               |   39 + 
     31 23 files changed, 5257 insertions(+), 11 deletions(-) 
     32 create mode 100644 drivers/usb/host/mtk-phy-7621.c 
     33 create mode 100644 drivers/usb/host/mtk-phy-7621.h 
     34 create mode 100644 drivers/usb/host/mtk-phy-ahb.c 
     35 create mode 100644 drivers/usb/host/mtk-phy.c 
     36 create mode 100644 drivers/usb/host/mtk-phy.h 
     37 create mode 100644 drivers/usb/host/xhci-mtk-power.c 
     38 create mode 100644 drivers/usb/host/xhci-mtk-power.h 
     39 create mode 100644 drivers/usb/host/xhci-mtk-scheduler.c 
     40 create mode 100644 drivers/usb/host/xhci-mtk-scheduler.h 
     41 create mode 100644 drivers/usb/host/xhci-mtk.c 
     42 create mode 100644 drivers/usb/host/xhci-mtk.h 
     43 
    144--- a/drivers/usb/core/hcd-pci.c 
    245+++ b/drivers/usb/core/hcd-pci.c 
    3 @@ -214,8 +214,13 @@ int usb_hcd_pci_probe(struct pci_dev *de 
     46@@ -214,8 +214,13 @@ 
    447                goto disable_pci; 
    548        } 
     
    1760--- a/drivers/usb/core/hub.c 
    1861+++ b/drivers/usb/core/hub.c 
    19 @@ -1286,7 +1286,7 @@ static void hub_quiesce(struct usb_hub * 
     62@@ -1287,7 +1287,7 @@ 
    2063        if (type != HUB_SUSPEND) { 
    2164                /* Disconnect all the children */ 
     
    2871--- a/drivers/usb/core/port.c 
    2972+++ b/drivers/usb/core/port.c 
    30 @@ -480,8 +480,10 @@ void usb_hub_remove_port_device(struct u 
     73@@ -480,8 +480,10 @@ 
    3174        struct usb_port *port_dev = hub->ports[port1 - 1]; 
    3275        struct usb_port *peer; 
     
    4588--- a/drivers/usb/host/Kconfig 
    4689+++ b/drivers/usb/host/Kconfig 
    47 @@ -41,6 +41,13 @@ config USB_XHCI_PLATFORM 
     90@@ -41,6 +41,13 @@ 
    4891  
    4992          If unsure, say N. 
     
    59102        tristate "xHCI support for Marvell Armada 375/38x" 
    60103        select USB_XHCI_PLATFORM 
    61 @@ -596,7 +603,7 @@ endif # USB_OHCI_HCD 
     104@@ -590,7 +597,7 @@ 
    62105  
    63106 config USB_UHCI_HCD 
     
    70113--- a/drivers/usb/host/Makefile 
    71114+++ b/drivers/usb/host/Makefile 
    72 @@ -16,7 +16,12 @@ xhci-hcd-y := xhci.o xhci-mem.o 
     115@@ -14,7 +14,12 @@ 
    73116 xhci-hcd-y += xhci-ring.o xhci-hub.o xhci-dbg.o 
    74117 xhci-hcd-y += xhci-trace.o 
     
    83126        xhci-plat-hcd-y         += xhci-mvebu.o 
    84127 endif 
    85 @@ -26,9 +31,14 @@ endif 
     128@@ -24,11 +29,10 @@ 
    86129  
    87130 obj-$(CONFIG_USB_WHCI_HCD)     += whci/ 
    88131  
     132-ifneq ($(CONFIG_USB), ) 
    89133+ifndef CONFIG_USB_MT7621_XHCI_PLATFORM 
    90  obj-$(CONFIG_PCI)              += pci-quirks.o 
    91 +endif 
    92   
    93 +ifndef CONFIG_USB_MT7621_XHCI_PLATFORM 
    94  obj-$(CONFIG_USB_XHCI_PCI)     += xhci-pci.o 
    95 +endif 
    96 + 
     134        obj-$(CONFIG_PCI)       += pci-quirks.o 
     135+       obj-$(CONFIG_USB_XHCI_PCI)      += xhci-pci.o 
     136 endif 
     137- 
     138-obj-$(CONFIG_USB_XHCI_PCI)     += xhci-pci.o 
    97139 obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o 
    98140  
     
    37933835--- a/drivers/usb/host/xhci-mem.c 
    37943836+++ b/drivers/usb/host/xhci-mem.c 
    3795 @@ -67,6 +67,9 @@ static struct xhci_segment *xhci_segment 
     3837@@ -67,6 +67,9 @@ 
    37963838  
    37973839 static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) 
     
    38033845                dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); 
    38043846                seg->trbs = NULL; 
    3805 @@ -1475,9 +1478,17 @@ int xhci_endpoint_init(struct xhci_hcd * 
     3847@@ -1471,9 +1474,17 @@ 
    38063848                        max_burst = (usb_endpoint_maxp(&ep->desc) 
    38073849                                     & 0x1800) >> 11; 
     
    50395081--- a/drivers/usb/host/xhci-plat.c 
    50405082+++ b/drivers/usb/host/xhci-plat.c 
    5041 @@ -33,6 +33,13 @@ static void xhci_plat_quirks(struct devi 
     5083@@ -43,6 +43,13 @@ 
    50425084         * dev struct in order to setup MSI 
    50435085         */ 
     
    50535095  
    50545096 /* called during probe() after chip reset completes */ 
    5055 @@ -79,7 +86,11 @@ static int xhci_plat_probe(struct platfo 
     5097@@ -89,7 +96,11 @@ 
    50565098  
    50575099        driver = &xhci_plat_hc_driver; 
     
    50675109--- a/drivers/usb/host/xhci-ring.c 
    50685110+++ b/drivers/usb/host/xhci-ring.c 
    5069 @@ -254,16 +254,20 @@ static void inc_enq(struct xhci_hcd *xhc 
     5111@@ -254,16 +254,20 @@ 
    50705112 static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring, 
    50715113                unsigned int num_trbs) 
     
    50885130        return 1; 
    50895131 } 
    5090 @@ -2810,6 +2814,7 @@ static int prepare_ring(struct xhci_hcd 
     5132@@ -2869,6 +2873,7 @@ 
    50915133                next = ring->enqueue; 
    50925134  
     
    50965138                         * on AMD 0.96 host, clear the chain bit. 
    50975139                         */ 
    5098 @@ -2819,6 +2824,9 @@ static int prepare_ring(struct xhci_hcd 
     5140@@ -2878,6 +2883,9 @@ 
    50995141                                next->link.control &= cpu_to_le32(~TRB_CHAIN); 
    51005142                        else 
     
    51065148                        wmb(); 
    51075149                        next->link.control ^= cpu_to_le32(TRB_CYCLE); 
    5108 @@ -2949,6 +2957,9 @@ static void giveback_first_trb(struct xh 
     5150@@ -3008,6 +3016,9 @@ 
    51095151                start_trb->field[3] |= cpu_to_le32(start_cycle); 
    51105152        else 
     
    51165158 } 
    51175159  
    5118 @@ -3004,6 +3015,29 @@ static u32 xhci_td_remainder(unsigned in 
     5160@@ -3063,6 +3074,29 @@ 
    51195161                return (remainder >> 10) << 17; 
    51205162 } 
     
    51465188  * For xHCI 1.0 host controllers, TD size is the number of max packet sized 
    51475189  * packets remaining in the TD (*not* including this TRB). 
    5148 @@ -3161,6 +3195,7 @@ static int queue_bulk_sg_tx(struct xhci_ 
     5190@@ -3220,6 +3254,7 @@ 
    51495191                } 
    51505192  
     
    51545196                        remainder = xhci_td_remainder( 
    51555197                                        urb->transfer_buffer_length - 
    5156 @@ -3170,6 +3205,12 @@ static int queue_bulk_sg_tx(struct xhci_ 
     5198@@ -3229,6 +3264,12 @@ 
    51575199                                        trb_buff_len, total_packet_count, urb, 
    51585200                                        num_trbs - 1); 
     
    51675209                        remainder | 
    51685210                        TRB_INTR_TARGET(0); 
    5169 @@ -3234,6 +3275,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd * 
     5211@@ -3293,6 +3334,9 @@ 
    51705212        int running_total, trb_buff_len, ret; 
    51715213        unsigned int total_packet_count; 
     
    51775219        if (urb->num_sgs) 
    51785220                return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index); 
    5179 @@ -3258,6 +3302,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd * 
     5221@@ -3317,6 +3361,25 @@ 
    51805222                num_trbs++; 
    51815223                running_total += TRB_MAX_BUFF_SIZE; 
     
    52035245        ret = prepare_transfer(xhci, xhci->devs[slot_id], 
    52045246                        ep_index, urb->stream_id, 
    5205 @@ -3334,6 +3397,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * 
     5247@@ -3393,6 +3456,7 @@ 
    52065248                        field |= TRB_ISP; 
    52075249  
     
    52115253                        remainder = xhci_td_remainder( 
    52125254                                        urb->transfer_buffer_length - 
    5213 @@ -3343,6 +3407,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd * 
     5255@@ -3402,6 +3466,10 @@ 
    52145256                                        trb_buff_len, total_packet_count, urb, 
    52155257                                        num_trbs - 1); 
     
    52225264                        remainder | 
    52235265                        TRB_INTR_TARGET(0); 
    5224 @@ -3432,7 +3500,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * 
     5266@@ -3491,7 +3559,11 @@ 
    52255267                field |= 0x1; 
    52265268  
     
    52345276                        if (setup->bRequestType & USB_DIR_IN) 
    52355277                                field |= TRB_TX_TYPE(TRB_DATA_IN); 
    5236 @@ -3456,7 +3528,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * 
     5278@@ -3515,7 +3587,12 @@ 
    52375279                field = TRB_TYPE(TRB_DATA); 
    52385280  
     
    52475289        if (urb->transfer_buffer_length > 0) { 
    52485290                if (setup->bRequestType & USB_DIR_IN) 
    5249 @@ -3579,6 +3656,9 @@ static int xhci_queue_isoc_tx(struct xhc 
    5250         u64 start_addr, addr; 
    5251         int i, j; 
     5291@@ -3731,6 +3808,9 @@ 
    52525292        bool more_trbs_coming; 
     5293        struct xhci_virt_ep *xep; 
     5294  
    52535295+#if defined (CONFIG_USB_MT7621_XHCI_PLATFORM) 
    52545296+       int max_packet; 
    52555297+#endif 
    5256   
     5298        xep = &xhci->devs[slot_id]->eps[ep_index]; 
    52575299        ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; 
    52585300  
    5259 @@ -3592,6 +3672,21 @@ static int xhci_queue_isoc_tx(struct xhc 
     5301@@ -3744,6 +3824,21 @@ 
    52605302        start_trb = &ep_ring->enqueue->generic; 
    52615303        start_cycle = ep_ring->cycle_state; 
     
    52795321        /* Queue the first TRB, even if it's zero-length */ 
    52805322        for (i = 0; i < num_tds; i++) { 
    5281 @@ -3663,9 +3758,13 @@ static int xhci_queue_isoc_tx(struct xhc 
     5323@@ -3828,9 +3923,13 @@ 
    52825324                        } else { 
    52835325                                td->last_trb = ep_ring->enqueue; 
     
    52935335                                        if (i < num_tds - 1) 
    52945336                                                field |= TRB_BEI; 
    5295 @@ -3680,6 +3779,7 @@ static int xhci_queue_isoc_tx(struct xhc 
     5337@@ -3845,6 +3944,7 @@ 
    52965338                                trb_buff_len = td_remain_len; 
    52975339  
     
    53015343                                remainder = xhci_td_remainder( 
    53025344                                                td_len - running_total); 
    5303 @@ -3689,6 +3789,10 @@ static int xhci_queue_isoc_tx(struct xhc 
     5345@@ -3854,6 +3954,10 @@ 
    53045346                                                total_packet_count, urb, 
    53055347                                                (trbs_per_td - j - 1)); 
     
    53315373 #define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" 
    53325374  
    5333 @@ -46,6 +56,18 @@ static unsigned int quirks; 
     5375@@ -46,6 +56,18 @@ 
    53345376 module_param(quirks, uint, S_IRUGO); 
    53355377 MODULE_PARM_DESC(quirks, "Bit flags for quirks to be enabled as default"); 
     
    53505392 /* 
    53515393  * xhci_handshake - spin reading hc until handshake completes or fails 
    5352 @@ -199,7 +221,7 @@ int xhci_reset(struct xhci_hcd *xhci) 
     5394@@ -198,7 +220,7 @@ 
    53535395        return ret; 
    53545396 } 
     
    53595401 { 
    53605402        int i; 
    5361 @@ -449,6 +471,11 @@ static void compliance_mode_recovery(uns 
     5403@@ -448,6 +470,11 @@ 
    53625404                                        "Attempting compliance mode recovery"); 
    53635405                        hcd = xhci->shared_hcd; 
     
    53715413                                usb_hcd_resume_root_hub(hcd); 
    53725414  
    5373 @@ -498,6 +525,9 @@ static bool xhci_compliance_mode_recover 
     5415@@ -495,6 +522,9 @@ 
    53745416 { 
    53755417        const char *dmi_product_name, *dmi_sys_vendor; 
     
    53815423        dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR); 
    53825424        if (!dmi_product_name || !dmi_sys_vendor) 
    5383 @@ -543,6 +573,10 @@ int xhci_init(struct usb_hcd *hcd) 
     5425@@ -540,6 +570,10 @@ 
    53845426                xhci_dbg_trace(xhci, trace_xhci_dbg_init, 
    53855427                                "xHCI doesn't need link TRB QUIRK"); 
     
    53925434        xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_init"); 
    53935435  
    5394 @@ -627,7 +661,11 @@ int xhci_run(struct usb_hcd *hcd) 
     5436@@ -624,7 +658,11 @@ 
    53955437                        "// Set the interrupt modulation register"); 
    53965438        temp = readl(&xhci->ir_set->irq_control); 
     
    54045446  
    54055447        /* Set the HCD state before we enable the irqs */ 
    5406 @@ -652,6 +690,9 @@ int xhci_run(struct usb_hcd *hcd) 
     5448@@ -649,6 +687,9 @@ 
    54075449                xhci_queue_vendor_command(xhci, command, 0, 0, 0, 
    54085450                                TRB_TYPE(TRB_NEC_GET_FW)); 
     
    54145456                        "Finished xhci_run for USB2 roothub"); 
    54155457        return 0; 
    5416 @@ -1648,6 +1689,14 @@ int xhci_drop_endpoint(struct usb_hcd *h 
     5458@@ -1639,6 +1680,14 @@ 
    54175459        u32 drop_flag; 
    54185460        u32 new_add_flags, new_drop_flags; 
     
    54295471        ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); 
    54305472        if (ret <= 0) 
    5431 @@ -1695,6 +1744,40 @@ int xhci_drop_endpoint(struct usb_hcd *h 
     5473@@ -1688,6 +1737,40 @@ 
    54325474  
    54335475        xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); 
     
    54705512                        (unsigned int) ep->desc.bEndpointAddress, 
    54715513                        udev->slot_id, 
    5472 @@ -1727,6 +1810,19 @@ int xhci_add_endpoint(struct usb_hcd *hc 
     5514@@ -1720,6 +1803,19 @@ 
    54735515        u32 new_add_flags, new_drop_flags; 
    54745516        struct xhci_virt_device *virt_dev; 
     
    54905532        ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); 
    54915533        if (ret <= 0) { 
    5492 @@ -1793,6 +1889,56 @@ int xhci_add_endpoint(struct usb_hcd *hc 
     5534@@ -1783,6 +1879,56 @@ 
    54935535                return -ENOMEM; 
    54945536        } 
     
    55475589        new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); 
    55485590  
    5549 @@ -4463,8 +4609,14 @@ static u16 xhci_call_host_update_timeout 
     5591@@ -4446,8 +4592,14 @@ 
    55505592                u16 *timeout) 
    55515593 { 
     
    55625604  
    55635605        return USB3_LPM_DISABLED; 
    5564 @@ -4849,7 +5001,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, 
     5606@@ -4839,7 +4991,9 @@ 
    55655607        hcd->self.no_sg_constraint = 1; 
    55665608  
     
    55715613  
    55725614        if (usb_hcd_is_primary_hcd(hcd)) { 
    5573                 xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL); 
    5574 @@ -4912,6 +5066,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, 
    5575                 goto error; 
     5615                xhci = hcd_to_xhci(hcd); 
     5616@@ -4900,6 +5054,10 @@ 
     5617                return retval; 
    55765618        xhci_dbg(xhci, "Reset complete\n"); 
    55775619  
     
    55835625         * if xHC supports 64-bit addressing */ 
    55845626        if (HCC_64BIT_ADDR(xhci->hcc_params) && 
    5585 @@ -5006,8 +5164,57 @@ MODULE_DESCRIPTION(DRIVER_DESC); 
     5627@@ -5005,8 +5163,57 @@ 
    55865628 MODULE_AUTHOR(DRIVER_AUTHOR); 
    55875629 MODULE_LICENSE("GPL"); 
     
    56345676+    pPlatformDev->num_resources = ARRAY_SIZE(xhci_resouce); 
    56355677+ 
    5636 +       platform_device_register(&xhci_platform_dev); 
     5678+//     platform_device_register(&xhci_platform_dev); 
    56375679+ 
    56385680+#endif 
     
    56485690  
    56495691+#if defined (CONFIG_USB_MT7621_XHCI_PLATFORM) 
    5650 +#define XHC_IRQ (22 + 8) 
     5692+#define XHC_IRQ (22 + 7) 
    56515693+#define XHC_IO_START 0x1E1C0000 
    56525694+#define XHC_IO_LENGTH 0x10000 
     
    56655707 #define XHCI_SBRN_OFFSET       (0x60) 
    56665708  
    5667 @@ -1587,8 +1602,12 @@ struct xhci_hcd { 
     5709@@ -1597,8 +1612,12 @@ 
    56685710        /* Compliance Mode Recovery Data */ 
    56695711        struct timer_list       comp_mode_recovery_timer; 
     
    56775719 }; 
    56785720  
    5679  /* convert between an HCD pointer and the corresponding EHCI_HCD */ 
    5680 @@ -1736,6 +1755,26 @@ void xhci_urb_free_priv(struct xhci_hcd 
     5721 /* Platform specific overrides to generic XHCI hc_driver ops */ 
     5722@@ -1763,6 +1782,26 @@ 
    56815723 void xhci_free_command(struct xhci_hcd *xhci, 
    56825724                struct xhci_command *command); 
     
    57045746 /* xHCI host controller glue */ 
    57055747 typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); 
    5706  int xhci_handshake(struct xhci_hcd *xhci, void __iomem *ptr, 
     5748 int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec); 
  • trunk/target/linux/ramips/patches-4.3/0034-NET-multi-phy-support.patch

    r47830 r47831  
    1 From 9c34372c25519234add1cfdfe2b69c0847f2037e Mon Sep 17 00:00:00 2001 
     1From 0b6eb1e68290243d439ee330ea8d0b239a5aec69 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 09:38:50 +0100 
    4 Subject: [PATCH 33/57] NET: multi phy support 
     4Subject: [PATCH 34/53] NET: multi phy support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1010 2 files changed, 7 insertions(+), 3 deletions(-) 
    1111 
     12diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c 
     13index adb48ab..7eb83bd 100644 
    1214--- a/drivers/net/phy/phy.c 
    1315+++ b/drivers/net/phy/phy.c 
    14 @@ -838,7 +838,8 @@ void phy_state_machine(struct work_struc 
     16@@ -843,7 +843,8 @@ void phy_state_machine(struct work_struct *work) 
    1517                /* If the link is down, give up on negotiation for now */ 
    1618                if (!phydev->link) { 
     
    2224                        break; 
    2325                } 
    24 @@ -911,7 +912,8 @@ void phy_state_machine(struct work_struc 
     26@@ -923,7 +924,8 @@ void phy_state_machine(struct work_struct *work) 
    2527                        netif_carrier_on(phydev->attached_dev); 
    2628                } else { 
     
    3234  
    3335                phydev->adjust_link(phydev->attached_dev); 
    34 @@ -923,7 +925,8 @@ void phy_state_machine(struct work_struc 
     36@@ -935,7 +937,8 @@ void phy_state_machine(struct work_struct *work) 
    3537        case PHY_HALTED: 
    3638                if (phydev->link) { 
     
    4244                        do_suspend = true; 
    4345                } 
     46diff --git a/include/linux/phy.h b/include/linux/phy.h 
     47index 4a4e3a0..a260bdc 100644 
    4448--- a/include/linux/phy.h 
    4549+++ b/include/linux/phy.h 
    46 @@ -363,6 +363,7 @@ struct phy_device { 
    47         struct phy_c45_device_ids c45_ids; 
    48         bool is_c45; 
    49         bool is_internal; 
     50@@ -375,6 +375,7 @@ struct phy_device { 
     51        bool is_pseudo_fixed_link; 
     52        bool has_fixups; 
     53        bool suspended; 
    5054+       bool no_auto_carrier_off; 
    51         bool has_fixups; 
    5255  
    5356        enum phy_state state; 
     57  
     58--  
     591.7.10.4 
     60 
  • trunk/target/linux/ramips/patches-4.3/0035-NET-MIPS-add-ralink-SoC-ethernet-driver.patch

    r47830 r47831  
    1 From c55d6cf3e2c593bf7d228c6532ec9bd8da82e09d Mon Sep 17 00:00:00 2001 
     1From 86ab021705a493a5276261953f4f2cb071df6722 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 22 Apr 2013 23:20:03 +0200 
    4 Subject: [PATCH 35/57] NET: MIPS: add ralink SoC ethernet driver 
     4Subject: [PATCH 35/53] NET: MIPS: add ralink SoC ethernet driver 
    55 
    66Add support for Ralink FE and ESW. 
     
    88Signed-off-by: John Crispin <blogic@openwrt.org> 
    99--- 
     10 arch/mips/ralink/rt305x.c     |    1 + 
     11 drivers/net/ethernet/Kconfig  |    1 + 
     12 drivers/net/ethernet/Makefile |    1 + 
     13 3 files changed, 3 insertions(+) 
     14 
     15diff --git a/arch/mips/ralink/rt305x.c b/arch/mips/ralink/rt305x.c 
     16index 51f33a5..d7c4ba4 100644 
    1017--- a/arch/mips/ralink/rt305x.c 
    1118+++ b/arch/mips/ralink/rt305x.c 
     
    1623+       ralink_clk_add("sys", sys_rate); 
    1724        ralink_clk_add("10000b00.spi", sys_rate); 
     25        ralink_clk_add("10000b40.spi", sys_rate); 
    1826        ralink_clk_add("10000100.timer", wdt_rate); 
    19         ralink_clk_add("10000120.watchdog", wdt_rate); 
     27diff --git a/drivers/net/ethernet/Kconfig b/drivers/net/ethernet/Kconfig 
     28index 05aa759..5628f2d 100644 
    2029--- a/drivers/net/ethernet/Kconfig 
    2130+++ b/drivers/net/ethernet/Kconfig 
    22 @@ -152,6 +152,7 @@ source "drivers/net/ethernet/packetengin 
     31@@ -154,6 +154,7 @@ source "drivers/net/ethernet/packetengines/Kconfig" 
    2332 source "drivers/net/ethernet/pasemi/Kconfig" 
    2433 source "drivers/net/ethernet/qlogic/Kconfig" 
     
    2837 source "drivers/net/ethernet/renesas/Kconfig" 
    2938 source "drivers/net/ethernet/rdc/Kconfig" 
     39diff --git a/drivers/net/ethernet/Makefile b/drivers/net/ethernet/Makefile 
     40index ddfc808..cbfe95e 100644 
    3041--- a/drivers/net/ethernet/Makefile 
    3142+++ b/drivers/net/ethernet/Makefile 
    32 @@ -62,6 +62,7 @@ obj-$(CONFIG_NET_PACKET_ENGINE) += packe 
     43@@ -64,6 +64,7 @@ obj-$(CONFIG_NET_PACKET_ENGINE) += packetengines/ 
    3344 obj-$(CONFIG_NET_VENDOR_PASEMI) += pasemi/ 
    3445 obj-$(CONFIG_NET_VENDOR_QLOGIC) += qlogic/ 
     
    3647+obj-$(CONFIG_NET_RALINK) += ralink/ 
    3748 obj-$(CONFIG_NET_VENDOR_REALTEK) += realtek/ 
    38  obj-$(CONFIG_SH_ETH) += renesas/ 
     49 obj-$(CONFIG_NET_VENDOR_RENESAS) += renesas/ 
    3950 obj-$(CONFIG_NET_VENDOR_RDC) += rdc/ 
     51--  
     521.7.10.4 
     53 
  • trunk/target/linux/ramips/patches-4.3/0036-mtd-fix-cfi-cmdset-0002-erase-status-check.patch

    r47830 r47831  
    1 From f0df443ca7d5d0e4d31aa6769ea12a8cf24d2cd8 Mon Sep 17 00:00:00 2001 
     1From 8e72a3a1be8f6328bd7ef491332ba541547b6086 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 15 Jul 2013 00:38:51 +0200 
    4 Subject: [PATCH 41/57] mtd: fix cfi cmdset 0002 erase status check 
     4Subject: [PATCH 36/53] mtd: fix cfi cmdset 0002 erase status check 
    55 
    66--- 
     
    88 1 file changed, 2 insertions(+), 2 deletions(-) 
    99 
     10diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c 
     11index c3624eb..60d960a 100644 
    1012--- a/drivers/mtd/chips/cfi_cmdset_0002.c 
    1113+++ b/drivers/mtd/chips/cfi_cmdset_0002.c 
    12 @@ -2291,7 +2291,7 @@ static int __xipram do_erase_chip(struct 
     14@@ -2290,7 +2290,7 @@ static int __xipram do_erase_chip(struct map_info *map, struct flchip *chip) 
    1315                        chip->erase_suspended = 0; 
    1416                } 
     
    1921  
    2022                if (time_after(jiffies, timeo)) { 
    21 @@ -2380,7 +2380,7 @@ static int __xipram do_erase_oneblock(st 
     23@@ -2379,7 +2379,7 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip, 
    2224                        chip->erase_suspended = 0; 
    2325                } 
     
    2830                        break; 
    2931                } 
     32--  
     331.7.10.4 
     34 
  • trunk/target/linux/ramips/patches-4.3/0037-mtd-cfi-cmdset-0002-force-word-write.patch

    r47830 r47831  
    1 From 39010a26a34a56a7928f9217ac23e5138c5ea952 Mon Sep 17 00:00:00 2001 
     1From ee9081b2726a5ca8cde5497afdc5425e21ff8f8b Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Mon, 15 Jul 2013 00:39:21 +0200 
    4 Subject: [PATCH 42/57] mtd: cfi cmdset 0002 force word write 
     4Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write 
    55 
    66--- 
     
    88 1 file changed, 7 insertions(+), 2 deletions(-) 
    99 
     10diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c 
     11index 60d960a..a663e3b 100644 
    1012--- a/drivers/mtd/chips/cfi_cmdset_0002.c 
    1113+++ b/drivers/mtd/chips/cfi_cmdset_0002.c 
     
    2931 static int cfi_amdstd_erase_varsize(struct mtd_info *, struct erase_info *); 
    3032 static void cfi_amdstd_sync (struct mtd_info *); 
    31 @@ -202,6 +204,7 @@ static void fixup_amd_bootblock(struct m 
     33@@ -202,6 +204,7 @@ static void fixup_amd_bootblock(struct mtd_info *mtd) 
    3234 } 
    3335 #endif 
     
    3739 { 
    3840        struct map_info *map = mtd->priv; 
    39 @@ -211,6 +214,7 @@ static void fixup_use_write_buffers(stru 
     41@@ -211,6 +214,7 @@ static void fixup_use_write_buffers(struct mtd_info *mtd) 
    4042                mtd->_write = cfi_amdstd_write_buffers; 
    4143        } 
     
    4547 /* Atmel chips don't use the same PRI format as AMD chips */ 
    4648 static void fixup_convert_atmel_pri(struct mtd_info *mtd) 
    47 @@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct 
     49@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct mtd_info *mtd, loff_t to, size_t len, 
    4850 /* 
    4951  * FIXME: interleaved mode not tested, and probably not supported! 
     
    5355                                    unsigned long adr, const u_char *buf, 
    5456                                    int len) 
    55 @@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru 
     57@@ -1916,7 +1921,6 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, 
    5658        return ret; 
    5759 } 
     
    6163                                    size_t *retlen, const u_char *buf) 
    6264 { 
    63 @@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru 
     65@@ -1991,6 +1995,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, 
    6466  
    6567        return 0; 
     
    6971 /* 
    7072  * Wait for the flash chip to become ready to write data 
     73--  
     741.7.10.4 
     75 
  • trunk/target/linux/ramips/patches-4.3/0038-mtd-ralink-add-mt7620-nand-driver.patch

    r47830 r47831  
    1 From b915fe7cd934160bfaf2cd52f03c118abcae2419 Mon Sep 17 00:00:00 2001 
     1From fb6e1578cd73d7d81f675e75247a676423f32412 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 17 Nov 2013 17:41:46 +0100 
    4 Subject: [PATCH 43/57] mtd: ralink: add mt7620 nand driver 
     4Subject: [PATCH 38/53] mtd: ralink: add mt7620 nand driver 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1414 create mode 100644 drivers/mtd/maps/ralink_nand.h 
    1515 
     16diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig 
     17index 7c95a65..c2739db 100644 
    1618--- a/drivers/mtd/maps/Kconfig 
    1719+++ b/drivers/mtd/maps/Kconfig 
     
    2527+ 
    2628 endmenu 
     29diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile 
     30index 141c91a..94d2aa0 100644 
    2731--- a/drivers/mtd/maps/Makefile 
    2832+++ b/drivers/mtd/maps/Makefile 
     
    3337+obj-$(CONFIG_MTD_NAND_MT7620)  += ralink_nand.o 
    3438+ 
     39diff --git a/drivers/mtd/maps/ralink_nand.c b/drivers/mtd/maps/ralink_nand.c 
     40new file mode 100644 
     41index 0000000..64f9119 
    3542--- /dev/null 
    3643+++ b/drivers/mtd/maps/ralink_nand.c 
     
    21722179+ 
    21732180+MODULE_LICENSE("GPL"); 
     2181diff --git a/drivers/mtd/maps/ralink_nand.h b/drivers/mtd/maps/ralink_nand.h 
     2182new file mode 100644 
     2183index 0000000..a408ae9 
    21742184--- /dev/null 
    21752185+++ b/drivers/mtd/maps/ralink_nand.h 
     
    24072417+ 
    24082418+#endif 
     2419--  
     24201.7.10.4 
     2421 
  • trunk/target/linux/ramips/patches-4.3/0039-mtd-add-mt7621-nand-support.patch

    r47830 r47831  
    1 From 5db075c5dd038fbf4b5a0196e10f4f9658236372 Mon Sep 17 00:00:00 2001 
     1From 0e1c4e3c97b83b4e7da65b1c56f0a7d40736ac53 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 11:05:17 +0100 
    4 Subject: [PATCH 45/57] mtd: add mt7621 nand support 
     4Subject: [PATCH 39/53] mtd: add mt7621 nand support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    3030 create mode 100644 drivers/mtd/nand/partition.h 
    3131 
     32diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig 
     33index 3324281..76cfc97 100644 
    3234--- a/drivers/mtd/nand/Kconfig 
    3335+++ b/drivers/mtd/nand/Kconfig 
    34 @@ -516,4 +516,10 @@ config MTD_NAND_XWAY 
    35           Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached 
    36           to the External Bus Unit (EBU). 
     36@@ -535,4 +535,10 @@ config MTD_NAND_HISI504 
     37        help 
     38          Enables support for NAND controller on Hisilicon SoC Hip04. 
    3739  
    3840+config MTK_MTD_NAND 
     
    4345+ 
    4446 endif # MTD_NAND 
     47diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile 
     48index 075a027..ec349e3 100644 
    4549--- a/drivers/mtd/nand/Makefile 
    4650+++ b/drivers/mtd/nand/Makefile 
    47 @@ -50,5 +50,6 @@ obj-$(CONFIG_MTD_NAND_JZ4740)         += jz4740 
    48  obj-$(CONFIG_MTD_NAND_GPMI_NAND)       += gpmi-nand/ 
    49  obj-$(CONFIG_MTD_NAND_XWAY)            += xway_nand.o 
    50  obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH)   += bcm47xxnflash/ 
     51@@ -54,5 +54,6 @@ obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH)  += bcm47xxnflash/ 
     52 obj-$(CONFIG_MTD_NAND_SUNXI)           += sunxi_nand.o 
     53 obj-$(CONFIG_MTD_NAND_HISI504)         += hisi504_nand.o 
     54 obj-$(CONFIG_MTD_NAND_BRCMNAND)                += brcmnand/ 
    5155+obj-$(CONFIG_MTK_MTD_NAND)                      += mtk_nand.o bmt.o 
    5256  
    5357 nand-objs := nand_base.o nand_bbt.o nand_timings.o 
     58diff --git a/drivers/mtd/nand/bmt.c b/drivers/mtd/nand/bmt.c 
     59new file mode 100644 
     60index 0000000..0462871 
    5461--- /dev/null 
    5562+++ b/drivers/mtd/nand/bmt.c 
     
    805812+MODULE_DESCRIPTION("Bad Block mapping management for MediaTek NAND Flash Driver"); 
    806813+#endif 
     814diff --git a/drivers/mtd/nand/bmt.h b/drivers/mtd/nand/bmt.h 
     815new file mode 100644 
     816index 0000000..2d30ea9 
    807817--- /dev/null 
    808818+++ b/drivers/mtd/nand/bmt.h 
     
    888898+ 
    889899+#endif                          // #ifndef __BMT_H__ 
     900diff --git a/drivers/mtd/nand/dev-nand.c b/drivers/mtd/nand/dev-nand.c 
     901new file mode 100644 
     902index 0000000..9fb5235 
    890903--- /dev/null 
    891904+++ b/drivers/mtd/nand/dev-nand.c 
     
    954967+} 
    955968+arch_initcall(mtk_nand_register); 
     969diff --git a/drivers/mtd/nand/mt6575_typedefs.h b/drivers/mtd/nand/mt6575_typedefs.h 
     970new file mode 100644 
     971index 0000000..a7b9647 
    956972--- /dev/null 
    957973+++ b/drivers/mtd/nand/mt6575_typedefs.h 
     
    12971313+#endif  // _MT6575_TYPEDEFS_H 
    12981314+ 
     1315diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c 
     1316new file mode 100644 
     1317index 0000000..00e150c 
    12991318--- /dev/null 
    13001319+++ b/drivers/mtd/nand/mtk_nand.c 
     
    36043623+module_exit(mtk_nand_exit); 
    36053624+MODULE_LICENSE("GPL"); 
     3625diff --git a/drivers/mtd/nand/mtk_nand.h b/drivers/mtd/nand/mtk_nand.h 
     3626new file mode 100644 
     3627index 0000000..6db88c4 
    36063628--- /dev/null 
    36073629+++ b/drivers/mtd/nand/mtk_nand.h 
     
    40594081+#endif 
    40604082+#endif 
     4083diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c 
     4084index ceb68ca..04dbc69 100644 
    40614085--- a/drivers/mtd/nand/nand_base.c 
    40624086+++ b/drivers/mtd/nand/nand_base.c 
    4063 @@ -93,7 +93,7 @@ static struct nand_ecclayout nand_oob_12 
     4087@@ -92,7 +92,7 @@ static struct nand_ecclayout nand_oob_128 = { 
    40644088                 .length = 78} } 
    40654089 }; 
     
    40704094 static int nand_do_write_oob(struct mtd_info *mtd, loff_t to, 
    40714095                             struct mtd_oob_ops *ops); 
    4072 @@ -131,7 +131,7 @@ static int check_offs_len(struct mtd_inf 
     4096@@ -130,7 +130,7 @@ static int check_offs_len(struct mtd_info *mtd, 
    40734097  * 
    40744098  * Release chip lock and wake up anyone waiting on the device. 
     
    40794103        struct nand_chip *chip = mtd->priv; 
    40804104  
    4081 @@ -803,7 +803,7 @@ static void panic_nand_get_device(struct 
     4105@@ -820,7 +820,7 @@ static void panic_nand_get_device(struct nand_chip *chip, 
    40824106  * 
    40834107  * Get the device and lock it for exclusive access 
     
    40884112 { 
    40894113        struct nand_chip *chip = mtd->priv; 
     4114diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c 
     4115index 63a1a36..d036b9a 100644 
    40904116--- a/drivers/mtd/nand/nand_bbt.c 
    40914117+++ b/drivers/mtd/nand/nand_bbt.c 
    4092 @@ -1372,4 +1372,23 @@ int nand_markbad_bbt(struct mtd_info *mt 
     4118@@ -1374,4 +1374,23 @@ int nand_markbad_bbt(struct mtd_info *mtd, loff_t offs) 
    40934119        return ret; 
    40944120 } 
     
    41144140+ 
    41154141 EXPORT_SYMBOL(nand_scan_bbt); 
     4142diff --git a/drivers/mtd/nand/nand_def.h b/drivers/mtd/nand/nand_def.h 
     4143new file mode 100644 
     4144index 0000000..82e957d 
    41164145--- /dev/null 
    41174146+++ b/drivers/mtd/nand/nand_def.h 
     
    42404269+ 
    42414270+#endif /* __NAND_DEF_H__ */ 
     4271diff --git a/drivers/mtd/nand/nand_device_list.h b/drivers/mtd/nand/nand_device_list.h 
     4272new file mode 100644 
     4273index 0000000..4c36b3a 
    42424274--- /dev/null 
    42434275+++ b/drivers/mtd/nand/nand_device_list.h 
     
    42984330+ 
    42994331+#endif 
     4332diff --git a/drivers/mtd/nand/partition.h b/drivers/mtd/nand/partition.h 
     4333new file mode 100644 
     4334index 0000000..034e1af 
    43004335--- /dev/null 
    43014336+++ b/drivers/mtd/nand/partition.h 
     
    44164451+#undef RECONFIG_PARTITION_SIZE 
    44174452+ 
     4453--  
     44541.7.10.4 
     4455 
  • trunk/target/linux/ramips/patches-4.3/0040-nand-add-mtk-nand-hack-hook.patch

    r47830 r47831  
    1 From patchwork Fri Nov 13 07:55:08 2015 
    2 Content-Type: text/plain; charset="utf-8" 
    3 MIME-Version: 1.0 
    4 Content-Transfer-Encoding: 7bit 
    5 Subject: [OpenWrt-Devel,RFC] A patch for mt7621 nand controler. Revision 2. 
    6 From: Kirill Berezin <fyiwdt@gmail.com> 
    7 X-Patchwork-Id: 544092 
    8 Message-Id: <CAOFwh=DZieEa4ZA0ex6G3OR2OgEeP6Fh+SSw=Zg-L0wWm1QRTA@mail.gmail.com> 
    9 To: openwrt-devel@lists.openwrt.org 
    10 Date: Fri, 13 Nov 2015 10:55:08 +0300 
     1From 61e17c2f864698033f4661e1fc7ba63d4d982491 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:21:55 +0100 
     4Subject: [PATCH 40/53] nand: add mtk-nand hack/hook 
    115 
    12 Hello, 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 drivers/mtd/nand/mtk_nand.c         |   34 ++++++++++++++++++++++++++++++---- 
     9 drivers/mtd/nand/nand_base.c        |    9 ++++++++- 
     10 drivers/mtd/nand/nand_device_list.h |    2 ++ 
     11 include/linux/mtd/nand.h            |    4 ++++ 
     12 4 files changed, 44 insertions(+), 5 deletions(-) 
    1313 
    14 It turned out that mtk_nand driver uses some sophisticated accounting and a 
    15 general nand code must be patched. 
    16  
    17 This patch adds required read and erase calls to a general nand code. I 
    18 used a  code  for re6500 released by Linksys as a reference. 
    19  
    20 All required operations (erase, write and read) are usable. However I found 
    21 that jffs2 filesystem can be created only on top of a ubi volume. I tried 
    22 to create jffs2 directly on mtd device but pages with clean markers are 
    23 became uncorrectable. 
    24  
    25 This patch also includes changes that I sent earlier. 
    26  
    27 Best regards, 
    28 Kirill. 
    29  
    30 Signed-off-by: Kirill Berezin (fyiwdt@gmail.com) 
    31  
    32 diff -urNb a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c 
    33 --- a/drivers/mtd/nand/mtk_nand.c       2015-11-06 16:44:31.000000000 +0400 
    34 +++ b/drivers/mtd/nand/mtk_nand.c       2015-11-12 10:06:20.080430855 +0400 
    35 @@ -110,6 +110,10 @@ 
     14diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c 
     15index 00e150c..808e9c3 100644 
     16--- a/drivers/mtd/nand/mtk_nand.c 
     17+++ b/drivers/mtd/nand/mtk_nand.c 
     18@@ -110,6 +110,10 @@ int part_num = NUM_PARTITIONS; 
    3619 int manu_id; 
    3720 int dev_id; 
     
    4427  
    4528 static u8 nand_badblock_offset = 0; 
    46 @@ -348,7 +352,7 @@ 
     29@@ -348,7 +352,7 @@ mtk_nand_check_bch_error(struct mtd_info *mtd, u8 * pDataBuf, u32 u4SecIndex, u3 
    4730                if (0xF == u4ErrNum) { 
    4831                        mtd->ecc_stats.failed++; 
     
    5336                        for (i = 0; i < ((u4ErrNum + 1) >> 1); ++i) { 
    5437                                au4ErrBitLoc[i] = DRV_Reg32(ECC_DECEL0_REG32 + i); 
    55 @@ -1422,7 +1426,7 @@ 
     38@@ -1422,7 +1426,7 @@ mtk_nand_erase_hw(struct mtd_info *mtd, int page) 
    5639 { 
    5740        struct nand_chip *chip = (struct nand_chip *)mtd->priv; 
     
    6245        return chip->waitfunc(mtd, chip); 
    6346 } 
    64 @@ -2094,8 +2098,8 @@ 
     47@@ -2094,8 +2098,8 @@ mtk_nand_probe(struct platform_device *pdev) 
    6548        nand_chip->write_page = mtk_nand_write_page; 
    6649        nand_chip->ecc.write_oob = mtk_nand_write_oob; 
     
    7356        nand_chip->block_bad = mtk_nand_block_bad; 
    7457  
    75 @@ -2175,6 +2179,21 @@ 
     58@@ -2175,6 +2179,21 @@ mtk_nand_probe(struct platform_device *pdev) 
    7659        nand_chip->pagemask = (nand_chip->chipsize >> nand_chip->page_shift) - 1; 
    7760        nand_chip->phys_erase_shift = ffs(mtd->erasesize) - 1; 
     
    9578        nand_chip->badblockpos = 0; 
    9679  
    97 @@ -2251,6 +2270,9 @@ 
     80@@ -2251,6 +2270,9 @@ out: 
    9881        MSG(INIT, "[NFI] mtk_nand_probe fail, err = %d!\n", err); 
    9982        nand_release(mtd); 
     
    10588        nand_disable_clock(); 
    10689        return err; 
    107 @@ -2261,8 +2283,12 @@ 
     90@@ -2261,8 +2283,12 @@ mtk_nand_remove(struct platform_device *pdev) 
    10891 { 
    10992        struct mtk_nand_host *host = platform_get_drvdata(pdev); 
     
    118101        nand_disable_clock(); 
    119102  
    120 diff -urNb a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c 
    121 --- a/drivers/mtd/nand/nand_base.c      2015-11-06 16:44:31.000000000 +0400 
    122 +++ b/drivers/mtd/nand/nand_base.c      2015-11-09 10:24:52.931720862 +0400 
    123 @@ -1575,6 +1575,9 @@ 
     103diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c 
     104index 04dbc69..c5ed6fc 100644 
     105--- a/drivers/mtd/nand/nand_base.c 
     106+++ b/drivers/mtd/nand/nand_base.c 
     107@@ -1592,6 +1592,9 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from, 
    124108                                                 __func__, buf); 
    125109  
     
    131115  
    132116                        /* 
    133 @@ -1593,6 +1596,7 @@ 
     117@@ -1610,6 +1613,7 @@ read_retry: 
    134118                        else 
    135119                                ret = chip->ecc.read_page(mtd, chip, bufpoi, 
     
    139123                                if (use_bufpoi) 
    140124                                        /* Invalidate page cache */ 
    141 @@ -2770,8 +2774,11 @@ 
     125@@ -2786,8 +2790,11 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, 
    142126                if (page <= chip->pagebuf && chip->pagebuf < 
    143127                    (page + pages_per_block)) 
     
    152136                /* 
    153137                 * See if operation failed and additional status checks are 
    154 diff -urNb a/drivers/mtd/nand/nand_device_list.h b/drivers/mtd/nand/nand_device_list.h 
    155 --- a/drivers/mtd/nand/nand_device_list.h       2015-11-06 16:44:31.000000000 +0400 
    156 +++ b/drivers/mtd/nand/nand_device_list.h       2015-11-06 11:13:26.000000000 +0400 
    157 @@ -43,6 +43,8 @@ 
     138diff --git a/drivers/mtd/nand/nand_device_list.h b/drivers/mtd/nand/nand_device_list.h 
     139index 4c36b3a..267fd0c 100644 
     140--- a/drivers/mtd/nand/nand_device_list.h 
     141+++ b/drivers/mtd/nand/nand_device_list.h 
     142@@ -43,6 +43,8 @@ static const flashdev_info gen_FlashTable[]={ 
    158143        {0xADBC, 0x905554, 5, 16, 512, 128, 2048, 64, 0x10801011, "H9DA4GH4JJAMC", 0}, 
    159144     {0x01F1, 0x801D01, 4, 8, 128, 128, 2048, 64, 0x30C77fff, "S34ML01G100TF", 0}, 
     
    164149     {0xC2F1, 0x801DC2, 4, 8, 128, 128, 2048, 64, 0x30C77fff, "MX30LF1G08AA", 0}, 
    165150     {0x98D3, 0x902676, 5, 8, 1024, 256, 4096, 224, 0x00C25332, "TC58NVG3S0F", 0}, 
    166 diff -urNb a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h 
    167 --- a/include/linux/mtd/nand.h  2015-11-06 16:44:30.000000000 +0400 
    168 +++ b/include/linux/mtd/nand.h  2015-11-09 10:18:55.704701886 +0400 
    169 @@ -653,6 +653,10 @@ 
     151diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h 
     152index 272f429..b633b84 100644 
     153--- a/include/linux/mtd/nand.h 
     154+++ b/include/linux/mtd/nand.h 
     155@@ -671,6 +671,10 @@ struct nand_chip { 
    170156        int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, 
    171157                        uint32_t offset, int data_len, const uint8_t *buf, 
     
    178164                        int feature_addr, uint8_t *subfeature_para); 
    179165        int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, 
     166--  
     1671.7.10.4 
     168 
  • trunk/target/linux/ramips/patches-4.3/0041-DT-Add-documentation-for-spi-rt2880.patch

    r47830 r47831  
    1 From 6ed8d03e5f4283b60dffea5c10ff1484141824e7 Mon Sep 17 00:00:00 2001 
     1From da6015e7f19d749f135f7ac55c4ec47b06faa868 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Fri, 9 Aug 2013 20:12:59 +0200 
    4 Subject: [PATCH 49/57] DT: Add documentation for spi-rt2880 
     4Subject: [PATCH 41/53] DT: Add documentation for spi-rt2880 
    55 
    66Describe the SPI master found on the MIPS based Ralink RT2880 SoC. 
     
    1212 create mode 100644 Documentation/devicetree/bindings/spi/spi-rt2880.txt 
    1313 
     14diff --git a/Documentation/devicetree/bindings/spi/spi-rt2880.txt b/Documentation/devicetree/bindings/spi/spi-rt2880.txt 
     15new file mode 100644 
     16index 0000000..068bc90 
    1417--- /dev/null 
    1518+++ b/Documentation/devicetree/bindings/spi/spi-rt2880.txt 
     
    4346+       }; 
    4447+ 
     48--  
     491.7.10.4 
     50 
  • trunk/target/linux/ramips/patches-4.3/0042-SPI-ralink-add-Ralink-SoC-spi-driver.patch

    r47830 r47831  
    1 From fc006d0622ab8c43086b2c9018c03012db332033 Mon Sep 17 00:00:00 2001 
     1From 683af4ebb91a1600df1946ac4769d916b8a1be65 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 11:15:12 +0100 
    4 Subject: [PATCH 50/57] SPI: ralink: add Ralink SoC spi driver 
     4Subject: [PATCH 42/53] SPI: ralink: add Ralink SoC spi driver 
    55 
    66Add the driver needed to make SPI work on Ralink SoC. 
     
    1111 drivers/spi/Kconfig      |    6 + 
    1212 drivers/spi/Makefile     |    1 + 
    13  drivers/spi/spi-rt2880.c |  432 ++++++++++++++++++++++++++++++++++++++++++++++ 
    14  3 files changed, 439 insertions(+) 
     13 drivers/spi/spi-rt2880.c |  530 ++++++++++++++++++++++++++++++++++++++++++++++ 
     14 3 files changed, 537 insertions(+) 
    1515 create mode 100644 drivers/spi/spi-rt2880.c 
    1616 
     17diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig 
     18index 4887f31..7c592ce 100644 
    1719--- a/drivers/spi/Kconfig 
    1820+++ b/drivers/spi/Kconfig 
    19 @@ -433,6 +433,12 @@ config SPI_QUP 
     21@@ -457,6 +457,12 @@ config SPI_QUP 
    2022          This driver can also be built as a module.  If so, the module 
    2123          will be called spi_qup. 
     
    3032        tristate "Samsung S3C24XX series SPI" 
    3133        depends on ARCH_S3C24XX 
     34diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile 
     35index 6a7f6f9..3d690ef 100644 
    3236--- a/drivers/spi/Makefile 
    3337+++ b/drivers/spi/Makefile 
    34 @@ -65,6 +65,7 @@ obj-$(CONFIG_SPI_PXA2XX_PCI)          += spi-pxa 
    35  obj-$(CONFIG_SPI_QUP)                  += spi-qup.o 
     38@@ -68,6 +68,7 @@ obj-$(CONFIG_SPI_QUP)                 += spi-qup.o 
    3639 obj-$(CONFIG_SPI_ROCKCHIP)             += spi-rockchip.o 
     40 obj-$(CONFIG_SPI_RB4XX)                        += spi-rb4xx.o 
    3741 obj-$(CONFIG_SPI_RSPI)                 += spi-rspi.o 
    3842+obj-$(CONFIG_SPI_RT2880)               += spi-rt2880.o 
     
    4044 spi-s3c24xx-hw-y                       := spi-s3c24xx.o 
    4145 spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o 
     46diff --git a/drivers/spi/spi-rt2880.c b/drivers/spi/spi-rt2880.c 
     47new file mode 100644 
     48index 0000000..c286c94 
    4249--- /dev/null 
    4350+++ b/drivers/spi/spi-rt2880.c 
     
    573580+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>"); 
    574581+MODULE_LICENSE("GPL"); 
     582--  
     5831.7.10.4 
     584 
  • trunk/target/linux/ramips/patches-4.3/0043-spi-add-mt7621-support.patch

    r47830 r47831  
     1From 87a5fcd57c577cd94b5b080deb98885077c13a42 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Sun, 27 Jul 2014 09:49:07 +0100 
     4Subject: [PATCH 43/53] spi: add mt7621 support 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 drivers/spi/Kconfig      |    6 + 
     9 drivers/spi/Makefile     |    1 + 
     10 drivers/spi/spi-mt7621.c |  480 ++++++++++++++++++++++++++++++++++++++++++++++ 
     11 3 files changed, 487 insertions(+) 
     12 create mode 100644 drivers/spi/spi-mt7621.c 
     13 
     14diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig 
     15index 7c592ce..2f05c85 100644 
    116--- a/drivers/spi/Kconfig 
    217+++ b/drivers/spi/Kconfig 
    3 @@ -439,6 +439,12 @@ config SPI_RT2880 
     18@@ -463,6 +463,12 @@ config SPI_RT2880 
    419        help 
    520          This selects a driver for the Ralink RT288x/RT305x SPI Controller. 
     
    1429        tristate "Samsung S3C24XX series SPI" 
    1530        depends on ARCH_S3C24XX 
     31diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile 
     32index 3d690ef..5389710 100644 
    1633--- a/drivers/spi/Makefile 
    1734+++ b/drivers/spi/Makefile 
    18 @@ -46,6 +46,7 @@ obj-$(CONFIG_SPI_LM70_LLP)            += spi-lm70l 
    19  obj-$(CONFIG_SPI_MPC512x_PSC)          += spi-mpc512x-psc.o 
     35@@ -49,6 +49,7 @@ obj-$(CONFIG_SPI_MPC512x_PSC)         += spi-mpc512x-psc.o 
    2036 obj-$(CONFIG_SPI_MPC52xx_PSC)          += spi-mpc52xx-psc.o 
    2137 obj-$(CONFIG_SPI_MPC52xx)              += spi-mpc52xx.o 
     38 obj-$(CONFIG_SPI_MT65XX)                += spi-mt65xx.o 
    2239+obj-$(CONFIG_SPI_MT7621)               += spi-mt7621.o 
    2340 obj-$(CONFIG_SPI_MXS)                  += spi-mxs.o 
    2441 obj-$(CONFIG_SPI_NUC900)               += spi-nuc900.o 
    2542 obj-$(CONFIG_SPI_OC_TINY)              += spi-oc-tiny.o 
     43diff --git a/drivers/spi/spi-mt7621.c b/drivers/spi/spi-mt7621.c 
     44new file mode 100644 
     45index 0000000..dedf4a1 
    2646--- /dev/null 
    2747+++ b/drivers/spi/spi-mt7621.c 
     
    507527+MODULE_AUTHOR("Felix Fietkau <nbd@openwrt.org>"); 
    508528+MODULE_LICENSE("GPL"); 
     529--  
     5301.7.10.4 
     531 
  • trunk/target/linux/ramips/patches-4.3/0044-i2c-MIPS-adds-ralink-I2C-driver.patch

    r47830 r47831  
    1 From 225f36695bb07dad9510f9affd79e63f1a44a195 Mon Sep 17 00:00:00 2001 
     1From 723b8beaabf3c3c4b1ce69480141f1e926f3f3b2 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 09:52:56 +0100 
    4 Subject: [PATCH 52/57] i2c: MIPS: adds ralink I2C driver 
     4Subject: [PATCH 44/53] i2c: MIPS: adds ralink I2C driver 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    99 drivers/i2c/busses/Kconfig                         |    4 + 
    1010 drivers/i2c/busses/Makefile                        |    1 + 
    11  drivers/i2c/busses/i2c-ralink.c                    |  274 ++++++++++++++++++++ 
    12  4 files changed, 306 insertions(+) 
     11 drivers/i2c/busses/i2c-ralink.c                    |  327 ++++++++++++++++++++ 
     12 4 files changed, 359 insertions(+) 
    1313 create mode 100644 Documentation/devicetree/bindings/i2c/i2c-ralink.txt 
    1414 create mode 100644 drivers/i2c/busses/i2c-ralink.c 
    1515 
     16diff --git a/Documentation/devicetree/bindings/i2c/i2c-ralink.txt b/Documentation/devicetree/bindings/i2c/i2c-ralink.txt 
     17new file mode 100644 
     18index 0000000..8fa8ac3 
    1619--- /dev/null 
    1720+++ b/Documentation/devicetree/bindings/i2c/i2c-ralink.txt 
     
    4447+       }; 
    4548+}; 
     49diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig 
     50index 08b8617..53d565b 100644 
    4651--- a/drivers/i2c/busses/Kconfig 
    4752+++ b/drivers/i2c/busses/Kconfig 
    48 @@ -711,6 +711,10 @@ config I2C_RK3X 
     53@@ -803,6 +803,10 @@ config I2C_RK3X 
    4954          This driver can also be built as a module. If so, the module will 
    5055          be called i2c-rk3x. 
     
    5762        bool 
    5863        help 
     64diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile 
     65index 6df3b30..2edd32c 100644 
    5966--- a/drivers/i2c/busses/Makefile 
    6067+++ b/drivers/i2c/busses/Makefile 
    61 @@ -66,6 +66,7 @@ obj-$(CONFIG_I2C_PNX)         += i2c-pnx.o 
     68@@ -75,6 +75,7 @@ obj-$(CONFIG_I2C_PNX)         += i2c-pnx.o 
    6269 obj-$(CONFIG_I2C_PUV3)         += i2c-puv3.o 
    6370 obj-$(CONFIG_I2C_PXA)          += i2c-pxa.o 
     
    6774 obj-$(CONFIG_I2C_RIIC)         += i2c-riic.o 
    6875 obj-$(CONFIG_I2C_RK3X)         += i2c-rk3x.o 
     76diff --git a/drivers/i2c/busses/i2c-ralink.c b/drivers/i2c/busses/i2c-ralink.c 
     77new file mode 100644 
     78index 0000000..debfb18 
    6979--- /dev/null 
    7080+++ b/drivers/i2c/busses/i2c-ralink.c 
     
    397407+MODULE_LICENSE("GPL"); 
    398408+MODULE_ALIAS("platform:Ralink-I2C"); 
     409--  
     4101.7.10.4 
     411 
  • trunk/target/linux/ramips/patches-4.3/0045-i2c-add-mt7621-driver.patch

    r47830 r47831  
     1From d5c54ff3d1db0a4348fa04d8e78f3bf6063e3afc Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:21:27 +0100 
     4Subject: [PATCH 45/53] i2c: add mt7621 driver 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 drivers/i2c/busses/Kconfig      |    4 + 
     9 drivers/i2c/busses/Makefile     |    1 + 
     10 drivers/i2c/busses/i2c-mt7621.c |  303 +++++++++++++++++++++++++++++++++++++++ 
     11 3 files changed, 308 insertions(+) 
     12 create mode 100644 drivers/i2c/busses/i2c-mt7621.c 
     13 
     14diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig 
     15index 53d565b..073bfe3 100644 
    116--- a/drivers/i2c/busses/Kconfig 
    217+++ b/drivers/i2c/busses/Kconfig 
    3 @@ -715,6 +715,10 @@ config I2C_RALINK 
     18@@ -807,6 +807,10 @@ config I2C_RALINK 
    419        tristate "Ralink I2C Controller" 
    520        select OF_I2C 
     
    1227        bool 
    1328        help 
     29diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile 
     30index 2edd32c..764e16e 100644 
    1431--- a/drivers/i2c/busses/Makefile 
    1532+++ b/drivers/i2c/busses/Makefile 
    16 @@ -67,6 +67,7 @@ obj-$(CONFIG_I2C_PUV3)                += i2c-puv3.o 
     33@@ -76,6 +76,7 @@ obj-$(CONFIG_I2C_PUV3)                += i2c-puv3.o 
    1734 obj-$(CONFIG_I2C_PXA)          += i2c-pxa.o 
    1835 obj-$(CONFIG_I2C_PXA_PCI)      += i2c-pxa-pci.o 
     
    2239 obj-$(CONFIG_I2C_RIIC)         += i2c-riic.o 
    2340 obj-$(CONFIG_I2C_RK3X)         += i2c-rk3x.o 
     41diff --git a/drivers/i2c/busses/i2c-mt7621.c b/drivers/i2c/busses/i2c-mt7621.c 
     42new file mode 100644 
     43index 0000000..646ca40 
    2444--- /dev/null 
    2545+++ b/drivers/i2c/busses/i2c-mt7621.c 
     
    328348+MODULE_LICENSE("GPL"); 
    329349+MODULE_ALIAS("platform:MT7621-I2C"); 
     350--  
     3511.7.10.4 
     352 
  • trunk/target/linux/ramips/patches-4.3/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch

    r47830 r47831  
    1 From f954801c6f48fc291c39ca8a888dbdfda1021415 Mon Sep 17 00:00:00 2001 
     1From 23147af14531cbdada194b94120ef8774f46292d Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Thu, 13 Nov 2014 19:08:40 +0100 
    4 Subject: [PATCH] mmc: MIPS: ralink: add sdhci for mt7620a SoC 
     4Subject: [PATCH 46/53] mmc: MIPS: ralink: add sdhci for mt7620a SoC 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1212 drivers/mmc/host/mtk-mmc/board.h     |  137 ++ 
    1313 drivers/mmc/host/mtk-mmc/dbg.c       |  347 ++++ 
    14  drivers/mmc/host/mtk-mmc/dbg.h       |  153 ++ 
     14 drivers/mmc/host/mtk-mmc/dbg.h       |  156 ++ 
    1515 drivers/mmc/host/mtk-mmc/mt6575_sd.h | 1001 +++++++++++ 
    16  drivers/mmc/host/mtk-mmc/sd.c        | 3041 ++++++++++++++++++++++++++++++++++ 
    17  9 files changed, 4740 insertions(+) 
     16 drivers/mmc/host/mtk-mmc/sd.c        | 3060 ++++++++++++++++++++++++++++++++++ 
     17 9 files changed, 4762 insertions(+) 
    1818 create mode 100644 drivers/mmc/host/mtk-mmc/Kconfig 
    1919 create mode 100644 drivers/mmc/host/mtk-mmc/Makefile 
     
    2424 create mode 100644 drivers/mmc/host/mtk-mmc/sd.c 
    2525 
     26diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig 
     27index 8a1e349..47833d1 100644 
    2628--- a/drivers/mmc/host/Kconfig 
    2729+++ b/drivers/mmc/host/Kconfig 
    28 @@ -773,3 +773,5 @@ config MMC_SUNXI 
    29         help 
    30           This selects support for the SD/MMC Host Controller on 
    31           Allwinner sunxi SoCs. 
     30@@ -793,3 +793,5 @@ config MMC_MTK 
     31          If you have a machine with a integrated SD/MMC card reader, say Y or M here. 
     32          This is needed if support for any SD/SDIO/MMC devices is required. 
     33          If unsure, say N. 
    3234+ 
    3335+source "drivers/mmc/host/mtk-mmc/Kconfig" 
     36diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile 
     37index 4f3452a..69dd05f 100644 
    3438--- a/drivers/mmc/host/Makefile 
    3539+++ b/drivers/mmc/host/Makefile 
     
    4246 obj-$(CONFIG_MMC_QCOM_DML)     += mmci_qcom_dml.o 
    4347 obj-$(CONFIG_MMC_PXA)          += pxamci.o 
     48diff --git a/drivers/mmc/host/mtk-mmc/Kconfig b/drivers/mmc/host/mtk-mmc/Kconfig 
     49new file mode 100644 
     50index 0000000..a58b0f3 
    4451--- /dev/null 
    4552+++ b/drivers/mmc/host/mtk-mmc/Kconfig 
     
    6168+       depends on MTK_MMC && RALINK_MT7628 
    6269+ 
     70diff --git a/drivers/mmc/host/mtk-mmc/Makefile b/drivers/mmc/host/mtk-mmc/Makefile 
     71new file mode 100644 
     72index 0000000..caead0b 
    6373--- /dev/null 
    6474+++ b/drivers/mmc/host/mtk-mmc/Makefile 
     
    106116+clean: 
    107117+       @rm -f *.o modules.order .*.cmd 
     118diff --git a/drivers/mmc/host/mtk-mmc/board.h b/drivers/mmc/host/mtk-mmc/board.h 
     119new file mode 100644 
     120index 0000000..33bfc7b 
    108121--- /dev/null 
    109122+++ b/drivers/mmc/host/mtk-mmc/board.h 
     
    246259+#endif /* __ARCH_ARM_MACH_BOARD_H */ 
    247260+ 
     261diff --git a/drivers/mmc/host/mtk-mmc/dbg.c b/drivers/mmc/host/mtk-mmc/dbg.c 
     262new file mode 100644 
     263index 0000000..4dc115b 
    248264--- /dev/null 
    249265+++ b/drivers/mmc/host/mtk-mmc/dbg.c 
     
    596612+EXPORT_SYMBOL_GPL(msdc_debug_proc_init); 
    597613+#endif 
     614diff --git a/drivers/mmc/host/mtk-mmc/dbg.h b/drivers/mmc/host/mtk-mmc/dbg.h 
     615new file mode 100644 
     616index 0000000..e58c431 
    598617--- /dev/null 
    599618+++ b/drivers/mmc/host/mtk-mmc/dbg.h 
     
    755774+ 
    756775+#endif 
     776diff --git a/drivers/mmc/host/mtk-mmc/mt6575_sd.h b/drivers/mmc/host/mtk-mmc/mt6575_sd.h 
     777new file mode 100644 
     778index 0000000..e90c4f1 
    757779--- /dev/null 
    758780+++ b/drivers/mmc/host/mtk-mmc/mt6575_sd.h 
     
    17591781+#endif 
    17601782+ 
     1783diff --git a/drivers/mmc/host/mtk-mmc/sd.c b/drivers/mmc/host/mtk-mmc/sd.c 
     1784new file mode 100644 
     1785index 0000000..d240b46 
    17611786--- /dev/null 
    17621787+++ b/drivers/mmc/host/mtk-mmc/sd.c 
     
    48224847+ 
    48234848+EXPORT_SYMBOL(msdc_6575_host); 
     4849--  
     48501.7.10.4 
     4851 
  • trunk/target/linux/ramips/patches-4.3/0047-DMA-ralink-add-rt2880-dma-engine.patch

    r47830 r47831  
    1 From cf93418a4bd5e69f069a65da92537bd4d6191223 Mon Sep 17 00:00:00 2001 
     1From f1c4d9e622c800e1f38b3818f933ec7597d1ccfb Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 09:29:51 +0100 
    4 Subject: [PATCH 54/57] DMA: ralink: add rt2880 dma engine 
     4Subject: [PATCH 47/53] DMA: ralink: add rt2880 dma engine 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    88 drivers/dma/Kconfig       |    6 + 
    99 drivers/dma/Makefile      |    1 + 
    10  drivers/dma/dmaengine.c   |   26 ++ 
    1110 drivers/dma/ralink-gdma.c |  577 +++++++++++++++++++++++++++++++++++++++++++++ 
    1211 include/linux/dmaengine.h |    1 + 
    13  5 files changed, 611 insertions(+) 
     12 4 files changed, 585 insertions(+) 
    1413 create mode 100644 drivers/dma/ralink-gdma.c 
    1514 
     15diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig 
     16index b458475..2d5ae4a 100644 
    1617--- a/drivers/dma/Kconfig 
    1718+++ b/drivers/dma/Kconfig 
    18 @@ -409,6 +409,12 @@ config NBPFAXI_DMA 
    19         help 
    20           Support for "Type-AXI" NBPF DMA IPs from Renesas 
     19@@ -40,6 +40,12 @@ config ASYNC_TX_ENABLE_CHANNEL_SWITCH 
     20 config ARCH_HAS_ASYNC_TX_FIND_CHANNEL 
     21        bool 
    2122  
    2223+config DMA_RALINK 
     
    2930        bool 
    3031  
     32diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile 
     33index 7711a71..b33c434 100644 
    3134--- a/drivers/dma/Makefile 
    3235+++ b/drivers/dma/Makefile 
    33 @@ -49,3 +49,4 @@ obj-y += xilinx/ 
    34  obj-$(CONFIG_INTEL_MIC_X100_DMA) += mic_x100_dma.o 
    35  obj-$(CONFIG_NBPFAXI_DMA) += nbpfaxi.o 
    36  obj-$(CONFIG_DMA_SUN6I) += sun6i-dma.o 
     36@@ -65,5 +65,6 @@ obj-$(CONFIG_TI_DMA_CROSSBAR) += ti-dma-crossbar.o 
     37 obj-$(CONFIG_TI_EDMA) += edma.o 
     38 obj-$(CONFIG_XGENE_DMA) += xgene-dma.o 
     39 obj-$(CONFIG_ZX_DMA) += zx296702_dma.o 
    3740+obj-$(CONFIG_DMA_RALINK) += ralink-gdma.o 
     41  
     42 obj-y += xilinx/ 
     43diff --git a/drivers/dma/ralink-gdma.c b/drivers/dma/ralink-gdma.c 
     44new file mode 100644 
     45index 0000000..2c3cace 
    3846--- /dev/null 
    3947+++ b/drivers/dma/ralink-gdma.c 
     
    616624+MODULE_DESCRIPTION("GDMA4740 DMA driver"); 
    617625+MODULE_LICENSE("GPLv2"); 
     626diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h 
     627index 7ea9184..d371bf1 100644 
    618628--- a/include/linux/dmaengine.h 
    619629+++ b/include/linux/dmaengine.h 
    620 @@ -1058,6 +1058,7 @@ struct dma_chan *dma_request_slave_chann 
    621                                                   const char *name); 
    622  struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name); 
    623  void dma_release_channel(struct dma_chan *chan); 
     630@@ -496,6 +496,7 @@ static inline void dma_set_unmap(struct dma_async_tx_descriptor *tx, 
     631 struct dmaengine_unmap_data * 
     632 dmaengine_get_unmap_data(struct device *dev, int nr, gfp_t flags); 
     633 void dmaengine_unmap_put(struct dmaengine_unmap_data *unmap); 
    624634+struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); 
    625635 #else 
    626  static inline struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type) 
    627  { 
     636 static inline void dma_set_unmap(struct dma_async_tx_descriptor *tx, 
     637                                 struct dmaengine_unmap_data *unmap) 
     638--  
     6391.7.10.4 
     640 
  • trunk/target/linux/ramips/patches-4.3/0048-asoc-add-mt7620-support.patch

    r47830 r47831  
    1 From 241188942603dc73f62cf2553c53cae2235c9957 Mon Sep 17 00:00:00 2001 
     1From 7f29222b1731e8182ba94a331531dec18865a1e4 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 27 Jul 2014 09:31:47 +0100 
    4 Subject: [PATCH 55/57] asoc: add mt7620 support 
     4Subject: [PATCH 48/53] asoc: add mt7620 support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1111 sound/soc/ralink/Kconfig         |   15 ++ 
    1212 sound/soc/ralink/Makefile        |   11 + 
    13  sound/soc/ralink/mt7620-i2s.c    |  466 ++++++++++++++++++++++++++++++++++++++ 
    14  sound/soc/ralink/mt7620-wm8960.c |  125 ++++++++++ 
    15  sound/soc/soc-io.c               |   10 - 
    16  8 files changed, 621 insertions(+), 10 deletions(-) 
     13 sound/soc/ralink/mt7620-i2s.c    |  436 ++++++++++++++++++++++++++++++++++++++ 
     14 sound/soc/ralink/mt7620-wm8960.c |  233 ++++++++++++++++++++ 
     15 7 files changed, 699 insertions(+) 
    1716 create mode 100644 sound/soc/ralink/Kconfig 
    1817 create mode 100644 sound/soc/ralink/Makefile 
     
    2019 create mode 100644 sound/soc/ralink/mt7620-wm8960.c 
    2120 
     21diff --git a/arch/mips/ralink/of.c b/arch/mips/ralink/of.c 
     22index da85bbf..371baa5 100644 
    2223--- a/arch/mips/ralink/of.c 
    2324+++ b/arch/mips/ralink/of.c 
     
    3839  
    3940 __iomem void *plat_of_remap_node(const char *node) 
     41diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig 
     42index 225bfda..76ce95c 100644 
    4043--- a/sound/soc/Kconfig 
    4144+++ b/sound/soc/Kconfig 
    42 @@ -48,6 +48,7 @@ source "sound/soc/intel/Kconfig" 
    43  source "sound/soc/mxs/Kconfig" 
     45@@ -53,6 +53,7 @@ source "sound/soc/mxs/Kconfig" 
    4446 source "sound/soc/pxa/Kconfig" 
     47 source "sound/soc/qcom/Kconfig" 
    4548 source "sound/soc/rockchip/Kconfig" 
    4649+source "sound/soc/ralink/Kconfig" 
     
    4851 source "sound/soc/sh/Kconfig" 
    4952 source "sound/soc/sirf/Kconfig" 
     53diff --git a/sound/soc/Makefile b/sound/soc/Makefile 
     54index 134aca1..e9d8e0e 100644 
    5055--- a/sound/soc/Makefile 
    5156+++ b/sound/soc/Makefile 
    52 @@ -25,6 +25,7 @@ obj-$(CONFIG_SND_SOC) += omap/ 
    53  obj-$(CONFIG_SND_SOC)  += kirkwood/ 
     57@@ -35,6 +35,7 @@ obj-$(CONFIG_SND_SOC) += kirkwood/ 
    5458 obj-$(CONFIG_SND_SOC)  += pxa/ 
     59 obj-$(CONFIG_SND_SOC)  += qcom/ 
    5560 obj-$(CONFIG_SND_SOC)  += rockchip/ 
    5661+obj-$(CONFIG_SND_SOC)  += ralink/ 
     
    5863 obj-$(CONFIG_SND_SOC)  += sh/ 
    5964 obj-$(CONFIG_SND_SOC)  += sirf/ 
     65diff --git a/sound/soc/ralink/Kconfig b/sound/soc/ralink/Kconfig 
     66new file mode 100644 
     67index 0000000..d462622 
    6068--- /dev/null 
    6169+++ b/sound/soc/ralink/Kconfig 
     
    7684+         Say Y if you want to add support for ASoC audio on the Qi LB60 board 
    7785+         a.k.a Qi Ben NanoNote. 
     86diff --git a/sound/soc/ralink/Makefile b/sound/soc/ralink/Makefile 
     87new file mode 100644 
     88index 0000000..3d79980 
    7889--- /dev/null 
    7990+++ b/sound/soc/ralink/Makefile 
     
    90101+ 
    91102+obj-$(CONFIG_SND_MT7620_SOC_WM8960) += snd-soc-mt7620-wm8960.o 
     103diff --git a/sound/soc/ralink/mt7620-i2s.c b/sound/soc/ralink/mt7620-i2s.c 
     104new file mode 100644 
     105index 0000000..2ce9b21 
    92106--- /dev/null 
    93107+++ b/sound/soc/ralink/mt7620-i2s.c 
     
    529543+MODULE_LICENSE("GPL"); 
    530544+MODULE_ALIAS("platform:mt7620-i2s"); 
     545diff --git a/sound/soc/ralink/mt7620-wm8960.c b/sound/soc/ralink/mt7620-wm8960.c 
     546new file mode 100644 
     547index 0000000..3389988 
    531548--- /dev/null 
    532549+++ b/sound/soc/ralink/mt7620-wm8960.c 
     
    765782+MODULE_LICENSE("GPL v2"); 
    766783+MODULE_ALIAS("platform:mt7620-wm8962"); 
     784--  
     7851.7.10.4 
     786 
  • trunk/target/linux/ramips/patches-4.3/0049-watchdog-add-MT7621-support.patch

    r47830 r47831  
    1 From 6a42dd698ddf91b6e9902b17e21dc13c6ae412ff Mon Sep 17 00:00:00 2001 
     1From 77fe64de72317c0e090d82056e7a6a073f2972b4 Mon Sep 17 00:00:00 2001 
    22From: John Crispin <blogic@openwrt.org> 
    33Date: Sun, 16 Mar 2014 05:24:42 +0000 
    4 Subject: [PATCH 56/57] watchdog: add MT7621 support 
     4Subject: [PATCH 49/53] watchdog: add MT7621 support 
    55 
    66Signed-off-by: John Crispin <blogic@openwrt.org> 
     
    1212 create mode 100644 drivers/watchdog/mt7621_wdt.c 
    1313 
     14diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig 
     15index 79e1aa1..0710aa1 100644 
    1416--- a/drivers/watchdog/Kconfig 
    1517+++ b/drivers/watchdog/Kconfig 
    16 @@ -1257,6 +1257,13 @@ config RALINK_WDT 
     18@@ -1337,6 +1337,13 @@ config RALINK_WDT 
    1719        help 
    1820          Hardware driver for the Ralink SoC Watchdog Timer. 
     
    2830  
    2931 # POWERPC Architecture 
     32diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile 
     33index 0c616e3..4d3b4b1 100644 
    3034--- a/drivers/watchdog/Makefile 
    3135+++ b/drivers/watchdog/Makefile 
    32 @@ -143,6 +143,7 @@ obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o 
    33  octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o 
    34  obj-$(CONFIG_LANTIQ_WDT) += lantiq_wdt.o 
    35  obj-$(CONFIG_RALINK_WDT) += rt2880_wdt.o 
     36@@ -68,6 +68,7 @@ obj-$(CONFIG_MESON_WATCHDOG) += meson_wdt.o 
     37 obj-$(CONFIG_MEDIATEK_WATCHDOG) += mtk_wdt.o 
     38 obj-$(CONFIG_DIGICOLOR_WATCHDOG) += digicolor_wdt.o 
     39 obj-$(CONFIG_LPC18XX_WATCHDOG) += lpc18xx_wdt.o 
    3640+obj-$(CONFIG_MT7621_WDT) += mt7621_wdt.o 
    3741  
    38  # PARISC Architecture 
    39   
     42 # AVR32 Architecture 
     43 obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o 
     44diff --git a/drivers/watchdog/mt7621_wdt.c b/drivers/watchdog/mt7621_wdt.c 
     45new file mode 100644 
     46index 0000000..ec2c897 
    4047--- /dev/null 
    4148+++ b/drivers/watchdog/mt7621_wdt.c 
     
    226233+MODULE_LICENSE("GPL v2"); 
    227234+MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); 
     235--  
     2361.7.10.4 
     237 
  • trunk/target/linux/ramips/patches-4.3/0050-alsa-add-ralink-sdk-driver.patch

    r47830 r47831  
     1From f98ffa1f01240407e39c1b53135312db73f044c6 Mon Sep 17 00:00:00 2001 
     2From: John Crispin <blogic@openwrt.org> 
     3Date: Mon, 7 Dec 2015 17:30:48 +0100 
     4Subject: [PATCH 50/53] alsa: add ralink sdk driver 
     5 
     6Signed-off-by: John Crispin <blogic@openwrt.org> 
     7--- 
     8 sound/soc/Kconfig              |    1 + 
     9 sound/soc/Makefile             |    1 + 
     10 sound/soc/codecs/Kconfig       |    2 +- 
     11 sound/soc/codecs/wm8960.c      |  120 +- 
     12 sound/soc/codecs/wm8960.h      |   64 + 
     13 sound/soc/mtk/Kconfig          |   35 + 
     14 sound/soc/mtk/Makefile         |   39 + 
     15 sound/soc/mtk/i2c_wm8960.c     |  492 ++++++ 
     16 sound/soc/mtk/i2c_wm8960.h     |  288 ++++ 
     17 sound/soc/mtk/i2s_ctrl.c       | 3524 ++++++++++++++++++++++++++++++++++++++++ 
     18 sound/soc/mtk/i2s_ctrl.h       |  523 ++++++ 
     19 sound/soc/mtk/i2s_debug.c      |  698 ++++++++ 
     20 sound/soc/mtk/mt76xx_i2s.c     |  304 ++++ 
     21 sound/soc/mtk/mt76xx_i2s.h     |   18 + 
     22 sound/soc/mtk/mt76xx_machine.c |  317 ++++ 
     23 sound/soc/mtk/mt76xx_machine.h |   21 + 
     24 sound/soc/mtk/mt76xx_pcm.c     |  499 ++++++ 
     25 sound/soc/mtk/ralink_gdma.c    |  918 +++++++++++ 
     26 sound/soc/mtk/ralink_gdma.h    |  326 ++++ 
     27 sound/soc/soc-core.c           |    3 +- 
     28 20 files changed, 8174 insertions(+), 19 deletions(-) 
     29 create mode 100644 sound/soc/mtk/Kconfig 
     30 create mode 100644 sound/soc/mtk/Makefile 
     31 create mode 100644 sound/soc/mtk/i2c_wm8960.c 
     32 create mode 100644 sound/soc/mtk/i2c_wm8960.h 
     33 create mode 100644 sound/soc/mtk/i2s_ctrl.c 
     34 create mode 100644 sound/soc/mtk/i2s_ctrl.h 
     35 create mode 100644 sound/soc/mtk/i2s_debug.c 
     36 create mode 100644 sound/soc/mtk/mt76xx_i2s.c 
     37 create mode 100644 sound/soc/mtk/mt76xx_i2s.h 
     38 create mode 100644 sound/soc/mtk/mt76xx_machine.c 
     39 create mode 100644 sound/soc/mtk/mt76xx_machine.h 
     40 create mode 100644 sound/soc/mtk/mt76xx_pcm.c 
     41 create mode 100644 sound/soc/mtk/ralink_gdma.c 
     42 create mode 100644 sound/soc/mtk/ralink_gdma.h 
     43 
     44diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig 
     45index 76ce95c..09aa2c7 100644 
    146--- a/sound/soc/Kconfig 
    247+++ b/sound/soc/Kconfig 
    3 @@ -56,6 +56,7 @@ source "sound/soc/spear/Kconfig" 
    4  source "sound/soc/tegra/Kconfig" 
    5  source "sound/soc/txx9/Kconfig" 
     48@@ -64,6 +64,7 @@ source "sound/soc/txx9/Kconfig" 
    649 source "sound/soc/ux500/Kconfig" 
     50 source "sound/soc/xtensa/Kconfig" 
     51 source "sound/soc/zte/Kconfig" 
    752+source "sound/soc/mtk/Kconfig" 
    853  
    954 # Supported codecs 
    1055 source "sound/soc/codecs/Kconfig" 
     56diff --git a/sound/soc/Makefile b/sound/soc/Makefile 
     57index e9d8e0e..a3c6b43 100644 
    1158--- a/sound/soc/Makefile 
    1259+++ b/sound/soc/Makefile 
    13 @@ -33,3 +33,4 @@ obj-$(CONFIG_SND_SOC) += spear/ 
    14  obj-$(CONFIG_SND_SOC)  += tegra/ 
    15  obj-$(CONFIG_SND_SOC)  += txx9/ 
     60@@ -46,3 +46,4 @@ obj-$(CONFIG_SND_SOC) += txx9/ 
    1661 obj-$(CONFIG_SND_SOC)  += ux500/ 
     62 obj-$(CONFIG_SND_SOC)  += xtensa/ 
     63 obj-$(CONFIG_SND_SOC)  += zte/ 
    1764+obj-$(CONFIG_SND_SOC)   += mtk/ 
     65diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig 
     66index 0c9733e..276a4c5 100644 
    1867--- a/sound/soc/codecs/Kconfig 
    1968+++ b/sound/soc/codecs/Kconfig 
    20 @@ -725,7 +725,7 @@ config SND_SOC_WM8955 
     69@@ -816,7 +816,7 @@ config SND_SOC_WM8955 
    2170        tristate 
    2271  
     
    2776 config SND_SOC_WM8961 
    2877        tristate 
     78diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c 
     79index dbd8840..3118f5c 100644 
     80--- a/sound/soc/codecs/wm8960.c 
     81+++ b/sound/soc/codecs/wm8960.c 
     82@@ -27,6 +27,7 @@ 
     83 #include <sound/wm8960.h> 
     84  
     85 #include "wm8960.h" 
     86+#include "../mtk/i2c_wm8960.h" 
     87  
     88 /* R25 - Power 1 */ 
     89 #define WM8960_VMID_MASK 0x180 
     90@@ -57,10 +58,10 @@ static int wm8960_set_pll(struct snd_soc_codec *codec, 
     91  * using 2 wire for device control, so we cache them instead. 
     92  */ 
     93 static const struct reg_default wm8960_reg_defaults[] = { 
     94-       {  0x0, 0x00a7 }, 
     95-       {  0x1, 0x00a7 }, 
     96-       {  0x2, 0x0000 }, 
     97-       {  0x3, 0x0000 }, 
     98+       {  0x0, 0x002b }, 
     99+       {  0x1, 0x002b }, 
     100+       {  0x2, 0x00ff }, 
     101+       {  0x3, 0x00ff }, 
     102        {  0x4, 0x0000 }, 
     103        {  0x5, 0x0008 }, 
     104        {  0x6, 0x0000 }, 
     105@@ -92,8 +93,8 @@ static const struct reg_default wm8960_reg_defaults[] = { 
     106        { 0x25, 0x0050 }, 
     107        { 0x26, 0x0000 }, 
     108        { 0x27, 0x0000 }, 
     109-       { 0x28, 0x0000 }, 
     110-       { 0x29, 0x0000 }, 
     111+       { 0x28, 0x007b }, 
     112+       { 0x29, 0x007b }, 
     113        { 0x2a, 0x0040 }, 
     114        { 0x2b, 0x0000 }, 
     115        { 0x2c, 0x0000 }, 
     116@@ -138,7 +139,15 @@ struct wm8960_priv { 
     117        struct wm8960_data pdata; 
     118 }; 
     119  
     120+#if 1 
     121+#define wm8960_reset(c)        do{ \ 
     122+       int i = 0;\ 
     123+       snd_soc_write(c, WM8960_RESET, 0);\ 
     124+       for(i = 0; i < 1000*HZ; i++);\ 
     125+       }while(0) 
     126+#else 
     127 #define wm8960_reset(c)        regmap_write(c, WM8960_RESET, 0) 
     128+#endif 
     129  
     130 /* enumerated controls */ 
     131 static const char *wm8960_polarity[] = {"No Inversion", "Left Inverted", 
     132@@ -192,8 +201,8 @@ static int wm8960_get_deemph(struct snd_kcontrol *kcontrol, 
     133        struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); 
     134        struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); 
     135  
     136-       ucontrol->value.integer.value[0] = wm8960->deemph; 
     137-       return 0; 
     138+       //ucontrol->value.integer.value[0] = wm8960->deemph; 
     139+       return wm8960->deemph; 
     140 } 
     141  
     142 static int wm8960_put_deemph(struct snd_kcontrol *kcontrol, 
     143@@ -211,6 +220,71 @@ static int wm8960_put_deemph(struct snd_kcontrol *kcontrol, 
     144        return wm8960_set_deemph(codec); 
     145 } 
     146  
     147+static int wm8960_preinit(struct snd_soc_codec *codec) 
     148+{ 
     149+       //printk("****** %s ******\n", __func__); 
     150+       snd_soc_write(codec, WM8960_RESET, 0); 
     151+       mdelay(500); 
     152+ 
     153+       return 0; 
     154+} 
     155+ 
     156+static int wm8960_postinit(struct snd_soc_codec *codec) 
     157+{ 
     158+       u32 data; 
     159+       //printk("****** %s ******\n", __func__); 
     160+       // In 
     161+       data = snd_soc_read(codec, WM8960_POWER1); 
     162+       snd_soc_write(codec, WM8960_POWER1, data|WM8960_PWR1_ADCL|WM8960_PWR1_ADCR|WM8960_PWR1_AINL |WM8960_PWR1_AINR|WM8960_PWR1_MICB);//0x19 
     163+       data = snd_soc_read(codec, WM8960_ADDCTL1); 
     164+       snd_soc_write(codec, WM8960_ADDCTL1, data|ADDITIONAL1_DATSEL(0x01));//0x17 
     165+       snd_soc_write(codec, WM8960_LADC, LEFTGAIN_LDVU|LEFTGAIN_LDACVOL(0xc3));//0x15 
     166+       snd_soc_write(codec, WM8960_RADC, LEFTGAIN_LDVU|LEFTGAIN_LDACVOL(0xc3));//0x16 
     167+       snd_soc_write(codec, WM8960_LINPATH, 0x148);//0x20 
     168+       snd_soc_write(codec, WM8960_RINPATH, 0x148);//0x21 
     169+       snd_soc_write(codec, WM8960_POWER3, WM8960_PWR3_LMIC|WM8960_PWR3_RMIC);//0x2f 
     170+ 
     171+       // Out 
     172+       data = snd_soc_read(codec, WM8960_POWER2); 
     173+       snd_soc_write(codec, WM8960_POWER2, data|WM8960_PWR2_DACL|WM8960_PWR2_DACR|WM8960_PWR2_LOUT1|WM8960_PWR2_ROUT1|WM8960_PWR2_SPKL|WM8960_PWR2_SPKR);//0x1a 
     174+       mdelay(10); 
     175+       snd_soc_write(codec, WM8960_IFACE2, 0x40); 
     176+       snd_soc_write(codec, WM8960_LDAC, LEFTGAIN_LDVU|LEFTGAIN_LDACVOL(0xff));//0x0a 
     177+       snd_soc_write(codec, WM8960_RDAC, RIGHTGAIN_RDVU|RIGHTGAIN_RDACVOL(0xff));//0x0b 
     178+       snd_soc_write(codec, WM8960_LOUTMIX, 0x100);//0x22 
     179+       snd_soc_write(codec, WM8960_ROUTMIX, 0x100);//0x25 
     180+ 
     181+       data = snd_soc_read(codec, WM8960_POWER3); 
     182+       snd_soc_write(codec, WM8960_POWER3, data|WM8960_PWR3_ROMIX|WM8960_PWR3_LOMIX);//0x2f 
     183+ 
     184+       snd_soc_write(codec, WM8960_CLASSD1, 0xf7);//0x31 
     185+       snd_soc_write(codec, WM8960_CLASSD3, 0xad);//0x33 
     186+       snd_soc_write(codec, WM8960_DACCTL1,  0x000);//0x05 
     187+ 
     188+       data = snd_soc_read(codec, WM8960_POWER1); 
     189+       snd_soc_write(codec, WM8960_POWER1,  data|0x1c0);//0x19 
     190+ 
     191+ 
     192+       snd_soc_write(codec, WM8960_LOUT1, LOUT1_LO1VU|LOUT1_LO1ZC|LOUT1_LOUT1VOL(115));//0x02 
     193+       snd_soc_write(codec, WM8960_ROUT1, ROUT1_RO1VU|ROUT1_RO1ZC|ROUT1_ROUT1VOL(115));//0x03 
     194+ 
     195+       snd_soc_write(codec, WM8960_LINVOL, LINV_IPVU|LINV_LINVOL(110)); //LINV(0x00)=>0x12b 
     196+       snd_soc_write(codec, WM8960_RINVOL, RINV_IPVU|RINV_RINVOL(110)); //LINV(0x01)=>0x12b 
     197+ 
     198+       return 0; 
     199+} 
     200+ 
     201+static int wm8960_close(struct snd_soc_codec *codec) 
     202+{ 
     203+       snd_soc_write(codec, WM8960_DACCTL1,0x8); //0x05->0x08 
     204+       snd_soc_write(codec, WM8960_POWER1, 0x000); //0x19->0x000 
     205+       mdelay(300); 
     206+       snd_soc_write(codec, WM8960_POWER2, 0x000); //0x1a->0x000 
     207+ 
     208+       return 0; 
     209+} 
     210+ 
     211+ 
     212 static const DECLARE_TLV_DB_SCALE(adc_tlv, -9750, 50, 1); 
     213 static const DECLARE_TLV_DB_SCALE(inpga_tlv, -1725, 75, 0); 
     214 static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1); 
     215@@ -563,6 +637,7 @@ static int wm8960_set_dai_fmt(struct snd_soc_dai *codec_dai, 
     216  
     217        /* set iface */ 
     218        snd_soc_write(codec, WM8960_IFACE1, iface); 
     219+       wm8960_postinit(codec); 
     220        return 0; 
     221 } 
     222  
     223@@ -809,9 +884,10 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec, 
     224                        ret = wm8960_configure_clocking(codec); 
     225                        if (ret) 
     226                                return ret; 
     227- 
     228+#if 0 
     229                        /* Set VMID to 2x50k */ 
     230                        snd_soc_update_bits(codec, WM8960_POWER1, 0x180, 0x80); 
     231+#endif 
     232                        break; 
     233  
     234                case SND_SOC_BIAS_ON: 
     235@@ -852,12 +928,16 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec, 
     236                        /* Disable anti-pop features */ 
     237                        snd_soc_write(codec, WM8960_APOP1, WM8960_BUFIOEN); 
     238                } 
     239- 
     240+#if 0 
     241                /* Set VMID to 2x250k */ 
     242                snd_soc_update_bits(codec, WM8960_POWER1, 0x180, 0x100); 
     243+#endif 
     244                break; 
     245  
     246        case SND_SOC_BIAS_OFF: 
     247+#if 1 
     248+               wm8960_close(codec); 
     249+#else 
     250                /* Enable anti-pop features */ 
     251                snd_soc_write(codec, WM8960_APOP1, 
     252                             WM8960_POBCTRL | WM8960_SOFT_ST | 
     253@@ -866,6 +946,7 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec, 
     254                /* Disable VMID and VREF, let them discharge */ 
     255                snd_soc_write(codec, WM8960_POWER1, 0); 
     256                msleep(600); 
     257+#endif 
     258                break; 
     259        } 
     260  
     261@@ -1101,10 +1182,15 @@ static int wm8960_set_pll(struct snd_soc_codec *codec, 
     262  
     263        if (pll_div.k) { 
     264                reg |= 0x20; 
     265- 
     266+#if 1 
     267                snd_soc_write(codec, WM8960_PLL2, (pll_div.k >> 16) & 0xff); 
     268                snd_soc_write(codec, WM8960_PLL3, (pll_div.k >> 8) & 0xff); 
     269                snd_soc_write(codec, WM8960_PLL4, pll_div.k & 0xff); 
     270+#else 
     271+               snd_soc_write(codec, WM8960_PLL2, (pll_div.k >> 16) & 0xff); 
     272+               snd_soc_write(codec, WM8960_PLL3, (pll_div.k >> 8) & 0xff); 
     273+               snd_soc_write(codec, WM8960_PLL4, pll_div.k & 0xff); 
     274+#endif 
     275        } 
     276        snd_soc_write(codec, WM8960_PLL1, reg); 
     277  
     278@@ -1150,7 +1236,11 @@ static int wm8960_set_dai_clkdiv(struct snd_soc_dai *codec_dai, 
     279                snd_soc_write(codec, WM8960_PLL1, reg | div); 
     280                break; 
     281        case WM8960_DCLKDIV: 
     282+#if 1 
     283                reg = snd_soc_read(codec, WM8960_CLOCK2) & 0x03f; 
     284+#else 
     285+               reg = snd_soc_read(codec, WM8960_CLOCK2) & 0x03f; 
     286+#endif 
     287                snd_soc_write(codec, WM8960_CLOCK2, reg | div); 
     288                break; 
     289        case WM8960_TOCLKSEL: 
     290@@ -1285,7 +1375,7 @@ static int wm8960_i2c_probe(struct i2c_client *i2c, 
     291 { 
     292        struct wm8960_data *pdata = dev_get_platdata(&i2c->dev); 
     293        struct wm8960_priv *wm8960; 
     294-       int ret; 
     295+       int ret - 0; 
     296  
     297        wm8960 = devm_kzalloc(&i2c->dev, sizeof(struct wm8960_priv), 
     298                              GFP_KERNEL); 
     299@@ -1307,11 +1397,7 @@ static int wm8960_i2c_probe(struct i2c_client *i2c, 
     300        else if (i2c->dev.of_node) 
     301                wm8960_set_pdata_from_of(i2c, &wm8960->pdata); 
     302  
     303-       ret = wm8960_reset(wm8960->regmap); 
     304-       if (ret != 0) { 
     305-               dev_err(&i2c->dev, "Failed to issue reset\n"); 
     306-               return ret; 
     307-       } 
     308+       wm8960_reset(wm8960->regmap); 
     309  
     310        if (wm8960->pdata.shared_lrclk) { 
     311                ret = regmap_update_bits(wm8960->regmap, WM8960_ADDCTL2, 
     312diff --git a/sound/soc/codecs/wm8960.h b/sound/soc/codecs/wm8960.h 
     313index ab3220d..5205deb 100644 
     314--- a/sound/soc/codecs/wm8960.h 
     315+++ b/sound/soc/codecs/wm8960.h 
     316@@ -111,4 +111,68 @@ 
     317 #define WM8960_OPCLK_DIV_5_5           (4 << 0) 
     318 #define WM8960_OPCLK_DIV_6             (5 << 0) 
     319  
     320+/* 
     321+ * WM8960 Power management 
     322+  */ 
     323+#define WM8960_PWR1_VMIDSEL_DISABLED    (0 << 7) 
     324+#define WM8960_PWR1_VMIDSEL_50K         (1 << 7) 
     325+#define WM8960_PWR1_VMIDSEL_250K        (2 << 7) 
     326+#define WM8960_PWR1_VMIDSEL_5K          (3 << 7) 
     327+#define WM8960_PWR1_VREF                (1 << 6) 
     328+#define WM8960_PWR1_AINL                (1 << 5) 
     329+#define WM8960_PWR1_AINR                (1 << 4) 
     330+#define WM8960_PWR1_ADCL                (1 << 3) 
     331+#define WM8960_PWR1_ADCR                (1 << 2) 
     332+#define WM8960_PWR1_MICB                (1 << 1) 
     333+#define WM8960_PWR1_DIGENB              (1 << 0) 
     334+ 
     335+#define WM8960_PWR2_DACL                (1 << 8) 
     336+#define WM8960_PWR2_DACR                (1 << 7) 
     337+//#define WM8960_PWR2_LOUT1               (1 << 6) 
     338+//#define WM8960_PWR2_ROUT1               (1 << 5) 
     339+#define WM8960_PWR2_SPKL                (1 << 4) 
     340+#define WM8960_PWR2_SPKR                (1 << 3) 
     341+//#define WM8960_PWR2_OUT3                (1 << 1) 
     342+#define WM8960_PWR2_PLL_EN              (1 << 0) 
     343+ 
     344+#define WM8960_PWR3_LMIC                                (1 << 5) 
     345+#define WM8960_PWR3_RMIC                                (1 << 4) 
     346+#define WM8960_PWR3_LOMIX                               (1 << 3) 
     347+#define WM8960_PWR3_ROMIX                               (1 << 2) 
     348+ 
     349+#define LEFTGAIN                        0x0a 
     350+#define LEFTGAIN_LDVU                   (1 << 8) 
     351+#define LEFTGAIN_LDACVOL(x)             ((x) & 0xff) 
     352+ 
     353+#define RIGHTGAIN                       0x0b 
     354+#define RIGHTGAIN_RDVU                  (1 << 8) 
     355+#define RIGHTGAIN_RDACVOL(x)            ((x) & 0xff) 
     356+ 
     357+#define ADDITIONAL1_DATSEL(x)           (((x) & 0x3) << 2) 
     358+ 
     359+#define AINTFCE1_WL_32                  (3 << 2) 
     360+#define AINTFCE1_WL_24                  (2 << 2) 
     361+#define AINTFCE1_WL_20                  (1 << 2) 
     362+#define AINTFCE1_WL_16                  (0 << 2) 
     363+#define AINTFCE1_FORMAT_I2S             (2 << 0) 
     364+ 
     365+#define LOUT1_LO1VU                     (1 << 8) 
     366+#define LOUT1_LO1ZC                     (1 << 7) 
     367+#define LOUT1_LOUT1VOL(x)               ((x) & 0x7f) 
     368+ 
     369+#define ROUT1_RO1VU                     (1 << 8) 
     370+#define ROUT1_RO1ZC                     (1 << 7) 
     371+#define ROUT1_ROUT1VOL(x)               ((x) & 0x7f) 
     372+ 
     373+#define LINV_IPVU                       (1 << 8)  /* FIXME */ 
     374+ 
     375+#define LINV_LINMUTE                    (1 << 7) 
     376+#define LINV_LIZC                       (1 << 6) 
     377+#define LINV_LINVOL(x)                  ((x) & 0x3f) 
     378+ 
     379+#define RINV_IPVU                       (1 << 8) /* FIXME */ 
     380+#define RINV_RINMUTE                    (1 << 7) 
     381+#define RINV_RIZC                       (1 << 6) 
     382+#define RINV_RINVOL(x)                  ((x) & 0x3f) 
     383+ 
     384 #endif 
     385diff --git a/sound/soc/mtk/Kconfig b/sound/soc/mtk/Kconfig 
     386new file mode 100644 
     387index 0000000..26d2531 
    29388--- /dev/null 
    30389+++ b/sound/soc/mtk/Kconfig 
     
    65424+       depends on SND_MT76XX_SOC 
    66425+ 
     426diff --git a/sound/soc/mtk/Makefile b/sound/soc/mtk/Makefile 
     427new file mode 100644 
     428index 0000000..00b3dff 
    67429--- /dev/null 
    68430+++ b/sound/soc/mtk/Makefile 
     
    107469+ 
    108470+ 
     471diff --git a/sound/soc/mtk/i2c_wm8960.c b/sound/soc/mtk/i2c_wm8960.c 
     472new file mode 100644 
     473index 0000000..70f16e1 
    109474--- /dev/null 
    110475+++ b/sound/soc/mtk/i2c_wm8960.c 
     
    602967+MODULE_LICENSE("GPL"); 
    603968+ 
     969diff --git a/sound/soc/mtk/i2c_wm8960.h b/sound/soc/mtk/i2c_wm8960.h 
     970new file mode 100644 
     971index 0000000..c769345 
    604972--- /dev/null 
    605973+++ b/sound/soc/mtk/i2c_wm8960.h 
     
    8931261+ 
    8941262+#endif /* _WM875x_H */ 
     1263diff --git a/sound/soc/mtk/i2s_ctrl.c b/sound/soc/mtk/i2s_ctrl.c 
     1264new file mode 100644 
     1265index 0000000..05034b0 
    8951266--- /dev/null 
    8961267+++ b/sound/soc/mtk/i2s_ctrl.c 
     
    44204791+module_param (i2sdrv_major, int, 0); 
    44214792+#endif 
     4793diff --git a/sound/soc/mtk/i2s_ctrl.h b/sound/soc/mtk/i2s_ctrl.h 
     4794new file mode 100644 
     4795index 0000000..b762c9c 
    44224796--- /dev/null 
    44234797+++ b/sound/soc/mtk/i2s_ctrl.h 
     
    49465320+#endif /* __RALINK_I2S_H_ */ 
    49475321+ 
    4948 --- /dev/null 
    4949 +++ b/sound/soc/mtk/mt76xx_i2s.c 
    4950 @@ -0,0 +1,304 @@ 
    4951 +/* 
    4952 + * mtk_audio_drv.c 
    4953 + * 
    4954 + *  Created on: 2013/8/20 
    4955 + *      Author: MTK04880 
    4956 + */ 
    4957 +#include <linux/init.h> 
    4958 +#include <linux/version.h> 
    4959 +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,35) 
    4960 +#include <linux/sched.h> 
    4961 +#endif 
    4962 +#include <linux/module.h> 
    4963 +#include <linux/kernel.h> /* printk() */ 
    4964 +#include <linux/slab.h> /* kmalloc() */ 
    4965 +#include <linux/fs.h> /* everything... */ 
    4966 +#include <linux/errno.h> /* error codes */ 
    4967 +#include <linux/types.h> /* size_t */ 
    4968 +#include <linux/proc_fs.h> 
    4969 +#include <linux/fcntl.h> /* O_ACCMODE */ 
    4970 +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,36) 
    4971 +#include <asm/system.h> /* cli(), *_flags */ 
    4972 +#endif 
    4973 +#include <asm/uaccess.h> /* copy_from/to_user */ 
    4974 +#include <linux/interrupt.h> 
    4975 +#include <linux/mm.h> 
    4976 +#include <linux/dma-mapping.h> 
    4977 +#include <sound/core.h> 
    4978 +#include <linux/pci.h> 
    4979 +#include <sound/pcm.h> 
    4980 +#include <sound/pcm_params.h> 
    4981 +#include <sound/soc.h> 
    4982 +#include <sound/soc-dapm.h> 
    4983 +#include <sound/initval.h> 
    4984 +#include "ralink_gdma.h" 
    4985 +#include "mt76xx_i2s.h" 
    4986 + 
    4987 +/****************************/ 
    4988 +/*GLOBAL VARIABLE DEFINITION*/ 
    4989 +/****************************/ 
    4990 +extern i2s_config_type* pi2s_config; 
    4991 + 
    4992 +/****************************/ 
    4993 +/*FUNCTION DECLRATION          */ 
    4994 +/****************************/ 
    4995 +static int mt76xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai,\ 
    4996 +               unsigned int fmt); 
    4997 + 
    4998 +//static int  mt76xx_i2s_shutdown(struct snd_pcm_substream *substream, 
    4999 +//                    struct snd_soc_dai *dai); 
    5000 +static int  mt76xx_i2s_startup(struct snd_pcm_substream *substream, 
    5001 +                      struct snd_soc_dai *dai); 
    5002 +static int mt76xx_i2s_hw_params(struct snd_pcm_substream *substream,\ 
    5003 +                               struct snd_pcm_hw_params *params,\ 
    5004 +                               struct snd_soc_dai *dai); 
    5005 +static int mt76xx_i2s_play_prepare(struct snd_pcm_substream *substream,struct snd_soc_dai *dai); 
    5006 +static int mt76xx_i2s_rec_prepare(struct snd_pcm_substream *substream,struct snd_soc_dai *dai); 
    5007 +static int mt76xx_i2s_hw_free(struct snd_pcm_substream *substream,struct snd_soc_dai *dai); 
    5008 +static int mt76xx_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai); 
    5009 + 
    5010 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,20) 
    5011 +static int mt76xx_i2s_drv_probe(struct platform_device *pdev); 
    5012 +static int mt76xx_i2s_drv_remove(struct platform_device *pdev); 
    5013 +#endif 
    5014 +/****************************/ 
    5015 +/*STRUCTURE DEFINITION         */ 
    5016 +/****************************/ 
    5017 + 
    5018 + 
    5019 +static struct snd_soc_dai_ops mt76xx_i2s_dai_ops = { 
    5020 +       .startup   = mt76xx_i2s_startup, 
    5021 +       .hw_params = mt76xx_i2s_hw_params, 
    5022 +       .hw_free   = mt76xx_i2s_hw_free, 
    5023 +       //.shutdown = mt76xx_i2s_shutdown, 
    5024 +       .prepare   = mt76xx_i2s_prepare, 
    5025 +       .set_fmt   = mt76xx_i2s_set_fmt, 
    5026 +       //.set_sysclk = mt76xx_i2s_set_sysclk, 
    5027 +}; 
    5028 + 
    5029 +const struct snd_soc_component_driver mt76xx_i2s_component = { 
    5030 +       .name           = "mt76xx-i2s", 
    5031 +}; 
    5032 + 
    5033 +struct snd_soc_dai_driver mt76xx_i2s_dai = { 
    5034 +       .playback = { 
    5035 +               .channels_min = 1, 
    5036 +               .channels_max = 2, 
    5037 +               .rates = (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\ 
    5038 +               SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|SNDRV_PCM_RATE_32000|\ 
    5039 +               SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000), 
    5040 + 
    5041 +               .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\ 
    5042 +                               SNDRV_PCM_FMTBIT_S24_LE), 
    5043 +       }, 
    5044 +       .capture = { 
    5045 +               .channels_min = 1, 
    5046 +               .channels_max = 2, 
    5047 +               .rates = (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\ 
    5048 +                               SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|SNDRV_PCM_RATE_32000|\ 
    5049 +                               SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000), 
    5050 +               .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\ 
    5051 +                               SNDRV_PCM_FMTBIT_S24_LE), 
    5052 +       }, 
    5053 +       .ops = &mt76xx_i2s_dai_ops, 
    5054 +       .symmetric_rates = 1,