diff options
Diffstat (limited to 'target/linux/layerscape')
6 files changed, 37 insertions, 61 deletions
diff --git a/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch b/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch index 14f503f8e5..6b3485700a 100644 --- a/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch @@ -358,7 +358,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> help --- a/drivers/mtd/nand/fsl_ifc_nand.c +++ b/drivers/mtd/nand/fsl_ifc_nand.c -@@ -904,9 +904,12 @@ static int fsl_ifc_chip_init(struct fsl_ +@@ -898,7 +898,7 @@ static int fsl_ifc_chip_init(struct fsl_ chip->ecc.algo = NAND_ECC_HAMMING; } @@ -366,12 +366,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> + if (ctrl->version >= FSL_IFC_VERSION_1_1_0) fsl_ifc_sram_init(priv); -+ if (ctrl->version >= FSL_IFC_VERSION_2_0_0) -+ priv->bufnum_mask = (priv->bufnum_mask * 2) + 1; -+ - return 0; - } - + /* --- a/include/linux/fsl_ifc.h +++ b/include/linux/fsl_ifc.h @@ -274,6 +274,8 @@ @@ -383,7 +378,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Addressing Mode-ROW0+n/COL0 */ #define IFC_NAND_NCFGR_ADDR_MODE_RC0 0x00000000 /* Addressing Mode-ROW0+n/COL0+n */ -@@ -861,6 +863,11 @@ struct fsl_ifc_ctrl { +@@ -857,6 +859,11 @@ struct fsl_ifc_ctrl { u32 nand_stat; wait_queue_head_t nand_wait; bool little_endian; diff --git a/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch b/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch index 1068e49138..3d7febcebb 100644 --- a/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch @@ -2060,7 +2060,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -4649,3 +4649,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN +@@ -4654,3 +4654,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid); diff --git a/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch b/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch index ec1af3d92d..3a44f26432 100644 --- a/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch @@ -25,7 +25,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> +obj-$(CONFIG_QUICC_ENGINE) += irq-qeic.o --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c -@@ -1659,6 +1659,7 @@ static int its_init_domain(struct fwnode +@@ -1658,6 +1658,7 @@ static int its_init_domain(struct fwnode inner_domain->parent = its_parent; inner_domain->bus_token = DOMAIN_BUS_NEXUS; diff --git a/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch b/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch index 1d3899d28b..67c32dc4a4 100644 --- a/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch +++ b/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch @@ -217,7 +217,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock) -@@ -421,17 +466,34 @@ static void esdhc_of_set_clock(struct sd +@@ -421,12 +466,15 @@ static void esdhc_of_set_clock(struct sd struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host); int pre_div = 1; int div = 1; @@ -234,26 +234,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Workaround to start pre_div at 2 for VNN < VENDOR_V_23 */ if (esdhc->vendor_ver < VENDOR_V_23) - pre_div = 2; - -+ /* -+ * Limit SD clock to 167MHz for ls1046a according to its datasheet -+ */ -+ if (clock > 167000000 && -+ of_find_compatible_node(NULL, NULL, "fsl,ls1046a-esdhc")) -+ clock = 167000000; -+ -+ /* -+ * Limit SD clock to 125MHz for ls1012a according to its datasheet -+ */ -+ if (clock > 125000000 && -+ of_find_compatible_node(NULL, NULL, "fsl,ls1012a-esdhc")) -+ clock = 125000000; -+ - /* Workaround to reduce the clock frequency for p1010 esdhc */ - if (of_find_compatible_node(NULL, NULL, "fsl,p1010-esdhc")) { - if (clock > 20000000) -@@ -440,9 +502,15 @@ static void esdhc_of_set_clock(struct sd +@@ -454,9 +502,15 @@ static void esdhc_of_set_clock(struct sd clock -= 5000000; } @@ -271,7 +252,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); while (host->max_clk / pre_div / 16 > clock && pre_div < 256) -@@ -462,7 +530,20 @@ static void esdhc_of_set_clock(struct sd +@@ -476,7 +530,20 @@ static void esdhc_of_set_clock(struct sd | (div << ESDHC_DIVIDER_SHIFT) | (pre_div << ESDHC_PREDIV_SHIFT)); sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); @@ -293,7 +274,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static void esdhc_pltfm_set_bus_width(struct sdhci_host *host, int width) -@@ -487,12 +568,136 @@ static void esdhc_pltfm_set_bus_width(st +@@ -501,12 +568,136 @@ static void esdhc_pltfm_set_bus_width(st sdhci_writel(host, ctrl, ESDHC_PROCTL); } @@ -430,7 +411,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } #ifdef CONFIG_PM_SLEEP -@@ -575,10 +780,19 @@ static const struct sdhci_pltfm_data sdh +@@ -589,10 +780,19 @@ static const struct sdhci_pltfm_data sdh .ops = &sdhci_esdhc_le_ops, }; @@ -450,7 +431,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> u16 host_ver; pltfm_host = sdhci_priv(host); -@@ -588,6 +802,36 @@ static void esdhc_init(struct platform_d +@@ -602,6 +802,36 @@ static void esdhc_init(struct platform_d esdhc->vendor_ver = (host_ver & SDHCI_VENDOR_VER_MASK) >> SDHCI_VENDOR_VER_SHIFT; esdhc->spec_ver = host_ver & SDHCI_SPEC_VER_MASK; @@ -487,7 +468,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static int sdhci_esdhc_probe(struct platform_device *pdev) -@@ -610,6 +854,11 @@ static int sdhci_esdhc_probe(struct plat +@@ -624,6 +854,11 @@ static int sdhci_esdhc_probe(struct plat if (IS_ERR(host)) return PTR_ERR(host); diff --git a/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch b/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch index 2efbba304a..c1431306a4 100644 --- a/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch @@ -1267,7 +1267,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } EXPORT_SYMBOL(qe_issue_cmd); -@@ -166,8 +182,8 @@ static unsigned int brg_clk = 0; +@@ -169,8 +185,8 @@ static unsigned int brg_clk = 0; unsigned int qe_get_brg_clk(void) { struct device_node *qe; @@ -1275,10 +1275,10 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> - const u32 *prop; + u32 val; + int ret; + unsigned int mod; if (brg_clk) - return brg_clk; -@@ -179,9 +195,9 @@ unsigned int qe_get_brg_clk(void) +@@ -183,9 +199,9 @@ unsigned int qe_get_brg_clk(void) return brg_clk; } @@ -1291,7 +1291,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> of_node_put(qe); -@@ -221,7 +237,7 @@ int qe_setbrg(enum qe_clock brg, unsigne +@@ -234,7 +250,7 @@ int qe_setbrg(enum qe_clock brg, unsigne tempval = ((divisor - 1) << QE_BRGC_DIVISOR_SHIFT) | QE_BRGC_ENABLE | div16; @@ -1300,7 +1300,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> return 0; } -@@ -355,9 +371,9 @@ static int qe_sdma_init(void) +@@ -368,9 +384,9 @@ static int qe_sdma_init(void) return -ENOMEM; } @@ -1313,7 +1313,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> return 0; } -@@ -395,14 +411,14 @@ static void qe_upload_microcode(const vo +@@ -408,14 +424,14 @@ static void qe_upload_microcode(const vo "uploading microcode '%s'\n", ucode->id); /* Use auto-increment */ @@ -1332,7 +1332,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } /* -@@ -487,7 +503,7 @@ int qe_upload_firmware(const struct qe_f +@@ -500,7 +516,7 @@ int qe_upload_firmware(const struct qe_f * If the microcode calls for it, split the I-RAM. */ if (!firmware->split) @@ -1341,7 +1341,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> if (firmware->soc.model) printk(KERN_INFO -@@ -521,11 +537,11 @@ int qe_upload_firmware(const struct qe_f +@@ -534,11 +550,11 @@ int qe_upload_firmware(const struct qe_f u32 trap = be32_to_cpu(ucode->traps[j]); if (trap) @@ -1355,7 +1355,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } qe_firmware_uploaded = 1; -@@ -644,9 +660,9 @@ EXPORT_SYMBOL(qe_get_num_of_risc); +@@ -657,9 +673,9 @@ EXPORT_SYMBOL(qe_get_num_of_risc); unsigned int qe_get_num_of_snums(void) { struct device_node *qe; @@ -1367,7 +1367,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> num_of_snums = 28; /* The default number of snum for threads is 28 */ qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); -@@ -660,9 +676,9 @@ unsigned int qe_get_num_of_snums(void) +@@ -673,9 +689,9 @@ unsigned int qe_get_num_of_snums(void) return num_of_snums; } diff --git a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch index ad597f1128..c01db458a5 100644 --- a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch @@ -218,7 +218,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> reg &= ~DWC3_GFLADJ_30MHZ_MASK; reg |= DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj; dwc3_writel(dwc->regs, DWC3_GFLADJ, reg); -@@ -579,6 +599,99 @@ static int dwc3_phy_setup(struct dwc3 *d +@@ -585,6 +605,99 @@ static int dwc3_phy_setup(struct dwc3 *d return 0; } @@ -318,7 +318,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> static void dwc3_core_exit(struct dwc3 *dwc) { dwc3_event_buffers_cleanup(dwc); -@@ -721,6 +834,8 @@ static int dwc3_core_init(struct dwc3 *d +@@ -727,6 +840,8 @@ static int dwc3_core_init(struct dwc3 *d if (ret) goto err1; @@ -327,7 +327,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Adjust Frame Length */ dwc3_frame_length_adjustment(dwc); -@@ -919,11 +1034,117 @@ static void dwc3_core_exit_mode(struct d +@@ -925,11 +1040,117 @@ static void dwc3_core_exit_mode(struct d } } @@ -445,7 +445,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> struct resource *res; struct dwc3 *dwc; u8 lpm_nyet_threshold; -@@ -955,6 +1176,11 @@ static int dwc3_probe(struct platform_de +@@ -961,6 +1182,11 @@ static int dwc3_probe(struct platform_de dwc->xhci_resources[0].flags = res->flags; dwc->xhci_resources[0].name = res->name; @@ -457,7 +457,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> res->start += DWC3_GLOBALS_REGS_START; /* -@@ -997,6 +1223,12 @@ static int dwc3_probe(struct platform_de +@@ -1003,6 +1229,12 @@ static int dwc3_probe(struct platform_de dwc->usb3_lpm_capable = device_property_read_bool(dev, "snps,usb3_lpm_capable"); @@ -470,7 +470,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> dwc->disable_scramble_quirk = device_property_read_bool(dev, "snps,disable_scramble_quirk"); dwc->u2exit_lfps_quirk = device_property_read_bool(dev, -@@ -1041,6 +1273,8 @@ static int dwc3_probe(struct platform_de +@@ -1047,6 +1279,8 @@ static int dwc3_probe(struct platform_de dwc->hird_threshold = hird_threshold | (dwc->is_utmi_l1_suspend << 4); @@ -479,7 +479,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> platform_set_drvdata(pdev, dwc); dwc3_cache_hwparams(dwc); -@@ -1064,6 +1298,11 @@ static int dwc3_probe(struct platform_de +@@ -1070,6 +1304,11 @@ static int dwc3_probe(struct platform_de if (ret < 0) goto err1; @@ -534,7 +534,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Global Debug Queue/FIFO Space Available Register */ #define DWC3_GDBGFIFOSPACE_NUM(n) ((n) & 0x1f) #define DWC3_GDBGFIFOSPACE_TYPE(n) (((n) << 5) & 0x1e0) -@@ -180,7 +207,6 @@ +@@ -182,7 +209,6 @@ #define DWC3_GCTL_CLK_PIPE (1) #define DWC3_GCTL_CLK_PIPEHALF (2) #define DWC3_GCTL_CLK_MASK (3) @@ -542,7 +542,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> #define DWC3_GCTL_PRTCAP(n) (((n) & (3 << 12)) >> 12) #define DWC3_GCTL_PRTCAPDIR(n) ((n) << 12) #define DWC3_GCTL_PRTCAP_HOST 1 -@@ -289,6 +315,10 @@ +@@ -292,6 +318,10 @@ /* Global Frame Length Adjustment Register */ #define DWC3_GFLADJ_30MHZ_SDBND_SEL (1 << 7) #define DWC3_GFLADJ_30MHZ_MASK 0x3f @@ -553,7 +553,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Global User Control Register 2 */ #define DWC3_GUCTL2_RST_ACTBITLATER (1 << 14) -@@ -753,6 +783,7 @@ struct dwc3_scratchpad_array { +@@ -756,6 +786,7 @@ struct dwc3_scratchpad_array { * @regs: base address for our registers * @regs_size: address space size * @fladj: frame length adjustment @@ -561,7 +561,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> * @irq_gadget: peripheral controller's IRQ number * @nr_scratch: number of scratch buffers * @u1u2: only used on revisions <1.83a for workaround -@@ -829,6 +860,7 @@ struct dwc3_scratchpad_array { +@@ -832,6 +863,7 @@ struct dwc3_scratchpad_array { * 1 - -3.5dB de-emphasis * 2 - No de-emphasis * 3 - Reserved @@ -569,7 +569,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> */ struct dwc3 { struct usb_ctrlrequest *ctrl_req; -@@ -847,6 +879,7 @@ struct dwc3 { +@@ -850,6 +882,7 @@ struct dwc3 { spinlock_t lock; struct device *dev; @@ -577,7 +577,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> struct platform_device *xhci; struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM]; -@@ -872,6 +905,12 @@ struct dwc3 { +@@ -875,6 +908,12 @@ struct dwc3 { enum usb_phy_interface hsphy_mode; u32 fladj; @@ -590,7 +590,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> u32 irq_gadget; u32 nr_scratch; u32 u1u2; -@@ -948,9 +987,12 @@ struct dwc3 { +@@ -951,9 +990,12 @@ struct dwc3 { unsigned ep0_bounced:1; unsigned ep0_expect_in:1; unsigned has_hibernation:1; @@ -603,7 +603,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> unsigned pending_events:1; unsigned pullups_connected:1; unsigned setup_packet_pending:1; -@@ -971,9 +1013,16 @@ struct dwc3 { +@@ -974,9 +1016,16 @@ struct dwc3 { unsigned dis_rxdet_inp3_quirk:1; unsigned dis_u2_freeclk_exists_quirk:1; unsigned dis_del_phy_power_chg_quirk:1; |