Re: [RFC PATCH 4/7] crypto: remove ARC4 support from the skcipher API

2020-07-02 Thread Ard Biesheuvel
On Thu, 2 Jul 2020 at 20:21, Ard Biesheuvel  wrote:
>
> On Thu, 2 Jul 2020 at 19:50, Eric Biggers  wrote:
> >
> > [+linux-wireless, Marcel Holtmann, and Denis Kenzior]
> >
> > On Thu, Jul 02, 2020 at 12:19:44PM +0200, Ard Biesheuvel wrote:
> > > Remove the generic ecb(arc4) skcipher, which is slightly cumbersome from
> > > a maintenance perspective, since it does not quite behave like other
> > > skciphers do in terms of key vs IV lifetime. Since we are leaving the
> > > library interface in place, which is used by the various WEP and TKIP
> > > implementations we have in the tree, we can safely drop this code now
> > > it no longer has any users.
> > >
> > > Signed-off-by: Ard Biesheuvel 
> >
> > Last year there was a discussion where it was mentioned that iwd uses
> > "ecb(arc4)" via AF_ALG.  So can we really remove it yet?
> > See 
> > https://lkml.kernel.org/r/97bb95f6-4a4c-4984-9eab-6069e19b4...@holtmann.org
> > Note that the code isn't in "iwd" itself but rather in "libell" which iwd
> > depends on: https://git.kernel.org/pub/scm/libs/ell/ell.git/
> >
> > Apparently it also uses md4 and ecb(des) too.
> >
>
> Ah yes, I remember now :-(
>
> > Marcel and Denis, what's your deprecation plan for these obsolete and 
> > insecure
> > algorithms?
> >
>
> Given Denis's statement:
>
>   It sounds to me like it was broken and should be fixed.  So our vote /
>   preference is to have ARC4 fixed to follow the proper semantics.  We
>   can deal with the kernel behavioral change on our end easily enough;
>   the required workarounds are the worse evil.
>
> I would think that an ABI break is not the end of the world for them,
> and given how trivial it is to implement RC4 in C, the workaround
> should be to simply implement RC4 in user space, and not even bother
> trying to use AF_ALG to get at ecb(arc4)
>
> (same applies to md4 and ecb(des) btw)
>
> There will always be a long tail of use cases, and at some point, we
> just have to draw the line and remove obsolete and insecure cruft,
> especially when it impedes progress on other fronts.
>

I have ported iwd to Nettle's LGPL 2.1 implementation of ARC4, and the
diffstat is

 src/crypto.c  | 80 
 src/main.c|  8 --
 unit/test-eapol.c |  3 +-
 3 files changed, 51 insertions(+), 40 deletions(-)

https://git.kernel.org/pub/scm/linux/kernel/git/ardb/iwd.git/log/?h=arc4-cleanup
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 9/9] arm64: dts: rockchip: add isp and sensors for Scarlet

2020-07-02 Thread Helen Koike
From: Eddie Cai 

Enable ISP and camera sensor ov2685 and ov5695 for Scarlet Chromebook

Verified with:
make ARCH=arm64 dtbs_check

Signed-off-by: Shunqian Zheng 
Signed-off-by: Eddie Cai 
Signed-off-by: Tomasz Figa 
Signed-off-by: Helen Koike 
---

This patch is based on:
https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/527854

Changes in V3:
- This patch was first submitted stand alone at
https://lore.kernel.org/patchwork/patch/1223736/
I'm including in this patch series without changes
---
 .../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 74 +++
 1 file changed, 74 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
index 4373ed732af76..ae08205aa8e24 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
@@ -296,6 +296,52 @@ camera:  {
 
/* 24M mclk is shared between world and user cameras */
pinctrl-0 = <_xfer _clkout1>;
+
+   /* Rear-facing camera */
+   wcam: camera@36 {
+   compatible = "ovti,ov5695";
+   reg = <0x36>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_rst>;
+
+   clocks = < SCLK_TESTCLKOUT1>;
+   clock-names = "xvclk";
+
+   avdd-supply = <_cam>;
+   dvdd-supply = <_cam>;
+   dovdd-supply = <_s0>;
+   reset-gpios = < 5 GPIO_ACTIVE_LOW>;
+
+   port {
+   wcam_out: endpoint {
+   remote-endpoint = <_in_wcam>;
+   data-lanes = <1 2>;
+   };
+   };
+   };
+
+   /* Front-facing camera */
+   ucam: camera@3c {
+   compatible = "ovti,ov2685";
+   reg = <0x3c>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_rst>;
+
+   clocks = < SCLK_TESTCLKOUT1>;
+   clock-names = "xvclk";
+
+   avdd-supply = <_cam>;
+   dovdd-supply = <_s0>;
+   dvdd-supply = <_s0>;
+   reset-gpios = < 3 GPIO_ACTIVE_LOW>;
+
+   port {
+   ucam_out: endpoint {
+   remote-endpoint = <_in_ucam>;
+   data-lanes = <1>;
+   };
+   };
+   };
 };
 
 _dp {
@@ -353,10 +399,38 @@ _domains {
gpio1830-supply = <_s0>; /* APIO4_VDD;  4c 4d */
 };
 
+ {
+   status = "okay";
+
+   ports {
+   port@0 {
+   mipi_in_wcam: endpoint@0 {
+   reg = <0>;
+   remote-endpoint = <_out>;
+   data-lanes = <1 2>;
+   };
+
+   mipi_in_ucam: endpoint@1 {
+   reg = <1>;
+   remote-endpoint = <_out>;
+   data-lanes = <1>;
+   };
+   };
+   };
+};
+
+_mmu {
+   status = "okay";
+};
+
  {
sdmode-gpios = < 2 GPIO_ACTIVE_HIGH>;
 };
 
+_dphy_rx0 {
+   status = "okay";
+};
+
 _dsi {
status = "okay";
clock-master;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 8/9] arm64: dts: rockchip: add isp0 node for rk3399

2020-07-02 Thread Helen Koike
From: Shunqian Zheng 

RK3399 has two ISPs, but only isp0 was tested.
Add isp0 node in rk3399 dtsi

Verified with:
make ARCH=arm64 dtbs_check 
DT_SCHEMA_FILES=Documentation/devicetree/bindings/media/rockchip-isp1.yaml

Signed-off-by: Shunqian Zheng 
Signed-off-by: Jacob Chen 
Signed-off-by: Helen Koike 

---

V4:
- update clock names

V3:
- clean up clocks

V2:
- re-order power-domains property

V1:
This patch was originally part of this patchset:

https://patchwork.kernel.org/patch/10267431/

The only difference is:
- add phy properties
- add ports
---
 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 25 
 1 file changed, 25 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index dba9641947a3a..ed8ba75dbbce8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1721,6 +1721,31 @@ vopb_mmu: iommu@ff903f00 {
status = "disabled";
};
 
+   isp0: isp0@ff91 {
+   compatible = "rockchip,rk3399-cif-isp";
+   reg = <0x0 0xff91 0x0 0x4000>;
+   interrupts = ;
+   clocks = < SCLK_ISP0>,
+< ACLK_ISP0_WRAPPER>,
+< HCLK_ISP0_WRAPPER>;
+   clock-names = "isp", "aclk", "hclk";
+   iommus = <_mmu>;
+   phys = <_dphy_rx0>;
+   phy-names = "dphy";
+   power-domains = < RK3399_PD_ISP0>;
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   #address-cells = <1>;
+   #size-cells = <0>;
+   };
+   };
+   };
+
isp0_mmu: iommu@ff914000 {
compatible = "rockchip,iommu";
reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 7/9] media: MAINTAINERS: rkisp1: add path to dt-bindings

2020-07-02 Thread Helen Koike
The Rockchip ISP bindings was moved out of staging.
Update MAINTAINERS file with the new path.

Fields sorted according to output of
./scripts/parse-maintainers.pl --input=MAINTAINERS --output=MAINTAINERS
--order

Signed-off-by: Helen Koike 

---

V3:
- Add line:
L: linux-rockc...@lists.infradead.org
- Re-order:
F: drivers/staging/media/rkisp1/

V2:
- This is a new patch in the series
---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 634d2c3d621aa..d7141cf17072f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14679,7 +14679,9 @@ F:  include/linux/hid-roccat*
 ROCKCHIP ISP V1 DRIVER
 M: Helen Koike 
 L: linux-me...@vger.kernel.org
+L: linux-rockc...@lists.infradead.org
 S: Maintained
+F: Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 F: drivers/staging/media/rkisp1/
 
 ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 5/9] media: staging: rkisp1: remove unecessary clocks

2020-07-02 Thread Helen Koike
aclk_isp_wrap is a child of aclk_isp, and hclk_isp_wrap is a child of
hclk_isp, thus we can remove parents from the list.

Also, for the isp0, we only need the ISP clock, ACLK and HCLK.
In the future we'll need a pixel clock for RK3288 and RK3399, and a JPEG
clock for RK3288.

So with the goal to cleanup the dt-bindings and remove it from staging,
simplify clock names to isp, aclk and hclk.

For reference, this is the isp clock topology on RK3399:

 xin24m
pll_npll
   npll
  clk_isp1
  clk_isp0
pll_cpll
   cpll
  aclk_isp1
 aclk_isp1_noc
 hclk_isp1
aclk_isp1_wrapper
hclk_isp1_noc
  aclk_isp0
 hclk_isp1_wrapper
 aclk_isp0_wrapper
 aclk_isp0_noc
 hclk_isp0
hclk_isp0_wrapper
hclk_isp0_noc
 pclkin_isp1_wrapper

Signed-off-by: Helen Koike 

---

Changes in V4:
- update binding according to suggestion by Robin Murphy
on https://patchwork.kernel.org/patch/11475007/

Changes in V3:
- this is a new patch in the series
---
 .../bindings/media/rockchip-isp1.yaml | 30 +--
 drivers/staging/media/rkisp1/rkisp1-dev.c |  8 ++---
 2 files changed, 17 insertions(+), 21 deletions(-)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index 4d111ef2e89c7..f10c53d008748 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -24,20 +24,20 @@ properties:
 maxItems: 1
 
   clocks:
-items:
-  - description: ISP clock
-  - description: ISP AXI clock clock
-  - description: ISP AXI clock  wrapper clock
-  - description: ISP AHB clock clock
-  - description: ISP AHB wrapper clock
+maxItems: 5
+minItems: 3
+description:
+  ISP clock
+  ISP AXI clock
+  ISP AHB clock
 
   clock-names:
+maxItems: 5
+minItems: 3
 items:
-  - const: clk_isp
-  - const: aclk_isp
-  - const: aclk_isp_wrap
-  - const: hclk_isp
-  - const: hclk_isp_wrap
+  - const: isp
+  - const: aclk
+  - const: hclk
 
   iommus:
 maxItems: 1
@@ -135,11 +135,9 @@ examples:
 reg = <0x0 0xff91 0x0 0x4000>;
 interrupts = ;
 clocks = < SCLK_ISP0>,
- < ACLK_ISP0>, < ACLK_ISP0_WRAPPER>,
- < HCLK_ISP0>, < HCLK_ISP0_WRAPPER>;
-clock-names = "clk_isp",
-  "aclk_isp", "aclk_isp_wrap",
-  "hclk_isp", "hclk_isp_wrap";
+ < ACLK_ISP0_WRAPPER>,
+ < HCLK_ISP0_WRAPPER>;
+clock-names = "isp", "aclk", "hclk";
 iommus = <_mmu>;
 phys = <>;
 phy-names = "dphy";
diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c 
b/drivers/staging/media/rkisp1/rkisp1-dev.c
index f38801fea10d9..175ac25fe99fa 100644
--- a/drivers/staging/media/rkisp1/rkisp1-dev.c
+++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
@@ -406,11 +406,9 @@ static irqreturn_t rkisp1_isr(int irq, void *ctx)
 }
 
 static const char * const rk3399_isp_clks[] = {
-   "clk_isp",
-   "aclk_isp",
-   "hclk_isp",
-   "aclk_isp_wrap",
-   "hclk_isp_wrap",
+   "isp",
+   "aclk",
+   "hclk",
 };
 
 static const struct rkisp1_match_data rk3399_isp_clk_data = {
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 6/9] dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging

2020-07-02 Thread Helen Koike
Move rkisp1 bindings to Documentation/devicetree/bindings/media

Verified with:
make ARCH=arm64 dt_binding_check 
DT_SCHEMA_FILES=Documentation/devicetree/bindings/media/rockchip-isp1.yaml

Signed-off-by: Helen Koike 
Acked-by: Rob Herring 
---
 .../devicetree/bindings/media/rockchip-isp1.yaml  | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {drivers/staging/media/rkisp1/Documentation => 
Documentation}/devicetree/bindings/media/rockchip-isp1.yaml (100%)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
similarity index 100%
rename from 
drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
rename to Documentation/devicetree/bindings/media/rockchip-isp1.yaml
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 0/9] move Rockchip ISP bindings out of staging / add ISP DT nodes for RK3399

2020-07-02 Thread Helen Koike
Move the bindings out of drivers/staging and place them in
Documentation/devicetree/bindings instead.

Also, add DT nodes for RK3399 and verify with make ARCH=arm64 dtbs_check
and make ARCH=arm64 dt_binding_check.

Tested by verifying images streamed from Scarlet Chromebook

Changes in v4:
- simplify clocks with "isp", "aclk" and "hclk" as suggested by
Robin Murphy on https://patchwork.kernel.org/patch/11475007/

Changes in v3:
- dropped accepted patches
- cleanup clocks
- fix "no reg" error in dt-bindings parent@0 example
- add linux-rockchip list in MAINTAINERS and reorder items
- add Scarlet sensors dt nodes to the series

Changes in v2:
Add patches modifying bindings, as sugested by Johan Jonker in v1,
before moving them out of staging.

Eddie Cai (1):
  arm64: dts: rockchip: add isp and sensors for Scarlet

Helen Koike (7):
  media: staging: dt-bindings: rkisp1: add missing required nodes
  media: staging: dt-bindings: rkisp1: add required items in i2c example
  media: staging: dt-bindings: rkisp1: re-order properties
  media: staging: dt-bindings: rkisp1: fix "no reg" error in parent node
  media: staging: rkisp1: remove unecessary clocks
  dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging
  media: MAINTAINERS: rkisp1: add path to dt-bindings

Shunqian Zheng (1):
  arm64: dts: rockchip: add isp0 node for rk3399

 .../bindings/media/rockchip-isp1.yaml | 64 +---
 MAINTAINERS   |  2 +
 .../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 74 +++
 arch/arm64/boot/dts/rockchip/rk3399.dtsi  | 25 +++
 drivers/staging/media/rkisp1/rkisp1-dev.c |  8 +-
 5 files changed, 142 insertions(+), 31 deletions(-)
 rename {drivers/staging/media/rkisp1/Documentation => 
Documentation}/devicetree/bindings/media/rockchip-isp1.yaml (83%)

-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 4/9] media: staging: dt-bindings: rkisp1: fix "no reg" error in parent node

2020-07-02 Thread Helen Koike
Fix the following error found with make ARCH=arm64 dt_binding_check:

Documentation/devicetree/bindings/media/rockchip-isp1.example.dts:24.27-101.11:
Warning (unit_address_vs_reg): /example-0/parent@0: node has a unit name, but 
no reg or ranges property

Reported-by: Johan Jonker 
Signed-off-by: Helen Koike 
---

V3:
- this is a new patch in the series
---
 .../Documentation/devicetree/bindings/media/rockchip-isp1.yaml   | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index e5b9c0574e352..4d111ef2e89c7 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -126,6 +126,7 @@ examples:
 #include 
 
 parent0: parent@0 {
+reg = <0 0>;
 #address-cells = <2>;
 #size-cells = <2>;
 
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 2/9] media: staging: dt-bindings: rkisp1: add required items in i2c example

2020-07-02 Thread Helen Koike
Add missing required items in Rockchip ISP1 dt-bindings example for
a complete i2c node.

Signed-off-by: Helen Koike 
---

Changes in v2:
- new patch in the series
---
 .../devicetree/bindings/media/rockchip-isp1.yaml | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index a77b6ec500c95..8c7904845788d 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -169,6 +169,11 @@ examples:
 };
 
 i2c7: i2c@ff16 {
+compatible = "rockchip,rk3399-i2c";
+reg = <0x0 0xff16 0x0 0x1000>;
+interrupts = ;
+clocks = < SCLK_I2C7>, < PCLK_I2C7>;
+clock-names = "i2c", "pclk";
 clock-frequency = <40>;
 #address-cells = <1>;
 #size-cells = <0>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 3/9] media: staging: dt-bindings: rkisp1: re-order properties

2020-07-02 Thread Helen Koike
Organize properties order in dt-binbings to move it out of staging.

On top: compatible, reg and interrupts.
Then alphabetical order, then properties starting with '#'.

Signed-off-by: Helen Koike 

---

V2:
- this is a new patch in the series
---
 .../bindings/media/rockchip-isp1.yaml | 32 +--
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index 8c7904845788d..e5b9c0574e352 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -23,19 +23,6 @@ properties:
   interrupts:
 maxItems: 1
 
-  iommus:
-maxItems: 1
-
-  power-domains:
-maxItems: 1
-
-  phys:
-maxItems: 1
-description: phandle for the PHY port
-
-  phy-names:
-const: dphy
-
   clocks:
 items:
   - description: ISP clock
@@ -52,6 +39,19 @@ properties:
   - const: hclk_isp
   - const: hclk_isp_wrap
 
+  iommus:
+maxItems: 1
+
+  phys:
+maxItems: 1
+description: phandle for the PHY port
+
+  phy-names:
+const: dphy
+
+  power-domains:
+maxItems: 1
+
   # See ./video-interfaces.txt for details
   ports:
 type: object
@@ -110,10 +110,10 @@ required:
   - interrupts
   - clocks
   - clock-names
-  - power-domains
   - iommus
   - phys
   - phy-names
+  - power-domains
   - ports
 
 additionalProperties: false
@@ -139,19 +139,19 @@ examples:
 clock-names = "clk_isp",
   "aclk_isp", "aclk_isp_wrap",
   "hclk_isp", "hclk_isp_wrap";
-power-domains = < RK3399_PD_ISP0>;
 iommus = <_mmu>;
 phys = <>;
 phy-names = "dphy";
+power-domains = < RK3399_PD_ISP0>;
 
 ports {
 #address-cells = <1>;
 #size-cells = <0>;
 
 port@0 {
+reg = <0>;
 #address-cells = <1>;
 #size-cells = <0>;
-reg = <0>;
 
 mipi_in_wcam: endpoint@0 {
 reg = <0>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v4 1/9] media: staging: dt-bindings: rkisp1: add missing required nodes

2020-07-02 Thread Helen Koike
Add missing required nodes in json-schema yaml file for
Rockchip ISP1 dt-bindings.

Signed-off-by: Helen Koike 
---

Changes in v2:
- New patch in the series
---
 .../devicetree/bindings/media/rockchip-isp1.yaml  | 8 
 1 file changed, 8 insertions(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index af246b71eac6b..a77b6ec500c95 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -94,11 +94,19 @@ properties:
 
   remote-endpoint: true
 
+required:
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
 required:
+  - "#address-cells"
+  - "#size-cells"
   - port@0
 
 required:
   - compatible
+  - reg
   - interrupts
   - clocks
   - clock-names
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH 4/7] crypto: remove ARC4 support from the skcipher API

2020-07-02 Thread Ard Biesheuvel
On Thu, 2 Jul 2020 at 19:50, Eric Biggers  wrote:
>
> [+linux-wireless, Marcel Holtmann, and Denis Kenzior]
>
> On Thu, Jul 02, 2020 at 12:19:44PM +0200, Ard Biesheuvel wrote:
> > Remove the generic ecb(arc4) skcipher, which is slightly cumbersome from
> > a maintenance perspective, since it does not quite behave like other
> > skciphers do in terms of key vs IV lifetime. Since we are leaving the
> > library interface in place, which is used by the various WEP and TKIP
> > implementations we have in the tree, we can safely drop this code now
> > it no longer has any users.
> >
> > Signed-off-by: Ard Biesheuvel 
>
> Last year there was a discussion where it was mentioned that iwd uses
> "ecb(arc4)" via AF_ALG.  So can we really remove it yet?
> See 
> https://lkml.kernel.org/r/97bb95f6-4a4c-4984-9eab-6069e19b4...@holtmann.org
> Note that the code isn't in "iwd" itself but rather in "libell" which iwd
> depends on: https://git.kernel.org/pub/scm/libs/ell/ell.git/
>
> Apparently it also uses md4 and ecb(des) too.
>

Ah yes, I remember now :-(

> Marcel and Denis, what's your deprecation plan for these obsolete and insecure
> algorithms?
>

Given Denis's statement:

  It sounds to me like it was broken and should be fixed.  So our vote /
  preference is to have ARC4 fixed to follow the proper semantics.  We
  can deal with the kernel behavioral change on our end easily enough;
  the required workarounds are the worse evil.

I would think that an ABI break is not the end of the world for them,
and given how trivial it is to implement RC4 in C, the workaround
should be to simply implement RC4 in user space, and not even bother
trying to use AF_ALG to get at ecb(arc4)

(same applies to md4 and ecb(des) btw)

There will always be a long tail of use cases, and at some point, we
just have to draw the line and remove obsolete and insecure cruft,
especially when it impedes progress on other fronts.



Full implementation of arc4 aka ecb(arc4) below.

void arc4_crypt(struct arc4_ctx *ctx, u8 *out, const u8 *in, unsigned int len)
{
  u32 *const S = ctx->S;
  u32 x, y, a, b;
  u32 ty, ta, tb;

  if (len == 0)
return;

  x = ctx->x;
  y = ctx->y;

  a = S[x];
  y = (y + a) & 0xff;
  b = S[y];

  do {
S[y] = a;
a = (a + b) & 0xff;
S[x] = b;
x = (x + 1) & 0xff;
ta = S[x];
ty = (y + ta) & 0xff;
tb = S[ty];
*out++ = *in++ ^ S[a];
if (--len == 0)
  break;
y = ty;
a = ta;
b = tb;
  } while (true);

  ctx->x = x;
  ctx->y = y;
}
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH 4/7] crypto: remove ARC4 support from the skcipher API

2020-07-02 Thread Eric Biggers
[+linux-wireless, Marcel Holtmann, and Denis Kenzior]

On Thu, Jul 02, 2020 at 12:19:44PM +0200, Ard Biesheuvel wrote:
> Remove the generic ecb(arc4) skcipher, which is slightly cumbersome from
> a maintenance perspective, since it does not quite behave like other
> skciphers do in terms of key vs IV lifetime. Since we are leaving the
> library interface in place, which is used by the various WEP and TKIP
> implementations we have in the tree, we can safely drop this code now
> it no longer has any users.
> 
> Signed-off-by: Ard Biesheuvel 

Last year there was a discussion where it was mentioned that iwd uses
"ecb(arc4)" via AF_ALG.  So can we really remove it yet?
See https://lkml.kernel.org/r/97bb95f6-4a4c-4984-9eab-6069e19b4...@holtmann.org
Note that the code isn't in "iwd" itself but rather in "libell" which iwd
depends on: https://git.kernel.org/pub/scm/libs/ell/ell.git/

Apparently it also uses md4 and ecb(des) too.

Marcel and Denis, what's your deprecation plan for these obsolete and insecure
algorithms?

- Eric
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3 5/9] media: staging: rkisp1: remove unecessary clocks

2020-07-02 Thread Helen Koike



On 7/2/20 1:54 PM, Helen Koike wrote:
> aclk_isp_wrap is a child of aclk_isp, and hclk_isp_wrap is a child of
> hclk_isp, thus we can remove parents from the list, with the goal to
> cleanup the dt-bindings and remove it from staging.
> 
> For reference, this is the isp clock topology:
> 
>  xin24m
> pll_npll
>npll
>   clk_isp1
>   clk_isp0
> pll_cpll
>cpll
>   aclk_isp1
>  aclk_isp1_noc
>  hclk_isp1
> aclk_isp1_wrapper
> hclk_isp1_noc
>   aclk_isp0
>  hclk_isp1_wrapper
>  aclk_isp0_wrapper
>  aclk_isp0_noc
>  hclk_isp0
> hclk_isp0_wrapper
> hclk_isp0_noc
>  pclkin_isp1_wrapper
> 
> Signed-off-by: Helen Koike 
> ---
> Changes in V3:
> - this is a new patch in the series
> ---
>  .../bindings/media/rockchip-isp1.yaml | 33 ++-
>  drivers/staging/media/rkisp1/rkisp1-dev.c |  2 --
>  2 files changed, 17 insertions(+), 18 deletions(-)
> 
> diff --git 
> a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
>  
> b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
> index 4d111ef2e89c7..f806820eb8153 100644
> --- 
> a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
> +++ 
> b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
> @@ -24,20 +24,21 @@ properties:
>  maxItems: 1
>  
>clocks:
> -items:
> -  - description: ISP clock
> -  - description: ISP AXI clock clock
> -  - description: ISP AXI clock  wrapper clock
> -  - description: ISP AHB clock clock
> -  - description: ISP AHB wrapper clock
> +maxItems: 5
> +minItems: 3

Sorry, I forgot to mentioned that, as discussed previously on 
https://patchwork.kernel.org/patch/11475007/ ,
this is prepared to add rk3288 support, this is why maxItems is 5 (since rk3288 
has 5 clocks).

> +description:
> +  rk3399 isp0 clocks
> +ISP clock
> +ISP AXI wrapper clock
> +ISP AHB wrapper clock
>  
>clock-names:
> -items:
> -  - const: clk_isp
> -  - const: aclk_isp
> -  - const: aclk_isp_wrap
> -  - const: hclk_isp
> -  - const: hclk_isp_wrap
> +oneOf:

Same for this "oneOf", so we can add "rk3399 isp1 clocks" and "rk3288 clocks" 
later.

Regards,
Helen

> +  # rk3399 isp0 clocks
> +  - items:
> +- const: clk_isp
> +- const: aclk_isp_wrap
> +- const: hclk_isp_wrap
>  
>iommus:
>  maxItems: 1
> @@ -135,11 +136,11 @@ examples:
>  reg = <0x0 0xff91 0x0 0x4000>;
>  interrupts = ;
>  clocks = < SCLK_ISP0>,
> - < ACLK_ISP0>, < ACLK_ISP0_WRAPPER>,
> - < HCLK_ISP0>, < HCLK_ISP0_WRAPPER>;
> + < ACLK_ISP0_WRAPPER>,
> + < HCLK_ISP0_WRAPPER>;
>  clock-names = "clk_isp",
> -  "aclk_isp", "aclk_isp_wrap",
> -  "hclk_isp", "hclk_isp_wrap";
> +  "aclk_isp_wrap",
> +  "hclk_isp_wrap";
>  iommus = <_mmu>;
>  phys = <>;
>  phy-names = "dphy";
> diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c 
> b/drivers/staging/media/rkisp1/rkisp1-dev.c
> index f38801fea10d9..36f5f3b97a9b9 100644
> --- a/drivers/staging/media/rkisp1/rkisp1-dev.c
> +++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
> @@ -407,8 +407,6 @@ static irqreturn_t rkisp1_isr(int irq, void *ctx)
>  
>  static const char * const rk3399_isp_clks[] = {
>   "clk_isp",
> - "aclk_isp",
> - "hclk_isp",
>   "aclk_isp_wrap",
>   "hclk_isp_wrap",
>  };
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 8/9] arm64: dts: rockchip: add isp0 node for rk3399

2020-07-02 Thread Helen Koike
From: Shunqian Zheng 

RK3399 has two ISPs, but only isp0 was tested.
Add isp0 node in rk3399 dtsi

Verified with:
make ARCH=arm64 dtbs_check 
DT_SCHEMA_FILES=Documentation/devicetree/bindings/media/rockchip-isp1.yaml

Signed-off-by: Shunqian Zheng 
Signed-off-by: Jacob Chen 
Signed-off-by: Helen Koike 

---

V3:
- clean up clocks

V2:
- re-order power-domains property

V1:
This patch was originally part of this patchset:

https://patchwork.kernel.org/patch/10267431/

The only difference is:
- add phy properties
- add ports
---
 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 27 
 1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 2581e9cc7a1de..a27c3ccf4bd08 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1710,6 +1710,33 @@ vopb_mmu: iommu@ff903f00 {
status = "disabled";
};
 
+   isp0: isp0@ff91 {
+   compatible = "rockchip,rk3399-cif-isp";
+   reg = <0x0 0xff91 0x0 0x4000>;
+   interrupts = ;
+   clocks = < SCLK_ISP0>,
+< ACLK_ISP0_WRAPPER>,
+< HCLK_ISP0_WRAPPER>;
+   clock-names = "clk_isp",
+ "aclk_isp_wrap",
+ "hclk_isp_wrap";
+   iommus = <_mmu>;
+   phys = <_dphy_rx0>;
+   phy-names = "dphy";
+   power-domains = < RK3399_PD_ISP0>;
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   #address-cells = <1>;
+   #size-cells = <0>;
+   };
+   };
+   };
+
isp0_mmu: iommu@ff914000 {
compatible = "rockchip,iommu";
reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 9/9] arm64: dts: rockchip: add isp and sensors for Scarlet

2020-07-02 Thread Helen Koike
From: Eddie Cai 

Enable ISP and camera sensor ov2685 and ov5695 for Scarlet Chromebook

Verified with:
make ARCH=arm64 dtbs_check

Signed-off-by: Shunqian Zheng 
Signed-off-by: Eddie Cai 
Signed-off-by: Tomasz Figa 
Signed-off-by: Helen Koike 
---

This patch is based on:
https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/527854

Changes in V3:
- This patch was first submitted stand alone at
https://lore.kernel.org/patchwork/patch/1223736/
I'm including in this patch series without changes
---
 .../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 74 +++
 1 file changed, 74 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
index 4373ed732af76..ae08205aa8e24 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
@@ -296,6 +296,52 @@ camera:  {
 
/* 24M mclk is shared between world and user cameras */
pinctrl-0 = <_xfer _clkout1>;
+
+   /* Rear-facing camera */
+   wcam: camera@36 {
+   compatible = "ovti,ov5695";
+   reg = <0x36>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_rst>;
+
+   clocks = < SCLK_TESTCLKOUT1>;
+   clock-names = "xvclk";
+
+   avdd-supply = <_cam>;
+   dvdd-supply = <_cam>;
+   dovdd-supply = <_s0>;
+   reset-gpios = < 5 GPIO_ACTIVE_LOW>;
+
+   port {
+   wcam_out: endpoint {
+   remote-endpoint = <_in_wcam>;
+   data-lanes = <1 2>;
+   };
+   };
+   };
+
+   /* Front-facing camera */
+   ucam: camera@3c {
+   compatible = "ovti,ov2685";
+   reg = <0x3c>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_rst>;
+
+   clocks = < SCLK_TESTCLKOUT1>;
+   clock-names = "xvclk";
+
+   avdd-supply = <_cam>;
+   dovdd-supply = <_s0>;
+   dvdd-supply = <_s0>;
+   reset-gpios = < 3 GPIO_ACTIVE_LOW>;
+
+   port {
+   ucam_out: endpoint {
+   remote-endpoint = <_in_ucam>;
+   data-lanes = <1>;
+   };
+   };
+   };
 };
 
 _dp {
@@ -353,10 +399,38 @@ _domains {
gpio1830-supply = <_s0>; /* APIO4_VDD;  4c 4d */
 };
 
+ {
+   status = "okay";
+
+   ports {
+   port@0 {
+   mipi_in_wcam: endpoint@0 {
+   reg = <0>;
+   remote-endpoint = <_out>;
+   data-lanes = <1 2>;
+   };
+
+   mipi_in_ucam: endpoint@1 {
+   reg = <1>;
+   remote-endpoint = <_out>;
+   data-lanes = <1>;
+   };
+   };
+   };
+};
+
+_mmu {
+   status = "okay";
+};
+
  {
sdmode-gpios = < 2 GPIO_ACTIVE_HIGH>;
 };
 
+_dphy_rx0 {
+   status = "okay";
+};
+
 _dsi {
status = "okay";
clock-master;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 4/9] media: staging: dt-bindings: rkisp1: fix "no reg" error in parent node

2020-07-02 Thread Helen Koike
Fix the following error found with make ARCH=arm64 dt_binding_check:

Documentation/devicetree/bindings/media/rockchip-isp1.example.dts:24.27-101.11:
Warning (unit_address_vs_reg): /example-0/parent@0: node has a unit name, but 
no reg or ranges property

Reported-by: Johan Jonker 
Signed-off-by: Helen Koike 
---

V3:
- this is a new patch in the series
---
 .../Documentation/devicetree/bindings/media/rockchip-isp1.yaml   | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index e5b9c0574e352..4d111ef2e89c7 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -126,6 +126,7 @@ examples:
 #include 
 
 parent0: parent@0 {
+reg = <0 0>;
 #address-cells = <2>;
 #size-cells = <2>;
 
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 1/9] media: staging: dt-bindings: rkisp1: add missing required nodes

2020-07-02 Thread Helen Koike
Add missing required nodes in json-schema yaml file for
Rockchip ISP1 dt-bindings.

Signed-off-by: Helen Koike 
---
Changes in v3: None

Changes in v2:
- New patch in the series
---
 .../devicetree/bindings/media/rockchip-isp1.yaml  | 8 
 1 file changed, 8 insertions(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index af246b71eac6b..a77b6ec500c95 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -94,11 +94,19 @@ properties:
 
   remote-endpoint: true
 
+required:
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
 required:
+  - "#address-cells"
+  - "#size-cells"
   - port@0
 
 required:
   - compatible
+  - reg
   - interrupts
   - clocks
   - clock-names
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 6/9] dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging

2020-07-02 Thread Helen Koike
Move rkisp1 bindings to Documentation/devicetree/bindings/media

Verified with:
make ARCH=arm64 dt_binding_check 
DT_SCHEMA_FILES=Documentation/devicetree/bindings/media/rockchip-isp1.yaml

Signed-off-by: Helen Koike 
Acked-by: Rob Herring 
---
 .../devicetree/bindings/media/rockchip-isp1.yaml  | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {drivers/staging/media/rkisp1/Documentation => 
Documentation}/devicetree/bindings/media/rockchip-isp1.yaml (100%)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
similarity index 100%
rename from 
drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
rename to Documentation/devicetree/bindings/media/rockchip-isp1.yaml
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 3/9] media: staging: dt-bindings: rkisp1: re-order properties

2020-07-02 Thread Helen Koike
Organize properties order in dt-binbings to move it out of staging.

On top: compatible, reg and interrupts.
Then alphabetical order, then properties starting with '#'.

Signed-off-by: Helen Koike 

---
V3: none

V2:
- this is a new patch in the series
---
 .../bindings/media/rockchip-isp1.yaml | 32 +--
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index 8c7904845788d..e5b9c0574e352 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -23,19 +23,6 @@ properties:
   interrupts:
 maxItems: 1
 
-  iommus:
-maxItems: 1
-
-  power-domains:
-maxItems: 1
-
-  phys:
-maxItems: 1
-description: phandle for the PHY port
-
-  phy-names:
-const: dphy
-
   clocks:
 items:
   - description: ISP clock
@@ -52,6 +39,19 @@ properties:
   - const: hclk_isp
   - const: hclk_isp_wrap
 
+  iommus:
+maxItems: 1
+
+  phys:
+maxItems: 1
+description: phandle for the PHY port
+
+  phy-names:
+const: dphy
+
+  power-domains:
+maxItems: 1
+
   # See ./video-interfaces.txt for details
   ports:
 type: object
@@ -110,10 +110,10 @@ required:
   - interrupts
   - clocks
   - clock-names
-  - power-domains
   - iommus
   - phys
   - phy-names
+  - power-domains
   - ports
 
 additionalProperties: false
@@ -139,19 +139,19 @@ examples:
 clock-names = "clk_isp",
   "aclk_isp", "aclk_isp_wrap",
   "hclk_isp", "hclk_isp_wrap";
-power-domains = < RK3399_PD_ISP0>;
 iommus = <_mmu>;
 phys = <>;
 phy-names = "dphy";
+power-domains = < RK3399_PD_ISP0>;
 
 ports {
 #address-cells = <1>;
 #size-cells = <0>;
 
 port@0 {
+reg = <0>;
 #address-cells = <1>;
 #size-cells = <0>;
-reg = <0>;
 
 mipi_in_wcam: endpoint@0 {
 reg = <0>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 7/9] media: MAINTAINERS: rkisp1: add path to dt-bindings

2020-07-02 Thread Helen Koike
The Rockchip ISP bindings was moved out of staging.
Update MAINTAINERS file with the new path.

Fields sorted according to output of
./scripts/parse-maintainers.pl --input=MAINTAINERS --output=MAINTAINERS
--order

Signed-off-by: Helen Koike 

---

V3:
- Add line:
L: linux-rockc...@lists.infradead.org
- Re-order:
F: drivers/staging/media/rkisp1/

V2:
- This is a new patch in the series
---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 634d2c3d621aa..d7141cf17072f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14679,7 +14679,9 @@ F:  include/linux/hid-roccat*
 ROCKCHIP ISP V1 DRIVER
 M: Helen Koike 
 L: linux-me...@vger.kernel.org
+L: linux-rockc...@lists.infradead.org
 S: Maintained
+F: Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 F: drivers/staging/media/rkisp1/
 
 ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 2/9] media: staging: dt-bindings: rkisp1: add required items in i2c example

2020-07-02 Thread Helen Koike
Add missing required items in Rockchip ISP1 dt-bindings example for
a complete i2c node.

Signed-off-by: Helen Koike 
---

Changes in v3: None

Changes in v2:
- new patch in the series
---
 .../devicetree/bindings/media/rockchip-isp1.yaml | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index a77b6ec500c95..8c7904845788d 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -169,6 +169,11 @@ examples:
 };
 
 i2c7: i2c@ff16 {
+compatible = "rockchip,rk3399-i2c";
+reg = <0x0 0xff16 0x0 0x1000>;
+interrupts = ;
+clocks = < SCLK_I2C7>, < PCLK_I2C7>;
+clock-names = "i2c", "pclk";
 clock-frequency = <40>;
 #address-cells = <1>;
 #size-cells = <0>;
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 0/9] move Rockchip ISP bindings out of staging / add

2020-07-02 Thread Helen Koike
Move the bindings out of drivers/staging and place them in
Documentation/devicetree/bindings instead.

Also, add DT nodes for RK3399 and verify with make ARCH=arm64 dtbs_check
and make ARCH=arm64 dt_binding_check.

Tested by verifying images streamed from Scarlet Chromebook

Changes in v3:
- dropped accepted patches
- cleanup clocks
- fix "no reg" error in dt-bindings parent@0 example
- add linux-rockchip list in MAINTAINERS and reorder items
- add Scarlet sensors dt nodes to the series

Changes in v2:
Add patches modifying bindings, as sugested by Johan Jonker in v1,
before moving them out of staging.


Eddie Cai (1):
  arm64: dts: rockchip: add isp and sensors for scarlet

Helen Koike (7):
  media: staging: dt-bindings: rkisp1: add missing required nodes
  media: staging: dt-bindings: rkisp1: add required items in i2c example
  media: staging: dt-bindings: rkisp1: re-order properties
  media: staging: dt-bindings: rkisp1: fix "no reg" error in parent node
  media: staging: rkisp1: remove unecessary clocks
  dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging
  media: MAINTAINERS: rkisp1: add path to dt-bindings

Shunqian Zheng (1):
  arm64: dts: rockchip: add isp0 node for rk3399

 .../bindings/media/rockchip-isp1.yaml | 65 +---
 MAINTAINERS   |  2 +
 .../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 74 +++
 arch/arm64/boot/dts/rockchip/rk3399.dtsi  | 27 +++
 drivers/staging/media/rkisp1/rkisp1-dev.c |  2 -
 5 files changed, 143 insertions(+), 27 deletions(-)
 rename {drivers/staging/media/rkisp1/Documentation => 
Documentation}/devicetree/bindings/media/rockchip-isp1.yaml (81%)

-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v3 5/9] media: staging: rkisp1: remove unecessary clocks

2020-07-02 Thread Helen Koike
aclk_isp_wrap is a child of aclk_isp, and hclk_isp_wrap is a child of
hclk_isp, thus we can remove parents from the list, with the goal to
cleanup the dt-bindings and remove it from staging.

For reference, this is the isp clock topology:

 xin24m
pll_npll
   npll
  clk_isp1
  clk_isp0
pll_cpll
   cpll
  aclk_isp1
 aclk_isp1_noc
 hclk_isp1
aclk_isp1_wrapper
hclk_isp1_noc
  aclk_isp0
 hclk_isp1_wrapper
 aclk_isp0_wrapper
 aclk_isp0_noc
 hclk_isp0
hclk_isp0_wrapper
hclk_isp0_noc
 pclkin_isp1_wrapper

Signed-off-by: Helen Koike 
---
Changes in V3:
- this is a new patch in the series
---
 .../bindings/media/rockchip-isp1.yaml | 33 ++-
 drivers/staging/media/rkisp1/rkisp1-dev.c |  2 --
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index 4d111ef2e89c7..f806820eb8153 100644
--- 
a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ 
b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -24,20 +24,21 @@ properties:
 maxItems: 1
 
   clocks:
-items:
-  - description: ISP clock
-  - description: ISP AXI clock clock
-  - description: ISP AXI clock  wrapper clock
-  - description: ISP AHB clock clock
-  - description: ISP AHB wrapper clock
+maxItems: 5
+minItems: 3
+description:
+  rk3399 isp0 clocks
+ISP clock
+ISP AXI wrapper clock
+ISP AHB wrapper clock
 
   clock-names:
-items:
-  - const: clk_isp
-  - const: aclk_isp
-  - const: aclk_isp_wrap
-  - const: hclk_isp
-  - const: hclk_isp_wrap
+oneOf:
+  # rk3399 isp0 clocks
+  - items:
+- const: clk_isp
+- const: aclk_isp_wrap
+- const: hclk_isp_wrap
 
   iommus:
 maxItems: 1
@@ -135,11 +136,11 @@ examples:
 reg = <0x0 0xff91 0x0 0x4000>;
 interrupts = ;
 clocks = < SCLK_ISP0>,
- < ACLK_ISP0>, < ACLK_ISP0_WRAPPER>,
- < HCLK_ISP0>, < HCLK_ISP0_WRAPPER>;
+ < ACLK_ISP0_WRAPPER>,
+ < HCLK_ISP0_WRAPPER>;
 clock-names = "clk_isp",
-  "aclk_isp", "aclk_isp_wrap",
-  "hclk_isp", "hclk_isp_wrap";
+  "aclk_isp_wrap",
+  "hclk_isp_wrap";
 iommus = <_mmu>;
 phys = <>;
 phy-names = "dphy";
diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c 
b/drivers/staging/media/rkisp1/rkisp1-dev.c
index f38801fea10d9..36f5f3b97a9b9 100644
--- a/drivers/staging/media/rkisp1/rkisp1-dev.c
+++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
@@ -407,8 +407,6 @@ static irqreturn_t rkisp1_isr(int irq, void *ctx)
 
 static const char * const rk3399_isp_clks[] = {
"clk_isp",
-   "aclk_isp",
-   "hclk_isp",
"aclk_isp_wrap",
"hclk_isp_wrap",
 };
-- 
2.26.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH 3/7] SUNRPC: remove RC4-HMAC-MD5 support from KerberosV

2020-07-02 Thread J. Bruce Fields
Acked-by: J. Bruce Fields 

On Thu, Jul 02, 2020 at 12:19:43PM +0200, Ard Biesheuvel wrote:
> The RC4-HMAC-MD5 KerberosV algorithm is based on RFC 4757 [0], which
> was specifically issued for interoperability with Windows 2000, but was
> never intended to receive the same level of support. The RFC says
> 
>   The IETF Kerberos community supports publishing this specification as
>   an informational document in order to describe this widely
>   implemented technology.  However, while these encryption types
>   provide the operations necessary to implement the base Kerberos
>   specification [RFC4120], they do not provide all the required
>   operations in the Kerberos cryptography framework [RFC3961].  As a
>   result, it is not generally possible to implement potential
>   extensions to Kerberos using these encryption types.  The Kerberos
>   encryption type negotiation mechanism [RFC4537] provides one approach
>   for using such extensions even when a Kerberos infrastructure uses
>   long-term RC4 keys.  Because this specification does not implement
>   operations required by RFC 3961 and because of security concerns with
>   the use of RC4 and MD4 discussed in Section 8, this specification is
>   not appropriate for publication on the standards track.
> 
>   The RC4-HMAC encryption types are used to ease upgrade of existing
>   Windows NT environments, provide strong cryptography (128-bit key
>   lengths), and provide exportable (meet United States government
>   export restriction requirements) encryption.  This document describes
>   the implementation of those encryption types.
> 
> Furthermore, this RFC was re-classified as 'historic' by RFC 8429 [1] in
> 2018, stating that 'none of the encryption types it specifies should be
> used'
> 
> Note that other outdated algorithms are left in place (some of which are
> guarded by CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES), so this should only
> adversely affect interoperability with Windows NT/2000 systems that have
> not received any updates since 2008 (but are connected to a network
> nonetheless)
> 
> [0] https://tools.ietf.org/html/rfc4757
> [1] https://tools.ietf.org/html/rfc8429
> 
> Signed-off-by: Ard Biesheuvel 
> ---
>  include/linux/sunrpc/gss_krb5.h  |  11 -
>  include/linux/sunrpc/gss_krb5_enctypes.h |   9 +-
>  net/sunrpc/Kconfig   |   1 -
>  net/sunrpc/auth_gss/gss_krb5_crypto.c| 276 
>  net/sunrpc/auth_gss/gss_krb5_mech.c  |  95 ---
>  net/sunrpc/auth_gss/gss_krb5_seal.c  |   1 -
>  net/sunrpc/auth_gss/gss_krb5_seqnum.c|  87 --
>  net/sunrpc/auth_gss/gss_krb5_unseal.c|   1 -
>  net/sunrpc/auth_gss/gss_krb5_wrap.c  |  65 +
>  9 files changed, 16 insertions(+), 530 deletions(-)
> 
> diff --git a/include/linux/sunrpc/gss_krb5.h b/include/linux/sunrpc/gss_krb5.h
> index e8f8ffe7448b..91f43d86879d 100644
> --- a/include/linux/sunrpc/gss_krb5.h
> +++ b/include/linux/sunrpc/gss_krb5.h
> @@ -141,14 +141,12 @@ enum sgn_alg {
>   SGN_ALG_MD2_5 = 0x0001,
>   SGN_ALG_DES_MAC = 0x0002,
>   SGN_ALG_3 = 0x0003, /* not published */
> - SGN_ALG_HMAC_MD5 = 0x0011,  /* microsoft w2k; no support */
>   SGN_ALG_HMAC_SHA1_DES3_KD = 0x0004
>  };
>  enum seal_alg {
>   SEAL_ALG_NONE = 0x,
>   SEAL_ALG_DES = 0x,
>   SEAL_ALG_1 = 0x0001,/* not published */
> - SEAL_ALG_MICROSOFT_RC4 = 0x0010,/* microsoft w2k; no support */
>   SEAL_ALG_DES3KD = 0x0002
>  };
>  
> @@ -316,14 +314,5 @@ gss_krb5_aes_decrypt(struct krb5_ctx *kctx, u32 offset, 
> u32 len,
>struct xdr_buf *buf, u32 *plainoffset,
>u32 *plainlen);
>  
> -int
> -krb5_rc4_setup_seq_key(struct krb5_ctx *kctx,
> -struct crypto_sync_skcipher *cipher,
> -unsigned char *cksum);
> -
> -int
> -krb5_rc4_setup_enc_key(struct krb5_ctx *kctx,
> -struct crypto_sync_skcipher *cipher,
> -s32 seqnum);
>  void
>  gss_krb5_make_confounder(char *p, u32 conflen);
> diff --git a/include/linux/sunrpc/gss_krb5_enctypes.h 
> b/include/linux/sunrpc/gss_krb5_enctypes.h
> index 981c89cef19d..87eea679d750 100644
> --- a/include/linux/sunrpc/gss_krb5_enctypes.h
> +++ b/include/linux/sunrpc/gss_krb5_enctypes.h
> @@ -13,15 +13,13 @@
>  #ifdef CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES
>  
>  /*
> - * NB: This list includes encryption types that were deprecated
> - * by RFC 8429 (DES3_CBC_SHA1 and ARCFOUR_HMAC).
> + * NB: This list includes DES3_CBC_SHA1, which was deprecated by RFC 8429.
>   *
>   * ENCTYPE_AES256_CTS_HMAC_SHA1_96
>   * ENCTYPE_AES128_CTS_HMAC_SHA1_96
>   * ENCTYPE_DES3_CBC_SHA1
> - * ENCTYPE_ARCFOUR_HMAC
>   */
> -#define KRB5_SUPPORTED_ENCTYPES "18,17,16,23"
> +#define KRB5_SUPPORTED_ENCTYPES "18,17,16"
>  
>  #else/* CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES */
>  
> @@ -32,12 +30,11 @@
>   * ENCTYPE_AES256_CTS_HMAC_SHA1_96
>   * 

[PATCH 2/2] staging: rtl8188eu: Fix WARNINGs of Block comments

2020-07-02 Thread Simon Fong
Fixed 5 WARNINGs of Block comments use * on subsequent lines.

Signed-off-by: Simon Fong 
---
 drivers/staging/rtl8188eu/core/rtw_xmit.c | 62 +++
 1 file changed, 31 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c 
b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index 258531bc1408..9a3e5d5bade9 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -49,8 +49,8 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct 
adapter *padapter)
spin_lock_init(>lock);
 
/*
-   Please insert all the queue initializaiton using _rtw_init_queue below
-   */
+* Please insert all the queue initializaiton using _rtw_init_queue 
below
+*/
 
pxmitpriv->adapter = padapter;
 
@@ -63,10 +63,10 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct 
adapter *padapter)
_rtw_init_queue(>free_xmit_queue);
 
/*
-   Please allocate memory with the sz = (struct xmit_frame) * NR_XMITFRAME,
-   and initialize free_xmit_frame below.
-   Please also apply  free_txobj to link_up all the xmit_frames...
-   */
+* Please allocate memory with the sz = (struct xmit_frame) * 
NR_XMITFRAME,
+* and initialize free_xmit_frame below.
+* Please also apply  free_txobj to link_up all the xmit_frames...
+*/
 
pxmitpriv->pallocated_frame_buf = vzalloc(NR_XMITFRAME * sizeof(struct 
xmit_frame) + 4);
 
@@ -893,17 +893,17 @@ s32 rtw_txframes_sta_ac_pending(struct adapter *padapter, 
struct pkt_attrib *pat
 }
 
 /*
-
-This sub-routine will perform all the following:
-
-1. remove 802.3 header.
-2. create wlan_header, based on the info in pxmitframe
-3. append sta's iv/ext-iv
-4. append LLC
-5. move frag chunk from pframe to pxmitframe->mem
-6. apply sw-encrypt, if necessary.
-
-*/
+ *
+ * This sub-routine will perform all the following:
+ *
+ * 1. remove 802.3 header.
+ * 2. create wlan_header, based on the info in pxmitframe
+ * 3. append sta's iv/ext-iv
+ * 4. append LLC
+ * 5. move frag chunk from pframe to pxmitframe->mem
+ * 6. apply sw-encrypt, if necessary.
+ *
+ */
 s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, 
struct xmit_frame *pxmitframe)
 {
s32 frg_inx, frg_len, mpdu_len, llc_sz, mem_sz;
@@ -1233,25 +1233,25 @@ s32 rtw_free_xmitbuf(struct xmit_priv *pxmitpriv, 
struct xmit_buf *pxmitbuf)
 }
 
 /*
-Calling context:
-1. OS_TXENTRY
-2. RXENTRY (rx_thread or RX_ISR/RX_CallBack)
-
-If we turn on USE_RXTHREAD, then, no need for critical section.
-Otherwise, we must use _enter/_exit critical to protect free_xmit_queue...
-
-Must be very very cautious...
-
-*/
+ * Calling context:
+ * 1. OS_TXENTRY
+ * 2. RXENTRY (rx_thread or RX_ISR/RX_CallBack)
+ *
+ * If we turn on USE_RXTHREAD, then, no need for critical section.
+ * Otherwise, we must use _enter/_exit critical to protect free_xmit_queue...
+ *
+ * Must be very very cautious...
+ *
+ */
 
 struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)
/* _queue *pfree_xmit_queue) */
 {
/*
-   Please remember to use all the osdep_service api,
-   and lock/unlock or _enter/_exit critical to protect
-   pfree_xmit_queue
-   */
+*  Please remember to use all the osdep_service api,
+*  and lock/unlock or _enter/_exit critical to protect
+*  pfree_xmit_queue
+*/
struct xmit_frame *pxframe;
struct __queue *pfree_xmit_queue = >free_xmit_queue;
 
-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/2] staging: rtl8188eu: Fix CHECK of coding style

2020-07-02 Thread Simon Fong
Fixed a CHECK of Lines should not end with a '('.

Signed-off-by: Simon Fong 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 282d0f869758..656fe70ae4fb 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -702,10 +702,9 @@ static int sta2sta_data_frame(struct adapter *adapter,
return ret;
 }
 
-static int ap2sta_data_frame(
-   struct adapter *adapter,
-   struct recv_frame *precv_frame,
-   struct sta_info **psta)
+static int ap2sta_data_frame(struct adapter *adapter,
+struct recv_frame *precv_frame,
+struct sta_info **psta)
 {
u8 *ptr = precv_frame->pkt->data;
struct rx_pkt_attrib *pattrib = _frame->attrib;
-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 0/2] Patchset of coding style fixes

2020-07-02 Thread Simon Fong
This patchset fixed CHECK and WARNINGs of coding style.

Simon Fong (2):
  staging: rtl8188eu: Fix CHECK of coding style
  staging: rtl8188eu: Fix WARNINGs of Block comments

 drivers/staging/rtl8188eu/core/rtw_recv.c |  7 ++-
 drivers/staging/rtl8188eu/core/rtw_xmit.c | 62 +++
 2 files changed, 34 insertions(+), 35 deletions(-)

-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Ajay.Kathat



On 02/07/20 12:30 pm, Kalle Valo wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
> content is safe
> 
>  writes:
> 
>> From: Ajay Singh 
>>
>> WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
>> WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
>> processors with minimal resource requirements with a simple
>> SPI/SDIO-to-Wi-Fi interface.
>>
>> WILC1000 driver has been part of staging for few years. With
>> contributions from the community, it has improved significantly. Full
>> driver review has helped in achieving the current state.
>> The details for those reviews are captured in 1 & 2.
>>
>> [1]. 
>> https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
>> [2]. 
>> https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
>>
>> Signed-off-by: Ajay Singh 
>> ---
>>
>> As suggested, keeping all the changes in single commit with file rename
>> so it's easy to move out of staging [3].
>>
>> Please choose whichever option you prefer between the git mv or patch series
>> sent last Tuesday. The resulting driver is the same as no patch has been
>> queued in between.
>>
>> [3]. 
>> https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/
> 
> As discussed with Greg I created an immutable branch for this and merged
> the branch to wireless-drivers-next:

Thanks Kalle.


If my understanding is correct, we have to use 'wireless-driver-next'
master branch to submit new patches for wilc1000. right?

> 
> 5625f965d764 wilc1000: move wilc driver out of staging
> 
> Greg, here's the location of the immutable branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
> wilc1000-move-out-of-staging
> 
> --
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] staging: rtl8188eu: include: rtw_pwrctrl.h: fixed a blank space coding style issue.

2020-07-02 Thread B K Karthik
add blank spaces to improve code readability.

Signed-off-by: B K Karthik 
---
 drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h 
b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
index c89328142731..b4cf0f1ce6d3 100644
--- a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
+++ b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
@@ -84,7 +84,7 @@ struct reportpwrstate_parm {
unsigned short rsvd;
 };

-#define LPS_DELAY_TIME (1*HZ) /*  1 sec */
+#define LPS_DELAY_TIME (1 * HZ) /*  1 sec */

 #define EXE_PWR_NONE   0x01
 #define EXE_PWR_IPS0x02
--
2.20.1



signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Ajay.Kathat



On 02/07/20 12:45 pm, Greg KH wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
> content is safe
> 
> On Thu, Jul 02, 2020 at 10:00:40AM +0300, Kalle Valo wrote:
>>  writes:
>>
>>> From: Ajay Singh 
>>>
>>> WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
>>> WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
>>> processors with minimal resource requirements with a simple
>>> SPI/SDIO-to-Wi-Fi interface.
>>>
>>> WILC1000 driver has been part of staging for few years. With
>>> contributions from the community, it has improved significantly. Full
>>> driver review has helped in achieving the current state.
>>> The details for those reviews are captured in 1 & 2.
>>>
>>> [1]. 
>>> https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
>>> [2]. 
>>> https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
>>>
>>> Signed-off-by: Ajay Singh 
>>> ---
>>>
>>> As suggested, keeping all the changes in single commit with file rename
>>> so it's easy to move out of staging [3].
>>>
>>> Please choose whichever option you prefer between the git mv or patch series
>>> sent last Tuesday. The resulting driver is the same as no patch has been
>>> queued in between.
>>>
>>> [3]. 
>>> https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/
>>
>> As discussed with Greg I created an immutable branch for this and merged
>> the branch to wireless-drivers-next:
>>
>> 5625f965d764 wilc1000: move wilc driver out of staging
>>
>> Greg, here's the location of the immutable branch:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
>>  wilc1000-move-out-of-staging
> 
> Looks good, I've pulled it into my staging tree as well, but there's
> still a TODO file left in drivers/staging/wilc1000, right?
> 
> I'll just add a patch to my tree to remove that last file.
> 

Yes, TODO file needs to be removed after the driver movement.
Thanks Greg for all your support to move driver out of staging.

Regards,
Ajay
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/2] staging: rtl8188eu: include: rtw_pwrctrl.h: fixed multiple parentheses coding style issues.

2020-07-02 Thread B K Karthik
add parentheses since complex valued macros must be enclosed within parentheses.

Signed-off-by: B K Karthik 
---
 drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h 
b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
index 404634999e35..c89328142731 100644
--- a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
+++ b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h
@@ -84,7 +84,7 @@ struct reportpwrstate_parm {
unsigned short rsvd;
 };

-#define LPS_DELAY_TIME 1*HZ /*  1 sec */
+#define LPS_DELAY_TIME (1*HZ) /*  1 sec */

 #define EXE_PWR_NONE   0x01
 #define EXE_PWR_IPS0x02
@@ -201,7 +201,7 @@ struct pwrctrl_priv {
 };

 #define rtw_get_ips_mode_req(pwrctrlpriv) \
-   (pwrctrlpriv)->ips_mode_req
+   ((pwrctrlpriv)->ips_mode_req)

 #define rtw_ips_mode_req(pwrctrlpriv, ips_mode) \
((pwrctrlpriv)->ips_mode_req = (ips_mode))
--
2.20.1



signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: rtl8188eu: include: rtw_recv.h: fixed a blank space coding style issue.

2020-07-02 Thread B K Karthik
added blank spaces to improve code readability.

Signed-off-by: B K Karthik 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index e383cb119e1b..b281b9e7fcea 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -13,7 +13,7 @@
 #define NR_RECVFRAME 256

 #define RXFRAME_ALIGN  8
-#define RXFRAME_ALIGN_SZ   (1<

signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: rtl8188eu: include: rtw_cmd.h: fixed a blank space coding style issue.

2020-07-02 Thread B K Karthik
add blank spaces for improved code readability.

Signed-off-by: B K Karthik 
---
 drivers/staging/rtl8188eu/include/rtw_cmd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h 
b/drivers/staging/rtl8188eu/include/rtw_cmd.h
index fa5e212fc9e0..002a797c6d0a 100644
--- a/drivers/staging/rtl8188eu/include/rtw_cmd.h
+++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h
@@ -115,7 +115,7 @@ struct  setopmode_parm {
  */

 #define RTW_SSID_SCAN_AMOUNT 9 /*  for WEXT_CSCAN_AMOUNT 9 */
-#define RTW_CHANNEL_SCAN_AMOUNT (14+37)
+#define RTW_CHANNEL_SCAN_AMOUNT (14 + 37)
 struct sitesurvey_parm {
int scan_mode;  /* active: 1, passive: 0 */
u8 ssid_num;
--
2.20.1



signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: rtl8188eu: include: rtl8188e_xmit.h: fixed multiple blank space coding style issues

2020-07-02 Thread B K Karthik
added blank spaces to improve code readability. (coding style issue)

Signed-off-by: B K Karthik 
---
 drivers/staging/rtl8188eu/include/rtl8188e_xmit.h | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h 
b/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h
index 49884cceb349..c115007d883d 100644
--- a/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h
+++ b/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h
@@ -30,11 +30,11 @@
 #define SET_EARLYMODE_LEN2_1(__pAddr, __Value) \
SET_BITS_TO_LE_4BYTE(__pAddr, 28, 4, __Value)
 #define SET_EARLYMODE_LEN2_2(__pAddr, __Value) \
-   SET_BITS_TO_LE_4BYTE(__pAddr+4, 0, 8, __Value)
+   SET_BITS_TO_LE_4BYTE(__pAddr + 4, 0, 8, __Value)
 #define SET_EARLYMODE_LEN3(__pAddr, __Value)   \
-   SET_BITS_TO_LE_4BYTE(__pAddr+4, 8, 12, __Value)
+   SET_BITS_TO_LE_4BYTE(__pAddr + 4, 8, 12, __Value)
 #define SET_EARLYMODE_LEN4(__pAddr, __Value)   \
-   SET_BITS_TO_LE_4BYTE(__pAddr+4, 20, 12, __Value)
+   SET_BITS_TO_LE_4BYTE(__pAddr + 4, 20, 12, __Value)

 /*  */
 /* defined for TX DESC Operation */
@@ -100,7 +100,7 @@ enum TXDESC_SC {

 #define txdesc_set_ccx_sw_88e(txdesc, value) \
do { \
-   ((struct txdesc_88e *)(txdesc))->sw1 = (((value)>>8) & 0x0f); \
+   ((struct txdesc_88e *)(txdesc))->sw1 = (((value) >> 8) & 0x0f); 
\
((struct txdesc_88e *)(txdesc))->sw0 = ((value) & 0xff); \
} while (0)

@@ -138,9 +138,9 @@ struct txrpt_ccx_88e {
u8 sw0;
 };

-#define txrpt_ccx_sw_88e(txrpt_ccx) ((txrpt_ccx)->sw0 + ((txrpt_ccx)->sw1<<8))
+#define txrpt_ccx_sw_88e(txrpt_ccx) ((txrpt_ccx)->sw0 + ((txrpt_ccx)->sw1 << 
8))
 #define txrpt_ccx_qtime_88e(txrpt_ccx) \
-   ((txrpt_ccx)->ccx_qtime0+((txrpt_ccx)->ccx_qtime1<<8))
+   ((txrpt_ccx)->ccx_qtime0+((txrpt_ccx)->ccx_qtime1 << 8))

 void rtl8188e_fill_fake_txdesc(struct adapter *padapter, u8 *pDesc,
   u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull);
--
2.20.1



signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH 1/7] staging/rtl8192e: switch to RC4 library interface

2020-07-02 Thread Greg Kroah-Hartman
On Thu, Jul 02, 2020 at 12:19:41PM +0200, Ard Biesheuvel wrote:
> Switch to the ARC4 library interface, to remove the pointless
> dependency on the skcipher API, from which we will hopefully be
> able to drop ecb(arc4) skcipher support.
> 
> Signed-off-by: Ard Biesheuvel 

Acked-by: Greg Kroah-Hartman 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [RFC PATCH 2/7] staging/rtl8192u: switch to RC4 library interface

2020-07-02 Thread Greg Kroah-Hartman
On Thu, Jul 02, 2020 at 12:19:42PM +0200, Ard Biesheuvel wrote:
> Switch to the ARC4 library interface, to remove the pointless
> dependency on the skcipher API, from which we will hopefully be
> able to drop ecb(arc4) skcipher support.
> 
> Signed-off-by: Ard Biesheuvel 

Acked-by: Greg Kroah-Hartman 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[RFC PATCH 0/7] crypto: get rid of ecb(arc4)

2020-07-02 Thread Ard Biesheuvel
The RC4 algorithm does not fit the sckipher model very well: it is a stream
cipher that combines the key and IV into a single vector, which implies that
using the same key more than once amounts to stream cipher IV reuse, and
therefore catastrophic failure.

So let's replace the remaining legacy users (WEP and TKIP in the staging
tree) to the ARC4 library interface, which does not rely on the crypto API
at all. Also, remove the obsolete RC4-HMAC-MD5 algorithm from the SUNRPC
driver stack.

NOTE: It should not be too difficult to switch the kerberos code over to
the ARC4 library interface as well, given that much of it uses a different
code path already. But we should only do so if we really need to keep this
support around, and it seems that this was only ever intended as a transitional
algorithm for Windows NT/2000 clients.

That leaves no remaining users of the ecb(arc4) skcipher, so we can remove
any implementations as well.

Cc: Herbert Xu 
Cc: "David S. Miller" 
Cc: Greg Kroah-Hartman 
Cc: Trond Myklebust 
Cc: Anna Schumaker 
Cc: "J. Bruce Fields" 
Cc: Chuck Lever 
Cc: Eric Biggers 
Cc: linux-cry...@vger.kernel.org
Cc: net...@vger.kernel.org
Cc: de...@driverdev.osuosl.org
Cc: linux-...@vger.kernel.org

Ard Biesheuvel (7):
  staging/rtl8192e: switch to RC4 library interface
  staging/rtl8192u: switch to RC4 library interface
  SUNRPC: remove RC4-HMAC-MD5 support from KerberosV
  crypto: remove ARC4 support from the skcipher API
  crypto: n2 - remove ecb(arc4) support
  crypto: bcm-iproc - remove ecb(arc4) support
  crypto: tcrypt - remove ecb(arc4) testing/benchmarking support

 crypto/Kconfig|  12 -
 crypto/Makefile   |   1 -
 crypto/arc4.c |  76 -
 crypto/tcrypt.c   |  21 +-
 crypto/testmgr.c  |   7 -
 crypto/testmgr.h  |  62 
 drivers/crypto/bcm/cipher.c   |  96 +-
 drivers/crypto/bcm/cipher.h   |   1 -
 drivers/crypto/bcm/spu.c  |  23 +-
 drivers/crypto/bcm/spu.h  |   1 -
 drivers/crypto/bcm/spu2.c |  12 +-
 drivers/crypto/bcm/spu2.h |   1 -
 drivers/crypto/n2_core.c  |  46 ---
 drivers/net/wireless/intel/ipw2x00/Kconfig|   1 -
 drivers/net/wireless/intersil/hostap/Kconfig  |   1 -
 drivers/staging/rtl8192e/Kconfig  |   4 +-
 drivers/staging/rtl8192e/rtllib_crypt_tkip.c  |  70 +
 drivers/staging/rtl8192e/rtllib_crypt_wep.c   |  72 +
 drivers/staging/rtl8192u/Kconfig  |   1 +
 .../rtl8192u/ieee80211/ieee80211_crypt_tkip.c |  82 +-
 .../rtl8192u/ieee80211/ieee80211_crypt_wep.c  |  64 +---
 include/linux/sunrpc/gss_krb5.h   |  11 -
 include/linux/sunrpc/gss_krb5_enctypes.h  |   9 +-
 net/sunrpc/Kconfig|   1 -
 net/sunrpc/auth_gss/gss_krb5_crypto.c | 276 --
 net/sunrpc/auth_gss/gss_krb5_mech.c   |  95 --
 net/sunrpc/auth_gss/gss_krb5_seal.c   |   1 -
 net/sunrpc/auth_gss/gss_krb5_seqnum.c |  87 --
 net/sunrpc/auth_gss/gss_krb5_unseal.c |   1 -
 net/sunrpc/auth_gss/gss_krb5_wrap.c   |  65 +
 30 files changed, 78 insertions(+), 1122 deletions(-)
 delete mode 100644 crypto/arc4.c

-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[RFC PATCH 6/7] crypto: bcm-iproc - remove ecb(arc4) support

2020-07-02 Thread Ard Biesheuvel
Signed-off-by: Ard Biesheuvel 
---
 drivers/crypto/bcm/cipher.c | 96 +---
 drivers/crypto/bcm/cipher.h |  1 -
 drivers/crypto/bcm/spu.c| 23 +
 drivers/crypto/bcm/spu.h|  1 -
 drivers/crypto/bcm/spu2.c   | 12 +--
 drivers/crypto/bcm/spu2.h   |  1 -
 6 files changed, 6 insertions(+), 128 deletions(-)

diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index a353217a0d33..f73b4bd86482 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -165,10 +165,6 @@ spu_skcipher_rx_sg_create(struct brcm_message *mssg,
return -EFAULT;
}
 
-   if (ctx->cipher.alg == CIPHER_ALG_RC4)
-   /* Add buffer to catch 260-byte SUPDT field for RC4 */
-   sg_set_buf(sg++, rctx->msg_buf.c.supdt_tweak, SPU_SUPDT_LEN);
-
if (stat_pad_len)
sg_set_buf(sg++, rctx->msg_buf.rx_stat_pad, stat_pad_len);
 
@@ -317,7 +313,6 @@ static int handle_skcipher_req(struct iproc_reqctx_s *rctx)
u8 local_iv_ctr[MAX_IV_SIZE];
u32 stat_pad_len;   /* num bytes to align status field */
u32 pad_len;/* total length of all padding */
-   bool update_key = false;
struct brcm_message *mssg;  /* mailbox message */
 
/* number of entries in src and dst sg in mailbox message. */
@@ -391,28 +386,6 @@ static int handle_skcipher_req(struct iproc_reqctx_s *rctx)
}
}
 
-   if (ctx->cipher.alg == CIPHER_ALG_RC4) {
-   rx_frag_num++;
-   if (chunk_start) {
-   /*
-* for non-first RC4 chunks, use SUPDT from previous
-* response as key for this chunk.
-*/
-   cipher_parms.key_buf = rctx->msg_buf.c.supdt_tweak;
-   update_key = true;
-   cipher_parms.type = CIPHER_TYPE_UPDT;
-   } else if (!rctx->is_encrypt) {
-   /*
-* First RC4 chunk. For decrypt, key in pre-built msg
-* header may have been changed if encrypt required
-* multiple chunks. So revert the key to the
-* ctx->enckey value.
-*/
-   update_key = true;
-   cipher_parms.type = CIPHER_TYPE_INIT;
-   }
-   }
-
if (ctx->max_payload == SPU_MAX_PAYLOAD_INF)
flow_log("max_payload infinite\n");
else
@@ -425,14 +398,9 @@ static int handle_skcipher_req(struct iproc_reqctx_s *rctx)
memcpy(rctx->msg_buf.bcm_spu_req_hdr, ctx->bcm_spu_req_hdr,
   sizeof(rctx->msg_buf.bcm_spu_req_hdr));
 
-   /*
-* Pass SUPDT field as key. Key field in finish() call is only used
-* when update_key has been set above for RC4. Will be ignored in
-* all other cases.
-*/
spu->spu_cipher_req_finish(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
   ctx->spu_req_hdr_len, !(rctx->is_encrypt),
-  _parms, update_key, chunksize);
+  _parms, chunksize);
 
atomic64_add(chunksize, _priv.bytes_out);
 
@@ -527,9 +495,6 @@ static void handle_skcipher_resp(struct iproc_reqctx_s 
*rctx)
 __func__, rctx->total_received, payload_len);
 
dump_sg(req->dst, rctx->total_received, payload_len);
-   if (ctx->cipher.alg == CIPHER_ALG_RC4)
-   packet_dump("  supdt ", rctx->msg_buf.c.supdt_tweak,
-   SPU_SUPDT_LEN);
 
rctx->total_received += payload_len;
if (rctx->total_received == rctx->total_todo) {
@@ -1853,26 +1818,6 @@ static int aes_setkey(struct crypto_skcipher *cipher, 
const u8 *key,
return 0;
 }
 
-static int rc4_setkey(struct crypto_skcipher *cipher, const u8 *key,
- unsigned int keylen)
-{
-   struct iproc_ctx_s *ctx = crypto_skcipher_ctx(cipher);
-   int i;
-
-   ctx->enckeylen = ARC4_MAX_KEY_SIZE + ARC4_STATE_SIZE;
-
-   ctx->enckey[0] = 0x00;  /* 0x00 */
-   ctx->enckey[1] = 0x00;  /* i*/
-   ctx->enckey[2] = 0x00;  /* 0x00 */
-   ctx->enckey[3] = 0x00;  /* j*/
-   for (i = 0; i < ARC4_MAX_KEY_SIZE; i++)
-   ctx->enckey[i + ARC4_STATE_SIZE] = key[i % keylen];
-
-   ctx->cipher_type = CIPHER_TYPE_INIT;
-
-   return 0;
-}
-
 static int skcipher_setkey(struct crypto_skcipher *cipher, const u8 *key,
 unsigned int keylen)
 {
@@ -1895,9 +1840,6 @@ static int skcipher_setkey(struct crypto_skcipher 
*cipher, const u8 *key,
case CIPHER_ALG_AES:
err = aes_setkey(cipher, key, keylen);
break;
-   case CIPHER_ALG_RC4:
-   err = rc4_setkey(cipher, key, keylen);
-   break;
default:

[RFC PATCH 7/7] crypto: tcrypt - remove ecb(arc4) testing/benchmarking support

2020-07-02 Thread Ard Biesheuvel
Signed-off-by: Ard Biesheuvel 
---
 crypto/tcrypt.c  | 21 +--
 crypto/testmgr.c |  7 ---
 crypto/testmgr.h | 62 
 3 files changed, 1 insertion(+), 89 deletions(-)

diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index ba0b7702f2e9..72828c4acd3a 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -68,7 +68,7 @@ static char *tvmem[TVMEMSIZE];
 static const char *check[] = {
"des", "md5", "des3_ede", "rot13", "sha1", "sha224", "sha256", "sm3",
"blowfish", "twofish", "serpent", "sha384", "sha512", "md4", "aes",
-   "cast6", "arc4", "michael_mic", "deflate", "crc32c", "tea", "xtea",
+   "cast6", "michael_mic", "deflate", "crc32c", "tea", "xtea",
"khazad", "wp512", "wp384", "wp256", "tnepres", "xeta",  "fcrypt",
"camellia", "seed", "salsa20", "rmd128", "rmd160", "rmd256", "rmd320",
"lzo", "lzo-rle", "cts", "sha3-224", "sha3-256", "sha3-384",
@@ -1762,10 +1762,6 @@ static int do_test(const char *alg, u32 type, u32 mask, 
int m, u32 num_mb)
ret += tcrypt_test("xts(cast6)");
break;
 
-   case 16:
-   ret += tcrypt_test("ecb(arc4)");
-   break;
-
case 17:
ret += tcrypt_test("michael_mic");
break;
@@ -2201,11 +2197,6 @@ static int do_test(const char *alg, u32 type, u32 mask, 
int m, u32 num_mb)
  speed_template_32_64);
break;
 
-   case 208:
-   test_cipher_speed("ecb(arc4)", ENCRYPT, sec, NULL, 0,
- speed_template_8);
-   break;
-
case 209:
test_cipher_speed("ecb(cast5)", ENCRYPT, sec, NULL, 0,
  speed_template_8_16);
@@ -2720,11 +2711,6 @@ static int do_test(const char *alg, u32 type, u32 mask, 
int m, u32 num_mb)
   speed_template_32_48_64);
break;
 
-   case 505:
-   test_acipher_speed("ecb(arc4)", ENCRYPT, sec, NULL, 0,
-  speed_template_8);
-   break;
-
case 506:
test_acipher_speed("ecb(cast5)", ENCRYPT, sec, NULL, 0,
   speed_template_8_16);
@@ -2932,11 +2918,6 @@ static int do_test(const char *alg, u32 type, u32 mask, 
int m, u32 num_mb)
   speed_template_32_48_64, num_mb);
break;
 
-   case 605:
-   test_mb_skcipher_speed("ecb(arc4)", ENCRYPT, sec, NULL, 0,
-  speed_template_8, num_mb);
-   break;
-
case 606:
test_mb_skcipher_speed("ecb(cast5)", ENCRYPT, sec, NULL, 0,
   speed_template_8_16, num_mb);
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 6863f911fcee..7c1bdc5690e2 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -4783,13 +4783,6 @@ static const struct alg_test_desc alg_test_descs[] = {
.suite = {
.cipher = __VECS(anubis_tv_template)
}
-   }, {
-   .alg = "ecb(arc4)",
-   .generic_driver = "ecb(arc4)-generic",
-   .test = alg_test_skcipher,
-   .suite = {
-   .cipher = __VECS(arc4_tv_template)
-   }
}, {
.alg = "ecb(blowfish)",
.test = alg_test_skcipher,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index d29983908c38..48cd6330ec8d 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -22490,68 +22490,6 @@ static const struct cipher_testvec 
cast5_ctr_tv_template[] = {
},
 };
 
-/*
- * ARC4 test vectors from OpenSSL
- */
-static const struct cipher_testvec arc4_tv_template[] = {
-   {
-   .key= "\x01\x23\x45\x67\x89\xab\xcd\xef",
-   .klen   = 8,
-   .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xef",
-   .ctext  = "\x75\xb7\x87\x80\x99\xe0\xc5\x96",
-   .len= 8,
-   }, {
-   .key= "\x01\x23\x45\x67\x89\xab\xcd\xef",
-   .klen   = 8,
-   .ptext  = "\x00\x00\x00\x00\x00\x00\x00\x00",
-   .ctext  = "\x74\x94\xc2\xe7\x10\x4b\x08\x79",
-   .len= 8,
-   }, {
-   .key= "\x00\x00\x00\x00\x00\x00\x00\x00",
-   .klen   = 8,
-   .ptext  = "\x00\x00\x00\x00\x00\x00\x00\x00",
-   .ctext  = "\xde\x18\x89\x41\xa3\x37\x5d\x3a",
-   .len= 8,
-   }, {
-   .key= "\xef\x01\x23\x45",
-   .klen   = 4,
-   .ptext  = "\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00",
-   .ctext  = "\xd6\xa1\x41\xa7\xec\x3c\x38\xdf"
- "\xbd\x61\x5a\x11\x62\xe1\xc7\xba"
- 

[RFC PATCH 3/7] SUNRPC: remove RC4-HMAC-MD5 support from KerberosV

2020-07-02 Thread Ard Biesheuvel
The RC4-HMAC-MD5 KerberosV algorithm is based on RFC 4757 [0], which
was specifically issued for interoperability with Windows 2000, but was
never intended to receive the same level of support. The RFC says

  The IETF Kerberos community supports publishing this specification as
  an informational document in order to describe this widely
  implemented technology.  However, while these encryption types
  provide the operations necessary to implement the base Kerberos
  specification [RFC4120], they do not provide all the required
  operations in the Kerberos cryptography framework [RFC3961].  As a
  result, it is not generally possible to implement potential
  extensions to Kerberos using these encryption types.  The Kerberos
  encryption type negotiation mechanism [RFC4537] provides one approach
  for using such extensions even when a Kerberos infrastructure uses
  long-term RC4 keys.  Because this specification does not implement
  operations required by RFC 3961 and because of security concerns with
  the use of RC4 and MD4 discussed in Section 8, this specification is
  not appropriate for publication on the standards track.

  The RC4-HMAC encryption types are used to ease upgrade of existing
  Windows NT environments, provide strong cryptography (128-bit key
  lengths), and provide exportable (meet United States government
  export restriction requirements) encryption.  This document describes
  the implementation of those encryption types.

Furthermore, this RFC was re-classified as 'historic' by RFC 8429 [1] in
2018, stating that 'none of the encryption types it specifies should be
used'

Note that other outdated algorithms are left in place (some of which are
guarded by CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES), so this should only
adversely affect interoperability with Windows NT/2000 systems that have
not received any updates since 2008 (but are connected to a network
nonetheless)

[0] https://tools.ietf.org/html/rfc4757
[1] https://tools.ietf.org/html/rfc8429

Signed-off-by: Ard Biesheuvel 
---
 include/linux/sunrpc/gss_krb5.h  |  11 -
 include/linux/sunrpc/gss_krb5_enctypes.h |   9 +-
 net/sunrpc/Kconfig   |   1 -
 net/sunrpc/auth_gss/gss_krb5_crypto.c| 276 
 net/sunrpc/auth_gss/gss_krb5_mech.c  |  95 ---
 net/sunrpc/auth_gss/gss_krb5_seal.c  |   1 -
 net/sunrpc/auth_gss/gss_krb5_seqnum.c|  87 --
 net/sunrpc/auth_gss/gss_krb5_unseal.c|   1 -
 net/sunrpc/auth_gss/gss_krb5_wrap.c  |  65 +
 9 files changed, 16 insertions(+), 530 deletions(-)

diff --git a/include/linux/sunrpc/gss_krb5.h b/include/linux/sunrpc/gss_krb5.h
index e8f8ffe7448b..91f43d86879d 100644
--- a/include/linux/sunrpc/gss_krb5.h
+++ b/include/linux/sunrpc/gss_krb5.h
@@ -141,14 +141,12 @@ enum sgn_alg {
SGN_ALG_MD2_5 = 0x0001,
SGN_ALG_DES_MAC = 0x0002,
SGN_ALG_3 = 0x0003, /* not published */
-   SGN_ALG_HMAC_MD5 = 0x0011,  /* microsoft w2k; no support */
SGN_ALG_HMAC_SHA1_DES3_KD = 0x0004
 };
 enum seal_alg {
SEAL_ALG_NONE = 0x,
SEAL_ALG_DES = 0x,
SEAL_ALG_1 = 0x0001,/* not published */
-   SEAL_ALG_MICROSOFT_RC4 = 0x0010,/* microsoft w2k; no support */
SEAL_ALG_DES3KD = 0x0002
 };
 
@@ -316,14 +314,5 @@ gss_krb5_aes_decrypt(struct krb5_ctx *kctx, u32 offset, 
u32 len,
 struct xdr_buf *buf, u32 *plainoffset,
 u32 *plainlen);
 
-int
-krb5_rc4_setup_seq_key(struct krb5_ctx *kctx,
-  struct crypto_sync_skcipher *cipher,
-  unsigned char *cksum);
-
-int
-krb5_rc4_setup_enc_key(struct krb5_ctx *kctx,
-  struct crypto_sync_skcipher *cipher,
-  s32 seqnum);
 void
 gss_krb5_make_confounder(char *p, u32 conflen);
diff --git a/include/linux/sunrpc/gss_krb5_enctypes.h 
b/include/linux/sunrpc/gss_krb5_enctypes.h
index 981c89cef19d..87eea679d750 100644
--- a/include/linux/sunrpc/gss_krb5_enctypes.h
+++ b/include/linux/sunrpc/gss_krb5_enctypes.h
@@ -13,15 +13,13 @@
 #ifdef CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES
 
 /*
- * NB: This list includes encryption types that were deprecated
- * by RFC 8429 (DES3_CBC_SHA1 and ARCFOUR_HMAC).
+ * NB: This list includes DES3_CBC_SHA1, which was deprecated by RFC 8429.
  *
  * ENCTYPE_AES256_CTS_HMAC_SHA1_96
  * ENCTYPE_AES128_CTS_HMAC_SHA1_96
  * ENCTYPE_DES3_CBC_SHA1
- * ENCTYPE_ARCFOUR_HMAC
  */
-#define KRB5_SUPPORTED_ENCTYPES "18,17,16,23"
+#define KRB5_SUPPORTED_ENCTYPES "18,17,16"
 
 #else  /* CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES */
 
@@ -32,12 +30,11 @@
  * ENCTYPE_AES256_CTS_HMAC_SHA1_96
  * ENCTYPE_AES128_CTS_HMAC_SHA1_96
  * ENCTYPE_DES3_CBC_SHA1
- * ENCTYPE_ARCFOUR_HMAC
  * ENCTYPE_DES_CBC_MD5
  * ENCTYPE_DES_CBC_CRC
  * ENCTYPE_DES_CBC_MD4
  */
-#define KRB5_SUPPORTED_ENCTYPES "18,17,16,23,3,1,2"
+#define KRB5_SUPPORTED_ENCTYPES "18,17,16,3,1,2"
 
 #endif /* 

[RFC PATCH 2/7] staging/rtl8192u: switch to RC4 library interface

2020-07-02 Thread Ard Biesheuvel
Switch to the ARC4 library interface, to remove the pointless
dependency on the skcipher API, from which we will hopefully be
able to drop ecb(arc4) skcipher support.

Signed-off-by: Ard Biesheuvel 
---
 drivers/staging/rtl8192u/Kconfig  |  1 +
 drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 82 

 drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c  | 64 +++
 3 files changed, 27 insertions(+), 120 deletions(-)

diff --git a/drivers/staging/rtl8192u/Kconfig b/drivers/staging/rtl8192u/Kconfig
index 1edca5c304fb..ef883d462d3d 100644
--- a/drivers/staging/rtl8192u/Kconfig
+++ b/drivers/staging/rtl8192u/Kconfig
@@ -8,3 +8,4 @@ config RTL8192U
select CRYPTO
select CRYPTO_AES
select CRYPTO_CCM
+   select CRYPTO_LIB_ARC4
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c 
b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
index ffe624ed0c0c..a315133c20db 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
@@ -5,6 +5,7 @@
  * Copyright (c) 2003-2004, Jouni Malinen 
  */
 
+#include 
 #include 
 #include 
 #include 
@@ -17,9 +18,7 @@
 
 #include "ieee80211.h"
 
-#include 
-#include 
-   #include 
+#include 
 #include 
 
 MODULE_AUTHOR("Jouni Malinen");
@@ -49,9 +48,9 @@ struct ieee80211_tkip_data {
 
int key_idx;
 
-   struct crypto_sync_skcipher *rx_tfm_arc4;
+   struct arc4_ctx rx_ctx_arc4;
+   struct arc4_ctx tx_ctx_arc4;
struct crypto_shash *rx_tfm_michael;
-   struct crypto_sync_skcipher *tx_tfm_arc4;
struct crypto_shash *tx_tfm_michael;
 
/* scratch buffers for virt_to_page() (crypto API) */
@@ -62,19 +61,14 @@ static void *ieee80211_tkip_init(int key_idx)
 {
struct ieee80211_tkip_data *priv;
 
+   if (fips_enabled)
+   return NULL;
+
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
if (!priv)
goto fail;
priv->key_idx = key_idx;
 
-   priv->tx_tfm_arc4 = crypto_alloc_sync_skcipher("ecb(arc4)", 0, 0);
-   if (IS_ERR(priv->tx_tfm_arc4)) {
-   printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
-   "crypto API arc4\n");
-   priv->tx_tfm_arc4 = NULL;
-   goto fail;
-   }
-
priv->tx_tfm_michael = crypto_alloc_shash("michael_mic", 0, 0);
if (IS_ERR(priv->tx_tfm_michael)) {
printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
@@ -83,14 +77,6 @@ static void *ieee80211_tkip_init(int key_idx)
goto fail;
}
 
-   priv->rx_tfm_arc4 = crypto_alloc_sync_skcipher("ecb(arc4)", 0, 0);
-   if (IS_ERR(priv->rx_tfm_arc4)) {
-   printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
-   "crypto API arc4\n");
-   priv->rx_tfm_arc4 = NULL;
-   goto fail;
-   }
-
priv->rx_tfm_michael = crypto_alloc_shash("michael_mic", 0, 0);
if (IS_ERR(priv->rx_tfm_michael)) {
printk(KERN_DEBUG "ieee80211_crypt_tkip: could not allocate "
@@ -104,9 +90,7 @@ static void *ieee80211_tkip_init(int key_idx)
 fail:
if (priv) {
crypto_free_shash(priv->tx_tfm_michael);
-   crypto_free_sync_skcipher(priv->tx_tfm_arc4);
crypto_free_shash(priv->rx_tfm_michael);
-   crypto_free_sync_skcipher(priv->rx_tfm_arc4);
kfree(priv);
}
 
@@ -120,11 +104,9 @@ static void ieee80211_tkip_deinit(void *priv)
 
if (_priv) {
crypto_free_shash(_priv->tx_tfm_michael);
-   crypto_free_sync_skcipher(_priv->tx_tfm_arc4);
crypto_free_shash(_priv->rx_tfm_michael);
-   crypto_free_sync_skcipher(_priv->rx_tfm_arc4);
}
-   kfree(priv);
+   kzfree(priv);
 }
 
 
@@ -290,10 +272,8 @@ static int ieee80211_tkip_encrypt(struct sk_buff *skb, int 
hdr_len, void *priv)
u8 *pos;
struct rtl_80211_hdr_4addr *hdr;
struct cb_desc *tcb_desc = (struct cb_desc *)(skb->cb + 
MAX_DEV_ADDR_SIZE);
-   int ret = 0;
u8 rc4key[16],  *icv;
u32 crc;
-   struct scatterlist sg;
 
if (skb_headroom(skb) < 8 || skb_tailroom(skb) < 4 ||
skb->len < hdr_len)
@@ -334,21 +314,15 @@ static int ieee80211_tkip_encrypt(struct sk_buff *skb, 
int hdr_len, void *priv)
*pos++ = (tkey->tx_iv32 >> 24) & 0xff;
 
if (!tcb_desc->bHwSec) {
-   SYNC_SKCIPHER_REQUEST_ON_STACK(req, tkey->tx_tfm_arc4);
-
icv = skb_put(skb, 4);
crc = ~crc32_le(~0, pos, len);
icv[0] = crc;
icv[1] = crc >> 8;
icv[2] = crc >> 16;
icv[3] = crc >> 24;
-   crypto_sync_skcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16);
-  

[RFC PATCH 1/7] staging/rtl8192e: switch to RC4 library interface

2020-07-02 Thread Ard Biesheuvel
Switch to the ARC4 library interface, to remove the pointless
dependency on the skcipher API, from which we will hopefully be
able to drop ecb(arc4) skcipher support.

Signed-off-by: Ard Biesheuvel 
---
 drivers/staging/rtl8192e/Kconfig |  4 +-
 drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 70 ---
 drivers/staging/rtl8192e/rtllib_crypt_wep.c  | 72 
 3 files changed, 28 insertions(+), 118 deletions(-)

diff --git a/drivers/staging/rtl8192e/Kconfig b/drivers/staging/rtl8192e/Kconfig
index 1007eea6c8fc..4c440bdaaf6e 100644
--- a/drivers/staging/rtl8192e/Kconfig
+++ b/drivers/staging/rtl8192e/Kconfig
@@ -25,7 +25,7 @@ config RTLLIB_CRYPTO_CCMP
 config RTLLIB_CRYPTO_TKIP
tristate "Support for rtllib TKIP crypto"
depends on RTLLIB
-   select CRYPTO_ARC4
+   select CRYPTO_LIB_ARC4
select CRYPTO_MICHAEL_MIC
default y
help
@@ -35,7 +35,7 @@ config RTLLIB_CRYPTO_TKIP
 
 config RTLLIB_CRYPTO_WEP
tristate "Support for rtllib WEP crypto"
-   select CRYPTO_ARC4
+   select CRYPTO_LIB_ARC4
depends on RTLLIB
default y
help
diff --git a/drivers/staging/rtl8192e/rtllib_crypt_tkip.c 
b/drivers/staging/rtl8192e/rtllib_crypt_tkip.c
index 8d2a58e706d5..8c2ff37b2d3a 100644
--- a/drivers/staging/rtl8192e/rtllib_crypt_tkip.c
+++ b/drivers/staging/rtl8192e/rtllib_crypt_tkip.c
@@ -5,8 +5,9 @@
  * Copyright (c) 2003-2004, Jouni Malinen 
  */
 
+#include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
@@ -16,7 +17,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 
@@ -45,9 +45,9 @@ struct rtllib_tkip_data {
u32 dot11RSNAStatsTKIPLocalMICFailures;
 
int key_idx;
-   struct crypto_sync_skcipher *rx_tfm_arc4;
+   struct arc4_ctx rx_ctx_arc4;
+   struct arc4_ctx tx_ctx_arc4;
struct crypto_shash *rx_tfm_michael;
-   struct crypto_sync_skcipher *tx_tfm_arc4;
struct crypto_shash *tx_tfm_michael;
/* scratch buffers for virt_to_page() (crypto API) */
u8 rx_hdr[16];
@@ -58,16 +58,13 @@ static void *rtllib_tkip_init(int key_idx)
 {
struct rtllib_tkip_data *priv;
 
+   if (fips_enabled)
+   return NULL;
+
priv = kzalloc(sizeof(*priv), GFP_ATOMIC);
if (priv == NULL)
goto fail;
priv->key_idx = key_idx;
-   priv->tx_tfm_arc4 = crypto_alloc_sync_skcipher("ecb(arc4)", 0, 0);
-   if (IS_ERR(priv->tx_tfm_arc4)) {
-   pr_debug("Could not allocate crypto API arc4\n");
-   priv->tx_tfm_arc4 = NULL;
-   goto fail;
-   }
 
priv->tx_tfm_michael = crypto_alloc_shash("michael_mic", 0, 0);
if (IS_ERR(priv->tx_tfm_michael)) {
@@ -76,13 +73,6 @@ static void *rtllib_tkip_init(int key_idx)
goto fail;
}
 
-   priv->rx_tfm_arc4 = crypto_alloc_sync_skcipher("ecb(arc4)", 0, 0);
-   if (IS_ERR(priv->rx_tfm_arc4)) {
-   pr_debug("Could not allocate crypto API arc4\n");
-   priv->rx_tfm_arc4 = NULL;
-   goto fail;
-   }
-
priv->rx_tfm_michael = crypto_alloc_shash("michael_mic", 0, 0);
if (IS_ERR(priv->rx_tfm_michael)) {
pr_debug("Could not allocate crypto API michael_mic\n");
@@ -94,9 +84,7 @@ static void *rtllib_tkip_init(int key_idx)
 fail:
if (priv) {
crypto_free_shash(priv->tx_tfm_michael);
-   crypto_free_sync_skcipher(priv->tx_tfm_arc4);
crypto_free_shash(priv->rx_tfm_michael);
-   crypto_free_sync_skcipher(priv->rx_tfm_arc4);
kfree(priv);
}
 
@@ -110,11 +98,9 @@ static void rtllib_tkip_deinit(void *priv)
 
if (_priv) {
crypto_free_shash(_priv->tx_tfm_michael);
-   crypto_free_sync_skcipher(_priv->tx_tfm_arc4);
crypto_free_shash(_priv->rx_tfm_michael);
-   crypto_free_sync_skcipher(_priv->rx_tfm_arc4);
}
-   kfree(priv);
+   kzfree(priv);
 }
 
 
@@ -289,7 +275,6 @@ static int rtllib_tkip_encrypt(struct sk_buff *skb, int 
hdr_len, void *priv)
int ret = 0;
u8 rc4key[16],  *icv;
u32 crc;
-   struct scatterlist sg;
 
if (skb_headroom(skb) < 8 || skb_tailroom(skb) < 4 ||
skb->len < hdr_len)
@@ -331,8 +316,6 @@ static int rtllib_tkip_encrypt(struct sk_buff *skb, int 
hdr_len, void *priv)
*pos++ = (tkey->tx_iv32 >> 24) & 0xff;
 
if (!tcb_desc->bHwSec) {
-   SYNC_SKCIPHER_REQUEST_ON_STACK(req, tkey->tx_tfm_arc4);
-
icv = skb_put(skb, 4);
crc = ~crc32_le(~0, pos, len);
icv[0] = crc;
@@ -340,15 +323,8 @@ static int rtllib_tkip_encrypt(struct sk_buff *skb, int 
hdr_len, void *priv)
icv[2] = crc >> 16;
icv[3] = crc >> 24;
 
-   sg_init_one(, pos, len+4);
-
-
-   

[RFC PATCH 4/7] crypto: remove ARC4 support from the skcipher API

2020-07-02 Thread Ard Biesheuvel
Remove the generic ecb(arc4) skcipher, which is slightly cumbersome from
a maintenance perspective, since it does not quite behave like other
skciphers do in terms of key vs IV lifetime. Since we are leaving the
library interface in place, which is used by the various WEP and TKIP
implementations we have in the tree, we can safely drop this code now
it no longer has any users.

Signed-off-by: Ard Biesheuvel 
---
 crypto/Kconfig   | 12 
 crypto/Makefile  |  1 -
 crypto/arc4.c| 76 
 drivers/net/wireless/intel/ipw2x00/Kconfig   |  1 -
 drivers/net/wireless/intersil/hostap/Kconfig |  1 -
 5 files changed, 91 deletions(-)

diff --git a/crypto/Kconfig b/crypto/Kconfig
index 091c0a0bbf26..fd0d1f78ac47 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -1197,18 +1197,6 @@ config CRYPTO_ANUBIS
  
  
 
-config CRYPTO_ARC4
-   tristate "ARC4 cipher algorithm"
-   select CRYPTO_SKCIPHER
-   select CRYPTO_LIB_ARC4
-   help
- ARC4 cipher algorithm.
-
- ARC4 is a stream cipher using keys ranging from 8 bits to 2048
- bits in length.  This algorithm is required for driver-based
- WEP, but it should not be for other purposes because of the
- weakness of the algorithm.
-
 config CRYPTO_BLOWFISH
tristate "Blowfish cipher algorithm"
select CRYPTO_ALGAPI
diff --git a/crypto/Makefile b/crypto/Makefile
index 4ca12b6044f7..af88c7e30b3c 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
@@ -128,7 +128,6 @@ obj-$(CONFIG_CRYPTO_CAMELLIA) += camellia_generic.o
 obj-$(CONFIG_CRYPTO_CAST_COMMON) += cast_common.o
 obj-$(CONFIG_CRYPTO_CAST5) += cast5_generic.o
 obj-$(CONFIG_CRYPTO_CAST6) += cast6_generic.o
-obj-$(CONFIG_CRYPTO_ARC4) += arc4.o
 obj-$(CONFIG_CRYPTO_TEA) += tea.o
 obj-$(CONFIG_CRYPTO_KHAZAD) += khazad.o
 obj-$(CONFIG_CRYPTO_ANUBIS) += anubis.o
diff --git a/crypto/arc4.c b/crypto/arc4.c
deleted file mode 100644
index aa79571dbd49..
--- a/crypto/arc4.c
+++ /dev/null
@@ -1,76 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Cryptographic API
- *
- * ARC4 Cipher Algorithm
- *
- * Jon Oberheide 
- */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-static int crypto_arc4_setkey(struct crypto_skcipher *tfm, const u8 *in_key,
- unsigned int key_len)
-{
-   struct arc4_ctx *ctx = crypto_skcipher_ctx(tfm);
-
-   return arc4_setkey(ctx, in_key, key_len);
-}
-
-static int crypto_arc4_crypt(struct skcipher_request *req)
-{
-   struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
-   struct arc4_ctx *ctx = crypto_skcipher_ctx(tfm);
-   struct skcipher_walk walk;
-   int err;
-
-   err = skcipher_walk_virt(, req, false);
-
-   while (walk.nbytes > 0) {
-   arc4_crypt(ctx, walk.dst.virt.addr, walk.src.virt.addr,
-  walk.nbytes);
-   err = skcipher_walk_done(, 0);
-   }
-
-   return err;
-}
-
-static struct skcipher_alg arc4_alg = {
-   /*
-* For legacy reasons, this is named "ecb(arc4)", not "arc4".
-* Nevertheless it's actually a stream cipher, not a block cipher.
-*/
-   .base.cra_name  =   "ecb(arc4)",
-   .base.cra_driver_name   =   "ecb(arc4)-generic",
-   .base.cra_priority  =   100,
-   .base.cra_blocksize =   ARC4_BLOCK_SIZE,
-   .base.cra_ctxsize   =   sizeof(struct arc4_ctx),
-   .base.cra_module=   THIS_MODULE,
-   .min_keysize=   ARC4_MIN_KEY_SIZE,
-   .max_keysize=   ARC4_MAX_KEY_SIZE,
-   .setkey =   crypto_arc4_setkey,
-   .encrypt=   crypto_arc4_crypt,
-   .decrypt=   crypto_arc4_crypt,
-};
-
-static int __init arc4_init(void)
-{
-   return crypto_register_skcipher(_alg);
-}
-
-static void __exit arc4_exit(void)
-{
-   crypto_unregister_skcipher(_alg);
-}
-
-subsys_initcall(arc4_init);
-module_exit(arc4_exit);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("ARC4 Cipher Algorithm");
-MODULE_AUTHOR("Jon Oberheide ");
-MODULE_ALIAS_CRYPTO("ecb(arc4)");
diff --git a/drivers/net/wireless/intel/ipw2x00/Kconfig 
b/drivers/net/wireless/intel/ipw2x00/Kconfig
index d00386915a9d..82b7eea3495f 100644
--- a/drivers/net/wireless/intel/ipw2x00/Kconfig
+++ b/drivers/net/wireless/intel/ipw2x00/Kconfig
@@ -160,7 +160,6 @@ config LIBIPW
select WIRELESS_EXT
select WEXT_SPY
select CRYPTO
-   select CRYPTO_ARC4
select CRYPTO_ECB
select CRYPTO_AES
select CRYPTO_MICHAEL_MIC
diff --git a/drivers/net/wireless/intersil/hostap/Kconfig 
b/drivers/net/wireless/intersil/hostap/Kconfig
index 6ad88299432f..428fb6f55f51 100644
--- 

[RFC PATCH 5/7] crypto: n2 - remove ecb(arc4) support

2020-07-02 Thread Ard Biesheuvel
Signed-off-by: Ard Biesheuvel 
---
 drivers/crypto/n2_core.c | 46 
 1 file changed, 46 deletions(-)

diff --git a/drivers/crypto/n2_core.c b/drivers/crypto/n2_core.c
index 6a828bbecea4..c347e58cd9a1 100644
--- a/drivers/crypto/n2_core.c
+++ b/drivers/crypto/n2_core.c
@@ -662,7 +662,6 @@ struct n2_skcipher_context {
u8  aes[AES_MAX_KEY_SIZE];
u8  des[DES_KEY_SIZE];
u8  des3[3 * DES_KEY_SIZE];
-   u8  arc4[258]; /* S-box, X, Y */
} key;
 };
 
@@ -789,36 +788,6 @@ static int n2_3des_setkey(struct crypto_skcipher 
*skcipher, const u8 *key,
return 0;
 }
 
-static int n2_arc4_setkey(struct crypto_skcipher *skcipher, const u8 *key,
- unsigned int keylen)
-{
-   struct crypto_tfm *tfm = crypto_skcipher_tfm(skcipher);
-   struct n2_skcipher_context *ctx = crypto_tfm_ctx(tfm);
-   struct n2_skcipher_alg *n2alg = n2_skcipher_alg(skcipher);
-   u8 *s = ctx->key.arc4;
-   u8 *x = s + 256;
-   u8 *y = x + 1;
-   int i, j, k;
-
-   ctx->enc_type = n2alg->enc_type;
-
-   j = k = 0;
-   *x = 0;
-   *y = 0;
-   for (i = 0; i < 256; i++)
-   s[i] = i;
-   for (i = 0; i < 256; i++) {
-   u8 a = s[i];
-   j = (j + key[k] + a) & 0xff;
-   s[i] = s[j];
-   s[j] = a;
-   if (++k >= keylen)
-   k = 0;
-   }
-
-   return 0;
-}
-
 static inline int skcipher_descriptor_len(int nbytes, unsigned int block_size)
 {
int this_len = nbytes;
@@ -1122,21 +1091,6 @@ struct n2_skcipher_tmpl {
 };
 
 static const struct n2_skcipher_tmpl skcipher_tmpls[] = {
-   /* ARC4: only ECB is supported (chaining bits ignored) */
-   {   .name   = "ecb(arc4)",
-   .drv_name   = "ecb-arc4",
-   .block_size = 1,
-   .enc_type   = (ENC_TYPE_ALG_RC4_STREAM |
-  ENC_TYPE_CHAINING_ECB),
-   .skcipher   = {
-   .min_keysize= 1,
-   .max_keysize= 256,
-   .setkey = n2_arc4_setkey,
-   .encrypt= n2_encrypt_ecb,
-   .decrypt= n2_decrypt_ecb,
-   },
-   },
-
/* DES: ECB CBC and CFB are supported */
{   .name   = "ecb(des)",
.drv_name   = "ecb-des",
-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Kalle Valo
 writes:

> On 02/07/20 12:30 pm, Kalle Valo wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you
>> know the content is safe
>> 
>>  writes:
>> 
>>> From: Ajay Singh 
>>>
>>> WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
>>> WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
>>> processors with minimal resource requirements with a simple
>>> SPI/SDIO-to-Wi-Fi interface.
>>>
>>> WILC1000 driver has been part of staging for few years. With
>>> contributions from the community, it has improved significantly. Full
>>> driver review has helped in achieving the current state.
>>> The details for those reviews are captured in 1 & 2.
>>>
>>> [1].
>>> https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
>>> [2].
>>> https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
>>>
>>> Signed-off-by: Ajay Singh 
>>> ---
>>>
>>> As suggested, keeping all the changes in single commit with file rename
>>> so it's easy to move out of staging [3].
>>>
>>> Please choose whichever option you prefer between the git mv or patch series
>>> sent last Tuesday. The resulting driver is the same as no patch has been
>>> queued in between.
>>>
>>> [3].
>>> https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/
>> 
>> As discussed with Greg I created an immutable branch for this and merged
>> the branch to wireless-drivers-next:
>
> Thanks Kalle.
>
> If my understanding is correct, we have to use 'wireless-driver-next'
> master branch to submit new patches for wilc1000. right?

Correct. And I also suggest to get familiar with the linux-wireless
patchwork to follow patch status, more info in the link below.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v6 08/12] device core: Introduce DMA range map, supplanting dma_pfn_offset

2020-07-02 Thread Andy Shevchenko
On Wed, Jul 01, 2020 at 05:21:38PM -0400, Jim Quinlan wrote:
> The new field 'dma_range_map' in struct device is used to facilitate the
> use of single or multiple offsets between mapping regions of cpu addrs and
> dma addrs.  It subsumes the role of "dev->dma_pfn_offset" which was only
> capable of holding a single uniform offset and had no region bounds
> checking.
> 
> The function of_dma_get_range() has been modified so that it takes a single
> argument -- the device node -- and returns a map, NULL, or an error code.
> The map is an array that holds the information regarding the DMA regions.
> Each range entry contains the address offset, the cpu_start address, the
> dma_start address, and the size of the region.
> 
> of_dma_configure() is the typical manner to set range offsets but there are
> a number of ad hoc assignments to "dev->dma_pfn_offset" in the kernel
> driver code.  These cases now invoke the function
> dma_attach_offset_range(dev, cpu_addr, dma_addr, size).

...

> + if (dev && dev->dma_range_map)
> + pfn -= (unsigned long)PFN_DOWN(dma_offset_from_phys_addr(dev, 
> PFN_PHYS(pfn)));

Instead of casting use PHYS_PFN() and it will be consistent with latter in the 
same line.

> + if (dev && dev->dma_range_map)
> + pfn += (unsigned long)PFN_DOWN(dma_offset_from_dma_addr(dev, 
> addr));

Ditto.

...

> + dev_err(dev, "set dma_offset%08llx%s\n", 
> KEYSTONE_HIGH_PHYS_START
> + - KEYSTONE_LOW_PHYS_START, ret ? " failed" : "");

Please, avoid such indentation.
Better split it to the three lines, argument per line (expect dev which will go
on the first one).

This applies to all similar places.

...

>   unsigned long pfn = (dma_handle >> PAGE_SHIFT);

PHYS_PFN() / PFN_DOWN() ?

> + if (!WARN_ON(!dev) && dev->dma_range_map)
> + pfn += (unsigned long)PFN_DOWN(dma_offset_from_dma_addr(dev, 
> dma_handle));

PHYS_PFN() ?

...

> + r = kcalloc(num_ranges + 1, sizeof(struct bus_dma_region), GFP_KERNEL);

sizeof(*r) ?

> + if (!r)
> + return ERR_PTR(-ENOMEM);

...

> + ret = IS_ERR(map) ? PTR_ERR(map) : 0;

PTR_ERR_OR_ZERO()

...

> + /* We want the offset map to be device-managed, so alloc & copy 
> */
> + dev->dma_range_map = devm_kcalloc(dev, num_ranges + 1, 
> sizeof(*r),
> +   GFP_KERNEL);

The question is how many times per device lifetime this can be called?

...


> + if (!dev->dma_range_map)
> + return -ENOMEM;
> + memcpy((void *)dev->dma_range_map, map, sizeof(*r) * num_ranges 
> + 1);

If it's continuous, perhaps kmemdup() ?

...

> + rc = IS_ERR(map) ? PTR_ERR(map) : 0;

PTR_ERR_OR_ZERO()

...

> + = dma_offset_from_phys_addr(dev, 
> PFN_PHYS(mem->pfn_base));
> +
> + return (dma_addr_t)PFN_PHYS(mem->pfn_base) - dma_offset;

Looking at this more, I think you need to introduce in the same header (pfn.h)
something like:

#define PFN_DMA_ADDR()
#define DMA_ADDR_PFN()

-- 
With Best Regards,
Andy Shevchenko


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: qlge: qlge_ethtool.c: Proper indentation.

2020-07-02 Thread Suraj Upadhyay
Remove extra indentations from if-statement.

Signed-off-by: Suraj Upadhyay 
---
 drivers/staging/qlge/qlge_ethtool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index 949abd53a7a9..16fcdefa9687 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -528,8 +528,8 @@ void ql_check_lb_frame(struct ql_adapter *qdev,
if ((*(skb->data + 3) == 0xFF) &&
(*(skb->data + frame_size / 2 + 10) == 0xBE) &&
(*(skb->data + frame_size / 2 + 12) == 0xAF)) {
-   atomic_dec(>lb_count);
-   return;
+   atomic_dec(>lb_count);
+   return;
}
 }
 
-- 
2.17.1



signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Greg KH
On Thu, Jul 02, 2020 at 07:24:34AM +, ajay.kat...@microchip.com wrote:
> 
> 
> On 02/07/20 12:45 pm, Greg KH wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
> > content is safe
> > 
> > On Thu, Jul 02, 2020 at 10:00:40AM +0300, Kalle Valo wrote:
> >>  writes:
> >>
> >>> From: Ajay Singh 
> >>>
> >>> WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
> >>> WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
> >>> processors with minimal resource requirements with a simple
> >>> SPI/SDIO-to-Wi-Fi interface.
> >>>
> >>> WILC1000 driver has been part of staging for few years. With
> >>> contributions from the community, it has improved significantly. Full
> >>> driver review has helped in achieving the current state.
> >>> The details for those reviews are captured in 1 & 2.
> >>>
> >>> [1]. 
> >>> https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
> >>> [2]. 
> >>> https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
> >>>
> >>> Signed-off-by: Ajay Singh 
> >>> ---
> >>>
> >>> As suggested, keeping all the changes in single commit with file rename
> >>> so it's easy to move out of staging [3].
> >>>
> >>> Please choose whichever option you prefer between the git mv or patch 
> >>> series
> >>> sent last Tuesday. The resulting driver is the same as no patch has been
> >>> queued in between.
> >>>
> >>> [3]. 
> >>> https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/
> >>
> >> As discussed with Greg I created an immutable branch for this and merged
> >> the branch to wireless-drivers-next:
> >>
> >> 5625f965d764 wilc1000: move wilc driver out of staging
> >>
> >> Greg, here's the location of the immutable branch:
> >>
> >> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
> >>  wilc1000-move-out-of-staging
> > 
> > Looks good, I've pulled it into my staging tree as well, but there's
> > still a TODO file left in drivers/staging/wilc1000, right?
> > 
> > I'll just add a patch to my tree to remove that last file.
> > 
> 
> Yes, TODO file needs to be removed after the driver movement.

Now gone from my tree.

> Thanks Greg for all your support to move driver out of staging.

Glad to see it move out, thanks to you all for all of your work!

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Greg KH
On Thu, Jul 02, 2020 at 10:00:40AM +0300, Kalle Valo wrote:
>  writes:
> 
> > From: Ajay Singh 
> >
> > WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
> > WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
> > processors with minimal resource requirements with a simple
> > SPI/SDIO-to-Wi-Fi interface.
> >
> > WILC1000 driver has been part of staging for few years. With
> > contributions from the community, it has improved significantly. Full
> > driver review has helped in achieving the current state.
> > The details for those reviews are captured in 1 & 2.
> >
> > [1]. 
> > https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
> > [2]. 
> > https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
> >
> > Signed-off-by: Ajay Singh 
> > ---
> >
> > As suggested, keeping all the changes in single commit with file rename
> > so it's easy to move out of staging [3].
> >
> > Please choose whichever option you prefer between the git mv or patch series
> > sent last Tuesday. The resulting driver is the same as no patch has been
> > queued in between.
> >
> > [3]. 
> > https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/
> 
> As discussed with Greg I created an immutable branch for this and merged
> the branch to wireless-drivers-next:
> 
> 5625f965d764 wilc1000: move wilc driver out of staging
> 
> Greg, here's the location of the immutable branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
> wilc1000-move-out-of-staging

Looks good, I've pulled it into my staging tree as well, but there's
still a TODO file left in drivers/staging/wilc1000, right?

I'll just add a patch to my tree to remove that last file.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v7 00/17] wilc1000: move out of staging

2020-07-02 Thread Kalle Valo
Greg KH  writes:

> On Fri, Jun 26, 2020 at 08:34:48AM +0300, Kalle Valo wrote:
>
>> And Ajay already submitted that the simple rename patch proposed, thanks
>> Ajay!
>> 
>> https://patchwork.kernel.org/patch/11625025/
>> 
>> And indeed the patch is simple as it can get. So Greg, if it's ok for
>> you I would like to apply that simple patch to wireless-drivers-next.
>> 
>> > Note, I can't guarantee that I'll not take any wilc1000 patches, I'll
>> > probably forget, but git mv will handle all of that just fine.
>> 
>> Good point. To be on the safe side one option is that if I create a
>> topic branch for this simple patch and use v5.8-rc1 as the baseline.
>> Then I would pull the topic branch to wireless-drivers-next and you
>> could pull it to staging-next. That way you would not have wilc1000 in
>> your tree anymore and no accidental submission or commits either :) What
>> do you think?
>
> That sounds great, I will be happy to pull such a branch.

Great! Sorry for taking so long, I'm on vacation right now, but here's
the immutable branch:

git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
wilc1000-move-out-of-staging

I have pulled it into wireless-drivers-next now.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] wilc1000: move wilc driver out of staging

2020-07-02 Thread Kalle Valo
 writes:

> From: Ajay Singh 
>
> WILC1000 is an IEEE 802.11 b/g/n IoT link controller module. The
> WILC1000 connects to Microchip AVR/SMART MCUs, SMART MPUs, and other
> processors with minimal resource requirements with a simple
> SPI/SDIO-to-Wi-Fi interface.
>
> WILC1000 driver has been part of staging for few years. With
> contributions from the community, it has improved significantly. Full
> driver review has helped in achieving the current state.
> The details for those reviews are captured in 1 & 2.
>
> [1]. 
> https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kat...@microchip.com/
> [2]. 
> https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kat...@microchip.com/
>
> Signed-off-by: Ajay Singh 
> ---
>
> As suggested, keeping all the changes in single commit with file rename
> so it's easy to move out of staging [3].
>
> Please choose whichever option you prefer between the git mv or patch series
> sent last Tuesday. The resulting driver is the same as no patch has been
> queued in between.
>
> [3]. 
> https://lore.kernel.org/linux-wireless/2020062311.31559-1-ajay.kat...@microchip.com/

As discussed with Greg I created an immutable branch for this and merged
the branch to wireless-drivers-next:

5625f965d764 wilc1000: move wilc driver out of staging

Greg, here's the location of the immutable branch:

git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
wilc1000-move-out-of-staging

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging/wilc1000: let wilc_mac_xmit() to NETDEV_TX_OK

2020-07-02 Thread Kalle Valo
 writes:

> Luc,
>
> Thanks for your patch...
>
> On 28/06/2020 at 20:32, Luc Van Oostenryck wrote:
>> The method ndo_start_xmit() is defined as returning an 'netdev_tx_t',
>> which is a typedef for an enum type defining 'NETDEV_TX_OK' but this
>> driver returns '0' instead of 'NETDEV_TX_OK'.
>> 
>> Fix this by returning ''NETDEV_TX_OK' instead of 0.
>> 
>> Signed-off-by: Luc Van Oostenryck 
>> ---
>>   drivers/staging/wilc1000/netdev.c | 6 +++---
>
> ... would it be possible that you re-spin it so that it applies to the 
> new location of this driver:
> drivers/net/wireless/microchip/wilc1000/netdev.c
>
> You can rebase your patch on the wireless-driver-next tree with 
> wilc1000-move-out-of-staging branch:
>
> tree: 
> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
> branch: wilc1000-move-out-of-staging
>
> (Then you can also review the subject line of your patch, BTW)

And also cc linux-wireless so that our patchwork sees it (not sure if
the original patch had it or not, just making sure), more info in the
link below.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8188eu: include: rtw_cmd.h: fixed a blank space coding style issue.

2020-07-02 Thread Greg Kroah-Hartman
On Thu, Jul 02, 2020 at 12:50:04AM -0400, B K Karthik wrote:
> add blank spaces for improved code readability.
> 
> Signed-off-by: B K Karthik 
> ---
>  drivers/staging/rtl8188eu/include/rtw_cmd.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h 
> b/drivers/staging/rtl8188eu/include/rtw_cmd.h
> index fa5e212fc9e0..002a797c6d0a 100644
> --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h
> +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h
> @@ -115,7 +115,7 @@ structsetopmode_parm {
>   */
> 
>  #define RTW_SSID_SCAN_AMOUNT 9 /*  for WEXT_CSCAN_AMOUNT 9 */
> -#define RTW_CHANNEL_SCAN_AMOUNT (14+37)
> +#define RTW_CHANNEL_SCAN_AMOUNT (14 + 37)
>  struct sitesurvey_parm {
>   int scan_mode;  /* active: 1, passive: 0 */
>   u8 ssid_num;

You sent 8 patches, some of them duplicates (I think), with no sense of
what order to apply these in.

Please resend them all as a patch series, properly numbered, so that I
have a chance to figure this out, I have dropped all of your patches
from my review queue.

thanks,

greg k-h

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel