RE: [PATCH] [v14] wireless: Initial driver submission for pureLiFi STA devices
> From: Srinivasan Raju > Sent: 26 February 2021 13:09 > This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC > and LiFi-XL USB devices. > > This driver implementation has been based on the zd1211rw driver. > > Driver is based on 802.11 softMAC Architecture and uses > native 802.11 for configuration and management. > > The driver is compiled and tested in ARM, x86 architectures and > compiled in powerpc architecture. > > Signed-off-by: Srinivasan Raju > > --- > v14: > - Endianess comments addressed > - Sparse checked and fixed warnings > - Firmware files renamed to lowercase > - All other review comments in v13 addressed Hi, Could you please review this patch and let us know if there are any comments. And please let us know if any changes has to be made to the driver for getting into wireless-next. Thanks Srini
[PATCH] [v14] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v14: - Endianess comments addressed - Sparse checked and fixed warnings - Firmware files renamed to lowercase - All other review comments in v13 addressed v13: - Removed unused #defines v12: - Removed sysfs, procfs related code - Addressed race condition bug - Used macros instead of magic numbers in firmware.c - Added copyright in all files v11, v10: - Addressed review comment on readability - Changed firmware names to match products v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |6 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 17 + drivers/net/wireless/purelifi/Makefile|2 + drivers/net/wireless/purelifi/plfxlc/Kconfig | 14 + drivers/net/wireless/purelifi/plfxlc/Makefile |3 + drivers/net/wireless/purelifi/plfxlc/chip.c | 97 ++ drivers/net/wireless/purelifi/plfxlc/chip.h | 84 ++ .../net/wireless/purelifi/plfxlc/firmware.c | 292 + drivers/net/wireless/purelifi/plfxlc/intf.h | 36 + drivers/net/wireless/purelifi/plfxlc/mac.c| 841 ++ drivers/net/wireless/purelifi/plfxlc/mac.h| 194 drivers/net/wireless/purelifi/plfxlc/usb.c| 1014 + drivers/net/wireless/purelifi/plfxlc/usb.h| 179 +++ 15 files changed, 2781 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/Kconfig create mode 100644 drivers/net/wireless/purelifi/plfxlc/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/firmware.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/intf.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index 5c1a6ba5ef26..c64888b19476 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14199,6 +14199,12 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PURELIFI USB DRIVER +M: Srinivasan Raju +L: linux-wirel...@vger.kernel.org +S: Supported +F: drivers/net/wireless/purelifi/ + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 7add2002ff4c..404afe574920 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -28,6 +28,7 @@ source "drivers/net/wireless/intersil/Kconfig" source "drivers/net/wireless/marvell/Kconfig" source "drivers/net/wireless/mediatek/Kconfig" source "drivers/net/wireless/microchip/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" source "drivers/net/wireless/ralink/Kconfig" source "drivers/net/wireless/realtek/Kconfig" source "drivers/net/wireless/rsi/Kconfig" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e3345893c9c5 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -13,6 +13,7 @@ obj-$(CONFIG_WLAN_VENDOR_INTERSIL) += intersil/ obj-$(CONFIG_WLAN_VENDOR_MARVELL) += marvell/ obj-$(CONFIG_WLAN_VENDOR_MEDIATEK) += mediatek/ obj-$(CONFIG_WLAN_VENDOR_MICROCHIP) += microchip/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ obj-$(CONFIG_WLAN_VENDOR_RALINK) += ralink/ obj-$(CONFIG_WLAN_VENDOR_REALTEK) += realtek/ obj-$(CONFIG_WLAN_VENDOR_RSI) += rsi/ diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig n
RE: [PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices
> Having the firmware files under plfxlc/ directory looks good to me. But I'm > not really a fan of upper case filenames, is there a reason for that? I would > prefer have all lowercase filenames. Thanks for your suggestions. We have renamed the firmware names to lower-case and will submit v14 Thanks Srini
RE: [PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices
> That wasn't my point. My point was that the kernel code trusts the validity > of the firmware image, in the sense of e.g. this piece: >> + no_of_files = *(u32 *)_packed->data[0]; > If the firmware file was corrupted (intentionally/maliciously or not), this > could now be say 0x. Thanks for the clarification, We will submit next patch with additional validations to this > What are your reasons for piggy-backing on 2.4 GHz? Just practical "it's > there and we don't care"? As the LiFi is not standardised yet we are using the existing wireless frameworks. For now piggy-backing with 2.4GHz is seamless for users. We will undertake band and other wider change once IEEE 802.11bb is standardised. Thanks Srini
Re: [PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices
Hi, Please find a few responses to the comments , We will fix rest of the comments and submit v14 of the patch. > Also, you *really* need some validation here, rather than blindly > trusting that the file is well-formed, otherwise you immediately have a > security issue here. The firmware is signed and the harware validates the signature , so we are not validating in the software. >> +static const struct plf_reg_alpha2_map reg_alpha2_map[] = { >> + { PLF_REGDOMAIN_FCC, "US" }, >> + { PLF_REGDOMAIN_IC, "CA" }, >> + { PLF_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */ >> + { PLF_REGDOMAIN_JAPAN, "JP" }, >> + { PLF_REGDOMAIN_SPAIN, "ES" }, >> + { PLF_REGDOMAIN_FRANCE, "FR" }, >> +}; > You actually have regulatory restrictions on this stuff? Currently, There are no regulatory restrictions applicable for LiFi , regulatory_hint setting is only for wifi core >> +static const struct ieee80211_rate purelifi_rates[] = { >> + { .bitrate = 10, >> + .hw_value = PURELIFI_CCK_RATE_1M, >> + .flags = 0 }, >> + { .bitrate = 20, >> + .hw_value = PURELIFI_CCK_RATE_2M, >> + .hw_value_short = PURELIFI_CCK_RATE_2M >> + | PURELIFI_CCK_PREA_SHORT, >> + .flags = IEEE80211_RATE_SHORT_PREAMBLE }, >> + { .bitrate = 55, >> + .hw_value = PURELIFI_CCK_RATE_5_5M, >> + .hw_value_short = PURELIFI_CCK_RATE_5_5M >> + | PURELIFI_CCK_PREA_SHORT, >> + .flags = IEEE80211_RATE_SHORT_PREAMBLE }, >> + { .bitrate = 110, >> + .hw_value = PURELIFI_CCK_RATE_11M, >> + .hw_value_short = PURELIFI_CCK_RATE_11M >> + | PURELIFI_CCK_PREA_SHORT, >> + .flags = IEEE80211_RATE_SHORT_PREAMBLE }, > So ... how much of that is completely fake? Are you _actually_ doing 1, > 2, 5.5 etc. Mbps over the air, and you even have short and long > preamble? Why do all of that legacy mess, when you're essentially > greenfield?? Yes, this not used. We will test and remove the unused legacy settings > OTOH, I can sort of see why/how you're reusing wifi functionality here, > very old versions of wifi even had an infrared PHY I think. > > Conceptually, it seems odd. Perhaps we should add a new band definition? > > And what I also asked above - how much of the rate stuff is completely > fake? Are you really doing CCK/OFDM in some (strange?) way? Yes, your understanding is correct, and we use OFDM. For now we will use the existing band definition. Thanks Srini From: Johannes Berg Sent: Friday, February 12, 2021 7:14 PM To: Srinivasan Raju Cc: Mostafa Afgani; Kalle Valo; David S. Miller; Jakub Kicinski; open list; open list:NETWORKING DRIVERS (WIRELESS); open list:NETWORKING DRIVERS Subject: Re: [PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices Hi, Thanks for your patience, and thanks for sticking around! I'm sorry I haven't reviewed this again in a long time, but I was able to today. > +PUREILIFI USB DRIVER Did you mistype "PURELIFI" here, or was that intentional? > +PUREILIFI USB DRIVER > +M: Srinivasan Raju Probably would be good to have an "L" entry with the linux-wireless list here. > +if WLAN_VENDOR_PURELIFI > + > +source "drivers/net/wireless/purelifi/plfxlc/Kconfig" Seems odd to have the Makefile under purelifi/ but the Kconfig is yet another directory deeper? > +++ b/drivers/net/wireless/purelifi/Makefile > @@ -0,0 +1,2 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) := plfxlc/ Although this one doesn't do anything, so all you did was save a level of Kconfig inclusion I guess ... no real objection to that. > diff --git a/drivers/net/wireless/purelifi/plfxlc/Kconfig > b/drivers/net/wireless/purelifi/plfxlc/Kconfig > new file mode 100644 > index ..07a65c0fce68 > --- /dev/null > +++ b/drivers/net/wireless/purelifi/plfxlc/Kconfig > @@ -0,0 +1,13 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +config PLFXLC > + > + tristate "pureLiFi X, XL, XC device support" extra blank line. Also, maybe that should be a bit more verbose? PURELIFI_XLC or so? I don't think it shows up in many places, but if you see "PLFXLC" somewhere that's not very helpful. > + depends on CFG80211 && MAC80211 && USB > + help > +This driver makes the adapter appear as a normal WLAN interface. > + > +The pureLiFi device requires external STA firmware to be
Re: [PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices
> Ah, kbuild bot had already reported few issues: > https://patchwork.kernel.org/project/linux-wireless/patch/20210212115030.124490-1-srini.r...@purelifi.com/ > Please fix those and I recommend waiting few days in case the bot finds > more issues. After that you can submitt v14 fixing the comments you got > in this review round. Hi Kalle, Thanks for reviewing the patch. We will fix / address the comments and resubmit v14 Thanks Srini -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
[PATCH] [v13] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v13 - Removed unused #defines v12: - Removed sysfs, procfs related code - Addressed race condition bug - Used macros instead of magic numbers in firmware.c - Added copyright in all files v11, v10: - Addressed review comment on readability - Changed firmware names to match products v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 17 + drivers/net/wireless/purelifi/Makefile|2 + drivers/net/wireless/purelifi/plfxlc/Kconfig | 13 + drivers/net/wireless/purelifi/plfxlc/Makefile |3 + drivers/net/wireless/purelifi/plfxlc/chip.c | 96 ++ drivers/net/wireless/purelifi/plfxlc/chip.h | 84 ++ .../net/wireless/purelifi/plfxlc/firmware.c | 290 + drivers/net/wireless/purelifi/plfxlc/intf.h | 41 + drivers/net/wireless/purelifi/plfxlc/mac.c| 876 ++ drivers/net/wireless/purelifi/plfxlc/mac.h| 192 drivers/net/wireless/purelifi/plfxlc/usb.c| 1009 + drivers/net/wireless/purelifi/plfxlc/usb.h| 177 +++ 15 files changed, 2807 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/Kconfig create mode 100644 drivers/net/wireless/purelifi/plfxlc/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/firmware.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/intf.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index 5c1a6ba5ef26..3178ded0a91e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14199,6 +14199,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Supported +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 7add2002ff4c..3a1f5ef3aa43 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -35,6 +35,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..e39afec3dcae --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0-only +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer t
Re: [PATCH] [v11] wireless: Initial driver submission for pureLiFi STA devices
> I haven't had time to do a throrough review yet, but I suggest fixing > the stuff I commented and submitting v12. I'll then do a new review with v12. Hi Kalle, We have submitted v12 of the driver for review. Thanks Srini
[PATCH] [PATCH] [v12] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v12: - Removed sysfs, procfs related code - Addressed race condition bug - Used macros instead of magic numbers in firmware.c - Added copyright in all files v11, v10: - Addressed review comment on readability - Changed firmware names to match products v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 17 + drivers/net/wireless/purelifi/Makefile|2 + drivers/net/wireless/purelifi/plfxlc/Kconfig | 13 + drivers/net/wireless/purelifi/plfxlc/Makefile |3 + drivers/net/wireless/purelifi/plfxlc/chip.c | 96 ++ drivers/net/wireless/purelifi/plfxlc/chip.h | 84 ++ .../net/wireless/purelifi/plfxlc/firmware.c | 290 + drivers/net/wireless/purelifi/plfxlc/intf.h | 41 + drivers/net/wireless/purelifi/plfxlc/mac.c| 876 ++ drivers/net/wireless/purelifi/plfxlc/mac.h| 192 drivers/net/wireless/purelifi/plfxlc/usb.c| 1016 + drivers/net/wireless/purelifi/plfxlc/usb.h| 177 +++ 15 files changed, 2814 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/Kconfig create mode 100644 drivers/net/wireless/purelifi/plfxlc/Makefile create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/firmware.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/intf.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.h create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.c create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index 5c1a6ba5ef26..3178ded0a91e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14199,6 +14199,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Supported +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 7add2002ff4c..3a1f5ef3aa43 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -35,6 +35,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..e39afec3dcae --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0-only +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly
RE: [PATCH] [v11] wireless: Initial driver submission for pureLiFi STA devices
> I see lots of magic numbers in the driver like 2, 0x33 and 0x34 here. > Please convert the magic numbers to proper defines explaining the meaning. > And for vendor commands you could even use enum to group them better in .h > file somewhere. Hi Kalle, Thanks for reviewing the driver, We will work on the comments. Regards, Srini
[PATCH] [v11] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v11, v10: - Addressed review comment on readability - Changed firmware names to match products and latest firmware v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - usb.c is split into two files firmware.c and dbgfs.c - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile|1 + drivers/net/wireless/purelifi/Kconfig| 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 93 ++ drivers/net/wireless/purelifi/chip.h | 81 ++ drivers/net/wireless/purelifi/dbgfs.c| 150 +++ drivers/net/wireless/purelifi/firmware.c | 384 drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c | 873 ++ drivers/net/wireless/purelifi/mac.h | 189 drivers/net/wireless/purelifi/usb.c | 1075 ++ drivers/net/wireless/purelifi/usb.h | 199 14 files changed, 3119 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/dbgfs.c create mode 100644 drivers/net/wireless/purelifi/firmware.c create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..17955b8497df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Supported +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" +
[PATCH] [v10] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v10: - Addressed review comment on readability - Changed firmware names to match products v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - usb.c is split into two files firmware.c and dbgfs.c - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile|1 + drivers/net/wireless/purelifi/Kconfig| 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 93 ++ drivers/net/wireless/purelifi/chip.h | 81 ++ drivers/net/wireless/purelifi/dbgfs.c| 150 +++ drivers/net/wireless/purelifi/firmware.c | 384 drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c | 873 ++ drivers/net/wireless/purelifi/mac.h | 189 drivers/net/wireless/purelifi/usb.c | 1075 ++ drivers/net/wireless/purelifi/usb.h | 199 14 files changed, 3119 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/dbgfs.c create mode 100644 drivers/net/wireless/purelifi/firmware.c create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..17955b8497df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Supported +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211
Re: [PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices
> What will be the directory structure in linux-firmware? It should be > unique so that it's not possible to mix with other drivers. I have created the following directory structure, Please let me know if this is OK. LICENCE.purelifi_firmware | 29 + purelifi/Li-Fi-XL.bin | Bin 0 -> 70228 bytes purelifi/fpga.bit | Bin 0 -> 3825907 bytes purelifi/fpga_xc.bit | Bin 0 -> 3825906 bytes 4 files changed, 29 insertions(+) Thanks Srini
[PATCH] [v9] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v9: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7 , v8: - Magic numbers removed and used IEEE80211 macors - usb.c is split into two files firmware.c and dbgfs.c - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile|1 + drivers/net/wireless/purelifi/Kconfig| 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 93 ++ drivers/net/wireless/purelifi/chip.h | 81 ++ drivers/net/wireless/purelifi/dbgfs.c| 161 drivers/net/wireless/purelifi/firmware.c | 384 drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c | 873 ++ drivers/net/wireless/purelifi/mac.h | 189 drivers/net/wireless/purelifi/usb.c | 1075 ++ drivers/net/wireless/purelifi/usb.h | 199 14 files changed, 3130 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/dbgfs.c create mode 100644 drivers/net/wireless/purelifi/firmware.c create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..17955b8497df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Supported +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter ap
Re: [PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices
Hi Kalle, we will be submitting to linux-firmware repository @ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git I will share the link once it is accpeted, we have sent another version of the patch v8 , please review and provide your comments Thanks Srini From: Srinivasan Raju Sent: Thursday, November 26, 2020 10:31 AM To: Kalle Valo Cc: Mostafa Afgani; David S. Miller; Jakub Kicinski; Mauro Carvalho Chehab; Rob Herring; Lukas Bulwahn; open list; open list:NETWORKING DRIVERS (WIRELESS); open list:NETWORKING DRIVERS Subject: Re: [PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices > I haven't had a chance to review this yet but we have some documentation for > new drivers: > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#new_driver > Is the firmware publically available? Thanks Kalle, We will make the firmware available in our website for public access and share the details. Regards Srini
[PATCH] [v8] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju --- v8: - Addressed review comments on style and content defects - Used kmemdup instead of alloc and memcpy v7: - Magic numbers removed and used IEEE80211 macors - usb.c is split into two files firmware.c and dbgfs.c - Other code style and timer function fixes (mod_timer) v6: - Code style fix patch from Joe Perches v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros v3: - Code style fixes kconfig fix v2: - Driver submitted to wireless-next - Code style fixes and copyright statement fix v1: - Driver submitted to staging --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile|1 + drivers/net/wireless/purelifi/Kconfig| 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 94 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/dbgfs.c| 161 drivers/net/wireless/purelifi/firmware.c | 367 drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c | 876 ++ drivers/net/wireless/purelifi/mac.h | 189 drivers/net/wireless/purelifi/usb.c | 1073 ++ drivers/net/wireless/purelifi/usb.h | 197 14 files changed, 3114 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/dbgfs.c create mode 100644 drivers/net/wireless/purelifi/firmware.c create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter ap
Re: [PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices
> I haven't had a chance to review this yet but we have some documentation for > new drivers: > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#new_driver > Is the firmware publically available? Thanks Kalle, We will make the firmware available in our website for public access and share the details. Regards Srini
Re: [PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices
> trivial notes and some style and content defects: > (I stopped reading after awhile) Thanks, I will address the comments. Regards Srini
[PATCH] [v7] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Signed-off-by: Srinivasan Raju Changes v6->v7: - Magic numbers removed and used IEEE80211 macors - usb.c is split into two files firmware.c and dbgfs.c - Other code style and timer function fixes (mod_timer) Changes v5->v6: - Code style fix patch from Joe Perches Changes v4->v5: - Code refactoring for clarity and redundnacy removal - Fix warnings from kernel test robot Changes v3->v4: - Code refactoring based on kernel code guidelines - Remove multi level macors and use kernel debug macros Changes v2->v3: - Code style fixes kconfig fix Changes v1->v2: - v1 was submitted to staging, v2 submitted to wireless-next - Code style fixes and copyright statement fix --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile|1 + drivers/net/wireless/purelifi/Kconfig| 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 94 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/dbgfs.c| 161 drivers/net/wireless/purelifi/firmware.c | 367 drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c | 876 ++ drivers/net/wireless/purelifi/mac.h | 189 drivers/net/wireless/purelifi/usb.c | 1073 ++ drivers/net/wireless/purelifi/usb.h | 197 14 files changed, 3114 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/dbgfs.c create mode 100644 drivers/net/wireless/purelifi/firmware.c create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter appear as a normal WLAN interface.
Re: [PATCH] [v6] wireless: Initial driver submission for pureLiFi STA devices
> When you do, please start adding > changelog information below the > --- > line to your patches. > > It's quite a chore to figure out > what changed between revisions. Ok, will add version logs to future revisions. Thanks Srini
Re: [PATCH] [v6] wireless: Initial driver submission for pureLiFi STA devices
> Overall, there are many magic numbers without comments, this makes it hard to > understand the code. Using defines with proper naming helps and for 802.11 > stuff > can use ieee80211_*/IEEE80211_* should be used. Thanks for your comments Krishna, will work on them. Regards, Srini
[PATCH] [v6] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Reported-by: kernel test robot Signed-off-by: Srinivasan Raju --- MAINTAINERS|5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 94 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c| 860 + drivers/net/wireless/purelifi/mac.h| 180 +++ drivers/net/wireless/purelifi/usb.c| 1627 drivers/net/wireless/purelifi/usb.h| 148 +++ 12 files changed, 3066 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter appear as a normal WLAN interface. + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the module will + be called purelifi. + +endif # WLAN_VENDOR_PURELIFI diff --git a/drivers/net/wireless/purelifi/Makefile b/drivers/net/wireless/purelifi/Makefile new file mode 100644 index ..1f20055e741f --- /dev/null +++ b/drivers/net/wireless/purelifi/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_PURELIFI) := purelifi.o +purelifi-objs += chip.o usb.o mac.o diff --git a/drivers/net/wireless/purelifi/chip.c b/drivers/net/wireless/purelifi/chip.c new file mode 100644 index ..4282ce1d92b4 --- /dev/null +++ b/drivers/net/wireless/purelifi/chip.c @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +#include &q
Re: [PATCH] [v5] wireless: Initial driver submission for pureLiFi STA devices
Mostly trivial comments: >> Ok Thanks, I will address them
[PATCH] [v5] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Reported-by: kernel test robot Signed-off-by: Srinivasan Raju --- MAINTAINERS|5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 97 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c| 861 + drivers/net/wireless/purelifi/mac.h| 180 +++ drivers/net/wireless/purelifi/usb.c| 1637 drivers/net/wireless/purelifi/usb.h| 148 +++ 12 files changed, 3080 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter appear as a normal WLAN interface. + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the module will + be called purelifi. + +endif # WLAN_VENDOR_PURELIFI diff --git a/drivers/net/wireless/purelifi/Makefile b/drivers/net/wireless/purelifi/Makefile new file mode 100644 index ..1f20055e741f --- /dev/null +++ b/drivers/net/wireless/purelifi/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_PURELIFI) := purelifi.o +purelifi-objs += chip.o usb.o mac.o diff --git a/drivers/net/wireless/purelifi/chip.c b/drivers/net/wireless/purelifi/chip.c new file mode 100644 index ..cca03697cb06 --- /dev/null +++ b/drivers/net/wireless/purelifi/chip.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +#include &q
RE: [PATCH] [v4] wireless: Initial driver submission for pureLiFi STA devices
> Suggested neatening patch on top of this: Thanks for the neatening patch Joe, I will resubmit patch. Thanks Srini
[PATCH] [v4] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management. The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture. Reported-by: kernel test robot Signed-off-by: Srinivasan Raju --- MAINTAINERS|5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 97 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c| 869 + drivers/net/wireless/purelifi/mac.h| 178 +++ drivers/net/wireless/purelifi/usb.c| 1647 drivers/net/wireless/purelifi/usb.h| 148 +++ 12 files changed, 3096 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter appear as a normal WLAN interface. + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the module will + be called purelifi. + +endif # WLAN_VENDOR_PURELIFI diff --git a/drivers/net/wireless/purelifi/Makefile b/drivers/net/wireless/purelifi/Makefile new file mode 100644 index ..1f20055e741f --- /dev/null +++ b/drivers/net/wireless/purelifi/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_PURELIFI) := purelifi.o +purelifi-objs += chip.o usb.o mac.o diff --git a/drivers/net/wireless/purelifi/chip.c b/drivers/net/wireless/purelifi/chip.c new file mode 100644 index ..9ad2664b7542 --- /dev/null +++ b/drivers/net/wireless/purelifi/chip.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +#include &q
Re: [PATCH] [PATCH] [v3] wireless: Initial driver submission for pureLiFi STA devices
Thanks for your comments Joe, I have resubmitted with the comments addressed Regards, Srini
[PATCH] [PATCH] [v3] wireless: Initial driver submission for pureLiFi STA devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices. This driver implementation has been based on the zd1211rw driver. Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture Signed-off-by: Srinivasan Raju --- MAINTAINERS|5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 27 + drivers/net/wireless/purelifi/Makefile |3 + drivers/net/wireless/purelifi/chip.c | 97 ++ drivers/net/wireless/purelifi/chip.h | 82 ++ drivers/net/wireless/purelifi/intf.h | 38 + drivers/net/wireless/purelifi/mac.c| 874 + drivers/net/wireless/purelifi/mac.h| 178 +++ drivers/net/wireless/purelifi/usb.c| 1647 drivers/net/wireless/purelifi/usb.h| 147 +++ 12 files changed, 3100 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/intf.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index c80f87d7258c..150f592fb6e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14108,6 +14108,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..e9fc770026f0 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..f6630791df9d --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + This driver makes the adapter appear as a normal WLAN interface. + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the module will + be called purelifi. + +endif # WLAN_VENDOR_PURELIFI diff --git a/drivers/net/wireless/purelifi/Makefile b/drivers/net/wireless/purelifi/Makefile new file mode 100644 index ..1f20055e741f --- /dev/null +++ b/drivers/net/wireless/purelifi/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_PURELIFI) := purelifi.o +purelifi-objs += chip.o usb.o mac.o diff --git a/drivers/net/wireless/purelifi/chip.c b/drivers/net/wireless/purelifi/chip.c new file mode 100644 index ..ea1e58426c92 --- /dev/null +++ b/drivers/net/wireless/purelifi/chip.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +#include "chip.h" +#include "mac.h" +#in
Re: [PATCH] [v2] wireless: Initial driver submission for pureLiFi devices
> I stopped here. > > Thanks Thanks for your comments Leon, I will resubmit after the changes Thanks Srini
Re: [PATCH] [v2] wireless: Initial driver submission for pureLiFi devices
> Didn't look at the rest Thanks for your comments Joe, I will refactor the code for clarity, remove redundancy and address your comments. Regards Srini
Re: [PATCH] staging: Initial driver submission for pureLiFi devices
> It would be more common just to check for CONFIG_PURELIFI_AP in the source > file(s) instead of adding a synonym for it. Thanks for your comments Randy, Addressed your comments and resubmitted in /net/wireless Thanks Srini
Re: [PATCH] staging: Initial driver submission for pureLiFi devices
> Anyway, those are some ideas. Thanks for your comments Dan, Addressed your comments and resubmitted in /net/wireless Thanks Srini
Re: [PATCH] staging: Initial driver submission for pureLiFi devices
> There's nothing in the "how to submit a driver/patch" documentation that > mentions that it has to go through staging first, does it? If so, that > needs to be changed... Thanks for the feedback Greg, Addressed your comments and resubmitted in /net/wireless Regards Srini
[PATCH] [v2] wireless: Initial driver submission for pureLiFi devices
This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices, which provide lightweight, highspeed secure and fully networked wireless communications via light. This driver implementation has been based on the zd1211rw driver Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture Signed-off-by: Srinivasan Raju --- MAINTAINERS |5 + drivers/net/wireless/Kconfig |1 + drivers/net/wireless/Makefile |1 + drivers/net/wireless/purelifi/Kconfig | 38 + drivers/net/wireless/purelifi/Makefile|3 + drivers/net/wireless/purelifi/chip.c | 120 ++ drivers/net/wireless/purelifi/chip.h | 81 + drivers/net/wireless/purelifi/def.h | 46 + drivers/net/wireless/purelifi/log.h | 15 + drivers/net/wireless/purelifi/mac.c | 957 + drivers/net/wireless/purelifi/mac.h | 178 ++ .../net/wireless/purelifi/mac_usb_interface.h | 38 + drivers/net/wireless/purelifi/usb.c | 1872 + drivers/net/wireless/purelifi/usb.h | 148 ++ 14 files changed, 3503 insertions(+) create mode 100644 drivers/net/wireless/purelifi/Kconfig create mode 100644 drivers/net/wireless/purelifi/Makefile create mode 100644 drivers/net/wireless/purelifi/chip.c create mode 100644 drivers/net/wireless/purelifi/chip.h create mode 100644 drivers/net/wireless/purelifi/def.h create mode 100644 drivers/net/wireless/purelifi/log.h create mode 100644 drivers/net/wireless/purelifi/mac.c create mode 100644 drivers/net/wireless/purelifi/mac.h create mode 100644 drivers/net/wireless/purelifi/mac_usb_interface.h create mode 100644 drivers/net/wireless/purelifi/usb.c create mode 100644 drivers/net/wireless/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index 42c69d2eeece..0e8cd1decafe 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14098,6 +14098,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: Srinivasan Raju +S: Maintained +F: drivers/net/wireless/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 170a64e67709..b87da3139f94 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -48,6 +48,7 @@ source "drivers/net/wireless/st/Kconfig" source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" +source "drivers/net/wireless/purelifi/Kconfig" config PCMCIA_RAYCS tristate "Aviator/Raytheon 2.4GHz wireless support" diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 80b324499786..c403dda7a14e 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ +obj-$(WLAN_VENDOR_PURELIFI) += purelifi/ # 16-bit wireless PCMCIA client drivers obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o diff --git a/drivers/net/wireless/purelifi/Kconfig b/drivers/net/wireless/purelifi/Kconfig new file mode 100644 index ..ff05eaf0a8d4 --- /dev/null +++ b/drivers/net/wireless/purelifi/Kconfig @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: GPL-2.0 +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + Say Y if you want to use LiFi. + + This driver makes the adapter appear as a normal WLAN interface. + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the module will + be called purelifi. + +config PURELIFI_AP + + tristate "pureLiFi device Access Point support" + depends on PURELIFI + help + Say Y if you want to use LiFi in Access Point mode. + + The pureLiFi device requires external AP firmware to be loaded. + +endif #
Re: [PATCH] staging: Initial driver submission for pureLiFi devices
>> --- /dev/null >> +++ b/drivers/staging/purelifi/TODO >> @@ -0,0 +1,5 @@ >> +TODO: >> + - checkpatch.pl cleanups >> + >> +Please send any patches or complaints about this driver to pureLiFi Ltd >> + >Why not just do these fixups on your own right now and submit it to the >"real" part of the kernel? That should take what, a day or so max? >Just sending stuff to staging because you don't want to do coding style >cleanups feels very odd. It takes much more work and energy to do it >this way than to just do it right the first time and get it merged to >the networking subsystem, right? >So why do you want to send it to staging? Thanks for the comments Greg, This is my first kernel patch, I was under the impression that the staging area is the place to start for any new "Driver" code We will do the fixes and send an updated patch Thanks Srini
[PATCH] staging: Initial driver submission for pureLiFi devices
From: Srini This introduces the pureLiFi LiFi driver for LiFi-X, LiFi-XC and LiFi-XL USB devices, which provide lightweight, highspeed secure and fully networked wireless communications via light. This driver implementation has been based on the zd1211rw driver Driver is based on 802.11 softMAC Architecture and uses native 802.11 for configuration and management The driver is compiled and tested in ARM, x86 architectures and compiled in powerpc architecture Signed-off-by: Srinivasan Raju --- MAINTAINERS |5 + drivers/staging/Kconfig |2 + drivers/staging/Makefile |1 + drivers/staging/purelifi/Kconfig | 42 + drivers/staging/purelifi/Makefile|5 + drivers/staging/purelifi/TODO|5 + drivers/staging/purelifi/chip.c | 184 ++ drivers/staging/purelifi/chip.h | 101 + drivers/staging/purelifi/def.h | 70 + drivers/staging/purelifi/log.h | 32 + drivers/staging/purelifi/mac.c | 984 + drivers/staging/purelifi/mac.h | 196 ++ drivers/staging/purelifi/mac_usb_interface.h | 56 + drivers/staging/purelifi/usb.c | 1948 ++ drivers/staging/purelifi/usb.h | 166 ++ 15 files changed, 3797 insertions(+) create mode 100644 drivers/staging/purelifi/Kconfig create mode 100644 drivers/staging/purelifi/Makefile create mode 100644 drivers/staging/purelifi/TODO create mode 100644 drivers/staging/purelifi/chip.c create mode 100644 drivers/staging/purelifi/chip.h create mode 100644 drivers/staging/purelifi/def.h create mode 100644 drivers/staging/purelifi/log.h create mode 100644 drivers/staging/purelifi/mac.c create mode 100644 drivers/staging/purelifi/mac.h create mode 100644 drivers/staging/purelifi/mac_usb_interface.h create mode 100644 drivers/staging/purelifi/usb.c create mode 100644 drivers/staging/purelifi/usb.h diff --git a/MAINTAINERS b/MAINTAINERS index 924616dc19ff..0f1f865dc85b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14044,6 +14044,11 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/admin-guide/media/pulse8-cec.rst F: drivers/media/cec/usb/pulse8/ +PUREILIFI USB DRIVER +M: pureLiFi Ltd +S: Maintained +F: drivers/staging/purelifi + PVRUSB2 VIDEO4LINUX DRIVER M: Mike Isely L: pvru...@isely.net (subscribers-only) diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 2d0310448eba..c46c345f0b77 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -118,4 +118,6 @@ source "drivers/staging/wfx/Kconfig" source "drivers/staging/hikey9xx/Kconfig" +source "drivers/staging/purelifi/Kconfig" + endif # STAGING diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 757a892ab5b9..dfe9c47ffb1a 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -49,3 +49,4 @@ obj-$(CONFIG_KPC2000) += kpc2000/ obj-$(CONFIG_QLGE) += qlge/ obj-$(CONFIG_WFX) += wfx/ obj-y += hikey9xx/ +obj-$(CONFIG_VENDOR_PURELIFI) += purelifi/ diff --git a/drivers/staging/purelifi/Kconfig b/drivers/staging/purelifi/Kconfig new file mode 100644 index ..db24bdf884a3 --- /dev/null +++ b/drivers/staging/purelifi/Kconfig @@ -0,0 +1,42 @@ +config WLAN_VENDOR_PURELIFI + bool "pureLiFi devices" + default y + help + If you have a pureLiFi device, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_PURELIFI + +config PURELIFI + + tristate "pureLiFi device support" + depends on CFG80211 && MAC80211 && USB + help + Say Y if you want to use LiFi + + This driver makes the adapter appear as a normal WLAN interface + + The pureLiFi device requires external STA firmware to be loaded. + + To compile this driver as a module, choose M here: the + module will be called purelifi. + +config PURELIFI_AP + + tristate "pureLiFi device Access Point support" + depends on CFG80211 && MAC80211 && USB + help + Say Y if you want to use LiFi Access-Point + + This driver makes the adapter appear as a normal WLAN interface + + The pureLiFi device requires external AP firmware to be loaded. + + To compile this driver as a module, choose M here: the + module will be called purelifi. + +endif # WLAN_VENDOR_PURELIFI diff --git a/drivers/staging/purelifi/Makefile b/drivers/staging/purelifi/Makefile new fi