From 2949832d701a7649e60b230421dc8f60b9db332f Mon Sep 17 00:00:00 2001 From: Chi-Hsien Lin Date: Tue, 15 Aug 2017 00:25:14 -0500 Subject: [PATCH 001/296] non-upstream: add sg parameters dts parsing broken_sg_support, sd_head_align, and sd_sgentry_align are used in brcmfmac code but not configurable in dts file. Add the parsing logic. Now they can be configured like below in dts: brcm,broken_sg_support; brcm,sd_head_align = /bits/ 16 <4>; brcm,sd_sgentry_align = /bits/ 16 <4>; Signed-off-by: Chi-hsien Lin --- .../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c index e406e11481a6..a707a1be50a0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c @@ -74,7 +74,8 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, int irq; int err; u32 irqf; - u32 val; + u32 val32; + u16 val16; /* Apple ARM64 platforms have their own idea of board type, passed in * via the device tree. They also have an antenna SKU parameter @@ -125,8 +126,15 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, if (bus_type != BRCMF_BUSTYPE_SDIO) return; - if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0) - sdio->drive_strength = val; + if (of_property_read_u32(np, "brcm,drive-strength", &val32) == 0) + sdio->drive_strength = val32; + + sdio->broken_sg_support = of_property_read_bool(np, + "brcm,broken_sg_support"); + if (of_property_read_u16(np, "brcm,sd_head_align", &val16) == 0) + sdio->sd_head_align = val16; + if (of_property_read_u16(np, "brcm,sd_sgentry_align", &val16) == 0) + sdio->sd_sgentry_align = val16; /* make sure there are interrupts defined in the node */ if (!of_property_present(np, "interrupts")) -- 2.25.1