aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch
diff options
context:
space:
mode:
authorRam Chandra Jangir <rjangi@codeaurora.org>2016-05-21 14:48:31 +0530
committerJohn Crispin <john@phrozen.org>2016-05-27 15:50:17 +0200
commit5e49c5795697868f6317f17fda5a2b04f299e116 (patch)
treebf6ebcc54ae88fa08f268f02a8f118939fe6bf6a /target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch
parent955c341d3bec0eb4971a03924e99156367255d7b (diff)
downloadupstream-5e49c5795697868f6317f17fda5a2b04f299e116.tar.gz
upstream-5e49c5795697868f6317f17fda5a2b04f299e116.tar.bz2
upstream-5e49c5795697868f6317f17fda5a2b04f299e116.zip
ipq806x: Add support for linux-4.4
1)Changes - Rebased the patches for linux-4.4.7 - Added patch to fix spi nor fifo and dma support - Added patch to configure watchdog barktime 2)Testing Tested on IPQ AP148 Board: a. NOR boot and NAND boot b. ethernet network and ath10k wifi c. ubi sysupgrade UnTested dwc3 usb has not been validated on IPQ board(AP148) 3)Known Issues: Once we flash ubi image on AP148, and if we reset the board, uboot on first boot creates PEB and LEB for dynamic sized partitions, which is incorrect and not what linux expects which causes errors when trying to mount rootfs. In order to test this, we can use the below steps: a. Flash the ubi image on board and don't reset the board b. load the kernel fit image in RAM and boot from there. Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
Diffstat (limited to 'target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch')
-rw-r--r--target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch b/target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch
deleted file mode 100644
index c99f60768f..0000000000
--- a/target/linux/ipq806x/patches-4.1/710-stmmac-fix-ipq806x-DMA-configuration.patch
+++ /dev/null
@@ -1,117 +0,0 @@
---- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
-@@ -259,6 +259,7 @@ static int ipq806x_gmac_probe(struct pla
- {
- struct plat_stmmacenet_data *plat_dat;
- struct stmmac_resources stmmac_res;
-+ struct stmmac_dma_cfg *dma_cfg;
- struct device *dev = &pdev->dev;
- struct ipq806x_gmac *gmac;
- int val;
-@@ -348,6 +349,17 @@ static int ipq806x_gmac_probe(struct pla
- plat_dat->bsp_priv = gmac;
- plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
-
-+ dma_cfg = devm_kzalloc(&pdev->dev, sizeof(*dma_cfg),
-+ GFP_KERNEL);
-+
-+ dma_cfg->pbl = 32;
-+ dma_cfg->aal = 1;
-+ dma_cfg->burst_len = DMA_AXI_BLEN_16 |
-+ (7 << DMA_AXI_RD_OSR_LMT_SHIFT) |
-+ (7 << DMA_AXI_WR_OSR_LMT_SHIFT);
-+
-+ plat_dat->dma_cfg = dma_cfg;
-+
- return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
- }
-
---- a/include/linux/stmmac.h
-+++ b/include/linux/stmmac.h
-@@ -73,6 +73,9 @@
- | DMA_AXI_BLEN_32 | DMA_AXI_BLEN_64 \
- | DMA_AXI_BLEN_128 | DMA_AXI_BLEN_256)
-
-+#define DMA_AXI_RD_OSR_LMT_SHIFT 16
-+#define DMA_AXI_WR_OSR_LMT_SHIFT 20
-+
- /* Platfrom data for platform device structure's platform_data field */
-
- struct stmmac_mdio_bus_data {
-@@ -88,6 +91,7 @@ struct stmmac_mdio_bus_data {
-
- struct stmmac_dma_cfg {
- int pbl;
-+ int aal;
- int fixed_burst;
- int mixed_burst;
- int burst_len;
---- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
-@@ -31,7 +31,8 @@
- #include "dwmac_dma.h"
-
- static int dwmac1000_dma_init(void __iomem *ioaddr, int pbl, int fb, int mb,
-- int burst_len, u32 dma_tx, u32 dma_rx, int atds)
-+ int burst_len, u32 dma_tx, u32 dma_rx, int atds,
-+ int aal)
- {
- u32 value = readl(ioaddr + DMA_BUS_MODE);
- int limit;
-@@ -62,6 +63,10 @@ static int dwmac1000_dma_init(void __iom
- value = DMA_BUS_MODE_PBL | ((pbl << DMA_BUS_MODE_PBL_SHIFT) |
- (pbl << DMA_BUS_MODE_RPBL_SHIFT));
-
-+ /* Address Aligned Beats */
-+ if (aal)
-+ value |= DMA_BUS_MODE_AAL;
-+
- /* Set the Fixed burst mode */
- if (fb)
- value |= DMA_BUS_MODE_FB;
---- a/drivers/net/ethernet/stmicro/stmmac/common.h
-+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
-@@ -352,7 +352,7 @@ extern const struct stmmac_desc_ops ndes
- struct stmmac_dma_ops {
- /* DMA core initialization */
- int (*init) (void __iomem *ioaddr, int pbl, int fb, int mb,
-- int burst_len, u32 dma_tx, u32 dma_rx, int atds);
-+ int burst_len, u32 dma_tx, u32 dma_rx, int atds, int aal);
- /* Dump DMA registers */
- void (*dump_regs) (void __iomem *ioaddr);
- /* Set tx/rx threshold in the csr6 register
---- a/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
-@@ -33,7 +33,8 @@
- #include "dwmac_dma.h"
-
- static int dwmac100_dma_init(void __iomem *ioaddr, int pbl, int fb, int mb,
-- int burst_len, u32 dma_tx, u32 dma_rx, int atds)
-+ int burst_len, u32 dma_tx, u32 dma_rx, int atds,
-+ int aal)
- {
- u32 value = readl(ioaddr + DMA_BUS_MODE);
- int limit;
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -1639,9 +1639,11 @@ static int stmmac_init_dma_engine(struct
- int pbl = DEFAULT_DMA_PBL, fixed_burst = 0, burst_len = 0;
- int mixed_burst = 0;
- int atds = 0;
-+ int aal = 0;
-
- if (priv->plat->dma_cfg) {
- pbl = priv->plat->dma_cfg->pbl;
-+ aal = priv->plat->dma_cfg->aal;
- fixed_burst = priv->plat->dma_cfg->fixed_burst;
- mixed_burst = priv->plat->dma_cfg->mixed_burst;
- burst_len = priv->plat->dma_cfg->burst_len;
-@@ -1652,7 +1654,7 @@ static int stmmac_init_dma_engine(struct
-
- return priv->hw->dma->init(priv->ioaddr, pbl, fixed_burst, mixed_burst,
- burst_len, priv->dma_tx_phy,
-- priv->dma_rx_phy, atds);
-+ priv->dma_rx_phy, atds, aal);
- }
-
- /**