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 <[email protected]>
---
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
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_ */
--
1.9.1
Govind Singh <[email protected]> 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 <[email protected]>
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 <[email protected]>
>>
>> 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/
--
Kalle Valo
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2FsbGUgVmFsbyBbbWFp
bHRvOmt2YWxvQGNvZGVhdXJvcmEub3JnXQ0KPiBTZW50OiBUdWVzZGF5LCBNYXJjaCAwNiwgMjAx
OCA5OjQxIFBNDQo+IFRvOiBHb3ZpbmQgU2luZ2ggPGdvdmluZHNAY29kZWF1cm9yYS5vcmc+OyBZ
YW1hZGEsIE1hc2FoaXJvLxskQjszRUQbKEIgGyRCPz85MBsoQg0KPiA8eWFtYWRhLm1hc2FoaXJv
QHNvY2lvbmV4dC5jb20+DQo+IENjOiBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmc7IGF0
aDEwa0BsaXN0cy5pbmZyYWRlYWQub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMDEvMTNdIGF0
aDEwazogcGxhdGZvcm0gZHJpdmVyIGZvciBXQ04zOTkwIFNOT0MgV0xBTg0KPiBtb2R1bGUNCj4g
DQo+IChGaXhlZCBHb3ZpbmQncyB0b3AgcG9zdGluZyBhbmQgYWRkaW5nIE1hc2FoaXJvKQ0KPiAN
Cj4gPj4+IFdDTjM5OTAgaXMgaW50ZWdyYXRlZCA4MDIuMTFhYyBjaGlwc2V0IHdpdGggU05PQyBi
dXMgaW50ZXJmYWNlLiBBZGQNCj4gPj4+IHNub2MgbGF5ZXIgZHJpdmVyIHJlZ2lzdHJhdGlvbiBh
bmQgYXNzb2NpYXRlZCBvcHMuDQo+ID4+Pg0KPiA+Pj4gV0NOMzk5MCBzdXBwb3J0IGlzIG5vdCB5
ZXQgY29tcGxldGUgYXMgY29sZC1ib290IGhhbmRzaGFrZSBpcyBkb25lDQo+ID4+PiB1c2luZyBx
bWkoUXVhbGNvbW0tTVNNLUludGVyZmFjZSkgYW5kIHFtaSBjbGllbnQgc3VwcG9ydCB3aWxsIGJl
IGFkZGVkDQo+ID4+PiBvbmNlIHFtaSBmcmFtZXdvcmsgaXMgYXZhaWxhYmxlLg0KPiA+Pj4NCj4g
Pj4+IFNpZ25lZC1vZmYtYnk6IEdvdmluZCBTaW5naCA8Z292aW5kc0Bjb2RlYXVyb3JhLm9yZz4N
Cj4gPj4NCj4gPj4gS2J1aWxkIGJvdCBmb3VuZCBhbiBvZGQgcHJvYmxlbSB3aXRoIHRoaXMgcGF0
Y2g6DQo+ID4+DQo+ID4+ICBpbmNsdWRlL2xpbnV4L2R5bmFtaWNfZGVidWcuaDo3NzoxNDogZXJy
b3I6ICdLQlVJTERfTU9ETkFNRScNCj4gPj4gIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz
IGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuDQo+ICdLQlVJTERfQkFTRU5BTUUnPw0KPiA+Pg0KPiA+
PiBGdWxsIHJlcG9ydDoNCj4gPj4NCj4gPj4NCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv
cGlwZXJtYWlsL2F0aDEway8yMDE4LUZlYnJ1YXJ5LzAxMDkwNy5odG1sDQo+ID4+DQo+ID4+IEFu
eSBpZGVhcz8gSXMgdGhpcyBpcyBzb21lIHVucmVsYXRlZCBpc3N1ZSBvciB3aGF0PyBUaGlzIHBh
dGNoIGlzIG5vdA0KPiA+PiBldmVuIHRvdWNoaW5nIGhpZi5oIG9yIGNlLmMuDQo+ID4NCj4gPiBJ
IGRpZG4ndCBlbmNvdW50ZXJlZCB0aGlzIGlzc3VlIGFzIGluIG15IGRlZmNvbmZpZyBvbmx5DQo+
ID4gQ09ORklHX0FUSDEwS19TTk9DIHdhcyBkZWZpbmVkLiBUaGlzIHByb2JsZW0gaXMgY29taW5n
IHdoZW4gd2UgZGVmaW5lDQo+ID4gQ09ORklHX0FUSDEwS19TTk9DIGFuZCBDT05GSUdfQVRIMTBL
X1BDSSBzaW11bHRhbmVvdXNseSBpbiBkZWZjb25maWcNCj4gPiBhbmQgdGhpcyBpcyBrbm93biBp
c3N1ZSB3aGVuIG11bHRpcGxlIG1vZHVsZXMgc2hhcmUgb2JqZWN0cyhpbiB0aGlzDQo+ID4gY2Fz
ZSBjZS5vKS4gSSBzYXcgc2ltaWxhciByZXBvcnRlZCBwcm9ibGVtIGFuZCBmb3VuZA0KPiA+IGh0
dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTAwNjA4MjUvLg0KPiA+DQo+ID4gQWZ0
ZXIgcGlja2luZyB0aGUgYmVsb3cgY2hhbmdlIGlzc3VlIGlzIG5vdCBzZWVuLg0KPiANCj4gTGV0
J3MgYXNrIHRoZSBrYnVpbGQgbWFpbnRhaW5lci4gTWFzYWhpcm8sIGFueSBjaGFuY2VzIG9mIGdl
dHRpbmcgdGhpcw0KPiBwYXRjaCBhcHBsaWVkIGFueXRpbWUgc29vbjoNCj4gDQo+IGtidWlsZDog
ZGVmaW5lIEtCVUlMRF9NT0ROQU1FIGV2ZW4gaWYgbXVsdGlwbGUgbW9kdWxlcyBzaGFyZSBvYmpl
Y3RzDQo+IA0KPiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwMDYwODI1Lw0K
PiANCj4gSW4gYXRoMTBrIHdlIHdvdWxkIG5lZWQgaXQgYXMgb3RoZXJ3aXNlIHdlIGFyZSBub3Qg
YWJsZSB0byBsaW5rIGNlLm8NCj4gYm90aCB0byBhdGgxMGtfcGNpLmtvIGFuZCBhdGgxMGtfc25v
Yy5rby4gV2hhdCBkbyB5b3UgdGhpbms/DQo+IA0KPiBGdWxsIGRpc2N1c3Npb24gYW5kIHRoZSBh
dGgxMGsgcGF0Y2ggaGVyZToNCj4gDQo+IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0
Y2gvMTAyMjA2NTcvDQo+IA0KDQpJIHBsYW4gdG8gc3VibWl0IHYyLCBidXQgZXZlbiBpZiB0aGUg
dW5kZWZpbmVkIEtCVUlMRF9NT0ROQU1FIGlzIGZpeGVkLA0KSSBleHBlY3QgYW5vdGhlciBwcm9i
bGVtIGZyb20gdGhpcyBwYXRjaC4NCg0KSWYgYm90aCBDT05GSUdfQVRIMTBLX1BDSSBhbmQgQ09O
RklHX0FUSDEwX1NOT0MgYXJlICd5Jw0KdHdvIGluc3RhbmNlcyBvZiBjZS5vIHdvdWxkIGJlIGxp
bmtlZCBpbnRvIHZtbGl1eCwNCnRoZW4gY2F1c2VzIG11bHRpcGxlIGRlZmluaXRpb24gZXJyb3Iu
DQoNCg==
On 2018-03-10 14:41, Kalle Valo wrote:
> <[email protected]> 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 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=20
known issue when multiple modules share objects(in this case ce.o). I saw s=
imilar reported problem and found https://patchwork.kernel.org/patch/100608=
25/.
After picking the below change issue is not seen.
BR,
Govind
-----Original Message-----
From: ath10k [mailto:[email protected]] On Behalf Of Kalle=
Valo
Sent: Thursday, March 1, 2018 3:37 PM
To: Govind Singh <[email protected]>
Cc: [email protected]; [email protected]
Subject: Re: [PATCH 01/13] ath10k: platform driver for WCN3990 SNOC WLAN mo=
dule
Govind Singh <[email protected]> writes:
> WCN3990 is integrated 802.11ac chipset with SNOC bus interface. Add=20
> snoc layer driver registration and associated ops.
>
> WCN3990 support is not yet complete as cold-boot handshake is done=20
> using qmi(Qualcomm-MSM-Interface) and qmi client support will be added=20
> once qmi framework is available.
>
> Signed-off-by: Govind Singh <[email protected]>
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
_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
<[email protected]> 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.
--
Kalle Valo
SGkuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZ292aW5kc0Bjb2Rl
YXVyb3JhLm9yZyBbbWFpbHRvOmdvdmluZHNAY29kZWF1cm9yYS5vcmddDQo+IFNlbnQ6IEZyaWRh
eSwgTWFyY2ggMjMsIDIwMTggODo1NSBQTQ0KPiBUbzogS2FsbGUgVmFsbyA8a3ZhbG9AY29kZWF1
cm9yYS5vcmc+DQo+IENjOiBZYW1hZGEsIE1hc2FoaXJvLxskQjszRUQbKEIgGyRCPz85MBsoQiA8
eWFtYWRhLm1hc2FoaXJvQHNvY2lvbmV4dC5jb20+Ow0KPiBsaW51eC13aXJlbGVzc0B2Z2VyLmtl
cm5lbC5vcmc7IGF0aDEwa0BsaXN0cy5pbmZyYWRlYWQub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFU
Q0ggMDEvMTNdIGF0aDEwazogcGxhdGZvcm0gZHJpdmVyIGZvciBXQ04zOTkwIFNOT0MgV0xBTg0K
PiBtb2R1bGUNCj4gDQo+IE9uIDIwMTgtMDMtMTAgMTQ6NDEsIEthbGxlIFZhbG8gd3JvdGU6DQo+
ID4gPHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQuY29tPiB3cml0ZXM6DQo+ID4NCj4gPj4+ID4+
IEtidWlsZCBib3QgZm91bmQgYW4gb2RkIHByb2JsZW0gd2l0aCB0aGlzIHBhdGNoOg0KPiA+Pj4g
Pj4NCj4gPj4+ID4+ICBpbmNsdWRlL2xpbnV4L2R5bmFtaWNfZGVidWcuaDo3NzoxNDogZXJyb3I6
ICdLQlVJTERfTU9ETkFNRScNCj4gPj4+ID4+ICB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp
cyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbg0KPiA+Pj4gJ0tCVUlMRF9CQVNFTkFNRSc/DQo+ID4+
PiA+Pg0KPiA+Pj4gPj4gRnVsbCByZXBvcnQ6DQo+ID4+PiA+Pg0KPiA+Pj4gPj4NCj4gPj4+DQo+
IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9hdGgxMGsvMjAxOC1GZWJydWFy
eS8wMTA5MDcuaHRtbA0KPiA+Pj4gPj4NCj4gPj4+ID4+IEFueSBpZGVhcz8gSXMgdGhpcyBpcyBz
b21lIHVucmVsYXRlZCBpc3N1ZSBvciB3aGF0PyBUaGlzIHBhdGNoIGlzDQo+IG5vdA0KPiA+Pj4g
Pj4gZXZlbiB0b3VjaGluZyBoaWYuaCBvciBjZS5jLg0KPiA+Pj4gPg0KPiA+Pj4gPiBJIGRpZG4n
dCBlbmNvdW50ZXJlZCB0aGlzIGlzc3VlIGFzIGluIG15IGRlZmNvbmZpZyBvbmx5DQo+ID4+PiA+
IENPTkZJR19BVEgxMEtfU05PQyB3YXMgZGVmaW5lZC4gVGhpcyBwcm9ibGVtIGlzIGNvbWluZyB3
aGVuIHdlIGRlZmluZQ0KPiA+Pj4gPiBDT05GSUdfQVRIMTBLX1NOT0MgYW5kIENPTkZJR19BVEgx
MEtfUENJIHNpbXVsdGFuZW91c2x5IGluIGRlZmNvbmZpZw0KPiA+Pj4gPiBhbmQgdGhpcyBpcyBr
bm93biBpc3N1ZSB3aGVuIG11bHRpcGxlIG1vZHVsZXMgc2hhcmUgb2JqZWN0cyhpbiB0aGlzDQo+
ID4+PiA+IGNhc2UgY2UubykuIEkgc2F3IHNpbWlsYXIgcmVwb3J0ZWQgcHJvYmxlbSBhbmQgZm91
bmQNCj4gPj4+ID4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC8xMDA2MDgyNS8u
DQo+ID4+PiA+DQo+ID4+PiA+IEFmdGVyIHBpY2tpbmcgdGhlIGJlbG93IGNoYW5nZSBpc3N1ZSBp
cyBub3Qgc2Vlbi4NCj4gPj4+DQo+ID4+PiBMZXQncyBhc2sgdGhlIGtidWlsZCBtYWludGFpbmVy
LiBNYXNhaGlybywgYW55IGNoYW5jZXMgb2YgZ2V0dGluZw0KPiA+Pj4gdGhpcw0KPiA+Pj4gcGF0
Y2ggYXBwbGllZCBhbnl0aW1lIHNvb246DQo+ID4+Pg0KPiA+Pj4ga2J1aWxkOiBkZWZpbmUgS0JV
SUxEX01PRE5BTUUgZXZlbiBpZiBtdWx0aXBsZSBtb2R1bGVzIHNoYXJlIG9iamVjdHMNCj4gPj4+
DQo+ID4+PiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwMDYwODI1Lw0KPiA+
Pj4NCj4gPj4+IEluIGF0aDEwayB3ZSB3b3VsZCBuZWVkIGl0IGFzIG90aGVyd2lzZSB3ZSBhcmUg
bm90IGFibGUgdG8gbGluayBjZS5vDQo+ID4+PiBib3RoIHRvIGF0aDEwa19wY2kua28gYW5kIGF0
aDEwa19zbm9jLmtvLiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPj4+DQo+ID4+PiBGdWxsIGRpc2N1
c3Npb24gYW5kIHRoZSBhdGgxMGsgcGF0Y2ggaGVyZToNCj4gPj4+DQo+ID4+PiBodHRwczovL3Bh
dGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwMjIwNjU3Lw0KPiA+Pj4NCj4gPj4NCj4gPj4gSSBw
bGFuIHRvIHN1Ym1pdCB2MiwgYnV0IGV2ZW4gaWYgdGhlIHVuZGVmaW5lZCBLQlVJTERfTU9ETkFN
RSBpcw0KPiA+PiBmaXhlZCwNCj4gPj4gSSBleHBlY3QgYW5vdGhlciBwcm9ibGVtIGZyb20gdGhp
cyBwYXRjaC4NCj4gPj4NCj4gPj4gSWYgYm90aCBDT05GSUdfQVRIMTBLX1BDSSBhbmQgQ09ORklH
X0FUSDEwX1NOT0MgYXJlICd5Jw0KPiA+PiB0d28gaW5zdGFuY2VzIG9mIGNlLm8gd291bGQgYmUg
bGlua2VkIGludG8gdm1saXV4LA0KPiA+PiB0aGVuIGNhdXNlcyBtdWx0aXBsZSBkZWZpbml0aW9u
IGVycm9yLg0KPiA+DQo+ID4gT2gsIEkgZGlkbid0IHJlYWxpc2UgdGhpcy4gVGhhbmtzIGZvciBw
b2ludGluZyBpdCBvdXQuIEdvdmluZCBpcw0KPiA+IGxvb2tpbmcNCj4gPiBhdCBvdGhlciB3YXlz
IHRvIGZpeCB0aGlzLg0KPiANCj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC8x
MDI5ODY1OS8gaXMgcmFpc2VkIHRvIGFkZHJlc3MgdGhpcw0KPiBwcm9ibGVtLg0KPiANCg0KDQoN
Cj4gQ0UgbGF5ZXIgaXMgc2hhcmVkIGJldHdlZW4gcGNpIGFuZCBzbm9jIHRhcmdldCBhbmQgcmVz
dWx0cw0KPiBpbiBkdXBsaWNhdGUgb2JqZWN0IGluY2x1c2lvbiBpZiBib3RoIG1vZHVsZXMgYXJl
IGNvbXBpbGVkDQo+IHRvZ2V0aGVyIHN0YXRpY2FsbHkgYW5kIHVuZGVmaW5lZCBLQlVJTERfTU9E
TkFNRSBpZg0KPiBjb21waWxlZCBhcyBtb2R1bGUuDQoNCg0KSWYgeW91IHJlYmFzZSB5b3VyIGRl
dmVsb3BtZW50IG9uIHY0LjE3LXJjMSwNCnRoaXMgc3RhdGVtZW50IGlzIG5vIGxvbmdlciB0cnVl
Lg0KDQoNCj4gRml4IHRoaXMgYnkgYnVpbGRpbmcgY2UgbGF5ZXIgaW4gYXRoMTBrIGNvcmUgbW9k
dWxlIGJ5DQo+IGFkZGluZyBjZSBvYmplY3QgaW5jbHVzaW9uIHdpdGggQVRIMTBLX0NFIGJvb2xl
YW4gQ09ORklHLg0KDQoNCg0KDQpUb2RheSwgdGhlIHNvbHV0aW9uIGxhbmRlZCBpbiBMaW51cycg
dHJlZS4NCg0KWzFdIFNvbHV0aW9uIGZvciBtaXNzaW5nIEtCVUlMRF9NT0ROQU1FIGRlZmluaXRp
b24NCg0KY29tbWl0IGFlYWNiMDE5YjYxYzRlYTc2ODkwODU1NzRiZDAzZDJjMDgxMGYxMTkNCkF1
dGhvcjogTWFzYWhpcm8gWWFtYWRhIDx5YW1hZGEubWFzYWhpcm9Ac29jaW9uZXh0LmNvbT4NCkRh
dGU6ICAgTW9uIE1hciAxOSAxODowMToyNCAyMDE4ICswOTAwDQoNCiAgICBrYnVpbGQ6IGRlZmlu
ZSBLQlVJTERfTU9ETkFNRSBldmVuIGlmIG11bHRpcGxlIG1vZHVsZXMgc2hhcmUgb2JqZWN0cw0K
DQoNCg0KWzJdIFNvbHV0aW9uIGZvciBtdWx0aXBsZSBkZWZpbml0aW9uIGVycm9yIHdoZW4gYm90
aCBhcmUgYnVpbHQtaW4NCg0KY29tbWl0IGY5OGZlNDdjZTUxZGVlNmQ5N2RkOTFiYmVjY2RkZTIz
ZjA0M2M3NTQNCkF1dGhvcjogTWFzYWhpcm8gWWFtYWRhIDx5YW1hZGEubWFzYWhpcm9Ac29jaW9u
ZXh0LmNvbT4NCkRhdGU6ICAgTW9uIE1hciAxOSAyMDoyNjowOCAyMDE4ICswOTAwDQoNCiAgICBr
YnVpbGQ6IGxpbmsgJChyZWFsLW9iai15KSBpbnN0ZWFkIG9mICQob2JqLXkpIGludG8gYnVpbHQt
aW4uYQ0KDQoNCg0KDQpbM10gRXhhbXBsZXMgZm9yIE1ha2VmaWxlIGNsZWFudXBzDQoNCg0KY29t
bWl0IGY2MDUwMDVhNTBmYzE0NDNhMTRiNGU4YzljMTcyNzg4MWY4Zjk2YWUNCkF1dGhvcjogTWFz
YWhpcm8gWWFtYWRhIDx5YW1hZGEubWFzYWhpcm9Ac29jaW9uZXh0LmNvbT4NCkRhdGU6ICAgTW9u
IE1hciAxOSAyMDoyNjoxMCAyMDE4ICswOTAwDQoNCiAgICBuZXQ6IGxpcXVpZGlvOiBjbGVhbiB1
cCBNYWtlZmlsZSBmb3Igc2ltcGxlciBjb21wb3NpdGUgb2JqZWN0IGhhbmRsaW5nDQoNCg0KDQpj
b21taXQgZGMzNWRhMTZhMmUyM2RiMDQ4MjJmMDEyOWNkNWIyOGI3YjBlNzJiNA0KQXV0aG9yOiBN
YXNhaGlybyBZYW1hZGEgPHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQuY29tPg0KRGF0ZTogICBN
b24gTWFyIDE5IDIwOjI2OjA5IDIwMTggKzA5MDANCg0KICAgIGxpYjogenN0ZDogY2xlYW4gdXAg
TWFrZWZpbGUgZm9yIHNpbXBsZXIgY29tcG9zaXRlIG9iamVjdCBoYW5kbGluZw0KDQo=