Message ID | 1518684458-5338-1-git-send-email-govinds@codeaurora.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Govind Singh <govinds@codeaurora.org> writes: > WCN3990 is integrated 802.11ac chipset with SNOC > bus interface. Add snoc layer driver registration > and associated ops. > > WCN3990 support is not yet complete as cold-boot > handshake is done using qmi(Qualcomm-MSM-Interface) > and qmi client support will be added once qmi framework > is available. > > Signed-off-by: Govind Singh <govinds@codeaurora.org> Kbuild bot found an odd problem with this patch: include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' undeclared (first use in this function); did you mean 'KBUILD_BASENAME'? Full report: http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html Any ideas? Is this is some unrelated issue or what? This patch is not even touching hif.h or ce.c.
Hi Kalle, I didn't encountered this issue as in my defconfig only CONFIG_ATH10K_SNOC was defined. This problem is coming when we define CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig and this is known issue when multiple modules share objects(in this case ce.o). I saw similar reported problem and found https://patchwork.kernel.org/patch/10060825/. After picking the below change issue is not seen. BR, Govind -----Original Message----- From: ath10k [mailto:ath10k-bounces@lists.infradead.org] On Behalf Of Kalle Valo Sent: Thursday, March 1, 2018 3:37 PM To: Govind Singh <govinds@codeaurora.org> Cc: linux-wireless@vger.kernel.org; ath10k@lists.infradead.org Subject: Re: [PATCH 01/13] ath10k: platform driver for WCN3990 SNOC WLAN module Govind Singh <govinds@codeaurora.org> writes: > WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add > snoc layer driver registration and associated ops. > > WCN3990 support is not yet complete as cold-boot handshake is done > using qmi(Qualcomm-MSM-Interface) and qmi client support will be added > once qmi framework is available. > > Signed-off-by: Govind Singh <govinds@codeaurora.org> Kbuild bot found an odd problem with this patch: include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' undeclared (first use in this function); did you mean 'KBUILD_BASENAME'? Full report: http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html Any ideas? Is this is some unrelated issue or what? This patch is not even touching hif.h or ce.c. -- Kalle Valo
(Fixed Govind's top posting and adding Masahiro) >>> WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add >>> snoc layer driver registration and associated ops. >>> >>> WCN3990 support is not yet complete as cold-boot handshake is done >>> using qmi(Qualcomm-MSM-Interface) and qmi client support will be added >>> once qmi framework is available. >>> >>> Signed-off-by: Govind Singh <govinds@codeaurora.org> >> >> Kbuild bot found an odd problem with this patch: >> >> include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' >> undeclared (first use in this function); did you mean 'KBUILD_BASENAME'? >> >> Full report: >> >> http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html >> >> Any ideas? Is this is some unrelated issue or what? This patch is not >> even touching hif.h or ce.c. > > I didn't encountered this issue as in my defconfig only > CONFIG_ATH10K_SNOC was defined. This problem is coming when we define > CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig > and this is known issue when multiple modules share objects(in this > case ce.o). I saw similar reported problem and found > https://patchwork.kernel.org/patch/10060825/. > > After picking the below change issue is not seen. Let's ask the kbuild maintainer. Masahiro, any chances of getting this patch applied anytime soon: kbuild: define KBUILD_MODNAME even if multiple modules share objects https://patchwork.kernel.org/patch/10060825/ In ath10k we would need it as otherwise we are not able to link ce.o both to ath10k_pci.ko and ath10k_snoc.ko. What do you think? Full discussion and the ath10k patch here: https://patchwork.kernel.org/patch/10220657/
> -----Original Message----- > From: Kalle Valo [mailto:kvalo@codeaurora.org] > Sent: Tuesday, March 06, 2018 9:41 PM > To: Govind Singh <govinds@codeaurora.org>; Yamada, Masahiro/山田 真弘 > <yamada.masahiro@socionext.com> > Cc: linux-wireless@vger.kernel.org; ath10k@lists.infradead.org > Subject: Re: [PATCH 01/13] ath10k: platform driver for WCN3990 SNOC WLAN > module > > (Fixed Govind's top posting and adding Masahiro) > > >>> WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add > >>> snoc layer driver registration and associated ops. > >>> > >>> WCN3990 support is not yet complete as cold-boot handshake is done > >>> using qmi(Qualcomm-MSM-Interface) and qmi client support will be added > >>> once qmi framework is available. > >>> > >>> Signed-off-by: Govind Singh <govinds@codeaurora.org> > >> > >> Kbuild bot found an odd problem with this patch: > >> > >> include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' > >> undeclared (first use in this function); did you mean > 'KBUILD_BASENAME'? > >> > >> Full report: > >> > >> > http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html > >> > >> Any ideas? Is this is some unrelated issue or what? This patch is not > >> even touching hif.h or ce.c. > > > > I didn't encountered this issue as in my defconfig only > > CONFIG_ATH10K_SNOC was defined. This problem is coming when we define > > CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig > > and this is known issue when multiple modules share objects(in this > > case ce.o). I saw similar reported problem and found > > https://patchwork.kernel.org/patch/10060825/. > > > > After picking the below change issue is not seen. > > Let's ask the kbuild maintainer. Masahiro, any chances of getting this > patch applied anytime soon: > > kbuild: define KBUILD_MODNAME even if multiple modules share objects > > https://patchwork.kernel.org/patch/10060825/ > > In ath10k we would need it as otherwise we are not able to link ce.o > both to ath10k_pci.ko and ath10k_snoc.ko. What do you think? > > Full discussion and the ath10k patch here: > > https://patchwork.kernel.org/patch/10220657/ > I plan to submit v2, but even if the undefined KBUILD_MODNAME is fixed, I expect another problem from this patch. If both CONFIG_ATH10K_PCI and CONFIG_ATH10_SNOC are 'y' two instances of ce.o would be linked into vmliux, then causes multiple definition error.
<yamada.masahiro@socionext.com> writes: >> >> Kbuild bot found an odd problem with this patch: >> >> >> >> include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' >> >> undeclared (first use in this function); did you mean >> 'KBUILD_BASENAME'? >> >> >> >> Full report: >> >> >> >> >> http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html >> >> >> >> Any ideas? Is this is some unrelated issue or what? This patch is not >> >> even touching hif.h or ce.c. >> > >> > I didn't encountered this issue as in my defconfig only >> > CONFIG_ATH10K_SNOC was defined. This problem is coming when we define >> > CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig >> > and this is known issue when multiple modules share objects(in this >> > case ce.o). I saw similar reported problem and found >> > https://patchwork.kernel.org/patch/10060825/. >> > >> > After picking the below change issue is not seen. >> >> Let's ask the kbuild maintainer. Masahiro, any chances of getting this >> patch applied anytime soon: >> >> kbuild: define KBUILD_MODNAME even if multiple modules share objects >> >> https://patchwork.kernel.org/patch/10060825/ >> >> In ath10k we would need it as otherwise we are not able to link ce.o >> both to ath10k_pci.ko and ath10k_snoc.ko. What do you think? >> >> Full discussion and the ath10k patch here: >> >> https://patchwork.kernel.org/patch/10220657/ >> > > I plan to submit v2, but even if the undefined KBUILD_MODNAME is fixed, > I expect another problem from this patch. > > If both CONFIG_ATH10K_PCI and CONFIG_ATH10_SNOC are 'y' > two instances of ce.o would be linked into vmliux, > then causes multiple definition error. Oh, I didn't realise this. Thanks for pointing it out. Govind is looking at other ways to fix this.
On 2018-03-10 14:41, Kalle Valo wrote: > <yamada.masahiro@socionext.com> writes: > >>> >> Kbuild bot found an odd problem with this patch: >>> >> >>> >> include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' >>> >> undeclared (first use in this function); did you mean >>> 'KBUILD_BASENAME'? >>> >> >>> >> Full report: >>> >> >>> >> >>> http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html >>> >> >>> >> Any ideas? Is this is some unrelated issue or what? This patch is not >>> >> even touching hif.h or ce.c. >>> > >>> > I didn't encountered this issue as in my defconfig only >>> > CONFIG_ATH10K_SNOC was defined. This problem is coming when we define >>> > CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig >>> > and this is known issue when multiple modules share objects(in this >>> > case ce.o). I saw similar reported problem and found >>> > https://patchwork.kernel.org/patch/10060825/. >>> > >>> > After picking the below change issue is not seen. >>> >>> Let's ask the kbuild maintainer. Masahiro, any chances of getting >>> this >>> patch applied anytime soon: >>> >>> kbuild: define KBUILD_MODNAME even if multiple modules share objects >>> >>> https://patchwork.kernel.org/patch/10060825/ >>> >>> In ath10k we would need it as otherwise we are not able to link ce.o >>> both to ath10k_pci.ko and ath10k_snoc.ko. What do you think? >>> >>> Full discussion and the ath10k patch here: >>> >>> https://patchwork.kernel.org/patch/10220657/ >>> >> >> I plan to submit v2, but even if the undefined KBUILD_MODNAME is >> fixed, >> I expect another problem from this patch. >> >> If both CONFIG_ATH10K_PCI and CONFIG_ATH10_SNOC are 'y' >> two instances of ce.o would be linked into vmliux, >> then causes multiple definition error. > > Oh, I didn't realise this. Thanks for pointing it out. Govind is > looking > at other ways to fix this. https://patchwork.kernel.org/patch/10298659/ is raised to address this problem. Thanks, Govind
Hi. > -----Original Message----- > From: govinds@codeaurora.org [mailto:govinds@codeaurora.org] > Sent: Friday, March 23, 2018 8:55 PM > To: Kalle Valo <kvalo@codeaurora.org> > Cc: Yamada, Masahiro/山田 真弘 <yamada.masahiro@socionext.com>; > linux-wireless@vger.kernel.org; ath10k@lists.infradead.org > Subject: Re: [PATCH 01/13] ath10k: platform driver for WCN3990 SNOC WLAN > module > > On 2018-03-10 14:41, Kalle Valo wrote: > > <yamada.masahiro@socionext.com> writes: > > > >>> >> Kbuild bot found an odd problem with this patch: > >>> >> > >>> >> include/linux/dynamic_debug.h:77:14: error: 'KBUILD_MODNAME' > >>> >> undeclared (first use in this function); did you mean > >>> 'KBUILD_BASENAME'? > >>> >> > >>> >> Full report: > >>> >> > >>> >> > >>> > http://lists.infradead.org/pipermail/ath10k/2018-February/010907.html > >>> >> > >>> >> Any ideas? Is this is some unrelated issue or what? This patch is > not > >>> >> even touching hif.h or ce.c. > >>> > > >>> > I didn't encountered this issue as in my defconfig only > >>> > CONFIG_ATH10K_SNOC was defined. This problem is coming when we define > >>> > CONFIG_ATH10K_SNOC and CONFIG_ATH10K_PCI simultaneously in defconfig > >>> > and this is known issue when multiple modules share objects(in this > >>> > case ce.o). I saw similar reported problem and found > >>> > https://patchwork.kernel.org/patch/10060825/. > >>> > > >>> > After picking the below change issue is not seen. > >>> > >>> Let's ask the kbuild maintainer. Masahiro, any chances of getting > >>> this > >>> patch applied anytime soon: > >>> > >>> kbuild: define KBUILD_MODNAME even if multiple modules share objects > >>> > >>> https://patchwork.kernel.org/patch/10060825/ > >>> > >>> In ath10k we would need it as otherwise we are not able to link ce.o > >>> both to ath10k_pci.ko and ath10k_snoc.ko. What do you think? > >>> > >>> Full discussion and the ath10k patch here: > >>> > >>> https://patchwork.kernel.org/patch/10220657/ > >>> > >> > >> I plan to submit v2, but even if the undefined KBUILD_MODNAME is > >> fixed, > >> I expect another problem from this patch. > >> > >> If both CONFIG_ATH10K_PCI and CONFIG_ATH10_SNOC are 'y' > >> two instances of ce.o would be linked into vmliux, > >> then causes multiple definition error. > > > > Oh, I didn't realise this. Thanks for pointing it out. Govind is > > looking > > at other ways to fix this. > > https://patchwork.kernel.org/patch/10298659/ is raised to address this > problem. > > CE layer is shared between pci and snoc target and results > in duplicate object inclusion if both modules are compiled > together statically and undefined KBUILD_MODNAME if > compiled as module. If you rebase your development on v4.17-rc1, this statement is no longer true. > Fix this by building ce layer in ath10k core module by > adding ce object inclusion with ATH10K_CE boolean CONFIG. Today, the solution landed in Linus' tree. [1] Solution for missing KBUILD_MODNAME definition commit aeacb019b61c4ea7689085574bd03d2c0810f119 Author: Masahiro Yamada <yamada.masahiro@socionext.com> Date: Mon Mar 19 18:01:24 2018 +0900 kbuild: define KBUILD_MODNAME even if multiple modules share objects [2] Solution for multiple definition error when both are built-in commit f98fe47ce51dee6d97dd91bbeccdde23f043c754 Author: Masahiro Yamada <yamada.masahiro@socionext.com> Date: Mon Mar 19 20:26:08 2018 +0900 kbuild: link $(real-obj-y) instead of $(obj-y) into built-in.a [3] Examples for Makefile cleanups commit f605005a50fc1443a14b4e8c9c1727881f8f96ae Author: Masahiro Yamada <yamada.masahiro@socionext.com> Date: Mon Mar 19 20:26:10 2018 +0900 net: liquidio: clean up Makefile for simpler composite object handling commit dc35da16a2e23db04822f0129cd5b28b7b0e72b4 Author: Masahiro Yamada <yamada.masahiro@socionext.com> Date: Mon Mar 19 20:26:09 2018 +0900 lib: zstd: clean up Makefile for simpler composite object handling
diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig index deb5ae2..1b317eb 100644 --- a/drivers/net/wireless/ath/ath10k/Kconfig +++ b/drivers/net/wireless/ath/ath10k/Kconfig @@ -36,6 +36,14 @@ config ATH10K_USB This module adds experimental support for USB bus. Currently work in progress and will not fully work. +config ATH10K_SNOC + tristate "Qualcomm ath10k SNOC support (EXPERIMENTAL)" + depends on ATH10K && ARCH_QCOM + ---help--- + This module adds support for integrated WCN3990 chip connected + to system NOC(SNOC). Currently work in progress and will not + fully work. + config ATH10K_DEBUG bool "Atheros ath10k debugging" depends on ATH10K diff --git a/drivers/net/wireless/ath/ath10k/Makefile b/drivers/net/wireless/ath/ath10k/Makefile index 6739ac2..390fde0 100644 --- a/drivers/net/wireless/ath/ath10k/Makefile +++ b/drivers/net/wireless/ath/ath10k/Makefile @@ -35,5 +35,9 @@ ath10k_sdio-y += sdio.o obj-$(CONFIG_ATH10K_USB) += ath10k_usb.o ath10k_usb-y += usb.o +obj-$(CONFIG_ATH10K_SNOC) += ath10k_snoc.o +ath10k_snoc-y += snoc.o \ + ce.o + # for tracing framework to find trace.h CFLAGS_trace.o := -I$(src) diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c new file mode 100644 index 0000000..30354a6 --- /dev/null +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <linux/module.h> +#include <linux/kernel.h> +#include "debug.h" +#include "hif.h" +#include "htc.h" +#include "ce.h" +#include "snoc.h" +#include <linux/of.h> +#include <linux/of_device.h> +#include <linux/platform_device.h> + +static const struct ath10k_snoc_drv_priv drv_priv = { + .hw_rev = ATH10K_HW_WCN3990, + .dma_mask = DMA_BIT_MASK(37), +}; + +void ath10k_snoc_write32(struct ath10k *ar, u32 offset, u32 value) +{ + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + + iowrite32(value, ar_snoc->mem + offset); +} + +u32 ath10k_snoc_read32(struct ath10k *ar, u32 offset) +{ + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + u32 val; + + val = ioread32(ar_snoc->mem + offset); + + return val; +} + +static const struct ath10k_hif_ops ath10k_snoc_hif_ops = { + .read32 = ath10k_snoc_read32, + .write32 = ath10k_snoc_write32, +}; + +static const struct ath10k_bus_ops ath10k_snoc_bus_ops = { + .read32 = ath10k_snoc_read32, + .write32 = ath10k_snoc_write32, +}; + +static const struct of_device_id ath10k_snoc_dt_match[] = { + { .compatible = "qcom,wcn3990-wifi", + .data = &drv_priv, + }, + { } +}; +MODULE_DEVICE_TABLE(of, ath10k_snoc_dt_match); + +static int ath10k_snoc_probe(struct platform_device *pdev) +{ + const struct ath10k_snoc_drv_priv *drv_data; + const struct of_device_id *of_id; + struct ath10k_snoc *ar_snoc; + struct device *dev; + struct ath10k *ar; + int ret; + + of_id = of_match_device(ath10k_snoc_dt_match, &pdev->dev); + if (!of_id) { + dev_err(&pdev->dev, "failed to find matching device tree id\n"); + return -EINVAL; + } + + drv_data = of_id->data; + dev = &pdev->dev; + + ret = dma_set_mask_and_coherent(dev, drv_data->dma_mask); + if (ret) { + dev_err(dev, "failed to set dma mask: %d", ret); + return ret; + } + + ar = ath10k_core_create(sizeof(*ar_snoc), dev, ATH10K_BUS_SNOC, + drv_data->hw_rev, &ath10k_snoc_hif_ops); + if (!ar) { + dev_err(dev, "failed to allocate core\n"); + return -ENOMEM; + } + + ar_snoc = ath10k_snoc_priv(ar); + ar_snoc->dev = pdev; + platform_set_drvdata(pdev, ar); + ar_snoc->ar = ar; + ar_snoc->ce.bus_ops = &ath10k_snoc_bus_ops; + ar->ce_priv = &ar_snoc->ce; + + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc probe\n"); + ath10k_warn(ar, "Warning: SNOC support is still work-in-progress, it will not work properly!"); + + return ret; +} + +static int ath10k_snoc_remove(struct platform_device *pdev) +{ + struct ath10k *ar = platform_get_drvdata(pdev); + + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc remove\n"); + ath10k_core_destroy(ar); + + return 0; +} + +static struct platform_driver ath10k_snoc_driver = { + .probe = ath10k_snoc_probe, + .remove = ath10k_snoc_remove, + .driver = { + .name = "ath10k_snoc", + .owner = THIS_MODULE, + .of_match_table = ath10k_snoc_dt_match, + }, +}; + +static int __init ath10k_snoc_init(void) +{ + int ret; + + ret = platform_driver_register(&ath10k_snoc_driver); + if (ret) + pr_err("failed to register ath10k snoc driver: %d\n", + ret); + + return ret; +} +module_init(ath10k_snoc_init); + +static void __exit ath10k_snoc_exit(void) +{ + platform_driver_unregister(&ath10k_snoc_driver); +} +module_exit(ath10k_snoc_exit); + +MODULE_AUTHOR("Qualcomm"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Driver support for Atheros WCN3990 SNOC devices"); diff --git a/drivers/net/wireless/ath/ath10k/snoc.h b/drivers/net/wireless/ath/ath10k/snoc.h new file mode 100644 index 0000000..cf65b01 --- /dev/null +++ b/drivers/net/wireless/ath/ath10k/snoc.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _SNOC_H_ +#define _SNOC_H_ + +#include "hw.h" +#include "ce.h" +#include "pci.h" + +struct ath10k_snoc_drv_priv { + enum ath10k_hw_rev hw_rev; + u64 dma_mask; +}; + +struct snoc_state { + u32 pipe_cfg_addr; + u32 svc_to_pipe_map; +}; + +struct ath10k_snoc_pipe { + struct ath10k_ce_pipe *ce_hdl; + u8 pipe_num; + struct ath10k *hif_ce_state; + size_t buf_sz; + /* protect ce info */ + spinlock_t pipe_lock; + struct ath10k_snoc *ar_snoc; +}; + +struct ath10k_snoc_target_info { + u32 target_version; + u32 target_type; + u32 target_revision; + u32 soc_version; +}; + +struct ath10k_snoc_ce_irq { + u32 irq_line; +}; + +struct ath10k_snoc { + struct platform_device *dev; + struct ath10k *ar; + void __iomem *mem; + dma_addr_t mem_pa; + struct ath10k_snoc_target_info target_info; + size_t mem_len; + struct ath10k_snoc_pipe pipe_info[CE_COUNT_MAX]; + struct ath10k_snoc_ce_irq ce_irqs[CE_COUNT_MAX]; + struct ath10k_ce ce; + struct timer_list rx_post_retry; +}; + +static inline struct ath10k_snoc *ath10k_snoc_priv(struct ath10k *ar) +{ + return (struct ath10k_snoc *)ar->drv_priv; +} + +void ath10k_snoc_write32(struct ath10k *ar, u32 offset, u32 value); +u32 ath10k_snoc_read32(struct ath10k *ar, u32 offset); + +#endif /* _SNOC_H_ */
WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add snoc layer driver registration and associated ops. WCN3990 support is not yet complete as cold-boot handshake is done using qmi(Qualcomm-MSM-Interface) and qmi client support will be added once qmi framework is available. Signed-off-by: Govind Singh <govinds@codeaurora.org> --- drivers/net/wireless/ath/ath10k/Kconfig | 8 ++ drivers/net/wireless/ath/ath10k/Makefile | 4 + drivers/net/wireless/ath/ath10k/snoc.c | 153 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/snoc.h | 76 +++++++++++++++ 4 files changed, 241 insertions(+) create mode 100644 drivers/net/wireless/ath/ath10k/snoc.c create mode 100644 drivers/net/wireless/ath/ath10k/snoc.h