diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-02 18:54:06 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-02 18:54:06 -0700 |
commit | 66b71f9e8256717b94c4819ae84bd6d4beb1f3fa (patch) | |
tree | 2ee74c50d23b2b51c9189e97d24fcb92dad0ee19 | |
parent | cd7a3e42ee78f772571a6446699c9d326fcb0320 (diff) | |
download | ltsi-kernel-66b71f9e8256717b94c4819ae84bd6d4beb1f3fa.tar.gz |
Fix up Renesas patches so they apply properly.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
287 files changed, 10325 insertions, 4214 deletions
diff --git a/patches.renesas/0001-clocksource-em_sti-Split-clock-prepare-and-enable-st.patch b/patches.renesas/0001-clocksource-em_sti-Split-clock-prepare-and-enable-st.patch index 4c0a8cbfd89d10..8a38ac5b977348 100644 --- a/patches.renesas/0001-clocksource-em_sti-Split-clock-prepare-and-enable-st.patch +++ b/patches.renesas/0001-clocksource-em_sti-Split-clock-prepare-and-enable-st.patch @@ -22,14 +22,12 @@ Signed-off-by: John Stultz <john.stultz@linaro.org> (cherry picked from commit 3814ae092d36da04d5fbaf777c1564dc4ee68559) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clocksource/em_sti.c | 21 ++++++++++++++------- + drivers/clocksource/em_sti.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) -diff --git a/drivers/clocksource/em_sti.c b/drivers/clocksource/em_sti.c -index 19bb1792d647..51a346c91a98 100644 --- a/drivers/clocksource/em_sti.c +++ b/drivers/clocksource/em_sti.c -@@ -78,7 +78,7 @@ static int em_sti_enable(struct em_sti_priv *p) +@@ -78,7 +78,7 @@ static int em_sti_enable(struct em_sti_p int ret; /* enable clock */ @@ -38,7 +36,7 @@ index 19bb1792d647..51a346c91a98 100644 if (ret) { dev_err(&p->pdev->dev, "cannot enable clock\n"); return ret; -@@ -107,7 +107,7 @@ static void em_sti_disable(struct em_sti_priv *p) +@@ -107,7 +107,7 @@ static void em_sti_disable(struct em_sti em_sti_write(p, STI_INTENCLR, 3); /* stop clock */ @@ -47,7 +45,7 @@ index 19bb1792d647..51a346c91a98 100644 } static cycle_t em_sti_count(struct em_sti_priv *p) -@@ -303,6 +303,7 @@ static int em_sti_probe(struct platform_device *pdev) +@@ -303,6 +303,7 @@ static int em_sti_probe(struct platform_ struct em_sti_priv *p; struct resource *res; int irq; @@ -55,7 +53,7 @@ index 19bb1792d647..51a346c91a98 100644 p = devm_kzalloc(&pdev->dev, sizeof(*p), GFP_KERNEL); if (p == NULL) -@@ -323,6 +324,13 @@ static int em_sti_probe(struct platform_device *pdev) +@@ -323,6 +324,13 @@ static int em_sti_probe(struct platform_ if (IS_ERR(p->base)) return PTR_ERR(p->base); @@ -69,7 +67,7 @@ index 19bb1792d647..51a346c91a98 100644 /* get hold of clock */ p->clk = devm_clk_get(&pdev->dev, "sclk"); if (IS_ERR(p->clk)) { -@@ -330,11 +338,10 @@ static int em_sti_probe(struct platform_device *pdev) +@@ -330,11 +338,10 @@ static int em_sti_probe(struct platform_ return PTR_ERR(p->clk); } @@ -85,6 +83,3 @@ index 19bb1792d647..51a346c91a98 100644 } raw_spin_lock_init(&p->lock); --- -2.13.3 - diff --git a/patches.renesas/0002-clocksource-em_sti-Compute-rate-before-registration.patch b/patches.renesas/0002-clocksource-em_sti-Compute-rate-before-registration.patch index 2f24ccd95e7b46..a2b32e20431284 100644 --- a/patches.renesas/0002-clocksource-em_sti-Compute-rate-before-registration.patch +++ b/patches.renesas/0002-clocksource-em_sti-Compute-rate-before-registration.patch @@ -30,14 +30,12 @@ Signed-off-by: John Stultz <john.stultz@linaro.org> (cherry picked from commit 4e53aa2fde4124878fc6b2183d6e8ec46e12ceb0) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clocksource/em_sti.c | 25 ++++++++++++------------- + drivers/clocksource/em_sti.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) -diff --git a/drivers/clocksource/em_sti.c b/drivers/clocksource/em_sti.c -index 51a346c91a98..e1d465239042 100644 --- a/drivers/clocksource/em_sti.c +++ b/drivers/clocksource/em_sti.c -@@ -84,9 +84,6 @@ static int em_sti_enable(struct em_sti_priv *p) +@@ -84,9 +84,6 @@ static int em_sti_enable(struct em_sti_p return ret; } @@ -47,7 +45,7 @@ index 51a346c91a98..e1d465239042 100644 /* reset the counter */ em_sti_write(p, STI_SET_H, 0x40000000); em_sti_write(p, STI_SET_L, 0x00000000); -@@ -205,13 +202,9 @@ static cycle_t em_sti_clocksource_read(struct clocksource *cs) +@@ -205,13 +202,9 @@ static cycle_t em_sti_clocksource_read(s static int em_sti_clocksource_enable(struct clocksource *cs) { @@ -62,7 +60,7 @@ index 51a346c91a98..e1d465239042 100644 } static void em_sti_clocksource_disable(struct clocksource *cs) -@@ -240,8 +233,7 @@ static int em_sti_register_clocksource(struct em_sti_priv *p) +@@ -240,8 +233,7 @@ static int em_sti_register_clocksource(s dev_info(&p->pdev->dev, "used as clock source\n"); @@ -72,7 +70,7 @@ index 51a346c91a98..e1d465239042 100644 return 0; } -@@ -263,7 +255,6 @@ static int em_sti_clock_event_set_oneshot(struct clock_event_device *ced) +@@ -263,7 +255,6 @@ static int em_sti_clock_event_set_onesho dev_info(&p->pdev->dev, "used for oneshot clock events\n"); em_sti_start(p, USER_CLOCKEVENT); @@ -80,7 +78,7 @@ index 51a346c91a98..e1d465239042 100644 return 0; } -@@ -294,8 +285,7 @@ static void em_sti_register_clockevent(struct em_sti_priv *p) +@@ -294,8 +285,7 @@ static void em_sti_register_clockevent(s dev_info(&p->pdev->dev, "used for clock events\n"); @@ -90,7 +88,7 @@ index 51a346c91a98..e1d465239042 100644 } static int em_sti_probe(struct platform_device *pdev) -@@ -344,6 +334,15 @@ static int em_sti_probe(struct platform_device *pdev) +@@ -344,6 +334,15 @@ static int em_sti_probe(struct platform_ return ret; } @@ -106,6 +104,3 @@ index 51a346c91a98..e1d465239042 100644 raw_spin_lock_init(&p->lock); em_sti_register_clockevent(p); em_sti_register_clocksource(p); --- -2.13.3 - diff --git a/patches.renesas/0003-arm64-dts-r8a7796-Add-I2C-for-DVFS-device-node.patch b/patches.renesas/0003-arm64-dts-r8a7796-Add-I2C-for-DVFS-device-node.patch index 638e73c47bef55..8f0bb317787221 100644 --- a/patches.renesas/0003-arm64-dts-r8a7796-Add-I2C-for-DVFS-device-node.patch +++ b/patches.renesas/0003-arm64-dts-r8a7796-Add-I2C-for-DVFS-device-node.patch @@ -12,11 +12,9 @@ Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 0fb1fd20043f619e444720062e61cdc40130c0c5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 14 ++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index f7120cdedd0d..c95ad177b097 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -25,6 +25,7 @@ @@ -47,6 +45,3 @@ index f7120cdedd0d..c95ad177b097 100644 i2c0: i2c@e6500000 { #address-cells = <1>; #size-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0004-arm64-dts-r8a7796-salvator-x-Add-I2C-for-DVFS-device.patch b/patches.renesas/0004-arm64-dts-r8a7796-salvator-x-Add-I2C-for-DVFS-device.patch index d299391955a15b..7deb36fc524de7 100644 --- a/patches.renesas/0004-arm64-dts-r8a7796-salvator-x-Add-I2C-for-DVFS-device.patch +++ b/patches.renesas/0004-arm64-dts-r8a7796-salvator-x-Add-I2C-for-DVFS-device.patch @@ -14,11 +14,9 @@ Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit d8e62f0729bb404caa6ba42b65d5a1e4d370a6e3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 4 ++++ + arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts -index c7f40f8f3169..61f4662db497 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts @@ -261,3 +261,7 @@ @@ -29,6 +27,3 @@ index c7f40f8f3169..61f4662db497 100644 +&i2c_dvfs { + status = "okay"; +}; --- -2.13.3 - diff --git a/patches.renesas/0005-arm64-dts-r8a7795-Add-I2C-for-DVFS-core-to-dtsi.patch b/patches.renesas/0005-arm64-dts-r8a7795-Add-I2C-for-DVFS-core-to-dtsi.patch index 8f026d90f323df..de5286baf060ae 100644 --- a/patches.renesas/0005-arm64-dts-r8a7795-Add-I2C-for-DVFS-core-to-dtsi.patch +++ b/patches.renesas/0005-arm64-dts-r8a7795-Add-I2C-for-DVFS-core-to-dtsi.patch @@ -14,11 +14,9 @@ Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit d7e0d64a46f97f67ecbc0194ce6a394f512109c5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 14 ++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index eac4f29aa5cd..fe266bb3d913 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -25,6 +25,7 @@ @@ -29,10 +27,11 @@ index eac4f29aa5cd..fe266bb3d913 100644 }; psci { -@@ -793,6 +794,19 @@ +@@ -792,6 +793,19 @@ + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; status = "disabled"; }; - ++ + i2c_dvfs: i2c@e60b0000 { + #address-cells = <1>; + #size-cells = <0>; @@ -45,10 +44,6 @@ index eac4f29aa5cd..fe266bb3d913 100644 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + status = "disabled"; + }; -+ + i2c0: i2c@e6500000 { #address-cells = <1>; - #size-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0006-arm64-dts-r8a7795-salvator-x-Enable-I2C-for-DVFS-dev.patch b/patches.renesas/0006-arm64-dts-r8a7795-salvator-x-Enable-I2C-for-DVFS-dev.patch index c345566efdafa2..01b2764426c46b 100644 --- a/patches.renesas/0006-arm64-dts-r8a7795-salvator-x-Enable-I2C-for-DVFS-dev.patch +++ b/patches.renesas/0006-arm64-dts-r8a7795-salvator-x-Enable-I2C-for-DVFS-dev.patch @@ -14,11 +14,9 @@ Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 006ced572a3b2247639ce06443aff00704888001) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++++ + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts -index 7a8986edcdc0..dc1177c76aa5 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts @@ -485,6 +485,10 @@ @@ -32,6 +30,3 @@ index 7a8986edcdc0..dc1177c76aa5 100644 &avb { pinctrl-0 = <&avb_pins>; pinctrl-names = "default"; --- -2.13.3 - diff --git a/patches.renesas/0007-arm64-dts-h3ulcb-Update-memory-node-to-4-GiB-map.patch b/patches.renesas/0007-arm64-dts-h3ulcb-Update-memory-node-to-4-GiB-map.patch index 35e9d290e3649c..245e3a94fe0b07 100644 --- a/patches.renesas/0007-arm64-dts-h3ulcb-Update-memory-node-to-4-GiB-map.patch +++ b/patches.renesas/0007-arm64-dts-h3ulcb-Update-memory-node-to-4-GiB-map.patch @@ -20,11 +20,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit a262d66224c4c34bc2bee16d4d37d460a738788c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 15 +++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts -index c5f8f69a4f5f..9811534f296e 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts @@ -33,6 +33,21 @@ @@ -49,6 +47,3 @@ index c5f8f69a4f5f..9811534f296e 100644 leds { compatible = "gpio-leds"; --- -2.13.3 - diff --git a/patches.renesas/0008-arm64-dts-r8a7795-Use-rgmii-txid-phy-mode-for-Ethern.patch b/patches.renesas/0008-arm64-dts-r8a7795-Use-rgmii-txid-phy-mode-for-Ethern.patch index c7bbbb405cd2b4..a6c7578892ca13 100644 --- a/patches.renesas/0008-arm64-dts-r8a7795-Use-rgmii-txid-phy-mode-for-Ethern.patch +++ b/patches.renesas/0008-arm64-dts-r8a7795-Use-rgmii-txid-phy-mode-for-Ethern.patch @@ -35,11 +35,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit dda3887907d743385f2599fa18c765bd295ae2da) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index fe266bb3d913..382a8987bca9 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -564,7 +564,7 @@ @@ -51,6 +49,3 @@ index fe266bb3d913..382a8987bca9 100644 #address-cells = <1>; #size-cells = <0>; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0009-arm64-dts-r8a7795-salvator-x-Fix-EthernetAVB-PHY-tim.patch b/patches.renesas/0009-arm64-dts-r8a7795-salvator-x-Fix-EthernetAVB-PHY-tim.patch index a126d46e6ca070..dac9ae5723fcb5 100644 --- a/patches.renesas/0009-arm64-dts-r8a7795-salvator-x-Fix-EthernetAVB-PHY-tim.patch +++ b/patches.renesas/0009-arm64-dts-r8a7795-salvator-x-Fix-EthernetAVB-PHY-tim.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 0e45da1c6ea6b18616d95c697ecd6234bc504ef6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 13 +------------ + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts -index dc1177c76aa5..5158ba3f9ce3 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts @@ -497,18 +497,7 @@ @@ -43,6 +41,3 @@ index dc1177c76aa5..5158ba3f9ce3 100644 reg = <0>; interrupt-parent = <&gpio2>; interrupts = <11 IRQ_TYPE_LEVEL_LOW>; --- -2.13.3 - diff --git a/patches.renesas/0010-arm64-dts-h3ulcb-Fix-EthernetAVB-PHY-timing.patch b/patches.renesas/0010-arm64-dts-h3ulcb-Fix-EthernetAVB-PHY-timing.patch index a0c5eed09c9946..a64a6214be4999 100644 --- a/patches.renesas/0010-arm64-dts-h3ulcb-Fix-EthernetAVB-PHY-timing.patch +++ b/patches.renesas/0010-arm64-dts-h3ulcb-Fix-EthernetAVB-PHY-timing.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 5b9fd1962f605a31842371471e559407c293131f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 13 +------------ + arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts -index 9811534f296e..69c623faf80c 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts @@ -354,18 +354,7 @@ @@ -41,6 +39,3 @@ index 9811534f296e..69c623faf80c 100644 reg = <0>; interrupt-parent = <&gpio2>; interrupts = <11 IRQ_TYPE_LEVEL_LOW>; --- -2.13.3 - diff --git a/patches.renesas/0011-arm64-dts-r8a7796-Use-rgmii-txid-phy-mode-for-Ethern.patch b/patches.renesas/0011-arm64-dts-r8a7796-Use-rgmii-txid-phy-mode-for-Ethern.patch index ecfe3e3e912a3d..3199034468e3c3 100644 --- a/patches.renesas/0011-arm64-dts-r8a7796-Use-rgmii-txid-phy-mode-for-Ethern.patch +++ b/patches.renesas/0011-arm64-dts-r8a7796-Use-rgmii-txid-phy-mode-for-Ethern.patch @@ -35,11 +35,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 325f39010b431f6a1ece74d69f10dcca2329c08d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 2 +- + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index c95ad177b097..1c1c1eae9cba 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -483,7 +483,7 @@ @@ -51,6 +49,3 @@ index c95ad177b097..1c1c1eae9cba 100644 #address-cells = <1>; #size-cells = <0>; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0012-arm64-dts-r8a7796-salvator-x-Fix-EthernetAVB-PHY-tim.patch b/patches.renesas/0012-arm64-dts-r8a7796-salvator-x-Fix-EthernetAVB-PHY-tim.patch index 0c11d655d16b05..b2a721ec74511d 100644 --- a/patches.renesas/0012-arm64-dts-r8a7796-salvator-x-Fix-EthernetAVB-PHY-tim.patch +++ b/patches.renesas/0012-arm64-dts-r8a7796-salvator-x-Fix-EthernetAVB-PHY-tim.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit ef3f08c83fd186ab4bbad6a6250c5a347fbf6551) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 13 +------------ + arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts -index 61f4662db497..93ed23ab71bb 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts @@ -172,18 +172,7 @@ @@ -43,6 +41,3 @@ index 61f4662db497..93ed23ab71bb 100644 reg = <0>; interrupt-parent = <&gpio2>; interrupts = <11 IRQ_TYPE_LEVEL_LOW>; --- -2.13.3 - diff --git a/patches.renesas/0013-arm64-defconfig-Enable-SH-Mobile-I2C-controller.patch b/patches.renesas/0013-arm64-defconfig-Enable-SH-Mobile-I2C-controller.patch index c85ecbc2cb505d..686ec712915818 100644 --- a/patches.renesas/0013-arm64-defconfig-Enable-SH-Mobile-I2C-controller.patch +++ b/patches.renesas/0013-arm64-defconfig-Enable-SH-Mobile-I2C-controller.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: arch/arm64/configs/defconfig --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 8447beac5570..908fcffb4233 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -234,6 +234,7 @@ CONFIG_I2C_IMX=y @@ -29,6 +27,3 @@ index 8447beac5570..908fcffb4233 100644 CONFIG_I2C_TEGRA=y CONFIG_I2C_UNIPHIER_F=y CONFIG_I2C_RCAR=y --- -2.13.3 - diff --git a/patches.renesas/0014-ARM64-defconfig-enable-the-leds-pwm-driver-and-defau.patch b/patches.renesas/0014-ARM64-defconfig-enable-the-leds-pwm-driver-and-defau.patch index 08b6cb784ba926..0c7be8c19941f3 100644 --- a/patches.renesas/0014-ARM64-defconfig-enable-the-leds-pwm-driver-and-defau.patch +++ b/patches.renesas/0014-ARM64-defconfig-enable-the-leds-pwm-driver-and-defau.patch @@ -15,11 +15,9 @@ Signed-off-by: Kevin Hilman <khilman@baylibre.com> (cherry picked from commit 95fbe8b08b2d420e4f5a77701f165d6b23827862) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 2 ++ + arch/arm64/configs/defconfig | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 908fcffb4233..c11c1473dad0 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -370,8 +370,10 @@ CONFIG_MMC_SUNXI=y @@ -33,6 +31,3 @@ index 908fcffb4233..c11c1473dad0 100644 CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_CPU=y CONFIG_RTC_CLASS=y --- -2.13.3 - diff --git a/patches.renesas/0015-arm64-dts-r8a7796-dtsi-Add-all-HSCIF-nodes.patch b/patches.renesas/0015-arm64-dts-r8a7796-dtsi-Add-all-HSCIF-nodes.patch index 6a255dcf75e6e9..075c5c56ef2292 100644 --- a/patches.renesas/0015-arm64-dts-r8a7796-dtsi-Add-all-HSCIF-nodes.patch +++ b/patches.renesas/0015-arm64-dts-r8a7796-dtsi-Add-all-HSCIF-nodes.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 68cd161072605c276d4e6c8cd06fbe7b00a0f680) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 70 ++++++++++++++++++++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 70 +++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 1c1c1eae9cba..714fd96b29eb 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -489,6 +489,76 @@ @@ -98,6 +96,3 @@ index 1c1c1eae9cba..714fd96b29eb 100644 scif2: serial@e6e88000 { compatible = "renesas,scif-r8a7796", "renesas,rcar-gen3-scif", "renesas,scif"; --- -2.13.3 - diff --git a/patches.renesas/0016-arm64-dts-r8a7796-Add-all-SCIF-nodes.patch b/patches.renesas/0016-arm64-dts-r8a7796-Add-all-SCIF-nodes.patch index 8421946df65624..a4e49287a42b18 100644 --- a/patches.renesas/0016-arm64-dts-r8a7796-Add-all-SCIF-nodes.patch +++ b/patches.renesas/0016-arm64-dts-r8a7796-Add-all-SCIF-nodes.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 19d76f3ec8fc6ff38f1c5ca534d75a957c8661ea) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 65 ++++++++++++++++++++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 714fd96b29eb..5fb93fc043c2 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -559,6 +559,32 @@ @@ -52,10 +50,14 @@ index 714fd96b29eb..5fb93fc043c2 100644 scif2: serial@e6e88000 { compatible = "renesas,scif-r8a7796", "renesas,rcar-gen3-scif", "renesas,scif"; -@@ -572,6 +598,45 @@ - status = "disabled"; - }; - +@@ -568,6 +594,45 @@ + <&cpg CPG_CORE R8A7796_CLK_S3D1>, + <&scif_clk>; + clock-names = "fck", "brg_int", "scif_clk"; ++ power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; ++ status = "disabled"; ++ }; ++ + scif3: serial@e6c50000 { + compatible = "renesas,scif-r8a7796", + "renesas,rcar-gen3-scif", "renesas,scif"; @@ -91,13 +93,6 @@ index 714fd96b29eb..5fb93fc043c2 100644 + <&cpg CPG_CORE R8A7796_CLK_S3D1>, + <&scif_clk>; + clock-names = "fck", "brg_int", "scif_clk"; -+ power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; -+ status = "disabled"; -+ }; -+ - msiof0: spi@e6e90000 { - compatible = "renesas,msiof-r8a7796", - "renesas,rcar-gen3-msiof"; --- -2.13.3 - + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; diff --git a/patches.renesas/0017-arm64-dts-r8a7796-Enable-SCIF-DMA.patch b/patches.renesas/0017-arm64-dts-r8a7796-Enable-SCIF-DMA.patch index 9c6ef7863a4844..1f8d70cfe5cfd1 100644 --- a/patches.renesas/0017-arm64-dts-r8a7796-Enable-SCIF-DMA.patch +++ b/patches.renesas/0017-arm64-dts-r8a7796-Enable-SCIF-DMA.patch @@ -9,11 +9,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit dbcae5ea4bd27409291e3329c9106f37f0118590) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 13 +++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 5fb93fc043c2..951e351ddae1 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -568,6 +568,9 @@ @@ -64,6 +62,3 @@ index 5fb93fc043c2..951e351ddae1 100644 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; status = "disabled"; }; --- -2.13.3 - diff --git a/patches.renesas/0018-arm64-dts-r8a7796-salvator-x-add-SCIF1-DEBUG1.patch b/patches.renesas/0018-arm64-dts-r8a7796-salvator-x-add-SCIF1-DEBUG1.patch index c506f3fc2b1837..e953f53a13cfcc 100644 --- a/patches.renesas/0018-arm64-dts-r8a7796-salvator-x-add-SCIF1-DEBUG1.patch +++ b/patches.renesas/0018-arm64-dts-r8a7796-salvator-x-add-SCIF1-DEBUG1.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d5566d251f5e839e36db8db8105d8f8f57e54768) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 14 ++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts -index 93ed23ab71bb..74b8c653c9fe 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts @@ -18,6 +18,7 @@ @@ -53,6 +51,3 @@ index 93ed23ab71bb..74b8c653c9fe 100644 &scif2 { pinctrl-0 = <&scif2_pins>; pinctrl-names = "default"; --- -2.13.3 - diff --git a/patches.renesas/0019-arm64-dts-r8a7796-Enable-HSCIF-DMA.patch b/patches.renesas/0019-arm64-dts-r8a7796-Enable-HSCIF-DMA.patch index 54084b14b17599..0326b7f30a4be5 100644 --- a/patches.renesas/0019-arm64-dts-r8a7796-Enable-HSCIF-DMA.patch +++ b/patches.renesas/0019-arm64-dts-r8a7796-Enable-HSCIF-DMA.patch @@ -9,11 +9,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 6d50bb8935042c4b7747b57df064ff41295e4769) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 13 +++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 951e351ddae1..aa404ed9142e 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -499,6 +499,9 @@ @@ -64,6 +62,3 @@ index 951e351ddae1..aa404ed9142e 100644 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; status = "disabled"; }; --- -2.13.3 - diff --git a/patches.renesas/0020-arm64-dts-r8a7795-Add-Cortex-A53-CPU-cores.patch b/patches.renesas/0020-arm64-dts-r8a7795-Add-Cortex-A53-CPU-cores.patch index ac17d08be11074..93bc35106fc9a0 100644 --- a/patches.renesas/0020-arm64-dts-r8a7795-Add-Cortex-A53-CPU-cores.patch +++ b/patches.renesas/0020-arm64-dts-r8a7795-Add-Cortex-A53-CPU-cores.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 799a75abdef348500bab14e873e7711afa426aaf) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 46 ++++++++++++++++++++++++++++---- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 46 +++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index 382a8987bca9..61830697e33c 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -73,6 +73,42 @@ @@ -90,6 +88,3 @@ index 382a8987bca9..61830697e33c 100644 }; cpg: clock-controller@e6150000 { --- -2.13.3 - diff --git a/patches.renesas/0021-arm64-dts-r8a7795-Add-Cortex-A53-PMU-node.patch b/patches.renesas/0021-arm64-dts-r8a7795-Add-Cortex-A53-PMU-node.patch index 87644d03079f9e..a34b6f5422ab4e 100644 --- a/patches.renesas/0021-arm64-dts-r8a7795-Add-Cortex-A53-PMU-node.patch +++ b/patches.renesas/0021-arm64-dts-r8a7795-Add-Cortex-A53-PMU-node.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 9190748fd608dc3aa80edacab9e6818f2d6f71b6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 12 ++++++++++++ + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index 61830697e33c..3573872974e0 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -340,6 +340,18 @@ @@ -39,6 +37,3 @@ index 61830697e33c..3573872974e0 100644 timer { compatible = "arm,armv8-timer"; interrupts = <GIC_PPI 13 --- -2.13.3 - diff --git a/patches.renesas/0022-arm64-dts-r8a7795-Upgrade-to-PSCI-v1.0-to-support-Su.patch b/patches.renesas/0022-arm64-dts-r8a7795-Upgrade-to-PSCI-v1.0-to-support-Su.patch index 57df4949e2e16b..12d2c7b07b7b8b 100644 --- a/patches.renesas/0022-arm64-dts-r8a7795-Upgrade-to-PSCI-v1.0-to-support-Su.patch +++ b/patches.renesas/0022-arm64-dts-r8a7795-Upgrade-to-PSCI-v1.0-to-support-Su.patch @@ -24,11 +24,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 71585040b77e7b388708dc35bdc49f106fa55a4a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index 3573872974e0..c1e00a3e7c45 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -29,7 +29,7 @@ @@ -40,6 +38,3 @@ index 3573872974e0..c1e00a3e7c45 100644 method = "smc"; }; --- -2.13.3 - diff --git a/patches.renesas/0023-arm64-dts-r8a7796-Upgrade-to-PSCI-v1.0-to-support-Su.patch b/patches.renesas/0023-arm64-dts-r8a7796-Upgrade-to-PSCI-v1.0-to-support-Su.patch index d391a066842569..714ea74b407f81 100644 --- a/patches.renesas/0023-arm64-dts-r8a7796-Upgrade-to-PSCI-v1.0-to-support-Su.patch +++ b/patches.renesas/0023-arm64-dts-r8a7796-Upgrade-to-PSCI-v1.0-to-support-Su.patch @@ -24,11 +24,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b3f26910c0daafded536cf5edceab2ab469252cb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 2 +- + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index aa404ed9142e..dbf82bc6ba64 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -29,7 +29,7 @@ @@ -40,6 +38,3 @@ index aa404ed9142e..dbf82bc6ba64 100644 method = "smc"; }; --- -2.13.3 - diff --git a/patches.renesas/0024-arm64-dts-r8a7795-Remove-unit-addresses-and-regs-fro.patch b/patches.renesas/0024-arm64-dts-r8a7795-Remove-unit-addresses-and-regs-fro.patch index 675724020971a4..5826a1d8e72c97 100644 --- a/patches.renesas/0024-arm64-dts-r8a7795-Remove-unit-addresses-and-regs-fro.patch +++ b/patches.renesas/0024-arm64-dts-r8a7795-Remove-unit-addresses-and-regs-fro.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d165856de103a6d317a9c9a5782eacd5dc90a9dc) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++---- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index c1e00a3e7c45..14772bc02125 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -109,17 +109,15 @@ @@ -41,6 +39,3 @@ index c1e00a3e7c45..14772bc02125 100644 power-domains = <&sysc R8A7795_PD_CA53_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0025-arm64-dts-r8a7796-Remove-unit-address-and-reg-from-i.patch b/patches.renesas/0025-arm64-dts-r8a7796-Remove-unit-address-and-reg-from-i.patch index 5822acf42e1859..cb7c31205901a7 100644 --- a/patches.renesas/0025-arm64-dts-r8a7796-Remove-unit-address-and-reg-from-i.patch +++ b/patches.renesas/0025-arm64-dts-r8a7796-Remove-unit-address-and-reg-from-i.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 57a4fd420c6e8a04b6a87ff24d34250cd7c48f15) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 3 +-- + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index dbf82bc6ba64..27f7dd9bd988 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -47,9 +47,8 @@ @@ -32,6 +30,3 @@ index dbf82bc6ba64..27f7dd9bd988 100644 power-domains = <&sysc R8A7796_PD_CA57_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0026-arm64-dts-r8a7795-salvator-x-Set-drive-strength-for-.patch b/patches.renesas/0026-arm64-dts-r8a7795-salvator-x-Set-drive-strength-for-.patch index 7e70ff79f81101..cc5e2a552e520a 100644 --- a/patches.renesas/0026-arm64-dts-r8a7795-salvator-x-Set-drive-strength-for-.patch +++ b/patches.renesas/0026-arm64-dts-r8a7795-salvator-x-Set-drive-strength-for-.patch @@ -19,11 +19,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 7d73a4da2681dc5d04e8ed9f4aa96c1deed2dbc5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 18 ++++++++++++++++-- + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts -index 5158ba3f9ce3..277ab8484e0c 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts @@ -247,8 +247,22 @@ @@ -51,6 +49,3 @@ index 5158ba3f9ce3..277ab8484e0c 100644 }; du_pins: du { --- -2.13.3 - diff --git a/patches.renesas/0027-arm64-dts-r8a7795-Tidyup-Audio-DMAC-channel-for-DVC.patch b/patches.renesas/0027-arm64-dts-r8a7795-Tidyup-Audio-DMAC-channel-for-DVC.patch index e5b05f6d069a05..15bf0078c4cf0b 100644 --- a/patches.renesas/0027-arm64-dts-r8a7795-Tidyup-Audio-DMAC-channel-for-DVC.patch +++ b/patches.renesas/0027-arm64-dts-r8a7795-Tidyup-Audio-DMAC-channel-for-DVC.patch @@ -34,11 +34,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b5a8ffad0eb0c1e5e601253edac163b2da9e855d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 4 ++-- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index 14772bc02125..55c09f1b89c9 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -1075,11 +1075,11 @@ @@ -55,6 +53,3 @@ index 14772bc02125..55c09f1b89c9 100644 dma-names = "tx"; }; }; --- -2.13.3 - diff --git a/patches.renesas/0028-arm64-defconfig-enable-MVNETA.patch b/patches.renesas/0028-arm64-defconfig-enable-MVNETA.patch index b74e5915b1923c..4d1ce80b87998b 100644 --- a/patches.renesas/0028-arm64-defconfig-enable-MVNETA.patch +++ b/patches.renesas/0028-arm64-defconfig-enable-MVNETA.patch @@ -10,11 +10,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> (cherry picked from commit d7ec74f412f5e5c6b964a4b635b1e3f1d72a7b34) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index c11c1473dad0..8394c2871d8e 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -177,6 +177,7 @@ CONFIG_HNS_ENET=y @@ -25,6 +23,3 @@ index c11c1473dad0..8394c2871d8e 100644 CONFIG_SKY2=y CONFIG_RAVB=y CONFIG_SMC91X=y --- -2.13.3 - diff --git a/patches.renesas/0029-arm64-defconfig-enable-I2C_PXA.patch b/patches.renesas/0029-arm64-defconfig-enable-I2C_PXA.patch index 0cd3950439adc9..8b39ccbd46c1b6 100644 --- a/patches.renesas/0029-arm64-defconfig-enable-I2C_PXA.patch +++ b/patches.renesas/0029-arm64-defconfig-enable-I2C_PXA.patch @@ -10,11 +10,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> (cherry picked from commit efbd24646abc044f70afc53bd331c7b520f499fd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 8394c2871d8e..4c3b6235bf3d 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -234,6 +234,7 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y @@ -25,6 +23,3 @@ index 8394c2871d8e..4c3b6235bf3d 100644 CONFIG_I2C_QUP=y CONFIG_I2C_SH_MOBILE=y CONFIG_I2C_TEGRA=y --- -2.13.3 - diff --git a/patches.renesas/0030-arm64-dts-r8a7796-Add-Cortex-A57-CPU-cores.patch b/patches.renesas/0030-arm64-dts-r8a7796-Add-Cortex-A57-CPU-cores.patch index 2c0ae54b385b93..aee2fb7568a696 100644 --- a/patches.renesas/0030-arm64-dts-r8a7796-Add-Cortex-A57-CPU-cores.patch +++ b/patches.renesas/0030-arm64-dts-r8a7796-Add-Cortex-A57-CPU-cores.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 7328be4a03b10c19e49a564f4c2e3a9ebcf34ca7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 20 ++++++++++++++------ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 27f7dd9bd988..d2a2110fc7fc 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -37,7 +37,6 @@ @@ -72,6 +70,3 @@ index 27f7dd9bd988..d2a2110fc7fc 100644 }; wdt0: watchdog@e6020000 { --- -2.13.3 - diff --git a/patches.renesas/0031-arm64-dts-r8a7796-Add-Cortex-A57-PMU-node.patch b/patches.renesas/0031-arm64-dts-r8a7796-Add-Cortex-A57-PMU-node.patch index 46a7dedb301797..db8f4b39de7c92 100644 --- a/patches.renesas/0031-arm64-dts-r8a7796-Add-Cortex-A57-PMU-node.patch +++ b/patches.renesas/0031-arm64-dts-r8a7796-Add-Cortex-A57-PMU-node.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 9fccf4d6103eeb5db88c1ae026d61b87f722414a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 8 ++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index d2a2110fc7fc..454e1292f910 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -252,6 +252,14 @@ @@ -34,6 +32,3 @@ index d2a2110fc7fc..454e1292f910 100644 cpg: clock-controller@e6150000 { compatible = "renesas,r8a7796-cpg-mssr"; reg = <0 0xe6150000 0 0x1000>; --- -2.13.3 - diff --git a/patches.renesas/0032-arm64-dts-r8a7796-Add-CA53-L2-cache-controller-node.patch b/patches.renesas/0032-arm64-dts-r8a7796-Add-CA53-L2-cache-controller-node.patch index 2b2d2c2daaf590..da2d8bbe3e5bec 100644 --- a/patches.renesas/0032-arm64-dts-r8a7796-Add-CA53-L2-cache-controller-node.patch +++ b/patches.renesas/0032-arm64-dts-r8a7796-Add-CA53-L2-cache-controller-node.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit a681e6d63285b879bb9bab0bd79e2021e6dcbda1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 7 +++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index 454e1292f910..b951f5ffe9e0 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -61,6 +61,13 @@ @@ -37,6 +35,3 @@ index 454e1292f910..b951f5ffe9e0 100644 }; extal_clk: extal { --- -2.13.3 - diff --git a/patches.renesas/0033-arm64-dts-r8a7796-Add-Cortex-A53-CPU-cores.patch b/patches.renesas/0033-arm64-dts-r8a7796-Add-Cortex-A53-CPU-cores.patch index 4a60596dd3a7e6..61c304d7920097 100644 --- a/patches.renesas/0033-arm64-dts-r8a7796-Add-Cortex-A53-CPU-cores.patch +++ b/patches.renesas/0033-arm64-dts-r8a7796-Add-Cortex-A53-CPU-cores.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b4dc3b4b1a65fec829ee8704c7647c06a8038108) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 ++++++++++++++++++++++++++++---- + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 +++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index b951f5ffe9e0..b32a180009dd 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -55,6 +55,42 @@ @@ -90,6 +88,3 @@ index b951f5ffe9e0..b32a180009dd 100644 }; wdt0: watchdog@e6020000 { --- -2.13.3 - diff --git a/patches.renesas/0034-arm64-dts-r8a7796-Add-Cortex-A53-PMU-node.patch b/patches.renesas/0034-arm64-dts-r8a7796-Add-Cortex-A53-PMU-node.patch index 15647f86af1663..68dc85b4b4a83d 100644 --- a/patches.renesas/0034-arm64-dts-r8a7796-Add-Cortex-A53-PMU-node.patch +++ b/patches.renesas/0034-arm64-dts-r8a7796-Add-Cortex-A53-PMU-node.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit ccc499330dbcaa8f6065bd1b10a64ca09fa96c3e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 12 ++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index b32a180009dd..a90abf14dc4e 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -303,6 +303,18 @@ @@ -39,6 +37,3 @@ index b32a180009dd..a90abf14dc4e 100644 cpg: clock-controller@e6150000 { compatible = "renesas,r8a7796-cpg-mssr"; reg = <0 0xe6150000 0 0x1000>; --- -2.13.3 - diff --git a/patches.renesas/0035-arm64-dts-h3ulcb-Drop-superfluous-status-update-for-.patch b/patches.renesas/0035-arm64-dts-h3ulcb-Drop-superfluous-status-update-for-.patch index ce6a1864013aa4..da72a98ab44eed 100644 --- a/patches.renesas/0035-arm64-dts-h3ulcb-Drop-superfluous-status-update-for-.patch +++ b/patches.renesas/0035-arm64-dts-h3ulcb-Drop-superfluous-status-update-for-.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit c9060f50d82fc9b548571a9adea9ebff22b3347b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 1 - + arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts -index 69c623faf80c..ab352159de65 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts @@ -228,7 +228,6 @@ @@ -27,6 +25,3 @@ index 69c623faf80c..ab352159de65 100644 }; &i2c2 { --- -2.13.3 - diff --git a/patches.renesas/0036-arm64-dts-r8a7795-salvator-x-Drop-superfluous-status.patch b/patches.renesas/0036-arm64-dts-r8a7795-salvator-x-Drop-superfluous-status.patch index 4a26fa348ab5fc..e6f927ffa04bd5 100644 --- a/patches.renesas/0036-arm64-dts-r8a7795-salvator-x-Drop-superfluous-status.patch +++ b/patches.renesas/0036-arm64-dts-r8a7795-salvator-x-Drop-superfluous-status.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 971939d1da07c7b55d35aca31288cce297731c71) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 -- + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 -- 1 file changed, 2 deletions(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts -index 277ab8484e0c..f25241921067 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts @@ -362,7 +362,6 @@ @@ -35,6 +33,3 @@ index 277ab8484e0c..f25241921067 100644 }; &pciec0 { --- -2.13.3 - diff --git a/patches.renesas/0037-arm64-dts-m3ulcb-Drop-superfluous-status-update-for-.patch b/patches.renesas/0037-arm64-dts-m3ulcb-Drop-superfluous-status-update-for-.patch index d0646921d6e3b3..3eb0876ef24872 100644 --- a/patches.renesas/0037-arm64-dts-m3ulcb-Drop-superfluous-status-update-for-.patch +++ b/patches.renesas/0037-arm64-dts-m3ulcb-Drop-superfluous-status-update-for-.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit cb4de4ece41a55ba125e6e8d1fa727457132dc41) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts | 1 - + arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts -index c3f064ac2cb4..372b2a944716 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts @@ -180,7 +180,6 @@ @@ -27,6 +25,3 @@ index c3f064ac2cb4..372b2a944716 100644 }; &wdt0 { --- -2.13.3 - diff --git a/patches.renesas/0038-arm64-dts-r8a7796-salvator-x-Drop-superfluous-status.patch b/patches.renesas/0038-arm64-dts-r8a7796-salvator-x-Drop-superfluous-status.patch index 7ada2da1b30bf4..f24170512f1b6f 100644 --- a/patches.renesas/0038-arm64-dts-r8a7796-salvator-x-Drop-superfluous-status.patch +++ b/patches.renesas/0038-arm64-dts-r8a7796-salvator-x-Drop-superfluous-status.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 3cbe33367d4fd480a92fbc131a96fa925be9e95d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 1 - + arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts -index 74b8c653c9fe..c9f59b6ce33f 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts @@ -250,7 +250,6 @@ @@ -27,6 +25,3 @@ index 74b8c653c9fe..c9f59b6ce33f 100644 }; &i2c2 { --- -2.13.3 - diff --git a/patches.renesas/0039-arm64-set-CONFIG_MMC_BCM2835-y-in-defconfig.patch b/patches.renesas/0039-arm64-set-CONFIG_MMC_BCM2835-y-in-defconfig.patch index f1ed15a5708de7..eef3f0a53e2791 100644 --- a/patches.renesas/0039-arm64-set-CONFIG_MMC_BCM2835-y-in-defconfig.patch +++ b/patches.renesas/0039-arm64-set-CONFIG_MMC_BCM2835-y-in-defconfig.patch @@ -17,11 +17,9 @@ Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 3c9d36192802d60fca73c85c7096221371c36be7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 4c3b6235bf3d..a174a015b96e 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -369,6 +369,7 @@ CONFIG_MMC_DW=y @@ -32,6 +30,3 @@ index 4c3b6235bf3d..a174a015b96e 100644 CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y --- -2.13.3 - diff --git a/patches.renesas/0040-arm64-dts-r8a7795-Correct-SATA-device-size-to-2MiB.patch b/patches.renesas/0040-arm64-dts-r8a7795-Correct-SATA-device-size-to-2MiB.patch index 1834c0c802fb59..11ee4d76ffbed1 100644 --- a/patches.renesas/0040-arm64-dts-r8a7795-Correct-SATA-device-size-to-2MiB.patch +++ b/patches.renesas/0040-arm64-dts-r8a7795-Correct-SATA-device-size-to-2MiB.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit e9f0089b2d8a3d450b8ec02eccfb92b950110fbe) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index 55c09f1b89c9..e58175084b57 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -1209,7 +1209,7 @@ @@ -28,6 +26,3 @@ index 55c09f1b89c9..e58175084b57 100644 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 815>; power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; --- -2.13.3 - diff --git a/patches.renesas/0041-arm64-dts-r8a7795-Add-reset-control-properties.patch b/patches.renesas/0041-arm64-dts-r8a7795-Add-reset-control-properties.patch index 6c4445b3d3435f..acb1cbd73024e1 100644 --- a/patches.renesas/0041-arm64-dts-r8a7795-Add-reset-control-properties.patch +++ b/patches.renesas/0041-arm64-dts-r8a7795-Add-reset-control-properties.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit dcccc13210eff0e5be2b36548198952c5683f3db) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795.dtsi | 93 ++++++++++++++++++++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7795.dtsi | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi -index e58175084b57..e99d6443b3e4 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -204,6 +204,7 @@ @@ -767,6 +765,3 @@ index e58175084b57..e99d6443b3e4 100644 #thermal-sensor-cells = <1>; status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0042-arm64-dts-r8a7796-Add-reset-control-properties.patch b/patches.renesas/0042-arm64-dts-r8a7796-Add-reset-control-properties.patch index 8a964e56f2f456..7972fd2ee88dec 100644 --- a/patches.renesas/0042-arm64-dts-r8a7796-Add-reset-control-properties.patch +++ b/patches.renesas/0042-arm64-dts-r8a7796-Add-reset-control-properties.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit bec0948e810fffce38b9b886b0283a44eb025043) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 ++++++++++++++++++++++++++++++++ + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) -diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi -index a90abf14dc4e..2ec1ed5f4991 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -155,6 +155,7 @@ @@ -391,6 +389,3 @@ index a90abf14dc4e..2ec1ed5f4991 100644 #thermal-sensor-cells = <1>; status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0043-arm64-defconfig-Enable-video-DRM-and-LPASS-drivers-f.patch b/patches.renesas/0043-arm64-defconfig-Enable-video-DRM-and-LPASS-drivers-f.patch index 436d2b7338bf34..2d05e1a53450e3 100644 --- a/patches.renesas/0043-arm64-defconfig-Enable-video-DRM-and-LPASS-drivers-f.patch +++ b/patches.renesas/0043-arm64-defconfig-Enable-video-DRM-and-LPASS-drivers-f.patch @@ -15,11 +15,9 @@ Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> (cherry picked from commit 0edf17984f251e633465e028a0115d57b1b7eb88) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 11 +++++++++++ + arch/arm64/configs/defconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index a174a015b96e..55af8c6f3404 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -279,6 +279,7 @@ CONFIG_RENESAS_WDT=y @@ -51,6 +49,3 @@ index a174a015b96e..55af8c6f3404 100644 CONFIG_DRM_RCAR_DU=m CONFIG_DRM_RCAR_HDMI=y CONFIG_DRM_RCAR_LVDS=y --- -2.13.3 - diff --git a/patches.renesas/0044-arm64-defconfig-enable-MVPP2.patch b/patches.renesas/0044-arm64-defconfig-enable-MVPP2.patch index 2d7dcb60d0fe83..55201f369db07f 100644 --- a/patches.renesas/0044-arm64-defconfig-enable-MVPP2.patch +++ b/patches.renesas/0044-arm64-defconfig-enable-MVPP2.patch @@ -11,11 +11,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> (cherry picked from commit 66e56302842e9971426bd7e504c4db4f88cbb037) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 55af8c6f3404..8b5d5f3131d3 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -177,6 +177,7 @@ CONFIG_HNS_ENET=y @@ -26,6 +24,3 @@ index 55af8c6f3404..8b5d5f3131d3 100644 CONFIG_MVNETA=y CONFIG_SKY2=y CONFIG_RAVB=y --- -2.13.3 - diff --git a/patches.renesas/0045-clk-renesas-Add-r8a7795-ES2.0-CPG-Core-Clock-Definit.patch b/patches.renesas/0045-clk-renesas-Add-r8a7795-ES2.0-CPG-Core-Clock-Definit.patch index c106d29d72acc8..053c3eca690a72 100644 --- a/patches.renesas/0045-clk-renesas-Add-r8a7795-ES2.0-CPG-Core-Clock-Definit.patch +++ b/patches.renesas/0045-clk-renesas-Add-r8a7795-ES2.0-CPG-Core-Clock-Definit.patch @@ -12,11 +12,9 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 89f1b1c614253d7ea57543f769d93fced99d4d05) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - include/dt-bindings/clock/r8a7795-cpg-mssr.h | 7 +++++++ + include/dt-bindings/clock/r8a7795-cpg-mssr.h | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/include/dt-bindings/clock/r8a7795-cpg-mssr.h b/include/dt-bindings/clock/r8a7795-cpg-mssr.h -index e864aae0a256..f047eaf261f3 100644 --- a/include/dt-bindings/clock/r8a7795-cpg-mssr.h +++ b/include/dt-bindings/clock/r8a7795-cpg-mssr.h @@ -60,4 +60,11 @@ @@ -31,6 +29,3 @@ index e864aae0a256..f047eaf261f3 100644 +#define R8A7795_CLK_S0D12 51 + #endif /* __DT_BINDINGS_CLOCK_R8A7795_CPG_MSSR_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0046-arm64-kdump-enable-kdump-in-defconfig.patch b/patches.renesas/0046-arm64-kdump-enable-kdump-in-defconfig.patch index 003d29bc529152..7203177f4903af 100644 --- a/patches.renesas/0046-arm64-kdump-enable-kdump-in-defconfig.patch +++ b/patches.renesas/0046-arm64-kdump-enable-kdump-in-defconfig.patch @@ -11,11 +11,9 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit 3f5c1e1e761981b41d0be22f9aadfc7458fcc786) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 8b5d5f3131d3..92041816d78f 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -78,6 +78,7 @@ CONFIG_CMA=y @@ -26,6 +24,3 @@ index 8b5d5f3131d3..92041816d78f 100644 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_COMPAT=y CONFIG_CPU_IDLE=y --- -2.13.3 - diff --git a/patches.renesas/0047-arm64-dts-r8a7795-salvator-x-Drop-_clk-suffix-from-X.patch b/patches.renesas/0047-arm64-dts-r8a7795-salvator-x-Drop-_clk-suffix-from-X.patch index 873b839ea59fe7..528eaaebb89bfe 100644 --- a/patches.renesas/0047-arm64-dts-r8a7795-salvator-x-Drop-_clk-suffix-from-X.patch +++ b/patches.renesas/0047-arm64-dts-r8a7795-salvator-x-Drop-_clk-suffix-from-X.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 6922bd71adab0a7fe8ffbdc3e72a46431fa29656) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 +- + arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts -index f25241921067..639aa085d996 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts @@ -56,7 +56,7 @@ @@ -29,6 +27,3 @@ index f25241921067..639aa085d996 100644 compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24576000>; --- -2.13.3 - diff --git a/patches.renesas/0048-arm64-defconfig-enable-the-Safexcel-crypto-engine-as.patch b/patches.renesas/0048-arm64-defconfig-enable-the-Safexcel-crypto-engine-as.patch index 09cbbf88771337..f46c4d6c1f0c00 100644 --- a/patches.renesas/0048-arm64-defconfig-enable-the-Safexcel-crypto-engine-as.patch +++ b/patches.renesas/0048-arm64-defconfig-enable-the-Safexcel-crypto-engine-as.patch @@ -13,11 +13,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> (cherry picked from commit 10ebb57ffcbf062ff224585fefa274e703fc363d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm64/configs/defconfig | 1 + + arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 92041816d78f..8fe9569d8145 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -487,6 +487,7 @@ CONFIG_MEMTEST=y @@ -28,6 +26,3 @@ index 92041816d78f..8fe9569d8145 100644 CONFIG_ARM64_CRYPTO=y CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA2_ARM64_CE=y --- -2.13.3 - diff --git a/patches.renesas/0049-i2c-rcar-fix-resume-by-always-initializing-registers.patch b/patches.renesas/0049-i2c-rcar-fix-resume-by-always-initializing-registers.patch index a03d63f47b3568..ab3f370047d7a6 100644 --- a/patches.renesas/0049-i2c-rcar-fix-resume-by-always-initializing-registers.patch +++ b/patches.renesas/0049-i2c-rcar-fix-resume-by-always-initializing-registers.patch @@ -15,14 +15,12 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit ae481cc139658e89eb3ea671dd00b67bd87f01a3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/i2c/busses/i2c-rcar.c | 4 ++-- + drivers/i2c/busses/i2c-rcar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c -index 26f2ff22e97e..66b84bf51bbf 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c -@@ -700,6 +700,8 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, +@@ -700,6 +700,8 @@ static int rcar_i2c_master_xfer(struct i pm_runtime_get_sync(dev); @@ -31,7 +29,7 @@ index 26f2ff22e97e..66b84bf51bbf 100644 ret = rcar_i2c_bus_barrier(priv); if (ret < 0) goto out; -@@ -860,8 +862,6 @@ static int rcar_i2c_probe(struct platform_device *pdev) +@@ -860,8 +862,6 @@ static int rcar_i2c_probe(struct platfor if (ret < 0) goto out_pm_put; @@ -40,6 +38,3 @@ index 26f2ff22e97e..66b84bf51bbf 100644 /* Don't suspend when multi-master to keep arbitration working */ if (of_property_read_bool(dev->of_node, "multi-master")) priv->flags |= ID_P_PM_BLOCKED; --- -2.13.3 - diff --git a/patches.renesas/0050-i2c-rcar-clarify-PM-handling-with-more-comments.patch b/patches.renesas/0050-i2c-rcar-clarify-PM-handling-with-more-comments.patch index cc309d8c884856..c02cf043436bca 100644 --- a/patches.renesas/0050-i2c-rcar-clarify-PM-handling-with-more-comments.patch +++ b/patches.renesas/0050-i2c-rcar-clarify-PM-handling-with-more-comments.patch @@ -12,14 +12,12 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 63a761eef55759c0bc725739fe575193c09fa4ef) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/i2c/busses/i2c-rcar.c | 4 +++- + drivers/i2c/busses/i2c-rcar.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c -index 66b84bf51bbf..214bf2835d1f 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c -@@ -753,6 +753,7 @@ static int rcar_reg_slave(struct i2c_client *slave) +@@ -753,6 +753,7 @@ static int rcar_reg_slave(struct i2c_cli if (slave->flags & I2C_CLIENT_TEN) return -EAFNOSUPPORT; @@ -27,7 +25,7 @@ index 66b84bf51bbf..214bf2835d1f 100644 pm_runtime_get_sync(rcar_i2c_priv_to_dev(priv)); priv->slave = slave; -@@ -856,13 +857,14 @@ static int rcar_i2c_probe(struct platform_device *pdev) +@@ -856,13 +857,14 @@ static int rcar_i2c_probe(struct platfor priv->dma_direction = DMA_NONE; priv->dma_rx = priv->dma_tx = ERR_PTR(-EPROBE_DEFER); @@ -43,6 +41,3 @@ index 66b84bf51bbf..214bf2835d1f 100644 if (of_property_read_bool(dev->of_node, "multi-master")) priv->flags |= ID_P_PM_BLOCKED; else --- -2.13.3 - diff --git a/patches.renesas/0051-i2c-rcar-use-correct-length-when-unmapping-DMA.patch b/patches.renesas/0051-i2c-rcar-use-correct-length-when-unmapping-DMA.patch index 0071740352ef57..4080454d31d1eb 100644 --- a/patches.renesas/0051-i2c-rcar-use-correct-length-when-unmapping-DMA.patch +++ b/patches.renesas/0051-i2c-rcar-use-correct-length-when-unmapping-DMA.patch @@ -18,14 +18,12 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 916335036d4fe33f9806240cb0d1900f4975b959) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/i2c/busses/i2c-rcar.c | 2 +- + drivers/i2c/busses/i2c-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c -index 214bf2835d1f..8be3e6cb8fe6 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c -@@ -319,7 +319,7 @@ static void rcar_i2c_dma_unmap(struct rcar_i2c_priv *priv) +@@ -319,7 +319,7 @@ static void rcar_i2c_dma_unmap(struct rc rcar_i2c_write(priv, ICFBSCR, TCYC06); dma_unmap_single(chan->device->dev, sg_dma_address(&priv->sg), @@ -34,6 +32,3 @@ index 214bf2835d1f..8be3e6cb8fe6 100644 priv->dma_direction = DMA_NONE; } --- -2.13.3 - diff --git a/patches.renesas/0052-ARM-dts-r7s72100-update-sdhi-clock-bindings.patch b/patches.renesas/0052-ARM-dts-r7s72100-update-sdhi-clock-bindings.patch index f9b262c0e2a68e..bbde6d1b11440e 100644 --- a/patches.renesas/0052-ARM-dts-r7s72100-update-sdhi-clock-bindings.patch +++ b/patches.renesas/0052-ARM-dts-r7s72100-update-sdhi-clock-bindings.patch @@ -15,12 +15,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 3d2abda02ad2d06d5f22de7f6b0f39126670bc48) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 17 ++++++++++++----- - include/dt-bindings/clock/r7s72100-clock.h | 6 ++++-- + arch/arm/boot/dts/r7s72100.dtsi | 17 ++++++++++++----- + include/dt-bindings/clock/r7s72100-clock.h | 6 ++++-- 2 files changed, 16 insertions(+), 7 deletions(-) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index b8aa256bd515..614ba79a9774 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -162,9 +162,12 @@ @@ -61,8 +59,6 @@ index b8aa256bd515..614ba79a9774 100644 cap-sd-highspeed; cap-sdio-irq; status = "disabled"; -diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h -index ce09915c298f..cd2ed5194255 100644 --- a/include/dt-bindings/clock/r7s72100-clock.h +++ b/include/dt-bindings/clock/r7s72100-clock.h @@ -49,7 +49,9 @@ @@ -77,6 +73,3 @@ index ce09915c298f..cd2ed5194255 100644 +#define R7S72100_CLK_SDHI11 0 #endif /* __DT_BINDINGS_CLOCK_R7S72100_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0053-ARM-dts-r8a7743-Fix-SCIFB0-dmas-indentation.patch b/patches.renesas/0053-ARM-dts-r8a7743-Fix-SCIFB0-dmas-indentation.patch index 561208533d7a07..a0fdca6d7fff92 100644 --- a/patches.renesas/0053-ARM-dts-r8a7743-Fix-SCIFB0-dmas-indentation.patch +++ b/patches.renesas/0053-ARM-dts-r8a7743-Fix-SCIFB0-dmas-indentation.patch @@ -9,11 +9,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit c8290f9f2e1d119512e1821fc13d1d145aa23f77) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7743.dtsi | 2 +- + arch/arm/boot/dts/r8a7743.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi -index d8393b97768b..c166be2f18e0 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -277,7 +277,7 @@ @@ -25,6 +23,3 @@ index d8393b97768b..c166be2f18e0 100644 dma-names = "tx", "rx", "tx", "rx"; power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0054-ARM-dts-r8a7745-Fix-SCIFB0-dmas-indentation.patch b/patches.renesas/0054-ARM-dts-r8a7745-Fix-SCIFB0-dmas-indentation.patch index 071d768cf12924..bab135332e820b 100644 --- a/patches.renesas/0054-ARM-dts-r8a7745-Fix-SCIFB0-dmas-indentation.patch +++ b/patches.renesas/0054-ARM-dts-r8a7745-Fix-SCIFB0-dmas-indentation.patch @@ -9,11 +9,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit ad20bb6868f1d29f9c911f14087be4f93c098604) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7745.dtsi | 2 +- + arch/arm/boot/dts/r8a7745.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi -index 1f65ff68a469..25175a74b6b7 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -277,7 +277,7 @@ @@ -25,6 +23,3 @@ index 1f65ff68a469..25175a74b6b7 100644 dma-names = "tx", "rx", "tx", "rx"; power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0055-ARM-dts-r8a73a4-Remove-unit-addresses-and-regs-from-.patch b/patches.renesas/0055-ARM-dts-r8a73a4-Remove-unit-addresses-and-regs-from-.patch index 9ce7fbce6a8b97..928b85bdeeac99 100644 --- a/patches.renesas/0055-ARM-dts-r8a73a4-Remove-unit-addresses-and-regs-from-.patch +++ b/patches.renesas/0055-ARM-dts-r8a73a4-Remove-unit-addresses-and-regs-from-.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit cdaf6417b723e380501f46e555abf0c1c3090124) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a73a4.dtsi | 6 ++---- + arch/arm/boot/dts/r8a73a4.dtsi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi -index 00eb9a7114dc..6fb7eaba9126 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi @@ -32,18 +32,16 @@ @@ -42,6 +40,3 @@ index 00eb9a7114dc..6fb7eaba9126 100644 clocks = <&cpg_clocks R8A73A4_CLK_Z2>; power-domains = <&pd_a3km>; cache-unified; --- -2.13.3 - diff --git a/patches.renesas/0056-ARM-dts-r8a7743-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0056-ARM-dts-r8a7743-Remove-unit-address-and-reg-from-int.patch index 06e465165ac020..d19ed5b7d7cc76 100644 --- a/patches.renesas/0056-ARM-dts-r8a7743-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0056-ARM-dts-r8a7743-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 37f0c804e57ac93ca37a98aa5a210c6b73e6572a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7743.dtsi | 3 +-- + arch/arm/boot/dts/r8a7743.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi -index c166be2f18e0..cd908796fb3b 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -32,9 +32,8 @@ @@ -32,6 +30,3 @@ index c166be2f18e0..cd908796fb3b 100644 cache-unified; cache-level = <2>; power-domains = <&sysc R8A7743_PD_CA15_SCU>; --- -2.13.3 - diff --git a/patches.renesas/0057-ARM-dts-r8a7745-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0057-ARM-dts-r8a7745-Remove-unit-address-and-reg-from-int.patch index 61b302b5097859..e17c9b27521b9e 100644 --- a/patches.renesas/0057-ARM-dts-r8a7745-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0057-ARM-dts-r8a7745-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 51c00a9f730dd27da23e9dec593c22c0f9f5a1b1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7745.dtsi | 3 +-- + arch/arm/boot/dts/r8a7745.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi -index 25175a74b6b7..bca88715fada 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -32,9 +32,8 @@ @@ -32,6 +30,3 @@ index 25175a74b6b7..bca88715fada 100644 cache-unified; cache-level = <2>; power-domains = <&sysc R8A7745_PD_CA7_SCU>; --- -2.13.3 - diff --git a/patches.renesas/0058-ARM-dts-r8a7790-Remove-unit-addresses-and-regs-from-.patch b/patches.renesas/0058-ARM-dts-r8a7790-Remove-unit-addresses-and-regs-from-.patch index 8cf21aabcfdf6a..8c0c8da9283f2d 100644 --- a/patches.renesas/0058-ARM-dts-r8a7790-Remove-unit-addresses-and-regs-from-.patch +++ b/patches.renesas/0058-ARM-dts-r8a7790-Remove-unit-addresses-and-regs-from-.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d492909c84b895564d7ac413546ae988945c68db) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790.dtsi | 6 ++---- + arch/arm/boot/dts/r8a7790.dtsi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi -index 6d10450de6d7..20cf191e0852 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi @@ -129,17 +129,15 @@ @@ -41,6 +39,3 @@ index 6d10450de6d7..20cf191e0852 100644 power-domains = <&sysc R8A7790_PD_CA7_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0059-ARM-dts-r8a7791-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0059-ARM-dts-r8a7791-Remove-unit-address-and-reg-from-int.patch index 92925a4ad3dd70..e69753364b0284 100644 --- a/patches.renesas/0059-ARM-dts-r8a7791-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0059-ARM-dts-r8a7791-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 5d6a2165abd4635ecf5ece3d02fe8677f00d32c5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791.dtsi | 3 +-- + arch/arm/boot/dts/r8a7791.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi -index 381b3c513b25..96f5539aede7 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -74,9 +74,8 @@ @@ -32,6 +30,3 @@ index 381b3c513b25..96f5539aede7 100644 power-domains = <&sysc R8A7791_PD_CA15_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0060-ARM-dts-r8a7792-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0060-ARM-dts-r8a7792-Remove-unit-address-and-reg-from-int.patch index 7eafe8266599db..f0fa4b372d5e48 100644 --- a/patches.renesas/0060-ARM-dts-r8a7792-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0060-ARM-dts-r8a7792-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit a0504f0880c11da301dc2b5a5135bd02376e367e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7792.dtsi | 3 +-- + arch/arm/boot/dts/r8a7792.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi -index 8ecfda7a004e..c762f44f7732 100644 --- a/arch/arm/boot/dts/r8a7792.dtsi +++ b/arch/arm/boot/dts/r8a7792.dtsi @@ -60,9 +60,8 @@ @@ -32,6 +30,3 @@ index 8ecfda7a004e..c762f44f7732 100644 cache-unified; cache-level = <2>; power-domains = <&sysc R8A7792_PD_CA15_SCU>; --- -2.13.3 - diff --git a/patches.renesas/0061-ARM-dts-r8a7793-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0061-ARM-dts-r8a7793-Remove-unit-address-and-reg-from-int.patch index 9c5a36184318b8..6f9810d9cb9afa 100644 --- a/patches.renesas/0061-ARM-dts-r8a7793-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0061-ARM-dts-r8a7793-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit beffa8872a3680ef804eb0320ec77037170f4686) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7793.dtsi | 3 +-- + arch/arm/boot/dts/r8a7793.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi -index 48ce21c5e8db..38506f563b2b 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi @@ -65,9 +65,8 @@ @@ -32,6 +30,3 @@ index 48ce21c5e8db..38506f563b2b 100644 power-domains = <&sysc R8A7793_PD_CA15_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0062-ARM-dts-r8a7794-Remove-unit-address-and-reg-from-int.patch b/patches.renesas/0062-ARM-dts-r8a7794-Remove-unit-address-and-reg-from-int.patch index 96fa88520de3e7..d578f448a7a7c1 100644 --- a/patches.renesas/0062-ARM-dts-r8a7794-Remove-unit-address-and-reg-from-int.patch +++ b/patches.renesas/0062-ARM-dts-r8a7794-Remove-unit-address-and-reg-from-int.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 65d0b7ed40f8a3a41a0ac5ed5ca4d1874c6aaf2d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794.dtsi | 3 +-- + arch/arm/boot/dts/r8a7794.dtsi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi -index 319c1069b7ee..cb31cd2232f9 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi @@ -56,9 +56,8 @@ @@ -32,6 +30,3 @@ index 319c1069b7ee..cb31cd2232f9 100644 power-domains = <&sysc R8A7794_PD_CA7_SCU>; cache-unified; cache-level = <2>; --- -2.13.3 - diff --git a/patches.renesas/0063-ARM-dts-r8a7790-Tidyup-Audio-DMAC-channel-for-DVC.patch b/patches.renesas/0063-ARM-dts-r8a7790-Tidyup-Audio-DMAC-channel-for-DVC.patch index cd3945945e2047..bf0908ffc0b3df 100644 --- a/patches.renesas/0063-ARM-dts-r8a7790-Tidyup-Audio-DMAC-channel-for-DVC.patch +++ b/patches.renesas/0063-ARM-dts-r8a7790-Tidyup-Audio-DMAC-channel-for-DVC.patch @@ -33,11 +33,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit c4a59df9de199426b773a15e0c774ae25f628d5d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790.dtsi | 4 ++-- + arch/arm/boot/dts/r8a7790.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi -index 20cf191e0852..495c583054a8 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi @@ -1738,11 +1738,11 @@ @@ -54,6 +52,3 @@ index 20cf191e0852..495c583054a8 100644 dma-names = "tx"; }; }; --- -2.13.3 - diff --git a/patches.renesas/0064-ARM-dts-r7s72100-Add-watchdog-timer.patch b/patches.renesas/0064-ARM-dts-r7s72100-Add-watchdog-timer.patch index c7d54d8ca83398..796da2eb26bd95 100644 --- a/patches.renesas/0064-ARM-dts-r7s72100-Add-watchdog-timer.patch +++ b/patches.renesas/0064-ARM-dts-r7s72100-Add-watchdog-timer.patch @@ -14,11 +14,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 69ed50de582eff6307fd3fa050fdc505731f0a2d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 7 +++++++ + arch/arm/boot/dts/r7s72100.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 614ba79a9774..9b12d73e67dc 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -371,6 +371,13 @@ @@ -35,6 +33,3 @@ index 614ba79a9774..9b12d73e67dc 100644 i2c0: i2c@fcfee000 { #address-cells = <1>; #size-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0065-ARM-dts-r8a73a4-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0065-ARM-dts-r8a73a4-Add-INTC-SYS-clock-to-device-tree.patch index e526e23c4a4f44..9d589c0320a323 100644 --- a/patches.renesas/0065-ARM-dts-r8a73a4-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0065-ARM-dts-r8a73a4-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit c11333cc2e7ebe41e2aa4fa353abafa1f21a0662) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a73a4.dtsi | 13 +++++++++---- - include/dt-bindings/clock/r8a73a4-clock.h | 1 + + arch/arm/boot/dts/r8a73a4.dtsi | 13 +++++++++---- + include/dt-bindings/clock/r8a73a4-clock.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) -diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi -index 6fb7eaba9126..1f5c9f6dddba 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi @@ -467,6 +467,9 @@ @@ -55,8 +53,6 @@ index 6fb7eaba9126..1f5c9f6dddba 100644 }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a73a4-clock.h b/include/dt-bindings/clock/r8a73a4-clock.h -index dd11ecdf837e..4b3668157257 100644 --- a/include/dt-bindings/clock/r8a73a4-clock.h +++ b/include/dt-bindings/clock/r8a73a4-clock.h @@ -54,6 +54,7 @@ @@ -67,6 +63,3 @@ index dd11ecdf837e..4b3668157257 100644 #define R8A73A4_CLK_IRQC 7 /* MSTP5 */ --- -2.13.3 - diff --git a/patches.renesas/0066-ARM-dts-r8a7790-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0066-ARM-dts-r8a7790-Add-INTC-SYS-clock-to-device-tree.patch index 19cbc197d8cd69..f784fc8ddf4443 100644 --- a/patches.renesas/0066-ARM-dts-r8a7790-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0066-ARM-dts-r8a7790-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 9e58523624fc063ce43ad3ef2bf6d603bda50a5e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790.dtsi | 9 ++++++--- - include/dt-bindings/clock/r8a7790-clock.h | 1 + + arch/arm/boot/dts/r8a7790.dtsi | 9 ++++++--- + include/dt-bindings/clock/r8a7790-clock.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi -index 495c583054a8..534525665bb3 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi @@ -185,6 +185,9 @@ @@ -46,8 +44,6 @@ index 495c583054a8..534525665bb3 100644 }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h -index fa5e8da809f2..20641fa68e73 100644 --- a/include/dt-bindings/clock/r8a7790-clock.h +++ b/include/dt-bindings/clock/r8a7790-clock.h @@ -82,6 +82,7 @@ @@ -58,6 +54,3 @@ index fa5e8da809f2..20641fa68e73 100644 /* MSTP5 */ #define R8A7790_CLK_AUDIO_DMAC1 1 --- -2.13.3 - diff --git a/patches.renesas/0067-ARM-dts-r8a7791-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0067-ARM-dts-r8a7791-Add-INTC-SYS-clock-to-device-tree.patch index e46b4073119f01..44dc994cb90d91 100644 --- a/patches.renesas/0067-ARM-dts-r8a7791-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0067-ARM-dts-r8a7791-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit c2f2e266acb39f86bda1461874568ced7eaa6752) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791.dtsi | 9 ++++++--- - include/dt-bindings/clock/r8a7791-clock.h | 1 + + arch/arm/boot/dts/r8a7791.dtsi | 9 ++++++--- + include/dt-bindings/clock/r8a7791-clock.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi -index 96f5539aede7..9e2bceb2f1d6 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -117,6 +117,9 @@ @@ -46,8 +44,6 @@ index 96f5539aede7..9e2bceb2f1d6 100644 }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h -index ffa11379b3f0..adc50dc31ab3 100644 --- a/include/dt-bindings/clock/r8a7791-clock.h +++ b/include/dt-bindings/clock/r8a7791-clock.h @@ -72,6 +72,7 @@ @@ -58,6 +54,3 @@ index ffa11379b3f0..adc50dc31ab3 100644 /* MSTP5 */ #define R8A7791_CLK_AUDIO_DMAC1 1 --- -2.13.3 - diff --git a/patches.renesas/0068-ARM-dts-r8a7792-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0068-ARM-dts-r8a7792-Add-INTC-SYS-clock-to-device-tree.patch index f0723093321f39..b859ef007adb82 100644 --- a/patches.renesas/0068-ARM-dts-r8a7792-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0068-ARM-dts-r8a7792-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 90dce5428ae5499f06d91297ef10b3b613044774) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7792.dtsi | 11 ++++++++--- - include/dt-bindings/clock/r8a7792-clock.h | 1 + + arch/arm/boot/dts/r8a7792.dtsi | 11 ++++++++--- + include/dt-bindings/clock/r8a7792-clock.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi -index c762f44f7732..6c0797ebc08f 100644 --- a/arch/arm/boot/dts/r8a7792.dtsi +++ b/arch/arm/boot/dts/r8a7792.dtsi @@ -92,6 +92,9 @@ @@ -48,8 +46,6 @@ index c762f44f7732..6c0797ebc08f 100644 }; mstp7_clks: mstp7_clks@e615014c { compatible = "renesas,r8a7792-mstp-clocks", -diff --git a/include/dt-bindings/clock/r8a7792-clock.h b/include/dt-bindings/clock/r8a7792-clock.h -index 9a8b392ceb00..94dd16a1e6e6 100644 --- a/include/dt-bindings/clock/r8a7792-clock.h +++ b/include/dt-bindings/clock/r8a7792-clock.h @@ -45,6 +45,7 @@ @@ -60,6 +56,3 @@ index 9a8b392ceb00..94dd16a1e6e6 100644 /* MSTP5 */ #define R8A7792_CLK_AUDIO_DMAC0 2 --- -2.13.3 - diff --git a/patches.renesas/0069-ARM-dts-r8a7794-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0069-ARM-dts-r8a7794-Add-INTC-SYS-clock-to-device-tree.patch index 01e3ba8f3ccdbd..f63b12699f6f43 100644 --- a/patches.renesas/0069-ARM-dts-r8a7794-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0069-ARM-dts-r8a7794-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 133a3f1a19c99218a39e9d3e91e9e5442fa0f191) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794.dtsi | 9 ++++++--- - include/dt-bindings/clock/r8a7794-clock.h | 1 + + arch/arm/boot/dts/r8a7794.dtsi | 9 ++++++--- + include/dt-bindings/clock/r8a7794-clock.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi -index cb31cd2232f9..38bf9ed8e739 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi @@ -74,6 +74,9 @@ @@ -46,8 +44,6 @@ index cb31cd2232f9..38bf9ed8e739 100644 }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h -index 88e64846cf37..a26776f7dedd 100644 --- a/include/dt-bindings/clock/r8a7794-clock.h +++ b/include/dt-bindings/clock/r8a7794-clock.h @@ -64,6 +64,7 @@ @@ -58,6 +54,3 @@ index 88e64846cf37..a26776f7dedd 100644 /* MSTP5 */ #define R8A7794_CLK_AUDIO_DMAC0 2 --- -2.13.3 - diff --git a/patches.renesas/0070-ARM-dts-r8a7791-Tidyup-Audio-DMAC-channel-for-DVC.patch b/patches.renesas/0070-ARM-dts-r8a7791-Tidyup-Audio-DMAC-channel-for-DVC.patch index eca0c5608b6b49..52d1ddf7b6192f 100644 --- a/patches.renesas/0070-ARM-dts-r8a7791-Tidyup-Audio-DMAC-channel-for-DVC.patch +++ b/patches.renesas/0070-ARM-dts-r8a7791-Tidyup-Audio-DMAC-channel-for-DVC.patch @@ -33,11 +33,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d49db72b567d6273f41f045b0c146837d3e50f8d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791.dtsi | 4 ++-- + arch/arm/boot/dts/r8a7791.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi -index 9e2bceb2f1d6..4202d474992e 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -1779,11 +1779,11 @@ @@ -54,6 +52,3 @@ index 9e2bceb2f1d6..4202d474992e 100644 dma-names = "tx"; }; }; --- -2.13.3 - diff --git a/patches.renesas/0071-ARM-dts-r8a7793-Tidyup-Audio-DMAC-channel-for-DVC.patch b/patches.renesas/0071-ARM-dts-r8a7793-Tidyup-Audio-DMAC-channel-for-DVC.patch index ebdeee73f7a2e8..7b3132a64fc983 100644 --- a/patches.renesas/0071-ARM-dts-r8a7793-Tidyup-Audio-DMAC-channel-for-DVC.patch +++ b/patches.renesas/0071-ARM-dts-r8a7793-Tidyup-Audio-DMAC-channel-for-DVC.patch @@ -33,11 +33,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d2b10f99962aa5ec9865a77827931bf20211a39c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7793.dtsi | 4 ++-- + arch/arm/boot/dts/r8a7793.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi -index 38506f563b2b..53c89b47eaf0 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi @@ -1425,11 +1425,11 @@ @@ -54,6 +52,3 @@ index 38506f563b2b..53c89b47eaf0 100644 dma-names = "tx"; }; }; --- -2.13.3 - diff --git a/patches.renesas/0072-ARM-dts-r8a7793-Add-INTC-SYS-clock-to-device-tree.patch b/patches.renesas/0072-ARM-dts-r8a7793-Add-INTC-SYS-clock-to-device-tree.patch index 800904ef69b45b..2d78dcf361fec1 100644 --- a/patches.renesas/0072-ARM-dts-r8a7793-Add-INTC-SYS-clock-to-device-tree.patch +++ b/patches.renesas/0072-ARM-dts-r8a7793-Add-INTC-SYS-clock-to-device-tree.patch @@ -14,12 +14,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 2f25c2d1cdf04ab0f247351e286d3fdefbdad09b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7793.dtsi | 11 ++++++++--- - include/dt-bindings/clock/r8a7793-clock.h | 5 +++-- + arch/arm/boot/dts/r8a7793.dtsi | 11 ++++++++--- + include/dt-bindings/clock/r8a7793-clock.h | 5 +++-- 2 files changed, 11 insertions(+), 5 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi -index 53c89b47eaf0..9fcf3a9ca084 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi @@ -108,6 +108,9 @@ @@ -48,8 +46,6 @@ index 53c89b47eaf0..9fcf3a9ca084 100644 }; mstp5_clks: mstp5_clks@e6150144 { compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a7793-clock.h b/include/dt-bindings/clock/r8a7793-clock.h -index efcbc594fe82..7318d45d4e7e 100644 --- a/include/dt-bindings/clock/r8a7793-clock.h +++ b/include/dt-bindings/clock/r8a7793-clock.h @@ -77,10 +77,11 @@ @@ -66,6 +62,3 @@ index efcbc594fe82..7318d45d4e7e 100644 #define R8A7793_CLK_ADSP_MOD 6 #define R8A7793_CLK_THERMAL 22 #define R8A7793_CLK_PWM 23 --- -2.13.3 - diff --git a/patches.renesas/0073-ARM-dts-porter-Always-use-status-okay-to-enable-devi.patch b/patches.renesas/0073-ARM-dts-porter-Always-use-status-okay-to-enable-devi.patch index 72afc9bec12287..a15771c836468d 100644 --- a/patches.renesas/0073-ARM-dts-porter-Always-use-status-okay-to-enable-devi.patch +++ b/patches.renesas/0073-ARM-dts-porter-Always-use-status-okay-to-enable-devi.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d8fc23051a9b6dd66ed0cc3c2a676991493b8112) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791-porter.dts | 4 ++-- + arch/arm/boot/dts/r8a7791-porter.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts -index 6761d11d3f9e..d9aa2cd6d625 100644 --- a/arch/arm/boot/dts/r8a7791-porter.dts +++ b/arch/arm/boot/dts/r8a7791-porter.dts @@ -226,7 +226,7 @@ @@ -37,6 +35,3 @@ index 6761d11d3f9e..d9aa2cd6d625 100644 pinctrl-0 = <&vin0_pins>; pinctrl-names = "default"; --- -2.13.3 - diff --git a/patches.renesas/0074-ARM-dts-bockw-Drop-superfluous-status-update-for-fre.patch b/patches.renesas/0074-ARM-dts-bockw-Drop-superfluous-status-update-for-fre.patch index 2a3ef9ea038658..91bb43a305db79 100644 --- a/patches.renesas/0074-ARM-dts-bockw-Drop-superfluous-status-update-for-fre.patch +++ b/patches.renesas/0074-ARM-dts-bockw-Drop-superfluous-status-update-for-fre.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit ffbb98d4d1f194e455bae2bc2eab2995188c652e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7778-bockw.dts | 1 - + arch/arm/boot/dts/r8a7778-bockw.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts -index 211d239d9041..c79d55eb43c5 100644 --- a/arch/arm/boot/dts/r8a7778-bockw.dts +++ b/arch/arm/boot/dts/r8a7778-bockw.dts @@ -229,5 +229,4 @@ @@ -25,6 +23,3 @@ index 211d239d9041..c79d55eb43c5 100644 clock-frequency = <14745600>; - status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0075-ARM-dts-marzen-Drop-superfluous-status-update-for-fr.patch b/patches.renesas/0075-ARM-dts-marzen-Drop-superfluous-status-update-for-fr.patch index 93112d6c526f99..0628794a66ea79 100644 --- a/patches.renesas/0075-ARM-dts-marzen-Drop-superfluous-status-update-for-fr.patch +++ b/patches.renesas/0075-ARM-dts-marzen-Drop-superfluous-status-update-for-fr.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 2f69fd8cb2187631ad68531a07406ad6b179b122) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7779-marzen.dts | 1 - + arch/arm/boot/dts/r8a7779-marzen.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts -index 89c5b24a3d03..9412a86f9b30 100644 --- a/arch/arm/boot/dts/r8a7779-marzen.dts +++ b/arch/arm/boot/dts/r8a7779-marzen.dts @@ -236,7 +236,6 @@ @@ -27,6 +25,3 @@ index 89c5b24a3d03..9412a86f9b30 100644 }; &sdhi0 { --- -2.13.3 - diff --git a/patches.renesas/0076-ARM-dts-lager-Drop-superfluous-status-update-for-fre.patch b/patches.renesas/0076-ARM-dts-lager-Drop-superfluous-status-update-for-fre.patch index afea0defc3cd8e..0982b653901613 100644 --- a/patches.renesas/0076-ARM-dts-lager-Drop-superfluous-status-update-for-fre.patch +++ b/patches.renesas/0076-ARM-dts-lager-Drop-superfluous-status-update-for-fre.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 2507e3d41a3f0f09e7d756b34e3bb953d6d3b76d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790-lager.dts | 1 - + arch/arm/boot/dts/r8a7790-lager.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts -index bd512c86e852..ba100a6f67ca 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts @@ -581,7 +581,6 @@ @@ -27,6 +25,3 @@ index bd512c86e852..ba100a6f67ca 100644 }; &msiof1 { --- -2.13.3 - diff --git a/patches.renesas/0077-ARM-dts-koelsch-Drop-superfluous-status-updates-for-.patch b/patches.renesas/0077-ARM-dts-koelsch-Drop-superfluous-status-updates-for-.patch index d7818856342d59..4aaa6e273ae34c 100644 --- a/patches.renesas/0077-ARM-dts-koelsch-Drop-superfluous-status-updates-for-.patch +++ b/patches.renesas/0077-ARM-dts-koelsch-Drop-superfluous-status-updates-for-.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b20b1de4b542749a500c426796bb7fa400b03e58) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791-koelsch.dts | 2 -- + arch/arm/boot/dts/r8a7791-koelsch.dts | 2 -- 1 file changed, 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts -index 5405d337d744..59beb8402a36 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts @@ -516,7 +516,6 @@ @@ -35,6 +33,3 @@ index 5405d337d744..59beb8402a36 100644 }; &pciec { --- -2.13.3 - diff --git a/patches.renesas/0078-ARM-dts-porter-Drop-superfluous-status-update-for-fr.patch b/patches.renesas/0078-ARM-dts-porter-Drop-superfluous-status-update-for-fr.patch index 27078ea436f162..269fbeb0a4d58f 100644 --- a/patches.renesas/0078-ARM-dts-porter-Drop-superfluous-status-update-for-fr.patch +++ b/patches.renesas/0078-ARM-dts-porter-Drop-superfluous-status-update-for-fr.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b546d090c8ecca05c83e71d931f6d9ad72a8d730) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791-porter.dts | 1 - + arch/arm/boot/dts/r8a7791-porter.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts -index d9aa2cd6d625..95da5cb9d37a 100644 --- a/arch/arm/boot/dts/r8a7791-porter.dts +++ b/arch/arm/boot/dts/r8a7791-porter.dts @@ -401,7 +401,6 @@ @@ -27,6 +25,3 @@ index d9aa2cd6d625..95da5cb9d37a 100644 }; &pciec { --- -2.13.3 - diff --git a/patches.renesas/0079-ARM-dts-gose-Drop-superfluous-status-update-for-freq.patch b/patches.renesas/0079-ARM-dts-gose-Drop-superfluous-status-update-for-freq.patch index 47d59e9f9d961a..997f9549ed09ac 100644 --- a/patches.renesas/0079-ARM-dts-gose-Drop-superfluous-status-update-for-freq.patch +++ b/patches.renesas/0079-ARM-dts-gose-Drop-superfluous-status-update-for-freq.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit e68f8b428d84c304ca534505eafa98cb02a5bae0) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7793-gose.dts | 1 - + arch/arm/boot/dts/r8a7793-gose.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts -index 92fff07c5e2b..806c93f6ae8b 100644 --- a/arch/arm/boot/dts/r8a7793-gose.dts +++ b/arch/arm/boot/dts/r8a7793-gose.dts @@ -412,7 +412,6 @@ @@ -27,6 +25,3 @@ index 92fff07c5e2b..806c93f6ae8b 100644 }; &sdhi0 { --- -2.13.3 - diff --git a/patches.renesas/0080-ARM-dts-alt-Drop-superfluous-status-update-for-frequ.patch b/patches.renesas/0080-ARM-dts-alt-Drop-superfluous-status-update-for-frequ.patch index d9816ea5a65822..1417fd4aeb0794 100644 --- a/patches.renesas/0080-ARM-dts-alt-Drop-superfluous-status-update-for-frequ.patch +++ b/patches.renesas/0080-ARM-dts-alt-Drop-superfluous-status-update-for-frequ.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit e5fada0cf2131b901e411bb65c22ddc98b6dcf98) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794-alt.dts | 1 - + arch/arm/boot/dts/r8a7794-alt.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts -index 569e3f0e97a5..3fcf76b8e923 100644 --- a/arch/arm/boot/dts/r8a7794-alt.dts +++ b/arch/arm/boot/dts/r8a7794-alt.dts @@ -375,7 +375,6 @@ @@ -27,6 +25,3 @@ index 569e3f0e97a5..3fcf76b8e923 100644 }; &qspi { --- -2.13.3 - diff --git a/patches.renesas/0081-ARM-dts-silk-Drop-superfluous-status-update-for-freq.patch b/patches.renesas/0081-ARM-dts-silk-Drop-superfluous-status-update-for-freq.patch index 778bb30bbc5c4a..1115ada51487d4 100644 --- a/patches.renesas/0081-ARM-dts-silk-Drop-superfluous-status-update-for-freq.patch +++ b/patches.renesas/0081-ARM-dts-silk-Drop-superfluous-status-update-for-freq.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d01ff18992218f3a13f45f45a886b3bf8f250f14) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794-silk.dts | 1 - + arch/arm/boot/dts/r8a7794-silk.dts | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts -index cf880ac06f4b..c742d80d6dca 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts @@ -248,7 +248,6 @@ @@ -27,6 +25,3 @@ index cf880ac06f4b..c742d80d6dca 100644 }; ðer { --- -2.13.3 - diff --git a/patches.renesas/0082-ARM-shmobile-Document-RZ-G1H-SoC-DT-binding.patch b/patches.renesas/0082-ARM-shmobile-Document-RZ-G1H-SoC-DT-binding.patch index 7331ca2e8a44c6..2e12fc925f5791 100644 --- a/patches.renesas/0082-ARM-shmobile-Document-RZ-G1H-SoC-DT-binding.patch +++ b/patches.renesas/0082-ARM-shmobile-Document-RZ-G1H-SoC-DT-binding.patch @@ -10,11 +10,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 368d03531f39ffaa793a98b9a17c79d660b1cd1a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ + Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt -index c9502634316d..b8155a209c58 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -13,6 +13,8 @@ SoCs: @@ -26,6 +24,3 @@ index c9502634316d..b8155a209c58 100644 - RZ/G1M (R8A77430) compatible = "renesas,r8a7743" - RZ/G1E (R8A77450) --- -2.13.3 - diff --git a/patches.renesas/0083-ARM-shmobile-Document-RZ-G1N-SoC-DT-binding.patch b/patches.renesas/0083-ARM-shmobile-Document-RZ-G1N-SoC-DT-binding.patch index 8b48c8d32f3541..39286095fc2b10 100644 --- a/patches.renesas/0083-ARM-shmobile-Document-RZ-G1N-SoC-DT-binding.patch +++ b/patches.renesas/0083-ARM-shmobile-Document-RZ-G1N-SoC-DT-binding.patch @@ -10,11 +10,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit cfb9f93437eb6663ca99e85c47bb3656ccfe59c5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ + Documentation/devicetree/bindings/arm/shmobile.txt | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt -index b8155a209c58..170fe0562c63 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt @@ -17,6 +17,8 @@ SoCs: @@ -26,6 +24,3 @@ index b8155a209c58..170fe0562c63 100644 - RZ/G1E (R8A77450) compatible = "renesas,r8a7745" - R-Car M1A (R8A77781) --- -2.13.3 - diff --git a/patches.renesas/0084-ARM-8660-1-shmobile-r7s72100-Enable-L2-cache.patch b/patches.renesas/0084-ARM-8660-1-shmobile-r7s72100-Enable-L2-cache.patch index d8fa1955b5c2fc..12fdca68fb66ba 100644 --- a/patches.renesas/0084-ARM-8660-1-shmobile-r7s72100-Enable-L2-cache.patch +++ b/patches.renesas/0084-ARM-8660-1-shmobile-r7s72100-Enable-L2-cache.patch @@ -13,14 +13,12 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> (cherry picked from commit a96bb197693eb9e7a7221867bd944ccd6b6e12e6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/mach-shmobile/setup-r7s72100.c | 2 ++ + arch/arm/mach-shmobile/setup-r7s72100.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c -index d46639fc6849..319ca9508ec6 100644 --- a/arch/arm/mach-shmobile/setup-r7s72100.c +++ b/arch/arm/mach-shmobile/setup-r7s72100.c -@@ -26,6 +26,8 @@ static const char *const r7s72100_boards_compat_dt[] __initconst = { +@@ -26,6 +26,8 @@ static const char *const r7s72100_boards }; DT_MACHINE_START(R7S72100_DT, "Generic R7S72100 (Flattened Device Tree)") @@ -29,6 +27,3 @@ index d46639fc6849..319ca9508ec6 100644 .init_early = shmobile_init_delay, .init_late = shmobile_init_late, .dt_compat = r7s72100_boards_compat_dt, --- -2.13.3 - diff --git a/patches.renesas/0085-phy-rcar-gen3-usb2-fix-implementation-for-runtime-PM.patch b/patches.renesas/0085-phy-rcar-gen3-usb2-fix-implementation-for-runtime-PM.patch index f0579b718a2e58..6289d73de1b6c7 100644 --- a/patches.renesas/0085-phy-rcar-gen3-usb2-fix-implementation-for-runtime-PM.patch +++ b/patches.renesas/0085-phy-rcar-gen3-usb2-fix-implementation-for-runtime-PM.patch @@ -16,11 +16,9 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> (cherry picked from commit 441a681b8843474c9796b50c35794ff102701f37) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/phy/phy-rcar-gen3-usb2.c | 31 ++++++++++++++++++++++++------- + drivers/phy/phy-rcar-gen3-usb2.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) -diff --git a/drivers/phy/phy-rcar-gen3-usb2.c b/drivers/phy/phy-rcar-gen3-usb2.c -index 54a83675f0a8..e35af04301ac 100644 --- a/drivers/phy/phy-rcar-gen3-usb2.c +++ b/drivers/phy/phy-rcar-gen3-usb2.c @@ -20,6 +20,7 @@ @@ -31,7 +29,7 @@ index 54a83675f0a8..e35af04301ac 100644 #include <linux/regulator/consumer.h> #include <linux/workqueue.h> -@@ -395,7 +396,7 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) +@@ -395,7 +396,7 @@ static int rcar_gen3_phy_usb2_probe(stru struct rcar_gen3_chan *channel; struct phy_provider *provider; struct resource *res; @@ -40,7 +38,7 @@ index 54a83675f0a8..e35af04301ac 100644 if (!dev->of_node) { dev_err(dev, "This driver needs device tree\n"); -@@ -434,17 +435,24 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) +@@ -434,17 +435,24 @@ static int rcar_gen3_phy_usb2_probe(stru } } @@ -69,7 +67,7 @@ index 54a83675f0a8..e35af04301ac 100644 channel->vbus = NULL; } -@@ -454,15 +462,22 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) +@@ -454,15 +462,22 @@ static int rcar_gen3_phy_usb2_probe(stru provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); if (IS_ERR(provider)) { dev_err(dev, "Failed to register PHY provider\n"); @@ -94,7 +92,7 @@ index 54a83675f0a8..e35af04301ac 100644 } static int rcar_gen3_phy_usb2_remove(struct platform_device *pdev) -@@ -472,6 +487,8 @@ static int rcar_gen3_phy_usb2_remove(struct platform_device *pdev) +@@ -472,6 +487,8 @@ static int rcar_gen3_phy_usb2_remove(str if (channel->has_otg) device_remove_file(&pdev->dev, &dev_attr_role); @@ -103,6 +101,3 @@ index 54a83675f0a8..e35af04301ac 100644 return 0; }; --- -2.13.3 - diff --git a/patches.renesas/0086-dmaengine-rcar-dmac-enable-descriptor-mode-on-40bit.patch b/patches.renesas/0086-dmaengine-rcar-dmac-enable-descriptor-mode-on-40bit.patch index 130fd03e649097..f65d006d00e526 100644 --- a/patches.renesas/0086-dmaengine-rcar-dmac-enable-descriptor-mode-on-40bit.patch +++ b/patches.renesas/0086-dmaengine-rcar-dmac-enable-descriptor-mode-on-40bit.patch @@ -17,14 +17,12 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> (cherry picked from commit 1175f83cdb7a321b8b7b061d18846d58490b2654) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/dma/sh/rcar-dmac.c | 52 ++++++++++++++++++++++++++++------------------ + drivers/dma/sh/rcar-dmac.c | 52 +++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 20 deletions(-) -diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c -index 48b22d5c8602..db41795fe42a 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c -@@ -344,13 +344,19 @@ static void rcar_dmac_chan_start_xfer(struct rcar_dmac_chan *chan) +@@ -344,13 +344,19 @@ static void rcar_dmac_chan_start_xfer(st rcar_dmac_chan_write(chan, RCAR_DMARS, chan->mid_rid); if (desc->hwdescs.use) { @@ -45,7 +43,7 @@ index 48b22d5c8602..db41795fe42a 100644 rcar_dmac_chan_write(chan, RCAR_DMAFIXDPBASE, desc->hwdescs.dma >> 32); #endif -@@ -368,8 +374,6 @@ static void rcar_dmac_chan_start_xfer(struct rcar_dmac_chan *chan) +@@ -368,8 +374,6 @@ static void rcar_dmac_chan_start_xfer(st * should. Initialize it manually with the destination address * of the first chunk. */ @@ -54,7 +52,7 @@ index 48b22d5c8602..db41795fe42a 100644 rcar_dmac_chan_write(chan, RCAR_DMADAR, chunk->dst_addr & 0xffffffff); -@@ -855,8 +859,12 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_chan *chan, struct scatterlist *sgl, +@@ -855,8 +859,12 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_ unsigned int nchunks = 0; unsigned int max_chunk_size; unsigned int full_size = 0; @@ -68,7 +66,7 @@ index 48b22d5c8602..db41795fe42a 100644 desc = rcar_dmac_desc_get(chan); if (!desc) -@@ -882,6 +890,16 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_chan *chan, struct scatterlist *sgl, +@@ -882,6 +890,16 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_ full_size += len; @@ -85,7 +83,7 @@ index 48b22d5c8602..db41795fe42a 100644 while (len) { unsigned int size = min(len, max_chunk_size); -@@ -890,18 +908,14 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_chan *chan, struct scatterlist *sgl, +@@ -890,18 +908,14 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_ * Prevent individual transfers from crossing 4GB * boundaries. */ @@ -110,7 +108,7 @@ index 48b22d5c8602..db41795fe42a 100644 #endif chunk = rcar_dmac_xfer_chunk_get(chan); -@@ -943,13 +957,11 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_chan *chan, struct scatterlist *sgl, +@@ -943,13 +957,11 @@ rcar_dmac_chan_prep_sg(struct rcar_dmac_ * Use hardware descriptor lists if possible when more than one chunk * needs to be transferred (otherwise they don't make much sense). * @@ -128,6 +126,3 @@ index 48b22d5c8602..db41795fe42a 100644 if (desc->hwdescs.use) { if (rcar_dmac_fill_hwdesc(chan, desc) < 0) desc->hwdescs.use = false; --- -2.13.3 - diff --git a/patches.renesas/0087-rcar-dmac-fixup-descriptor-pointer-for-descriptor-mo.patch b/patches.renesas/0087-rcar-dmac-fixup-descriptor-pointer-for-descriptor-mo.patch index 38ccd71c0239de..465005303be673 100644 --- a/patches.renesas/0087-rcar-dmac-fixup-descriptor-pointer-for-descriptor-mo.patch +++ b/patches.renesas/0087-rcar-dmac-fixup-descriptor-pointer-for-descriptor-mo.patch @@ -15,14 +15,12 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> (cherry picked from commit 56b177055adb246cdeca174331dbf92fc49bfccd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/dma/sh/rcar-dmac.c | 3 +++ + drivers/dma/sh/rcar-dmac.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c -index db41795fe42a..bd261c9e9664 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c -@@ -1287,6 +1287,9 @@ static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan, +@@ -1287,6 +1287,9 @@ static unsigned int rcar_dmac_chan_get_r if (desc->hwdescs.use) { dptr = (rcar_dmac_chan_read(chan, RCAR_DMACHCRB) & RCAR_DMACHCRB_DPTR_MASK) >> RCAR_DMACHCRB_DPTR_SHIFT; @@ -32,6 +30,3 @@ index db41795fe42a..bd261c9e9664 100644 WARN_ON(dptr >= desc->nchunks); } else { running = desc->running; --- -2.13.3 - diff --git a/patches.renesas/0088-soc-renesas-Provide-dummy-rcar_rst_read_mode_pins-fo.patch b/patches.renesas/0088-soc-renesas-Provide-dummy-rcar_rst_read_mode_pins-fo.patch index facebbab355add..cb6751fe155c3d 100644 --- a/patches.renesas/0088-soc-renesas-Provide-dummy-rcar_rst_read_mode_pins-fo.patch +++ b/patches.renesas/0088-soc-renesas-Provide-dummy-rcar_rst_read_mode_pins-fo.patch @@ -19,11 +19,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 7b4ccb3c466f62bbf2f4dd5d6a143d945a6f3051) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - include/linux/soc/renesas/rcar-rst.h | 5 +++++ + include/linux/soc/renesas/rcar-rst.h | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/include/linux/soc/renesas/rcar-rst.h b/include/linux/soc/renesas/rcar-rst.h -index a18e0783946b..787e7ad53d45 100644 --- a/include/linux/soc/renesas/rcar-rst.h +++ b/include/linux/soc/renesas/rcar-rst.h @@ -1,6 +1,11 @@ @@ -38,6 +36,3 @@ index a18e0783946b..787e7ad53d45 100644 +#endif #endif /* __LINUX_SOC_RENESAS_RCAR_RST_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0089-ASoC-rsnd-drop-useles-self-assignments.patch b/patches.renesas/0089-ASoC-rsnd-drop-useles-self-assignments.patch index d6d16048adbf17..83cd9d210354c6 100644 --- a/patches.renesas/0089-ASoC-rsnd-drop-useles-self-assignments.patch +++ b/patches.renesas/0089-ASoC-rsnd-drop-useles-self-assignments.patch @@ -11,14 +11,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 34157f7bec8276b4296cf2ec172fc13385ac8af7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/core.c | 2 -- + sound/soc/sh/rcar/core.c | 2 -- 1 file changed, 2 deletions(-) -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index 47b370cb2d3b..24adb3cc17aa 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c -@@ -674,12 +674,10 @@ static int rsnd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) +@@ -674,12 +674,10 @@ static int rsnd_soc_dai_set_fmt(struct s /* set clock inversion */ switch (fmt & SND_SOC_DAIFMT_INV_MASK) { case SND_SOC_DAIFMT_NB_IF: @@ -31,6 +29,3 @@ index 47b370cb2d3b..24adb3cc17aa 100644 break; case SND_SOC_DAIFMT_IB_IF: rdai->bit_clk_inv = !rdai->bit_clk_inv; --- -2.13.3 - diff --git a/patches.renesas/0090-ASoC-rsnd-check-return-value-of-init-function.patch b/patches.renesas/0090-ASoC-rsnd-check-return-value-of-init-function.patch index cbf3e1f0f684d9..0851c663554f65 100644 --- a/patches.renesas/0090-ASoC-rsnd-check-return-value-of-init-function.patch +++ b/patches.renesas/0090-ASoC-rsnd-check-return-value-of-init-function.patch @@ -13,14 +13,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 56d2c61d611a50e58dba521be1325dc90f9cc933) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 5 ++++- + sound/soc/sh/rcar/adg.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 85a33ac0a5c4..54146f66538c 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -564,6 +564,7 @@ int rsnd_adg_probe(struct rsnd_priv *priv) +@@ -564,6 +564,7 @@ int rsnd_adg_probe(struct rsnd_priv *pri struct rsnd_adg *adg; struct device *dev = rsnd_priv_to_dev(priv); struct device_node *np = dev->of_node; @@ -28,7 +26,7 @@ index 85a33ac0a5c4..54146f66538c 100644 adg = devm_kzalloc(dev, sizeof(*adg), GFP_KERNEL); if (!adg) { -@@ -571,8 +572,10 @@ int rsnd_adg_probe(struct rsnd_priv *priv) +@@ -571,8 +572,10 @@ int rsnd_adg_probe(struct rsnd_priv *pri return -ENOMEM; } @@ -40,6 +38,3 @@ index 85a33ac0a5c4..54146f66538c 100644 rsnd_adg_get_clkin(priv, adg); rsnd_adg_get_clkout(priv, adg); --- -2.13.3 - diff --git a/patches.renesas/0091-ASoC-rcar-enable-PCM-RATE-untile-192000.patch b/patches.renesas/0091-ASoC-rcar-enable-PCM-RATE-untile-192000.patch index 9797dd8ef9ebb0..507d57791b592c 100644 --- a/patches.renesas/0091-ASoC-rcar-enable-PCM-RATE-untile-192000.patch +++ b/patches.renesas/0091-ASoC-rcar-enable-PCM-RATE-untile-192000.patch @@ -11,11 +11,9 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit dc2721564f6da549f6eb29ac5bca28d65beadcb7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/core.c | 2 +- + sound/soc/sh/rcar/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index 24adb3cc17aa..672783e18711 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -96,7 +96,7 @@ @@ -27,6 +25,3 @@ index 24adb3cc17aa..672783e18711 100644 #define RSND_FMTS (SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE) static const struct of_device_id rsnd_of_match[] = { --- -2.13.3 - diff --git a/patches.renesas/0092-ASoC-rcar-ssi-don-t-set-SSICR.CKDV-000-with-SSIWSR.C.patch b/patches.renesas/0092-ASoC-rcar-ssi-don-t-set-SSICR.CKDV-000-with-SSIWSR.C.patch index 9bfb47ef4543ae..7e4728a8b55922 100644 --- a/patches.renesas/0092-ASoC-rcar-ssi-don-t-set-SSICR.CKDV-000-with-SSIWSR.C.patch +++ b/patches.renesas/0092-ASoC-rcar-ssi-don-t-set-SSICR.CKDV-000-with-SSIWSR.C.patch @@ -16,14 +16,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 6b8530cc056efd4a11b034ca5b1e9f7e9563f553) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/ssi.c | 9 +++++++++ + sound/soc/sh/rcar/ssi.c | 9 +++++++++ 1 file changed, 9 insertions(+) -diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c -index 411bda2387ad..135c5669f796 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c -@@ -228,6 +228,15 @@ static int rsnd_ssi_master_clk_start(struct rsnd_mod *mod, +@@ -228,6 +228,15 @@ static int rsnd_ssi_master_clk_start(str for (j = 0; j < ARRAY_SIZE(ssi_clk_mul_table); j++) { /* @@ -39,6 +37,3 @@ index 411bda2387ad..135c5669f796 100644 * this driver is assuming that * system word is 32bit x chan * see rsnd_ssi_init() --- -2.13.3 - diff --git a/patches.renesas/0093-ASoC-rcar-remove-rsnd_kctrl_remove.patch b/patches.renesas/0093-ASoC-rcar-remove-rsnd_kctrl_remove.patch index 0451fe3996d8d0..2ed082f7afcfaa 100644 --- a/patches.renesas/0093-ASoC-rcar-remove-rsnd_kctrl_remove.patch +++ b/patches.renesas/0093-ASoC-rcar-remove-rsnd_kctrl_remove.patch @@ -16,16 +16,14 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit e0c4211854bfebd5507761a2bfddaa9e37074230) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/core.c | 9 --------- - sound/soc/sh/rcar/dvc.c | 16 ---------------- - sound/soc/sh/rcar/rsnd.h | 3 --- + sound/soc/sh/rcar/core.c | 9 --------- + sound/soc/sh/rcar/dvc.c | 16 ---------------- + sound/soc/sh/rcar/rsnd.h | 3 --- 3 files changed, 28 deletions(-) -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index 672783e18711..35c96e4bbd64 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c -@@ -1037,15 +1037,6 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod, +@@ -1037,15 +1037,6 @@ static int __rsnd_kctrl_new(struct rsnd_ return 0; } @@ -41,11 +39,9 @@ index 672783e18711..35c96e4bbd64 100644 int rsnd_kctrl_new_m(struct rsnd_mod *mod, struct rsnd_dai_stream *io, struct snd_soc_pcm_runtime *rtd, -diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c -index cf8f59cdd8d7..994fdb7d0034 100644 --- a/sound/soc/sh/rcar/dvc.c +++ b/sound/soc/sh/rcar/dvc.c -@@ -218,21 +218,6 @@ static int rsnd_dvc_probe_(struct rsnd_mod *mod, +@@ -218,21 +218,6 @@ static int rsnd_dvc_probe_(struct rsnd_m return rsnd_cmd_attach(io, rsnd_mod_id(mod)); } @@ -67,7 +63,7 @@ index cf8f59cdd8d7..994fdb7d0034 100644 static int rsnd_dvc_init(struct rsnd_mod *mod, struct rsnd_dai_stream *io, struct rsnd_priv *priv) -@@ -332,7 +317,6 @@ static struct rsnd_mod_ops rsnd_dvc_ops = { +@@ -332,7 +317,6 @@ static struct rsnd_mod_ops rsnd_dvc_ops .name = DVC_NAME, .dma_req = rsnd_dvc_dma_req, .probe = rsnd_dvc_probe_, @@ -75,8 +71,6 @@ index cf8f59cdd8d7..994fdb7d0034 100644 .init = rsnd_dvc_init, .quit = rsnd_dvc_quit, .pcm_new = rsnd_dvc_pcm_new, -diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h -index 7410ec0174db..81ef3f18834a 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -611,9 +611,6 @@ struct rsnd_kctrl_cfg_s { @@ -89,6 +83,3 @@ index 7410ec0174db..81ef3f18834a 100644 int rsnd_kctrl_new_m(struct rsnd_mod *mod, struct rsnd_dai_stream *io, struct snd_soc_pcm_runtime *rtd, --- -2.13.3 - diff --git a/patches.renesas/0094-ASoC-rcar-fixup-of_clk_add_provider-usage-for-multi-.patch b/patches.renesas/0094-ASoC-rcar-fixup-of_clk_add_provider-usage-for-multi-.patch index eb6bfe24addedf..665245a13b9cda 100644 --- a/patches.renesas/0094-ASoC-rcar-fixup-of_clk_add_provider-usage-for-multi-.patch +++ b/patches.renesas/0094-ASoC-rcar-fixup-of_clk_add_provider-usage-for-multi-.patch @@ -13,14 +13,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit d7f298197a22f11b38059f257842dac7c30a564c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 14 ++++++-------- + sound/soc/sh/rcar/adg.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 54146f66538c..33378618deeb 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -537,16 +537,14 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -537,16 +537,14 @@ static void rsnd_adg_get_clkout(struct r clk = clk_register_fixed_rate(dev, clkout_name[i], parent_clk_name, 0, req_rate); @@ -43,6 +41,3 @@ index 54146f66538c..33378618deeb 100644 } adg->ckr = ckr; --- -2.13.3 - diff --git a/patches.renesas/0095-ASoC-rcar-call-missing-of_clk_del_provider-when-remo.patch b/patches.renesas/0095-ASoC-rcar-call-missing-of_clk_del_provider-when-remo.patch index e22ec802935ce0..03d62765907bea 100644 --- a/patches.renesas/0095-ASoC-rcar-call-missing-of_clk_del_provider-when-remo.patch +++ b/patches.renesas/0095-ASoC-rcar-call-missing-of_clk_del_provider-when-remo.patch @@ -13,14 +13,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit b5aac5a9adf667f907c34c520e023bc19f8c226c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 5 +++++ + sound/soc/sh/rcar/adg.c | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 33378618deeb..214a9ce90bb4 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -590,5 +590,10 @@ int rsnd_adg_probe(struct rsnd_priv *priv) +@@ -590,5 +590,10 @@ int rsnd_adg_probe(struct rsnd_priv *pri void rsnd_adg_remove(struct rsnd_priv *priv) { @@ -31,6 +29,3 @@ index 33378618deeb..214a9ce90bb4 100644 + rsnd_adg_clk_disable(priv); } --- -2.13.3 - diff --git a/patches.renesas/0096-ASoC-rsnd-tidyup-src-convert_rate-reset-timing.patch b/patches.renesas/0096-ASoC-rsnd-tidyup-src-convert_rate-reset-timing.patch index fbaaf6241562a9..9e816e862addd6 100644 --- a/patches.renesas/0096-ASoC-rsnd-tidyup-src-convert_rate-reset-timing.patch +++ b/patches.renesas/0096-ASoC-rsnd-tidyup-src-convert_rate-reset-timing.patch @@ -23,14 +23,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit fc99d23f6d3ec6b17772915114018444393e0ad1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/src.c | 3 +-- + sound/soc/sh/rcar/src.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c -index 42db48db09ba..20b5b2ec625e 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c -@@ -167,6 +167,7 @@ static int rsnd_src_hw_params(struct rsnd_mod *mod, +@@ -167,6 +167,7 @@ static int rsnd_src_hw_params(struct rsn * dpcm_fe_dai_hw_params() * dpcm_be_dai_hw_params() */ @@ -38,7 +36,7 @@ index 42db48db09ba..20b5b2ec625e 100644 if (fe->dai_link->dynamic) { int stream = substream->stream; struct snd_soc_dpcm *dpcm; -@@ -414,8 +415,6 @@ static int rsnd_src_quit(struct rsnd_mod *mod, +@@ -414,8 +415,6 @@ static int rsnd_src_quit(struct rsnd_mod rsnd_mod_power_off(mod); @@ -47,6 +45,3 @@ index 42db48db09ba..20b5b2ec625e 100644 /* reset sync convert_rate */ src->sync.val = 0; --- -2.13.3 - diff --git a/patches.renesas/0097-ASoC-rsnd-merge-rsnd_kctrl_new_m-s-e-into-rsnd_kctrl.patch b/patches.renesas/0097-ASoC-rsnd-merge-rsnd_kctrl_new_m-s-e-into-rsnd_kctrl.patch index 42483fc5fe12d3..fd64fd3a2c6f2e 100644 --- a/patches.renesas/0097-ASoC-rsnd-merge-rsnd_kctrl_new_m-s-e-into-rsnd_kctrl.patch +++ b/patches.renesas/0097-ASoC-rsnd-merge-rsnd_kctrl_new_m-s-e-into-rsnd_kctrl.patch @@ -14,16 +14,14 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 32973dcf71ebee8806a6ee552665c5fad6857e16) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/core.c | 96 +++++++++++++++++------------------------------- - sound/soc/sh/rcar/dvc.c | 8 ++-- - sound/soc/sh/rcar/rsnd.h | 50 ++++++++++++------------- + sound/soc/sh/rcar/core.c | 96 ++++++++++++++++------------------------------- + sound/soc/sh/rcar/dvc.c | 8 +-- + sound/soc/sh/rcar/rsnd.h | 50 +++++++++++------------- 3 files changed, 62 insertions(+), 92 deletions(-) -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index 35c96e4bbd64..f8eb9d3d1949 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c -@@ -1000,13 +1000,30 @@ static int rsnd_kctrl_put(struct snd_kcontrol *kctrl, +@@ -1000,13 +1000,30 @@ static int rsnd_kctrl_put(struct snd_kco return change; } @@ -61,7 +59,7 @@ index 35c96e4bbd64..f8eb9d3d1949 100644 { struct snd_card *card = rtd->card->snd_card; struct snd_kcontrol *kctrl; -@@ -1021,6 +1038,9 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod, +@@ -1021,6 +1038,9 @@ static int __rsnd_kctrl_new(struct rsnd_ }; int ret; @@ -71,7 +69,7 @@ index 35c96e4bbd64..f8eb9d3d1949 100644 kctrl = snd_ctl_new1(&knew, mod); if (!kctrl) return -ENOMEM; -@@ -1029,65 +1049,17 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod, +@@ -1029,65 +1049,17 @@ static int __rsnd_kctrl_new(struct rsnd_ if (ret < 0) return ret; @@ -144,11 +142,9 @@ index 35c96e4bbd64..f8eb9d3d1949 100644 /* * snd_soc_platform */ -diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c -index 994fdb7d0034..463de8360985 100644 --- a/sound/soc/sh/rcar/dvc.c +++ b/sound/soc/sh/rcar/dvc.c -@@ -285,18 +285,18 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod, +@@ -285,18 +285,18 @@ static int rsnd_dvc_pcm_new(struct rsnd_ ret = rsnd_kctrl_new_e(mod, io, rtd, is_play ? "DVC Out Ramp Up Rate" : "DVC In Ramp Up Rate", @@ -171,8 +167,6 @@ index 994fdb7d0034..463de8360985 100644 if (ret < 0) return ret; -diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h -index 81ef3f18834a..3dc9e06f5943 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -611,32 +611,30 @@ struct rsnd_kctrl_cfg_s { @@ -232,6 +226,3 @@ index 81ef3f18834a..3dc9e06f5943 100644 /* * R-Car SSI --- -2.13.3 - diff --git a/patches.renesas/0098-ASoC-rsnd-rsnd_mod_make_sure-is-not-under-DEBUG.patch b/patches.renesas/0098-ASoC-rsnd-rsnd_mod_make_sure-is-not-under-DEBUG.patch index 127c7773e6bf54..48254f7bbec0a9 100644 --- a/patches.renesas/0098-ASoC-rsnd-rsnd_mod_make_sure-is-not-under-DEBUG.patch +++ b/patches.renesas/0098-ASoC-rsnd-rsnd_mod_make_sure-is-not-under-DEBUG.patch @@ -12,12 +12,10 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 9ca5e57d78446c8bd42adff3dcae693703f91d9c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/core.c | 2 -- - sound/soc/sh/rcar/rsnd.h | 2 +- + sound/soc/sh/rcar/core.c | 2 -- + sound/soc/sh/rcar/rsnd.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index f8eb9d3d1949..1744015408c3 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -110,7 +110,6 @@ MODULE_DEVICE_TABLE(of, rsnd_of_match); @@ -28,7 +26,7 @@ index f8eb9d3d1949..1744015408c3 100644 void rsnd_mod_make_sure(struct rsnd_mod *mod, enum rsnd_mod_type type) { if (mod->type != type) { -@@ -121,7 +120,6 @@ void rsnd_mod_make_sure(struct rsnd_mod *mod, enum rsnd_mod_type type) +@@ -121,7 +120,6 @@ void rsnd_mod_make_sure(struct rsnd_mod rsnd_mod_name(mod), rsnd_mod_id(mod)); } } @@ -36,11 +34,9 @@ index f8eb9d3d1949..1744015408c3 100644 char *rsnd_mod_name(struct rsnd_mod *mod) { -diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h -index 3dc9e06f5943..dbf4163427e8 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h -@@ -727,8 +727,8 @@ void rsnd_cmd_remove(struct rsnd_priv *priv); +@@ -727,8 +727,8 @@ void rsnd_cmd_remove(struct rsnd_priv *p int rsnd_cmd_attach(struct rsnd_dai_stream *io, int id); struct rsnd_mod *rsnd_cmd_mod_get(struct rsnd_priv *priv, int id); @@ -50,6 +46,3 @@ index 3dc9e06f5943..dbf4163427e8 100644 #define rsnd_mod_confirm_ssi(mssi) rsnd_mod_make_sure(mssi, RSND_MOD_SSI) #define rsnd_mod_confirm_src(msrc) rsnd_mod_make_sure(msrc, RSND_MOD_SRC) #define rsnd_mod_confirm_dvc(mdvc) rsnd_mod_make_sure(mdvc, RSND_MOD_DVC) --- -2.13.3 - diff --git a/patches.renesas/0099-ASoC-rsnd-enable-clock-frequency-for-both-44.1kHz-48.patch b/patches.renesas/0099-ASoC-rsnd-enable-clock-frequency-for-both-44.1kHz-48.patch index 7c73bb0b1add55..59fcd2ca3b96a2 100644 --- a/patches.renesas/0099-ASoC-rsnd-enable-clock-frequency-for-both-44.1kHz-48.patch +++ b/patches.renesas/0099-ASoC-rsnd-enable-clock-frequency-for-both-44.1kHz-48.patch @@ -18,11 +18,9 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 25165f79adc76b812bfb4d8f2ab120aafb28d0e6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 39 ++++++++++++++++++++++++++------------- + sound/soc/sh/rcar/adg.c | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 214a9ce90bb4..96fef91b480c 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c @@ -43,6 +43,7 @@ struct rsnd_adg { @@ -33,7 +31,7 @@ index 214a9ce90bb4..96fef91b480c 100644 #define adg_mode_flags(adg) (adg->flags) #define for_each_rsnd_clk(pos, adg, i) \ -@@ -364,7 +365,10 @@ int rsnd_adg_ssi_clk_try_start(struct rsnd_mod *ssi_mod, unsigned int rate) +@@ -364,7 +365,10 @@ found_clock: rsnd_adg_set_ssi_clk(ssi_mod, data); @@ -45,7 +43,7 @@ index 214a9ce90bb4..96fef91b480c 100644 if (0 == (rate % 8000)) ckr = 0x80000000; } -@@ -427,11 +431,14 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -427,11 +431,14 @@ static void rsnd_adg_get_clkout(struct r struct clk *clk; struct device *dev = rsnd_priv_to_dev(priv); struct device_node *np = dev->of_node; @@ -62,7 +60,7 @@ index 214a9ce90bb4..96fef91b480c 100644 const char *parent_clk_name = NULL; static const char * const clkout_name[] = { [CLKOUT] = "audio_clkout", -@@ -452,13 +459,18 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -452,13 +459,18 @@ static void rsnd_adg_get_clkout(struct r * ADG supports BRRA/BRRB output only * this means all clkout0/1/2/3 will be same rate */ @@ -86,7 +84,7 @@ index 214a9ce90bb4..96fef91b480c 100644 /* * This driver is assuming that AUDIO_CLKA/AUDIO_CLKB/AUDIO_CLKC -@@ -505,10 +517,8 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -505,10 +517,8 @@ static void rsnd_adg_get_clkout(struct r rbgb = rbgx; adg->rbgb_rate_for_48khz = rate / div; ckr |= brg_table[i] << 16; @@ -98,7 +96,7 @@ index 214a9ce90bb4..96fef91b480c 100644 } } } -@@ -523,7 +533,7 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -523,7 +533,7 @@ static void rsnd_adg_get_clkout(struct r */ if (!count) { clk = clk_register_fixed_rate(dev, clkout_name[CLKOUT], @@ -107,7 +105,7 @@ index 214a9ce90bb4..96fef91b480c 100644 if (!IS_ERR(clk)) { adg->clkout[CLKOUT] = clk; of_clk_add_provider(np, of_clk_src_simple_get, clk); -@@ -536,7 +546,7 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -536,7 +546,7 @@ static void rsnd_adg_get_clkout(struct r for (i = 0; i < CLKOUTMAX; i++) { clk = clk_register_fixed_rate(dev, clkout_name[i], parent_clk_name, 0, @@ -116,7 +114,7 @@ index 214a9ce90bb4..96fef91b480c 100644 adg->clkout[i] = ERR_PTR(-ENOENT); if (!IS_ERR(clk)) adg->clkout[i] = clk; -@@ -551,6 +561,9 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -551,6 +561,9 @@ static void rsnd_adg_get_clkout(struct r adg->rbga = rbga; adg->rbgb = rbgb; @@ -126,6 +124,3 @@ index 214a9ce90bb4..96fef91b480c 100644 for_each_rsnd_clkout(clk, adg, i) dev_dbg(dev, "clkout %d : %p : %ld\n", i, clk, clk_get_rate(clk)); dev_dbg(dev, "BRGCKR = 0x%08x, BRRA/BRRB = 0x%x/0x%x\n", --- -2.13.3 - diff --git a/patches.renesas/0100-ASoC-rsnd-fix-semicolon.cocci-warnings.patch b/patches.renesas/0100-ASoC-rsnd-fix-semicolon.cocci-warnings.patch index 4e0a7599a19d73..124b8e14ec163e 100644 --- a/patches.renesas/0100-ASoC-rsnd-fix-semicolon.cocci-warnings.patch +++ b/patches.renesas/0100-ASoC-rsnd-fix-semicolon.cocci-warnings.patch @@ -15,14 +15,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 75f9e4adb56fbb8ffaab7d316f0c02df00e4b755) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 2 +- + sound/soc/sh/rcar/adg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 96fef91b480c..faa1a4f09766 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -459,7 +459,7 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -459,7 +459,7 @@ static void rsnd_adg_get_clkout(struct r * ADG supports BRRA/BRRB output only * this means all clkout0/1/2/3 will be same rate */ @@ -31,6 +29,3 @@ index 96fef91b480c..faa1a4f09766 100644 req_size = prop->length / sizeof(u32); of_property_read_u32_array(np, "clock-frequency", req_rate, req_size); --- -2.13.3 - diff --git a/patches.renesas/0101-ASoC-rsnd-Fix-possible-NULL-pointer-dereference.patch b/patches.renesas/0101-ASoC-rsnd-Fix-possible-NULL-pointer-dereference.patch index 22dcdef382bd1b..6bd586815d4bd0 100644 --- a/patches.renesas/0101-ASoC-rsnd-Fix-possible-NULL-pointer-dereference.patch +++ b/patches.renesas/0101-ASoC-rsnd-Fix-possible-NULL-pointer-dereference.patch @@ -21,14 +21,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit e8dffe6c2004278c588b3bb441a3dbe998a3f2e4) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 18 +++++++++++------- + sound/soc/sh/rcar/adg.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index faa1a4f09766..66203d107a11 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -453,13 +453,18 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -453,13 +453,18 @@ static void rsnd_adg_get_clkout(struct r [CLKI] = 0x2, }; @@ -48,7 +46,7 @@ index faa1a4f09766..66203d107a11 100644 req_size = prop->length / sizeof(u32); of_property_read_u32_array(np, "clock-frequency", req_rate, req_size); -@@ -472,6 +477,9 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -472,6 +477,9 @@ static void rsnd_adg_get_clkout(struct r req_48kHz_rate = req_rate[i]; } @@ -58,7 +56,7 @@ index faa1a4f09766..66203d107a11 100644 /* * This driver is assuming that AUDIO_CLKA/AUDIO_CLKB/AUDIO_CLKC * have 44.1kHz or 48kHz base clocks for now. -@@ -481,9 +489,6 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -481,9 +489,6 @@ static void rsnd_adg_get_clkout(struct r * rsnd_adg_ssi_clk_try_start() * rsnd_ssi_master_clk_start() */ @@ -68,7 +66,7 @@ index faa1a4f09766..66203d107a11 100644 adg->rbga_rate_for_441khz = 0; adg->rbgb_rate_for_48khz = 0; for_each_rsnd_clk(clk, adg, i) { -@@ -528,6 +533,7 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -528,6 +533,7 @@ static void rsnd_adg_get_clkout(struct r * this means all clkout0/1/2/3 will be * same rate */ @@ -76,7 +74,7 @@ index faa1a4f09766..66203d107a11 100644 /* * for clkout */ -@@ -557,13 +563,11 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -557,13 +563,11 @@ static void rsnd_adg_get_clkout(struct r &adg->onecell); } @@ -91,6 +89,3 @@ index faa1a4f09766..66203d107a11 100644 for_each_rsnd_clkout(clk, adg, i) dev_dbg(dev, "clkout %d : %p : %ld\n", i, clk, clk_get_rate(clk)); dev_dbg(dev, "BRGCKR = 0x%08x, BRRA/BRRB = 0x%x/0x%x\n", --- -2.13.3 - diff --git a/patches.renesas/0102-ASoC-rsnd-don-t-use-PDTA-bit-for-24bit-on-SSI.patch b/patches.renesas/0102-ASoC-rsnd-don-t-use-PDTA-bit-for-24bit-on-SSI.patch index 1467ed1f2de625..3443f285ae8aac 100644 --- a/patches.renesas/0102-ASoC-rsnd-don-t-use-PDTA-bit-for-24bit-on-SSI.patch +++ b/patches.renesas/0102-ASoC-rsnd-don-t-use-PDTA-bit-for-24bit-on-SSI.patch @@ -17,20 +17,18 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 90431eb49bff6d79814cbf0c96e13597ad53095c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/cmd.c | 1 + - sound/soc/sh/rcar/core.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ - sound/soc/sh/rcar/gen.c | 1 + - sound/soc/sh/rcar/rsnd.h | 2 ++ - sound/soc/sh/rcar/src.c | 12 ++++++++++-- - sound/soc/sh/rcar/ssi.c | 2 +- - sound/soc/sh/rcar/ssiu.c | 3 ++- + sound/soc/sh/rcar/cmd.c | 1 + sound/soc/sh/rcar/core.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++ + sound/soc/sh/rcar/gen.c | 1 + sound/soc/sh/rcar/rsnd.h | 2 + + sound/soc/sh/rcar/src.c | 12 +++++++++-- + sound/soc/sh/rcar/ssi.c | 2 - + sound/soc/sh/rcar/ssiu.c | 3 +- 7 files changed, 68 insertions(+), 4 deletions(-) -diff --git a/sound/soc/sh/rcar/cmd.c b/sound/soc/sh/rcar/cmd.c -index 7d92a24b7cfa..d879c010cf03 100644 --- a/sound/soc/sh/rcar/cmd.c +++ b/sound/soc/sh/rcar/cmd.c -@@ -89,6 +89,7 @@ static int rsnd_cmd_init(struct rsnd_mod *mod, +@@ -89,6 +89,7 @@ static int rsnd_cmd_init(struct rsnd_mod dev_dbg(dev, "ctu/mix path = 0x%08x", data); rsnd_mod_write(mod, CMD_ROUTE_SLCT, data); @@ -38,11 +36,9 @@ index 7d92a24b7cfa..d879c010cf03 100644 rsnd_mod_write(mod, CMD_BUSIF_DALIGN, rsnd_get_dalign(mod, io)); rsnd_adg_set_cmd_timsel_gen2(mod, io); -diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c -index 1744015408c3..8c1f4e2e0c4f 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c -@@ -343,6 +343,57 @@ u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io) +@@ -343,6 +343,57 @@ u32 rsnd_get_dalign(struct rsnd_mod *mod return 0x76543210; } @@ -100,11 +96,9 @@ index 1744015408c3..8c1f4e2e0c4f 100644 /* * rsnd_dai functions */ -diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c -index 63b6d3c28021..4b0980728e13 100644 --- a/sound/soc/sh/rcar/gen.c +++ b/sound/soc/sh/rcar/gen.c -@@ -236,6 +236,7 @@ static int rsnd_gen2_probe(struct rsnd_priv *priv) +@@ -236,6 +236,7 @@ static int rsnd_gen2_probe(struct rsnd_p RSND_GEN_M_REG(SRC_ROUTE_MODE0, 0xc, 0x20), RSND_GEN_M_REG(SRC_CTRL, 0x10, 0x20), RSND_GEN_M_REG(SRC_INT_ENABLE0, 0x18, 0x20), @@ -112,8 +106,6 @@ index 63b6d3c28021..4b0980728e13 100644 RSND_GEN_M_REG(CMD_BUSIF_DALIGN,0x188, 0x20), RSND_GEN_M_REG(CMD_ROUTE_SLCT, 0x18c, 0x20), RSND_GEN_M_REG(CMD_CTRL, 0x190, 0x20), -diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h -index dbf4163427e8..323af41ecfcb 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -73,6 +73,7 @@ enum rsnd_reg { @@ -124,7 +116,7 @@ index dbf4163427e8..323af41ecfcb 100644 RSND_REG_CMD_BUSIF_DALIGN, RSND_REG_CMD_ROUTE_SLCT, RSND_REG_CMDOUT_TIMSEL, -@@ -204,6 +205,7 @@ void rsnd_bset(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg, +@@ -204,6 +205,7 @@ void rsnd_bset(struct rsnd_priv *priv, s u32 mask, u32 data); u32 rsnd_get_adinr_bit(struct rsnd_mod *mod, struct rsnd_dai_stream *io); u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io); @@ -132,11 +124,9 @@ index dbf4163427e8..323af41ecfcb 100644 /* * R-Car DMA -diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c -index 20b5b2ec625e..76a477a3ccb5 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c -@@ -190,11 +190,13 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, +@@ -190,11 +190,13 @@ static void rsnd_src_set_convert_rate(st struct rsnd_priv *priv = rsnd_mod_to_priv(mod); struct device *dev = rsnd_priv_to_dev(priv); struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); @@ -150,7 +140,7 @@ index 20b5b2ec625e..76a477a3ccb5 100644 uint ratio; if (!runtime) -@@ -270,6 +272,11 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, +@@ -270,6 +272,11 @@ static void rsnd_src_set_convert_rate(st break; } @@ -162,7 +152,7 @@ index 20b5b2ec625e..76a477a3ccb5 100644 rsnd_mod_write(mod, SRC_ROUTE_MODE0, route); rsnd_mod_write(mod, SRC_SRCIR, 1); /* initialize */ -@@ -281,8 +288,9 @@ static void rsnd_src_set_convert_rate(struct rsnd_dai_stream *io, +@@ -281,8 +288,9 @@ static void rsnd_src_set_convert_rate(st rsnd_mod_write(mod, SRC_BSISR, bsisr); rsnd_mod_write(mod, SRC_SRCIR, 0); /* cancel initialize */ @@ -174,11 +164,9 @@ index 20b5b2ec625e..76a477a3ccb5 100644 rsnd_mod_write(mod, SRC_BUSIF_DALIGN, rsnd_get_dalign(mod, io)); rsnd_adg_set_src_timesel_gen2(mod, io, fin, fout); -diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c -index 135c5669f796..e43277a5068c 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c -@@ -302,7 +302,7 @@ static void rsnd_ssi_config_init(struct rsnd_mod *mod, +@@ -302,7 +302,7 @@ static void rsnd_ssi_config_init(struct * always use 32bit system word. * see also rsnd_ssi_master_clk_enable() */ @@ -187,11 +175,9 @@ index 135c5669f796..e43277a5068c 100644 if (rdai->bit_clk_inv) cr_own |= SCKP; -diff --git a/sound/soc/sh/rcar/ssiu.c b/sound/soc/sh/rcar/ssiu.c -index 14fafdaf1395..512d238b79e2 100644 --- a/sound/soc/sh/rcar/ssiu.c +++ b/sound/soc/sh/rcar/ssiu.c -@@ -144,7 +144,8 @@ static int rsnd_ssiu_init_gen2(struct rsnd_mod *mod, +@@ -144,7 +144,8 @@ static int rsnd_ssiu_init_gen2(struct rs (rsnd_io_is_play(io) ? rsnd_runtime_channel_after_ctu(io) : rsnd_runtime_channel_original(io))); @@ -201,6 +187,3 @@ index 14fafdaf1395..512d238b79e2 100644 rsnd_mod_write(mod, SSI_BUSIF_DALIGN, rsnd_get_dalign(mod, io)); } --- -2.13.3 - diff --git a/patches.renesas/0103-ASoC-rsnd-don-t-call-free_irq-on-Parent-SSI.patch b/patches.renesas/0103-ASoC-rsnd-don-t-call-free_irq-on-Parent-SSI.patch index 9fda8cc064ffaf..e367d71169633e 100644 --- a/patches.renesas/0103-ASoC-rsnd-don-t-call-free_irq-on-Parent-SSI.patch +++ b/patches.renesas/0103-ASoC-rsnd-don-t-call-free_irq-on-Parent-SSI.patch @@ -16,14 +16,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 1f8754d4daea5f257370a52a30fcb22798c54516) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/ssi.c | 5 +++++ + sound/soc/sh/rcar/ssi.c | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c -index e43277a5068c..c224695c1484 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c -@@ -709,6 +709,11 @@ static int rsnd_ssi_dma_remove(struct rsnd_mod *mod, +@@ -709,6 +709,11 @@ static int rsnd_ssi_dma_remove(struct rs struct rsnd_priv *priv) { struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); @@ -35,6 +33,3 @@ index e43277a5068c..c224695c1484 100644 /* PIO will request IRQ again */ free_irq(ssi->irq, mod); --- -2.13.3 - diff --git a/patches.renesas/0104-ASoC-rsnd-SSI-PIO-adjust-to-24bit-mode.patch b/patches.renesas/0104-ASoC-rsnd-SSI-PIO-adjust-to-24bit-mode.patch index e12d561a11016a..30787ee57e01b4 100644 --- a/patches.renesas/0104-ASoC-rsnd-SSI-PIO-adjust-to-24bit-mode.patch +++ b/patches.renesas/0104-ASoC-rsnd-SSI-PIO-adjust-to-24bit-mode.patch @@ -12,14 +12,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 7819a942de7b993771bd9377babc80485fe7606b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/ssi.c | 11 +++++++++-- + sound/soc/sh/rcar/ssi.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) -diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c -index c224695c1484..91e5c07911b4 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c -@@ -550,6 +550,13 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, +@@ -550,6 +550,13 @@ static void __rsnd_ssi_interrupt(struct struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); u32 *buf = (u32 *)(runtime->dma_area + rsnd_dai_pointer_offset(io, 0)); @@ -33,7 +31,7 @@ index c224695c1484..91e5c07911b4 100644 /* * 8/16/32 data can be assesse to TDR/RDR register -@@ -557,9 +564,9 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, +@@ -557,9 +564,9 @@ static void __rsnd_ssi_interrupt(struct * see rsnd_ssi_init() */ if (rsnd_io_is_play(io)) @@ -45,6 +43,3 @@ index c224695c1484..91e5c07911b4 100644 elapsed = rsnd_dai_pointer_update(io, sizeof(*buf)); } --- -2.13.3 - diff --git a/patches.renesas/0105-ASoC-rsnd-fixup-parent_clk_name-of-AUDIO_CLKOUTx.patch b/patches.renesas/0105-ASoC-rsnd-fixup-parent_clk_name-of-AUDIO_CLKOUTx.patch index f3dcada1bb4b6f..ff091701017fea 100644 --- a/patches.renesas/0105-ASoC-rsnd-fixup-parent_clk_name-of-AUDIO_CLKOUTx.patch +++ b/patches.renesas/0105-ASoC-rsnd-fixup-parent_clk_name-of-AUDIO_CLKOUTx.patch @@ -13,14 +13,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit e8a3ce1130134046e9da132aa4d043566df8237d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/sh/rcar/adg.c | 6 ++++-- + sound/soc/sh/rcar/adg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c -index 66203d107a11..d3b0dc145a56 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c -@@ -507,7 +507,8 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -507,7 +507,8 @@ static void rsnd_adg_get_clkout(struct r rbga = rbgx; adg->rbga_rate_for_441khz = rate / div; ckr |= brg_table[i] << 20; @@ -30,7 +28,7 @@ index 66203d107a11..d3b0dc145a56 100644 parent_clk_name = __clk_get_name(clk); } } -@@ -522,7 +523,8 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv, +@@ -522,7 +523,8 @@ static void rsnd_adg_get_clkout(struct r rbgb = rbgx; adg->rbgb_rate_for_48khz = rate / div; ckr |= brg_table[i] << 16; @@ -40,6 +38,3 @@ index 66203d107a11..d3b0dc145a56 100644 parent_clk_name = __clk_get_name(clk); } } --- -2.13.3 - diff --git a/patches.renesas/0106-soc-renesas-Identify-RZ-G1H.patch b/patches.renesas/0106-soc-renesas-Identify-RZ-G1H.patch index 8564c900d7ba5d..547db7f4455b7a 100644 --- a/patches.renesas/0106-soc-renesas-Identify-RZ-G1H.patch +++ b/patches.renesas/0106-soc-renesas-Identify-RZ-G1H.patch @@ -10,14 +10,12 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 8848e1b14231a40ed66229fb3ee98519b32f2ae7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/soc/renesas/renesas-soc.c | 8 ++++++++ + drivers/soc/renesas/renesas-soc.c | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c -index 330960312296..f0172e59c040 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c -@@ -80,6 +80,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = { +@@ -80,6 +80,11 @@ static const struct renesas_soc soc_rmob .id = 0x40, }; @@ -29,7 +27,7 @@ index 330960312296..f0172e59c040 100644 static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = { .family = &fam_rzg, .id = 0x47, -@@ -150,6 +155,9 @@ static const struct of_device_id renesas_socs[] __initconst = { +@@ -150,6 +155,9 @@ static const struct of_device_id renesas #ifdef CONFIG_ARCH_R8A7740 { .compatible = "renesas,r8a7740", .data = &soc_rmobile_a1 }, #endif @@ -39,6 +37,3 @@ index 330960312296..f0172e59c040 100644 #ifdef CONFIG_ARCH_R8A7743 { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m }, #endif --- -2.13.3 - diff --git a/patches.renesas/0107-soc-renesas-Identify-RZ-G1N.patch b/patches.renesas/0107-soc-renesas-Identify-RZ-G1N.patch index 894cefc9f701e9..87de90d73a0b62 100644 --- a/patches.renesas/0107-soc-renesas-Identify-RZ-G1N.patch +++ b/patches.renesas/0107-soc-renesas-Identify-RZ-G1N.patch @@ -10,14 +10,12 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit cd59de80dd34dd2d1a3ca97d7a6e712c048b135a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/soc/renesas/renesas-soc.c | 8 ++++++++ + drivers/soc/renesas/renesas-soc.c | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c -index f0172e59c040..b894cf64225b 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c -@@ -90,6 +90,11 @@ static const struct renesas_soc soc_rz_g1m __initconst __maybe_unused = { +@@ -90,6 +90,11 @@ static const struct renesas_soc soc_rz_g .id = 0x47, }; @@ -29,7 +27,7 @@ index f0172e59c040..b894cf64225b 100644 static const struct renesas_soc soc_rz_g1e __initconst __maybe_unused = { .family = &fam_rzg, .id = 0x4c, -@@ -161,6 +166,9 @@ static const struct of_device_id renesas_socs[] __initconst = { +@@ -161,6 +166,9 @@ static const struct of_device_id renesas #ifdef CONFIG_ARCH_R8A7743 { .compatible = "renesas,r8a7743", .data = &soc_rz_g1m }, #endif @@ -39,6 +37,3 @@ index f0172e59c040..b894cf64225b 100644 #ifdef CONFIG_ARCH_R8A7745 { .compatible = "renesas,r8a7745", .data = &soc_rz_g1e }, #endif --- -2.13.3 - diff --git a/patches.renesas/0108-soc-renesas-Register-SoC-device-early.patch b/patches.renesas/0108-soc-renesas-Register-SoC-device-early.patch index 2a8c3d4ecb6772..d8820f98a1cde8 100644 --- a/patches.renesas/0108-soc-renesas-Register-SoC-device-early.patch +++ b/patches.renesas/0108-soc-renesas-Register-SoC-device-early.patch @@ -15,11 +15,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit b1d134ba9de2b7a136406530e34fc8b110ba6efd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/soc/renesas/renesas-soc.c | 2 +- + drivers/soc/renesas/renesas-soc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c -index b894cf64225b..ca26f13d399c 100644 --- a/drivers/soc/renesas/renesas-soc.c +++ b/drivers/soc/renesas/renesas-soc.c @@ -270,4 +270,4 @@ static int __init renesas_soc_init(void) @@ -28,6 +26,3 @@ index b894cf64225b..ca26f13d399c 100644 } -core_initcall(renesas_soc_init); +early_initcall(renesas_soc_init); --- -2.13.3 - diff --git a/patches.renesas/0109-ata-sata_rcar-Handle-return-value-of-clk_prepare_ena.patch b/patches.renesas/0109-ata-sata_rcar-Handle-return-value-of-clk_prepare_ena.patch index ec80bccd35d305..340010d9dbce5a 100644 --- a/patches.renesas/0109-ata-sata_rcar-Handle-return-value-of-clk_prepare_ena.patch +++ b/patches.renesas/0109-ata-sata_rcar-Handle-return-value-of-clk_prepare_ena.patch @@ -14,14 +14,12 @@ Signed-off-by: Tejun Heo <tj@kernel.org> (cherry picked from commit 5dc63fdcc09f47fb226b8bc7d83a61feb787d817) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/ata/sata_rcar.c | 15 ++++++++++++--- + drivers/ata/sata_rcar.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) -diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c -index 5d38245a7a73..b7939a2c1fab 100644 --- a/drivers/ata/sata_rcar.c +++ b/drivers/ata/sata_rcar.c -@@ -890,7 +890,10 @@ static int sata_rcar_probe(struct platform_device *pdev) +@@ -890,7 +890,10 @@ static int sata_rcar_probe(struct platfo dev_err(&pdev->dev, "failed to get access to sata clock\n"); return PTR_ERR(priv->clk); } @@ -33,7 +31,7 @@ index 5d38245a7a73..b7939a2c1fab 100644 host = ata_host_alloc(&pdev->dev, 1); if (!host) { -@@ -970,8 +973,11 @@ static int sata_rcar_resume(struct device *dev) +@@ -970,8 +973,11 @@ static int sata_rcar_resume(struct devic struct ata_host *host = dev_get_drvdata(dev); struct sata_rcar_priv *priv = host->private_data; void __iomem *base = priv->base; @@ -46,7 +44,7 @@ index 5d38245a7a73..b7939a2c1fab 100644 /* ack and mask */ iowrite32(0, base + SATAINTSTAT_REG); -@@ -988,8 +994,11 @@ static int sata_rcar_restore(struct device *dev) +@@ -988,8 +994,11 @@ static int sata_rcar_restore(struct devi { struct ata_host *host = dev_get_drvdata(dev); struct sata_rcar_priv *priv = host->private_data; @@ -59,6 +57,3 @@ index 5d38245a7a73..b7939a2c1fab 100644 sata_rcar_setup_port(host); --- -2.13.3 - diff --git a/patches.renesas/0110-clocksource-sh_cmt-Compute-rate-before-registration-.patch b/patches.renesas/0110-clocksource-sh_cmt-Compute-rate-before-registration-.patch index ff593c0655d834..61e69e2f2d0703 100644 --- a/patches.renesas/0110-clocksource-sh_cmt-Compute-rate-before-registration-.patch +++ b/patches.renesas/0110-clocksource-sh_cmt-Compute-rate-before-registration-.patch @@ -54,11 +54,9 @@ Signed-off-by: John Stultz <john.stultz@linaro.org> (cherry picked from commit 890f423b266623e1cfb3a97b864f3e5039bdfbb9) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clocksource/sh_cmt.c | 45 ++++++++++++++++++++++++-------------------- + drivers/clocksource/sh_cmt.c | 45 +++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) -diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c -index 103c49362c68..3038885d4180 100644 --- a/drivers/clocksource/sh_cmt.c +++ b/drivers/clocksource/sh_cmt.c @@ -103,7 +103,6 @@ struct sh_cmt_channel { @@ -77,7 +75,7 @@ index 103c49362c68..3038885d4180 100644 raw_spinlock_t lock; /* Protect the shared start/stop register */ -@@ -320,7 +320,7 @@ static void sh_cmt_start_stop_ch(struct sh_cmt_channel *ch, int start) +@@ -320,7 +320,7 @@ static void sh_cmt_start_stop_ch(struct raw_spin_unlock_irqrestore(&ch->cmt->lock, flags); } @@ -86,7 +84,7 @@ index 103c49362c68..3038885d4180 100644 { int k, ret; -@@ -340,11 +340,9 @@ static int sh_cmt_enable(struct sh_cmt_channel *ch, unsigned long *rate) +@@ -340,11 +340,9 @@ static int sh_cmt_enable(struct sh_cmt_c /* configure channel, periodic mode and maximum timeout */ if (ch->cmt->info->width == 16) { @@ -98,7 +96,7 @@ index 103c49362c68..3038885d4180 100644 sh_cmt_write_cmcsr(ch, SH_CMT32_CMCSR_CMM | SH_CMT32_CMCSR_CMTOUT_IE | SH_CMT32_CMCSR_CMR_IRQ | -@@ -572,7 +570,7 @@ static int sh_cmt_start(struct sh_cmt_channel *ch, unsigned long flag) +@@ -572,7 +570,7 @@ static int sh_cmt_start(struct sh_cmt_ch raw_spin_lock_irqsave(&ch->lock, flags); if (!(ch->flags & (FLAG_CLOCKEVENT | FLAG_CLOCKSOURCE))) @@ -107,7 +105,7 @@ index 103c49362c68..3038885d4180 100644 if (ret) goto out; -@@ -640,10 +638,9 @@ static int sh_cmt_clocksource_enable(struct clocksource *cs) +@@ -640,10 +638,9 @@ static int sh_cmt_clocksource_enable(str ch->total_cycles = 0; ret = sh_cmt_start(ch, FLAG_CLOCKSOURCE); @@ -120,7 +118,7 @@ index 103c49362c68..3038885d4180 100644 return ret; } -@@ -697,8 +694,7 @@ static int sh_cmt_register_clocksource(struct sh_cmt_channel *ch, +@@ -697,8 +694,7 @@ static int sh_cmt_register_clocksource(s dev_info(&ch->cmt->pdev->dev, "ch%u: used as clock source\n", ch->index); @@ -130,7 +128,7 @@ index 103c49362c68..3038885d4180 100644 return 0; } -@@ -709,19 +705,10 @@ static struct sh_cmt_channel *ced_to_sh_cmt(struct clock_event_device *ced) +@@ -709,19 +705,10 @@ static struct sh_cmt_channel *ced_to_sh_ static void sh_cmt_clock_event_start(struct sh_cmt_channel *ch, int periodic) { @@ -151,7 +149,7 @@ index 103c49362c68..3038885d4180 100644 else sh_cmt_set_next(ch, ch->max_match_value); } -@@ -824,6 +811,12 @@ static int sh_cmt_register_clockevent(struct sh_cmt_channel *ch, +@@ -824,6 +811,12 @@ static int sh_cmt_register_clockevent(st ced->suspend = sh_cmt_clock_event_suspend; ced->resume = sh_cmt_clock_event_resume; @@ -164,7 +162,7 @@ index 103c49362c68..3038885d4180 100644 dev_info(&ch->cmt->pdev->dev, "ch%u: used for clock events\n", ch->index); clockevents_register_device(ced); -@@ -996,6 +989,18 @@ static int sh_cmt_setup(struct sh_cmt_device *cmt, struct platform_device *pdev) +@@ -996,6 +989,18 @@ static int sh_cmt_setup(struct sh_cmt_de if (ret < 0) goto err_clk_put; @@ -183,6 +181,3 @@ index 103c49362c68..3038885d4180 100644 /* Map the memory resource(s). */ ret = sh_cmt_map_memory(cmt); if (ret < 0) --- -2.13.3 - diff --git a/patches.renesas/0111-clockevents-drivers-sh_cmt-Set-min_delta_ticks-and-m.patch b/patches.renesas/0111-clockevents-drivers-sh_cmt-Set-min_delta_ticks-and-m.patch index b4c133ea3a4f3a..6eee213ac46060 100644 --- a/patches.renesas/0111-clockevents-drivers-sh_cmt-Set-min_delta_ticks-and-m.patch +++ b/patches.renesas/0111-clockevents-drivers-sh_cmt-Set-min_delta_ticks-and-m.patch @@ -30,14 +30,12 @@ Signed-off-by: John Stultz <john.stultz@linaro.org> (cherry picked from commit bb2e94ac0cf4628f5e5f778c8de4a376dac43558) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clocksource/sh_cmt.c | 2 ++ + drivers/clocksource/sh_cmt.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c -index 3038885d4180..97ce6bf27f7c 100644 --- a/drivers/clocksource/sh_cmt.c +++ b/drivers/clocksource/sh_cmt.c -@@ -815,7 +815,9 @@ static int sh_cmt_register_clockevent(struct sh_cmt_channel *ch, +@@ -815,7 +815,9 @@ static int sh_cmt_register_clockevent(st ced->shift = 32; ced->mult = div_sc(ch->cmt->rate, NSEC_PER_SEC, ced->shift); ced->max_delta_ns = clockevent_delta2ns(ch->max_match_value, ced); @@ -47,6 +45,3 @@ index 3038885d4180..97ce6bf27f7c 100644 dev_info(&ch->cmt->pdev->dev, "ch%u: used for clock events\n", ch->index); --- -2.13.3 - diff --git a/patches.renesas/0112-sh_eth-Use-platform-device-for-printing-before-regis.patch b/patches.renesas/0112-sh_eth-Use-platform-device-for-printing-before-regis.patch index 39bff78d0e9262..f1c99dc9b1642f 100644 --- a/patches.renesas/0112-sh_eth-Use-platform-device-for-printing-before-regis.patch +++ b/patches.renesas/0112-sh_eth-Use-platform-device-for-printing-before-regis.patch @@ -20,14 +20,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 5f5c5449acad0cd3322e53e1ac68c044483b0aa5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/net/ethernet/renesas/sh_eth.c | 2 +- + drivers/net/ethernet/renesas/sh_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c -index b1e9f3f412e0..07e8fce2b9a4 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c -@@ -3222,7 +3222,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) +@@ -3222,7 +3222,7 @@ static int sh_eth_drv_probe(struct platf /* MDIO bus init */ ret = sh_mdio_init(mdp, pd); if (ret) { @@ -36,6 +34,3 @@ index b1e9f3f412e0..07e8fce2b9a4 100644 goto out_release; } --- -2.13.3 - diff --git a/patches.renesas/0113-sh_eth-Do-not-print-an-error-message-for-probe-defer.patch b/patches.renesas/0113-sh_eth-Do-not-print-an-error-message-for-probe-defer.patch index 8849ef769b1214..09fd689c677737 100644 --- a/patches.renesas/0113-sh_eth-Do-not-print-an-error-message-for-probe-defer.patch +++ b/patches.renesas/0113-sh_eth-Do-not-print-an-error-message-for-probe-defer.patch @@ -19,14 +19,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit b7ce520e9f71ff65d0aa0ad86223f94ae4095fae) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/net/ethernet/renesas/sh_eth.c | 3 ++- + drivers/net/ethernet/renesas/sh_eth.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c -index 07e8fce2b9a4..30ce538e92dd 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c -@@ -3222,7 +3222,8 @@ static int sh_eth_drv_probe(struct platform_device *pdev) +@@ -3222,7 +3222,8 @@ static int sh_eth_drv_probe(struct platf /* MDIO bus init */ ret = sh_mdio_init(mdp, pd); if (ret) { @@ -36,6 +34,3 @@ index 07e8fce2b9a4..30ce538e92dd 100644 goto out_release; } --- -2.13.3 - diff --git a/patches.renesas/0114-mmc-sh_mmcif-Document-r7s72100-DT-bindings.patch b/patches.renesas/0114-mmc-sh_mmcif-Document-r7s72100-DT-bindings.patch index 9393a7e2d6f67c..0e613227ed4b34 100644 --- a/patches.renesas/0114-mmc-sh_mmcif-Document-r7s72100-DT-bindings.patch +++ b/patches.renesas/0114-mmc-sh_mmcif-Document-r7s72100-DT-bindings.patch @@ -11,11 +11,9 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 474e25e15f508889d4f8c672ab54323743ee595b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 8 ++++++++ + Documentation/devicetree/bindings/mmc/renesas,mmcif.txt | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt -index e4ba92aa035e..c32dc5a9dbe6 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +++ b/Documentation/devicetree/bindings/mmc/renesas,mmcif.txt @@ -8,6 +8,7 @@ Required properties: @@ -40,6 +38,3 @@ index e4ba92aa035e..c32dc5a9dbe6 100644 - clocks: reference to the functional clock - dmas: reference to the DMA channels, one per channel name listed in the --- -2.13.3 - diff --git a/patches.renesas/0115-media-sh_mobile_ceu_camera-use-module_platform_drive.patch b/patches.renesas/0115-media-sh_mobile_ceu_camera-use-module_platform_drive.patch index 3f22c327cea14c..96df464ed2dea5 100644 --- a/patches.renesas/0115-media-sh_mobile_ceu_camera-use-module_platform_drive.patch +++ b/patches.renesas/0115-media-sh_mobile_ceu_camera-use-module_platform_drive.patch @@ -12,14 +12,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 855749a75609122b57b2d4ebd872944836388a14) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c | 13 +------------ + drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) -diff --git a/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c b/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c -index a15bfb5aea47..96dc01750bc0 100644 --- a/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c +++ b/drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c -@@ -1801,18 +1801,7 @@ static struct platform_driver sh_mobile_ceu_driver = { +@@ -1801,18 +1801,7 @@ static struct platform_driver sh_mobile_ .remove = sh_mobile_ceu_remove, }; @@ -39,6 +37,3 @@ index a15bfb5aea47..96dc01750bc0 100644 MODULE_DESCRIPTION("SuperH Mobile CEU driver"); MODULE_AUTHOR("Magnus Damm"); --- -2.13.3 - diff --git a/patches.renesas/0116-mmc-tmio-ensure-end-of-DMA-and-SD-access-are-in-sync.patch b/patches.renesas/0116-mmc-tmio-ensure-end-of-DMA-and-SD-access-are-in-sync.patch index 94a8071f2d1836..be85fe76cd33c1 100644 --- a/patches.renesas/0116-mmc-tmio-ensure-end-of-DMA-and-SD-access-are-in-sync.patch +++ b/patches.renesas/0116-mmc-tmio-ensure-end-of-DMA-and-SD-access-are-in-sync.patch @@ -26,13 +26,11 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 52ad9a8e854ca13151f4af8140297f73d49e318a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc.h | 2 +- - drivers/mmc/host/tmio_mmc_dma.c | 58 ++++++++++++++++++++++++----------------- - drivers/mmc/host/tmio_mmc_pio.c | 4 +-- + drivers/mmc/host/tmio_mmc.h | 2 - + drivers/mmc/host/tmio_mmc_dma.c | 58 +++++++++++++++++++++++----------------- + drivers/mmc/host/tmio_mmc_pio.c | 4 +- 3 files changed, 37 insertions(+), 27 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h -index 26eb9401b3f3..3f25984cf184 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -136,7 +136,7 @@ struct tmio_mmc_host { @@ -44,11 +42,9 @@ index 26eb9401b3f3..3f25984cf184 100644 struct tasklet_struct dma_issue; struct scatterlist bounce_sg; u8 *bounce_buf; -diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c -index fa8a936a3d9b..c7684fa91f1f 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c -@@ -43,6 +43,31 @@ void tmio_mmc_abort_dma(struct tmio_mmc_host *host) +@@ -43,6 +43,31 @@ void tmio_mmc_abort_dma(struct tmio_mmc_ tmio_mmc_enable_dma(host, true); } @@ -80,7 +76,7 @@ index fa8a936a3d9b..c7684fa91f1f 100644 static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) { struct scatterlist *sg = host->sg_ptr, *sg_tmp; -@@ -88,6 +113,10 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) +@@ -88,6 +113,10 @@ static void tmio_mmc_start_dma_rx(struct DMA_DEV_TO_MEM, DMA_CTRL_ACK); if (desc) { @@ -91,7 +87,7 @@ index fa8a936a3d9b..c7684fa91f1f 100644 cookie = dmaengine_submit(desc); if (cookie < 0) { desc = NULL; -@@ -162,6 +191,10 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) +@@ -162,6 +191,10 @@ static void tmio_mmc_start_dma_tx(struct DMA_MEM_TO_DEV, DMA_CTRL_ACK); if (desc) { @@ -102,7 +98,7 @@ index fa8a936a3d9b..c7684fa91f1f 100644 cookie = dmaengine_submit(desc); if (cookie < 0) { desc = NULL; -@@ -221,29 +254,6 @@ static void tmio_mmc_issue_tasklet_fn(unsigned long priv) +@@ -221,29 +254,6 @@ static void tmio_mmc_issue_tasklet_fn(un dma_async_issue_pending(chan); } @@ -132,7 +128,7 @@ index fa8a936a3d9b..c7684fa91f1f 100644 void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdata) { /* We can only either use DMA for both Tx and Rx or not use it at all */ -@@ -306,7 +316,7 @@ void tmio_mmc_request_dma(struct tmio_mmc_host *host, struct tmio_mmc_data *pdat +@@ -306,7 +316,7 @@ void tmio_mmc_request_dma(struct tmio_mm if (!host->bounce_buf) goto ebouncebuf; @@ -141,11 +137,9 @@ index fa8a936a3d9b..c7684fa91f1f 100644 tasklet_init(&host->dma_issue, tmio_mmc_issue_tasklet_fn, (unsigned long)host); } -diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c -index 6b789a739d4d..c41f2252945e 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c -@@ -596,11 +596,11 @@ static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) +@@ -596,11 +596,11 @@ static void tmio_mmc_data_irq(struct tmi if (done) { tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); @@ -159,6 +153,3 @@ index 6b789a739d4d..c41f2252945e 100644 } else { tmio_mmc_do_data_irq(host); tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_READOP | TMIO_MASK_WRITEOP); --- -2.13.3 - diff --git a/patches.renesas/0117-mmc-host-tmio-use-defines-for-CTL_STOP_INTERNAL_ACTI.patch b/patches.renesas/0117-mmc-host-tmio-use-defines-for-CTL_STOP_INTERNAL_ACTI.patch index 930a949b25e477..0703cc8fdeba24 100644 --- a/patches.renesas/0117-mmc-host-tmio-use-defines-for-CTL_STOP_INTERNAL_ACTI.patch +++ b/patches.renesas/0117-mmc-host-tmio-use-defines-for-CTL_STOP_INTERNAL_ACTI.patch @@ -10,12 +10,10 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 9afcbf4a6f1995f3b47088764eaef7b56154beb9) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc.h | 4 ++++ - drivers/mmc/host/tmio_mmc_pio.c | 6 +++--- + drivers/mmc/host/tmio_mmc.h | 4 ++++ + drivers/mmc/host/tmio_mmc_pio.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h -index 3f25984cf184..eb913c8c4e6e 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -49,6 +49,10 @@ @@ -29,11 +27,9 @@ index 3f25984cf184..eb913c8c4e6e 100644 /* Definitions for values the CTRL_STATUS register can take. */ #define TMIO_STAT_CMDRESPEND BIT(0) #define TMIO_STAT_DATAEND BIT(2) -diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c -index c41f2252945e..c655c9de1dde 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c -@@ -340,7 +340,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command +@@ -340,7 +340,7 @@ static int tmio_mmc_start_command(struct /* CMD12 is handled by hardware */ if (cmd->opcode == MMC_STOP_TRANSMISSION && !cmd->arg) { @@ -42,7 +38,7 @@ index c41f2252945e..c655c9de1dde 100644 return 0; } -@@ -367,7 +367,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command +@@ -367,7 +367,7 @@ static int tmio_mmc_start_command(struct if (data) { c |= DATA_PRESENT; if (data->blocks > 1) { @@ -51,7 +47,7 @@ index c41f2252945e..c655c9de1dde 100644 c |= TRANSFER_MULTI; /* -@@ -554,7 +554,7 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) +@@ -554,7 +554,7 @@ void tmio_mmc_do_data_irq(struct tmio_mm if (stop) { if (stop->opcode == MMC_STOP_TRANSMISSION && !stop->arg) @@ -60,6 +56,3 @@ index c41f2252945e..c655c9de1dde 100644 else BUG(); } --- -2.13.3 - diff --git a/patches.renesas/0118-mmc-host-tmio-fix-minor-typos-in-comments.patch b/patches.renesas/0118-mmc-host-tmio-fix-minor-typos-in-comments.patch index d69e6c179770d9..e7c18f7aa39176 100644 --- a/patches.renesas/0118-mmc-host-tmio-fix-minor-typos-in-comments.patch +++ b/patches.renesas/0118-mmc-host-tmio-fix-minor-typos-in-comments.patch @@ -11,11 +11,9 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit d8acd16c84c32a65a291e8f16ba4cb3b6d182e30) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc.h | 6 +++--- + drivers/mmc/host/tmio_mmc.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h -index eb913c8c4e6e..900258350b65 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -53,7 +53,7 @@ @@ -45,6 +43,3 @@ index eb913c8c4e6e..900258350b65 100644 #define TMIO_SDIO_STAT_IOIRQ 0x0001 #define TMIO_SDIO_STAT_EXPUB52 0x4000 #define TMIO_SDIO_STAT_EXWT 0x8000 --- -2.13.3 - diff --git a/patches.renesas/0119-mmc-host-tmio-don-t-BUG-on-unsupported-stop-commands.patch b/patches.renesas/0119-mmc-host-tmio-don-t-BUG-on-unsupported-stop-commands.patch index 70a4b48a3a6a4c..42bb2be1627753 100644 --- a/patches.renesas/0119-mmc-host-tmio-don-t-BUG-on-unsupported-stop-commands.patch +++ b/patches.renesas/0119-mmc-host-tmio-don-t-BUG-on-unsupported-stop-commands.patch @@ -13,14 +13,12 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 022f731e03d190d0e4f52f2b1bd90fae0eadd56d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc_pio.c | 9 +++++---- + drivers/mmc/host/tmio_mmc_pio.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c -index c655c9de1dde..42a912a3de67 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c -@@ -553,10 +553,11 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) +@@ -553,10 +553,11 @@ void tmio_mmc_do_data_irq(struct tmio_mm } if (stop) { @@ -36,6 +34,3 @@ index c655c9de1dde..42a912a3de67 100644 } schedule_work(&host->done); --- -2.13.3 - diff --git a/patches.renesas/0120-mmc-host-tmio-fill-in-response-from-auto-cmd12.patch b/patches.renesas/0120-mmc-host-tmio-fill-in-response-from-auto-cmd12.patch index f7665f10e03856..88c02155b5c7e0 100644 --- a/patches.renesas/0120-mmc-host-tmio-fill-in-response-from-auto-cmd12.patch +++ b/patches.renesas/0120-mmc-host-tmio-fill-in-response-from-auto-cmd12.patch @@ -15,14 +15,12 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit eb7c00e1461124ad0e85f1a9a3954d7164809c13) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc_pio.c | 3 +++ + drivers/mmc/host/tmio_mmc_pio.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c -index 42a912a3de67..5b01d22932cd 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c -@@ -557,6 +557,9 @@ void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) +@@ -557,6 +557,9 @@ void tmio_mmc_do_data_irq(struct tmio_mm dev_err(&host->pdev->dev, "unsupported stop: CMD%u,0x%x. We did CMD12,0\n", stop->opcode, stop->arg); @@ -32,6 +30,3 @@ index 42a912a3de67..5b01d22932cd 100644 sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); } --- -2.13.3 - diff --git a/patches.renesas/0121-mmc-tmio-always-unmap-DMA-before-waiting-for-interru.patch b/patches.renesas/0121-mmc-tmio-always-unmap-DMA-before-waiting-for-interru.patch index d6018d950d0e5f..4a3e7eaece85db 100644 --- a/patches.renesas/0121-mmc-tmio-always-unmap-DMA-before-waiting-for-interru.patch +++ b/patches.renesas/0121-mmc-tmio-always-unmap-DMA-before-waiting-for-interru.patch @@ -16,14 +16,12 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 5f07ef8f603ace496ca8c20eef446c5ae7a10474) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc_dma.c | 7 +++++-- + drivers/mmc/host/tmio_mmc_dma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c -index c7684fa91f1f..e2093db2b7ff 100644 --- a/drivers/mmc/host/tmio_mmc_dma.c +++ b/drivers/mmc/host/tmio_mmc_dma.c -@@ -47,8 +47,6 @@ static void tmio_mmc_dma_callback(void *arg) +@@ -47,8 +47,6 @@ static void tmio_mmc_dma_callback(void * { struct tmio_mmc_host *host = arg; @@ -32,7 +30,7 @@ index c7684fa91f1f..e2093db2b7ff 100644 spin_lock_irq(&host->lock); if (!host->data) -@@ -63,6 +61,11 @@ static void tmio_mmc_dma_callback(void *arg) +@@ -63,6 +61,11 @@ static void tmio_mmc_dma_callback(void * host->sg_ptr, host->sg_len, DMA_TO_DEVICE); @@ -44,6 +42,3 @@ index c7684fa91f1f..e2093db2b7ff 100644 tmio_mmc_do_data_irq(host); out: spin_unlock_irq(&host->lock); --- -2.13.3 - diff --git a/patches.renesas/0122-mmc-tmio-always-get-number-of-taps.patch b/patches.renesas/0122-mmc-tmio-always-get-number-of-taps.patch index 7cf16218ca64e6..2649afeef16fb7 100644 --- a/patches.renesas/0122-mmc-tmio-always-get-number-of-taps.patch +++ b/patches.renesas/0122-mmc-tmio-always-get-number-of-taps.patch @@ -16,14 +16,12 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 43b0b361b0170030603cf76f70b099f3323edcf3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/mmc/host/tmio_mmc_pio.c | 16 +++++++--------- + drivers/mmc/host/tmio_mmc_pio.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) -diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c -index 5b01d22932cd..a2d92f10501b 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c -@@ -815,16 +815,14 @@ static int tmio_mmc_execute_tuning(struct mmc_host *mmc, u32 opcode) +@@ -815,16 +815,14 @@ static int tmio_mmc_execute_tuning(struc struct tmio_mmc_host *host = mmc_priv(mmc); int i, ret = 0; @@ -47,6 +45,3 @@ index 5b01d22932cd..a2d92f10501b 100644 if (host->tap_num * 2 >= sizeof(host->taps) * BITS_PER_BYTE) { dev_warn_once(&host->pdev->dev, --- -2.13.3 - diff --git a/patches.renesas/0123-rtc-sh-add-support-for-rza-series.patch b/patches.renesas/0123-rtc-sh-add-support-for-rza-series.patch index 4382f39e19acb2..796571d2a69b3e 100644 --- a/patches.renesas/0123-rtc-sh-add-support-for-rza-series.patch +++ b/patches.renesas/0123-rtc-sh-add-support-for-rza-series.patch @@ -13,12 +13,10 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> (cherry picked from commit dab5aec64bf5907f65926675807e4ebe83b3b10e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/rtc/Kconfig | 4 ++-- - drivers/rtc/rtc-sh.c | 33 ++++++++++++++++++++++++++++----- - 2 files changed, 30 insertions(+), 7 deletions(-) + drivers/rtc/Kconfig | 4 ++-- + drivers/rtc/rtc-sh.c | 35 +++++++++++++++++++++++++++++------ + 2 files changed, 31 insertions(+), 8 deletions(-) -diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig -index 0723c97ebea3..ca7e07043468 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -1301,10 +1301,10 @@ config RTC_DRV_SA1100 @@ -34,8 +32,6 @@ index 0723c97ebea3..ca7e07043468 100644 To compile this driver as a module, choose M here: the module will be called rtc-sh. -diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c -index 17b6235d67a5..9c45b5216b5f 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -27,7 +27,15 @@ @@ -54,7 +50,7 @@ index 17b6235d67a5..9c45b5216b5f 100644 #define DRV_NAME "sh-rtc" -@@ -570,6 +578,8 @@ static int __init sh_rtc_probe(struct platform_device *pdev) +@@ -570,6 +578,8 @@ static int __init sh_rtc_probe(struct pl rtc->alarm_irq = platform_get_irq(pdev, 2); res = platform_get_resource(pdev, IORESOURCE_IO, 0); @@ -63,7 +59,7 @@ index 17b6235d67a5..9c45b5216b5f 100644 if (unlikely(res == NULL)) { dev_err(&pdev->dev, "No IO resource\n"); return -ENOENT; -@@ -587,12 +597,15 @@ static int __init sh_rtc_probe(struct platform_device *pdev) +@@ -587,12 +597,15 @@ static int __init sh_rtc_probe(struct pl if (unlikely(!rtc->regbase)) return -EINVAL; @@ -71,20 +67,21 @@ index 17b6235d67a5..9c45b5216b5f 100644 - /* With a single device, the clock id is still "rtc0" */ - if (clk_id < 0) - clk_id = 0; +- +- snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id); + if (!pdev->dev.of_node) { + clk_id = pdev->id; + /* With a single device, the clock id is still "rtc0" */ + if (clk_id < 0) + clk_id = 0; - -- snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id); ++ + snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id); + } else + snprintf(clk_name, sizeof(clk_name), "fck"); rtc->clk = devm_clk_get(&pdev->dev, clk_name); if (IS_ERR(rtc->clk)) { -@@ -608,6 +621,8 @@ static int __init sh_rtc_probe(struct platform_device *pdev) +@@ -608,6 +621,8 @@ static int __init sh_rtc_probe(struct pl clk_enable(rtc->clk); rtc->capabilities = RTC_DEF_CAPABILITIES; @@ -93,7 +90,7 @@ index 17b6235d67a5..9c45b5216b5f 100644 if (dev_get_platdata(&pdev->dev)) { struct sh_rtc_platform_info *pinfo = dev_get_platdata(&pdev->dev); -@@ -618,6 +633,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev) +@@ -618,6 +633,7 @@ static int __init sh_rtc_probe(struct pl */ rtc->capabilities |= pinfo->capabilities; } @@ -101,7 +98,7 @@ index 17b6235d67a5..9c45b5216b5f 100644 if (rtc->carry_irq <= 0) { /* register shared periodic/carry/alarm irq */ -@@ -738,10 +754,17 @@ static int sh_rtc_resume(struct device *dev) +@@ -738,10 +754,17 @@ static int sh_rtc_resume(struct device * static SIMPLE_DEV_PM_OPS(sh_rtc_pm_ops, sh_rtc_suspend, sh_rtc_resume); @@ -119,6 +116,3 @@ index 17b6235d67a5..9c45b5216b5f 100644 }, .remove = __exit_p(sh_rtc_remove), }; --- -2.13.3 - diff --git a/patches.renesas/0124-dt-bindings-rtc-document-the-rtc-sh-bindings.patch b/patches.renesas/0124-dt-bindings-rtc-document-the-rtc-sh-bindings.patch index 48146ecca81a18..54fd7ae1927a73 100644 --- a/patches.renesas/0124-dt-bindings-rtc-document-the-rtc-sh-bindings.patch +++ b/patches.renesas/0124-dt-bindings-rtc-document-the-rtc-sh-bindings.patch @@ -12,13 +12,10 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> (cherry picked from commit 04767b9fc2315c90a1e4bfdee883c0cbc122f30f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/rtc/rtc-sh.txt | 28 ++++++++++++++++++++++++ + Documentation/devicetree/bindings/rtc/rtc-sh.txt | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Documentation/devicetree/bindings/rtc/rtc-sh.txt -diff --git a/Documentation/devicetree/bindings/rtc/rtc-sh.txt b/Documentation/devicetree/bindings/rtc/rtc-sh.txt -new file mode 100644 -index 000000000000..7676c7d28874 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/rtc-sh.txt @@ -0,0 +1,28 @@ @@ -50,6 +47,3 @@ index 000000000000..7676c7d28874 + <&rtc_x3_clk>, <&extal_clk>; + clock-names = "fck", "rtc_x1", "rtc_x3", "extal"; +}; --- -2.13.3 - diff --git a/patches.renesas/0125-rtc-sh-mark-PM-functions-as-unused.patch b/patches.renesas/0125-rtc-sh-mark-PM-functions-as-unused.patch index c537c60d03c1ab..e2ff000d174714 100644 --- a/patches.renesas/0125-rtc-sh-mark-PM-functions-as-unused.patch +++ b/patches.renesas/0125-rtc-sh-mark-PM-functions-as-unused.patch @@ -19,14 +19,12 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> (cherry picked from commit 5d05e81516cfe7606ee0cd8278fe225314dccfbe) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/rtc/rtc-sh.c | 6 ++---- + drivers/rtc/rtc-sh.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c -index 9c45b5216b5f..fc2c3cdedbf9 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c -@@ -734,8 +734,7 @@ static void sh_rtc_set_irq_wake(struct device *dev, int enabled) +@@ -734,8 +734,7 @@ static void sh_rtc_set_irq_wake(struct d } } @@ -36,7 +34,7 @@ index 9c45b5216b5f..fc2c3cdedbf9 100644 { if (device_may_wakeup(dev)) sh_rtc_set_irq_wake(dev, 1); -@@ -743,14 +742,13 @@ static int sh_rtc_suspend(struct device *dev) +@@ -743,14 +742,13 @@ static int sh_rtc_suspend(struct device return 0; } @@ -52,6 +50,3 @@ index 9c45b5216b5f..fc2c3cdedbf9 100644 static SIMPLE_DEV_PM_OPS(sh_rtc_pm_ops, sh_rtc_suspend, sh_rtc_resume); --- -2.13.3 - diff --git a/patches.renesas/0126-serial-sh-sci-Fix-hang-in-sci_reset.patch b/patches.renesas/0126-serial-sh-sci-Fix-hang-in-sci_reset.patch index 367c3f9fa007ad..734a0c0526e4a9 100644 --- a/patches.renesas/0126-serial-sh-sci-Fix-hang-in-sci_reset.patch +++ b/patches.renesas/0126-serial-sh-sci-Fix-hang-in-sci_reset.patch @@ -31,14 +31,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit e37f712f760478a3bce8a68b8d85b5b0bf6642eb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/tty/serial/sh-sci.c | 4 ---- + drivers/tty/serial/sh-sci.c | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c -index a08272553439..be09431e46f5 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c -@@ -2159,10 +2159,6 @@ static void sci_reset(struct uart_port *port) +@@ -2159,10 +2159,6 @@ static void sci_reset(struct uart_port * unsigned int status; struct sci_port *s = to_sci_port(port); @@ -49,6 +47,3 @@ index a08272553439..be09431e46f5 100644 serial_port_out(port, SCSCR, 0x00); /* TE=0, RE=0, CKE1=0 */ reg = sci_getreg(port, SCFCR); --- -2.13.3 - diff --git a/patches.renesas/0127-serial-sh-sci-Fix-late-enablement-of-AUTORTS.patch b/patches.renesas/0127-serial-sh-sci-Fix-late-enablement-of-AUTORTS.patch index 5a57c96d489b73..a6e2f13ff20968 100644 --- a/patches.renesas/0127-serial-sh-sci-Fix-late-enablement-of-AUTORTS.patch +++ b/patches.renesas/0127-serial-sh-sci-Fix-late-enablement-of-AUTORTS.patch @@ -23,14 +23,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 5f76895e4c712b1b5af450cf344389b8c53ac2c2) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/tty/serial/sh-sci.c | 4 ++++ + drivers/tty/serial/sh-sci.c | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c -index be09431e46f5..a8b4bea3925b 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c -@@ -2372,6 +2372,10 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2372,6 +2372,10 @@ done: serial_port_out(port, SCFCR, ctrl); } @@ -41,6 +39,3 @@ index be09431e46f5..a8b4bea3925b 100644 scr_val |= SCSCR_RE | SCSCR_TE | (s->cfg->scscr & ~(SCSCR_CKE1 | SCSCR_CKE0)); --- -2.13.3 - diff --git a/patches.renesas/0128-serial-sh-sci-Fix-AUTO-RTS-in-sci_init_pins.patch b/patches.renesas/0128-serial-sh-sci-Fix-AUTO-RTS-in-sci_init_pins.patch index cf0e953d995726..e2e3491f421fae 100644 --- a/patches.renesas/0128-serial-sh-sci-Fix-AUTO-RTS-in-sci_init_pins.patch +++ b/patches.renesas/0128-serial-sh-sci-Fix-AUTO-RTS-in-sci_init_pins.patch @@ -19,14 +19,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit cfa6eb239154315e6efcdda1d929e024097f927b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/tty/serial/sh-sci.c | 25 +++++++++++++++++++------ + drivers/tty/serial/sh-sci.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) -diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c -index a8b4bea3925b..66b459e8a4ac 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c -@@ -683,24 +683,37 @@ static void sci_init_pins(struct uart_port *port, unsigned int cflag) +@@ -683,24 +683,37 @@ static void sci_init_pins(struct uart_po } if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) { @@ -70,6 +68,3 @@ index a8b4bea3925b..66b459e8a4ac 100644 /* CTS# and SCK are inputs */ status &= ~(SCSPTR_CTSIO | SCSPTR_SCKIO); serial_port_out(port, SCSPTR, status); --- -2.13.3 - diff --git a/patches.renesas/0129-clocksource-sh_tmu-Compute-rate-before-registration-.patch b/patches.renesas/0129-clocksource-sh_tmu-Compute-rate-before-registration-.patch index 08bd3a40598388..d4fd838a5435d2 100644 --- a/patches.renesas/0129-clocksource-sh_tmu-Compute-rate-before-registration-.patch +++ b/patches.renesas/0129-clocksource-sh_tmu-Compute-rate-before-registration-.patch @@ -53,11 +53,9 @@ Signed-off-by: John Stultz <john.stultz@linaro.org> (cherry picked from commit c3c0a20df9fc55e2243a31f91a943b3e8ba61289) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clocksource/sh_tmu.c | 26 +++++++++++++------------- + drivers/clocksource/sh_tmu.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) -diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c -index 469e776ec17a..820004297dec 100644 --- a/drivers/clocksource/sh_tmu.c +++ b/drivers/clocksource/sh_tmu.c @@ -46,7 +46,6 @@ struct sh_tmu_channel { @@ -76,7 +74,7 @@ index 469e776ec17a..820004297dec 100644 enum sh_tmu_model model; -@@ -165,7 +165,6 @@ static int __sh_tmu_enable(struct sh_tmu_channel *ch) +@@ -165,7 +165,6 @@ static int __sh_tmu_enable(struct sh_tmu sh_tmu_write(ch, TCNT, 0xffffffff); /* configure channel to parent clock / 4, irq off */ @@ -84,7 +82,7 @@ index 469e776ec17a..820004297dec 100644 sh_tmu_write(ch, TCR, TCR_TPSC_CLK4); /* enable channel */ -@@ -271,10 +270,8 @@ static int sh_tmu_clocksource_enable(struct clocksource *cs) +@@ -271,10 +270,8 @@ static int sh_tmu_clocksource_enable(str return 0; ret = sh_tmu_enable(ch); @@ -96,7 +94,7 @@ index 469e776ec17a..820004297dec 100644 return ret; } -@@ -334,8 +331,7 @@ static int sh_tmu_register_clocksource(struct sh_tmu_channel *ch, +@@ -334,8 +331,7 @@ static int sh_tmu_register_clocksource(s dev_info(&ch->tmu->pdev->dev, "ch%u: used as clock source\n", ch->index); @@ -106,7 +104,7 @@ index 469e776ec17a..820004297dec 100644 return 0; } -@@ -346,14 +342,10 @@ static struct sh_tmu_channel *ced_to_sh_tmu(struct clock_event_device *ced) +@@ -346,14 +342,10 @@ static struct sh_tmu_channel *ced_to_sh_ static void sh_tmu_clock_event_start(struct sh_tmu_channel *ch, int periodic) { @@ -122,7 +120,7 @@ index 469e776ec17a..820004297dec 100644 sh_tmu_set_next(ch, ch->periodic, 1); } } -@@ -435,7 +427,7 @@ static void sh_tmu_register_clockevent(struct sh_tmu_channel *ch, +@@ -435,7 +427,7 @@ static void sh_tmu_register_clockevent(s dev_info(&ch->tmu->pdev->dev, "ch%u: used for clock events\n", ch->index); @@ -131,7 +129,7 @@ index 469e776ec17a..820004297dec 100644 ret = request_irq(ch->irq, sh_tmu_interrupt, IRQF_TIMER | IRQF_IRQPOLL | IRQF_NOBALANCING, -@@ -561,6 +553,14 @@ static int sh_tmu_setup(struct sh_tmu_device *tmu, struct platform_device *pdev) +@@ -561,6 +553,14 @@ static int sh_tmu_setup(struct sh_tmu_de if (ret < 0) goto err_clk_put; @@ -146,6 +144,3 @@ index 469e776ec17a..820004297dec 100644 /* Map the memory resource. */ ret = sh_tmu_map_memory(tmu); if (ret < 0) { --- -2.13.3 - diff --git a/patches.renesas/0130-ASoC-simple-scu-card-use-defined-dev-on-probe.patch b/patches.renesas/0130-ASoC-simple-scu-card-use-defined-dev-on-probe.patch index f2078c679b6f9c..3c649fc1c2b273 100644 --- a/patches.renesas/0130-ASoC-simple-scu-card-use-defined-dev-on-probe.patch +++ b/patches.renesas/0130-ASoC-simple-scu-card-use-defined-dev-on-probe.patch @@ -11,14 +11,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 40b68dac75a1d16266d3c89244ccf7b899afac3e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/generic/simple-scu-card.c | 4 ++-- + sound/soc/generic/simple-scu-card.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c -index 308ff4c11a8d..420b1c50b850 100644 --- a/sound/soc/generic/simple-scu-card.c +++ b/sound/soc/generic/simple-scu-card.c -@@ -257,7 +257,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) +@@ -257,7 +257,7 @@ static int asoc_simple_card_probe(struct struct snd_soc_dai_link *dai_link; struct asoc_simple_dai *dai_props; struct device *dev = &pdev->dev; @@ -27,7 +25,7 @@ index 308ff4c11a8d..420b1c50b850 100644 int num, ret; /* Allocate the private data */ -@@ -292,7 +292,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) +@@ -292,7 +292,7 @@ static int asoc_simple_card_probe(struct snd_soc_card_set_drvdata(&priv->snd_card, priv); @@ -36,6 +34,3 @@ index 308ff4c11a8d..420b1c50b850 100644 if (ret >= 0) return ret; err: --- -2.13.3 - diff --git a/patches.renesas/0131-ASoC-simple-scu-card-add-new-simple_priv_to_card-mac.patch b/patches.renesas/0131-ASoC-simple-scu-card-add-new-simple_priv_to_card-mac.patch index fca3ad37144ca6..85da83e39bfa99 100644 --- a/patches.renesas/0131-ASoC-simple-scu-card-add-new-simple_priv_to_card-mac.patch +++ b/patches.renesas/0131-ASoC-simple-scu-card-add-new-simple_priv_to_card-mac.patch @@ -13,11 +13,9 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit d27f3b4a2d81e873de4d11899e510a1a507da8e3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/generic/simple-scu-card.c | 35 ++++++++++++++++++++--------------- + sound/soc/generic/simple-scu-card.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) -diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c -index 420b1c50b850..dcbcab230d1b 100644 --- a/sound/soc/generic/simple-scu-card.c +++ b/sound/soc/generic/simple-scu-card.c @@ -31,9 +31,10 @@ struct simple_card_data { @@ -33,7 +31,7 @@ index 420b1c50b850..dcbcab230d1b 100644 #define DAI "sound-dai" #define CELL "#sound-dai-cells" -@@ -109,6 +110,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *np, +@@ -109,6 +110,7 @@ static int asoc_simple_card_dai_link_of( struct device *dev = simple_priv_to_dev(priv); struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, idx); struct asoc_simple_dai *dai_props = simple_priv_to_props(priv, idx); @@ -41,7 +39,7 @@ index 420b1c50b850..dcbcab230d1b 100644 int ret; if (is_fe) { -@@ -163,7 +165,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *np, +@@ -163,7 +165,7 @@ static int asoc_simple_card_dai_link_of( if (ret < 0) return ret; @@ -50,7 +48,7 @@ index 420b1c50b850..dcbcab230d1b 100644 &priv->codec_conf, dai_link->codec_of_node, PREFIX "prefix"); -@@ -201,6 +203,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, +@@ -201,6 +203,7 @@ static int asoc_simple_card_parse_of(str { struct device *dev = simple_priv_to_dev(priv); struct device_node *np; @@ -58,7 +56,7 @@ index 420b1c50b850..dcbcab230d1b 100644 unsigned int daifmt = 0; bool is_fe; int ret, i; -@@ -208,7 +211,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, +@@ -208,7 +211,7 @@ static int asoc_simple_card_parse_of(str if (!node) return -EINVAL; @@ -67,7 +65,7 @@ index 420b1c50b850..dcbcab230d1b 100644 if (ret < 0) return ret; -@@ -239,12 +242,12 @@ static int asoc_simple_card_parse_of(struct device_node *node, +@@ -239,12 +242,12 @@ static int asoc_simple_card_parse_of(str i++; } @@ -82,7 +80,7 @@ index 420b1c50b850..dcbcab230d1b 100644 dev_dbg(dev, "convert_rate %d\n", priv->convert_rate); dev_dbg(dev, "convert_channels %d\n", priv->convert_channels); -@@ -256,6 +259,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) +@@ -256,6 +259,7 @@ static int asoc_simple_card_probe(struct struct simple_card_data *priv; struct snd_soc_dai_link *dai_link; struct asoc_simple_dai *dai_props; @@ -90,7 +88,7 @@ index 420b1c50b850..dcbcab230d1b 100644 struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; int num, ret; -@@ -276,12 +280,13 @@ static int asoc_simple_card_probe(struct platform_device *pdev) +@@ -276,12 +280,13 @@ static int asoc_simple_card_probe(struct priv->dai_link = dai_link; /* Init snd_soc_card */ @@ -110,7 +108,7 @@ index 420b1c50b850..dcbcab230d1b 100644 ret = asoc_simple_card_parse_of(np, priv); if (ret < 0) { -@@ -290,13 +295,13 @@ static int asoc_simple_card_probe(struct platform_device *pdev) +@@ -290,13 +295,13 @@ static int asoc_simple_card_probe(struct goto err; } @@ -127,6 +125,3 @@ index 420b1c50b850..dcbcab230d1b 100644 return ret; } --- -2.13.3 - diff --git a/patches.renesas/0132-smsc911x-Adding-support-for-Micochip-LAN9250-Etherne.patch b/patches.renesas/0132-smsc911x-Adding-support-for-Micochip-LAN9250-Etherne.patch index ecfd8824e4077c..8feb47d2b10a6f 100644 --- a/patches.renesas/0132-smsc911x-Adding-support-for-Micochip-LAN9250-Etherne.patch +++ b/patches.renesas/0132-smsc911x-Adding-support-for-Micochip-LAN9250-Etherne.patch @@ -12,12 +12,10 @@ Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit f6fec61eb555e47e87234e8915ad726ba6c2d3f8) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/net/ethernet/smsc/smsc911x.c | 49 ++++++++++++++++++++++-------------- - drivers/net/ethernet/smsc/smsc911x.h | 19 ++++++++++++++ + drivers/net/ethernet/smsc/smsc911x.c | 49 +++++++++++++++++++++-------------- + drivers/net/ethernet/smsc/smsc911x.h | 19 +++++++++++++ 2 files changed, 49 insertions(+), 19 deletions(-) -diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c -index 6fb2d15b5351..d0e9f6530580 100644 --- a/drivers/net/ethernet/smsc/smsc911x.c +++ b/drivers/net/ethernet/smsc/smsc911x.c @@ -25,7 +25,7 @@ @@ -29,7 +27,7 @@ index 6fb2d15b5351..d0e9f6530580 100644 * */ -@@ -1450,6 +1450,8 @@ static int smsc911x_soft_reset(struct smsc911x_data *pdata) +@@ -1450,6 +1450,8 @@ static int smsc911x_soft_reset(struct sm unsigned int timeout; unsigned int temp; int ret; @@ -38,7 +36,7 @@ index 6fb2d15b5351..d0e9f6530580 100644 /* * Make sure to power-up the PHY chip before doing a reset, otherwise -@@ -1476,15 +1478,23 @@ static int smsc911x_soft_reset(struct smsc911x_data *pdata) +@@ -1476,15 +1478,23 @@ static int smsc911x_soft_reset(struct sm } } @@ -66,7 +64,7 @@ index 6fb2d15b5351..d0e9f6530580 100644 SMSC_WARN(pdata, drv, "Failed to complete reset"); return -EIO; } -@@ -2259,28 +2269,29 @@ static int smsc911x_init(struct net_device *dev) +@@ -2259,28 +2269,29 @@ static int smsc911x_init(struct net_devi pdata->idrev = smsc911x_reg_read(pdata, ID_REV); switch (pdata->idrev & 0xFFFF0000) { @@ -110,8 +108,6 @@ index 6fb2d15b5351..d0e9f6530580 100644 pdata->generation = 4; break; -diff --git a/drivers/net/ethernet/smsc/smsc911x.h b/drivers/net/ethernet/smsc/smsc911x.h -index 54d648920a1b..8d75508acd2b 100644 --- a/drivers/net/ethernet/smsc/smsc911x.h +++ b/drivers/net/ethernet/smsc/smsc911x.h @@ -20,6 +20,22 @@ @@ -147,6 +143,3 @@ index 54d648920a1b..8d75508acd2b 100644 /* * MAC Control and Status Register (Indirect Address) * Offset (through the MAC_CSR CMD and DATA port) --- -2.13.3 - diff --git a/patches.renesas/0133-usb-gadget-udc-renesas_usb3-add-USB-ID-signal-monito.patch b/patches.renesas/0133-usb-gadget-udc-renesas_usb3-add-USB-ID-signal-monito.patch index 2e2ccfd7b57ffa..3844a6488fdfc4 100644 --- a/patches.renesas/0133-usb-gadget-udc-renesas_usb3-add-USB-ID-signal-monito.patch +++ b/patches.renesas/0133-usb-gadget-udc-renesas_usb3-add-USB-ID-signal-monito.patch @@ -14,11 +14,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> (cherry picked from commit 77172a1f886a696bab5b4d3006ccf55ee4b1bfe5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/gadget/udc/renesas_usb3.c | 67 ++++++++++++++++++++++++++++++++--- + drivers/usb/gadget/udc/renesas_usb3.c | 67 +++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 4 deletions(-) -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index ba78e3f7aea8..898e2d1b681e 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -37,6 +37,9 @@ @@ -41,7 +39,7 @@ index ba78e3f7aea8..898e2d1b681e 100644 /* P0_MOD */ #define P0_MOD_DIR BIT(6) -@@ -362,10 +368,6 @@ static void usb3_init_axi_bridge(struct renesas_usb3 *usb3) +@@ -362,10 +368,6 @@ static void usb3_init_axi_bridge(struct static void usb3_init_epc_registers(struct renesas_usb3 *usb3) { @@ -52,7 +50,7 @@ index ba78e3f7aea8..898e2d1b681e 100644 usb3_write(usb3, ~0, USB3_USB_INT_STA_1); usb3_enable_irq_1(usb3, USB_INT_1_VBUS_CNG); } -@@ -538,11 +540,49 @@ static void usb3_check_vbus(struct renesas_usb3 *usb3) +@@ -538,11 +540,49 @@ static void usb3_check_vbus(struct renes } } @@ -102,7 +100,7 @@ index ba78e3f7aea8..898e2d1b681e 100644 usb3_check_vbus(usb3); } -@@ -551,6 +591,7 @@ static void renesas_usb3_stop_controller(struct renesas_usb3 *usb3) +@@ -551,6 +591,7 @@ static void renesas_usb3_stop_controller usb3_disconnect(usb3); usb3_write(usb3, 0, USB3_P0_INT_ENA); usb3_write(usb3, 0, USB3_PN_INT_ENA); @@ -110,7 +108,7 @@ index ba78e3f7aea8..898e2d1b681e 100644 usb3_write(usb3, 0, USB3_USB_INT_ENA_1); usb3_write(usb3, 0, USB3_USB_INT_ENA_2); usb3_write(usb3, 0, USB3_AXI_INT_ENA); -@@ -1496,10 +1537,22 @@ static void usb3_irq_epc_int_2(struct renesas_usb3 *usb3, u32 int_sta_2) +@@ -1496,10 +1537,22 @@ static void usb3_irq_epc_int_2(struct re } } @@ -133,7 +131,7 @@ index ba78e3f7aea8..898e2d1b681e 100644 int_sta_1 &= usb3_read(usb3, USB3_USB_INT_ENA_1); if (int_sta_1) { -@@ -1510,6 +1563,12 @@ static void usb3_irq_epc(struct renesas_usb3 *usb3) +@@ -1510,6 +1563,12 @@ static void usb3_irq_epc(struct renesas_ int_sta_2 &= usb3_read(usb3, USB3_USB_INT_ENA_2); if (int_sta_2) usb3_irq_epc_int_2(usb3, int_sta_2); @@ -146,6 +144,3 @@ index ba78e3f7aea8..898e2d1b681e 100644 } static irqreturn_t renesas_usb3_irq(int irq, void *_usb3) --- -2.13.3 - diff --git a/patches.renesas/0134-usb-gadget-udc-renesas_usb3-add-extcon-support.patch b/patches.renesas/0134-usb-gadget-udc-renesas_usb3-add-extcon-support.patch index 35d0263560430c..517fc7f650c2d0 100644 --- a/patches.renesas/0134-usb-gadget-udc-renesas_usb3-add-extcon-support.patch +++ b/patches.renesas/0134-usb-gadget-udc-renesas_usb3-add-extcon-support.patch @@ -10,12 +10,10 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> (cherry picked from commit 3b68e7ca388815459ef4466e17ed6661d0d67a5b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/gadget/udc/Kconfig | 1 + - drivers/usb/gadget/udc/renesas_usb3.c | 43 +++++++++++++++++++++++++++++++++-- + drivers/usb/gadget/udc/Kconfig | 1 + drivers/usb/gadget/udc/renesas_usb3.c | 43 ++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) -diff --git a/drivers/usb/gadget/udc/Kconfig b/drivers/usb/gadget/udc/Kconfig -index 658b8da60915..ef7cf8dbf38c 100644 --- a/drivers/usb/gadget/udc/Kconfig +++ b/drivers/usb/gadget/udc/Kconfig @@ -177,6 +177,7 @@ config USB_RENESAS_USBHS_UDC @@ -26,8 +24,6 @@ index 658b8da60915..ef7cf8dbf38c 100644 help Renesas USB3.0 Peripheral controller is a USB peripheral controller that supports super, high, and full speed USB 3.0 data transfers. -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index 898e2d1b681e..55f8a966b3ae 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -10,6 +10,7 @@ @@ -56,7 +52,7 @@ index 898e2d1b681e..55f8a966b3ae 100644 }; #define gadget_to_renesas_usb3(_gadget) \ -@@ -338,6 +343,15 @@ static int usb3_wait(struct renesas_usb3 *usb3, u32 reg, u32 mask, +@@ -338,6 +343,15 @@ static int usb3_wait(struct renesas_usb3 return -EBUSY; } @@ -72,7 +68,7 @@ index 898e2d1b681e..55f8a966b3ae 100644 static void usb3_enable_irq_1(struct renesas_usb3 *usb3, u32 bits) { usb3_set_bit(usb3, bits, USB3_USB_INT_ENA_1); -@@ -533,10 +547,14 @@ static void usb3_check_vbus(struct renesas_usb3 *usb3) +@@ -533,10 +547,14 @@ static void usb3_check_vbus(struct renes if (usb3->workaround_for_vbus) { usb3_connect(usb3); } else { @@ -88,7 +84,7 @@ index 898e2d1b681e..55f8a966b3ae 100644 } } -@@ -569,10 +587,14 @@ static bool usb3_is_a_device(struct renesas_usb3 *usb3) +@@ -569,10 +587,14 @@ static bool usb3_is_a_device(struct rene static void usb3_check_id(struct renesas_usb3 *usb3) { @@ -104,7 +100,7 @@ index 898e2d1b681e..55f8a966b3ae 100644 } static void renesas_usb3_init_controller(struct renesas_usb3 *usb3) -@@ -1975,6 +1997,12 @@ static const struct of_device_id usb3_of_match[] = { +@@ -1975,6 +1997,12 @@ static const struct of_device_id usb3_of }; MODULE_DEVICE_TABLE(of, usb3_of_match); @@ -117,7 +113,7 @@ index 898e2d1b681e..55f8a966b3ae 100644 static int renesas_usb3_probe(struct platform_device *pdev) { struct renesas_usb3 *usb3; -@@ -2018,6 +2046,17 @@ static int renesas_usb3_probe(struct platform_device *pdev) +@@ -2018,6 +2046,17 @@ static int renesas_usb3_probe(struct pla if (ret < 0) return ret; @@ -135,6 +131,3 @@ index 898e2d1b681e..55f8a966b3ae 100644 /* for ep0 handling */ usb3->ep0_req = __renesas_usb3_ep_alloc_request(GFP_KERNEL); if (!usb3->ep0_req) --- -2.13.3 - diff --git a/patches.renesas/0135-usb-gadget-udc-renesas_usb3-add-support-for-usb-role.patch b/patches.renesas/0135-usb-gadget-udc-renesas_usb3-add-support-for-usb-role.patch index e3415ca5bc3d63..8329a8e0c3f5e5 100644 --- a/patches.renesas/0135-usb-gadget-udc-renesas_usb3-add-support-for-usb-role.patch +++ b/patches.renesas/0135-usb-gadget-udc-renesas_usb3-add-support-for-usb-role.patch @@ -28,14 +28,11 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: drivers/usb/gadget/udc/renesas_usb3.c --- - .../ABI/testing/sysfs-platform-renesas_usb3 | 15 ++++++ - drivers/usb/gadget/udc/renesas_usb3.c | 56 ++++++++++++++++++++++ + Documentation/ABI/testing/sysfs-platform-renesas_usb3 | 15 ++++ + drivers/usb/gadget/udc/renesas_usb3.c | 56 ++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-platform-renesas_usb3 -diff --git a/Documentation/ABI/testing/sysfs-platform-renesas_usb3 b/Documentation/ABI/testing/sysfs-platform-renesas_usb3 -new file mode 100644 -index 000000000000..5621c15d5dc0 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-platform-renesas_usb3 @@ -0,0 +1,15 @@ @@ -54,11 +51,9 @@ index 000000000000..5621c15d5dc0 + Read the file, then it shows the following strings: + "host" - The mode is host now. + "peripheral" - The mode is peripheral now. -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index 55f8a966b3ae..f16649c6d76e 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c -@@ -372,6 +372,11 @@ static void usb3_disable_pipe_irq(struct renesas_usb3 *usb3, int num) +@@ -372,6 +372,11 @@ static void usb3_disable_pipe_irq(struct usb3_clear_bit(usb3, USB_INT_2_PIPE(num), USB3_USB_INT_ENA_2); } @@ -70,7 +65,7 @@ index 55f8a966b3ae..f16649c6d76e 100644 static void usb3_init_axi_bridge(struct renesas_usb3 *usb3) { /* Set AXI_INT */ -@@ -576,8 +581,14 @@ static void usb3_vbus_out(struct renesas_usb3 *usb3, bool enable) +@@ -576,8 +581,14 @@ static void usb3_vbus_out(struct renesas static void usb3_mode_config(struct renesas_usb3 *usb3, bool host, bool a_dev) { @@ -85,7 +80,7 @@ index 55f8a966b3ae..f16649c6d76e 100644 } static bool usb3_is_a_device(struct renesas_usb3 *usb3) -@@ -1862,11 +1873,49 @@ static const struct usb_gadget_ops renesas_usb3_gadget_ops = { +@@ -1862,11 +1873,49 @@ static const struct usb_gadget_ops renes .set_selfpowered = renesas_usb3_set_selfpowered, }; @@ -135,7 +130,7 @@ index 55f8a966b3ae..f16649c6d76e 100644 usb_del_gadget_udc(&usb3->gadget); __renesas_usb3_ep_free_request(usb3->ep0_req); -@@ -2066,12 +2115,19 @@ static int renesas_usb3_probe(struct platform_device *pdev) +@@ -2066,12 +2115,19 @@ static int renesas_usb3_probe(struct pla if (ret < 0) goto err_add_udc; @@ -155,6 +150,3 @@ index 55f8a966b3ae..f16649c6d76e 100644 err_add_udc: __renesas_usb3_ep_free_request(usb3->ep0_req); --- -2.13.3 - diff --git a/patches.renesas/0136-usb-gadget-udc-renesas_usb3-fix-pm_runtime-functions.patch b/patches.renesas/0136-usb-gadget-udc-renesas_usb3-fix-pm_runtime-functions.patch index 86c82b4bf276bf..592f71fcab66a4 100644 --- a/patches.renesas/0136-usb-gadget-udc-renesas_usb3-fix-pm_runtime-functions.patch +++ b/patches.renesas/0136-usb-gadget-udc-renesas_usb3-fix-pm_runtime-functions.patch @@ -16,14 +16,12 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> (cherry picked from commit cdc876877ebc3f0677b267756d4564e2a429e730) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/gadget/udc/renesas_usb3.c | 3 +++ + drivers/usb/gadget/udc/renesas_usb3.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index f16649c6d76e..401ba92f15db 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c -@@ -1841,6 +1841,9 @@ static int renesas_usb3_stop(struct usb_gadget *gadget) +@@ -1841,6 +1841,9 @@ static int renesas_usb3_stop(struct usb_ pm_runtime_put(usb3_to_dev(usb3)); pm_runtime_disable(usb3_to_dev(usb3)); @@ -33,6 +31,3 @@ index f16649c6d76e..401ba92f15db 100644 return 0; } --- -2.13.3 - diff --git a/patches.renesas/0137-usb-gadget-udc-renesas_usb3-fix-deadlock-by-spinlock.patch b/patches.renesas/0137-usb-gadget-udc-renesas_usb3-fix-deadlock-by-spinlock.patch index fb38b7e0aabb64..5df0c4045b2222 100644 --- a/patches.renesas/0137-usb-gadget-udc-renesas_usb3-fix-deadlock-by-spinlock.patch +++ b/patches.renesas/0137-usb-gadget-udc-renesas_usb3-fix-deadlock-by-spinlock.patch @@ -18,14 +18,12 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: drivers/usb/gadget/udc/renesas_usb3.c --- - drivers/usb/gadget/udc/renesas_usb3.c | 3 --- + drivers/usb/gadget/udc/renesas_usb3.c | 3 --- 1 file changed, 3 deletions(-) -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index 401ba92f15db..f16649c6d76e 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c -@@ -1841,9 +1841,6 @@ static int renesas_usb3_stop(struct usb_gadget *gadget) +@@ -1841,9 +1841,6 @@ static int renesas_usb3_stop(struct usb_ pm_runtime_put(usb3_to_dev(usb3)); pm_runtime_disable(usb3_to_dev(usb3)); @@ -35,6 +33,3 @@ index 401ba92f15db..f16649c6d76e 100644 return 0; } --- -2.13.3 - diff --git a/patches.renesas/0138-usb-gadget-udc-renesas_usb3-Fix-PN_INT_ENA-disabling.patch b/patches.renesas/0138-usb-gadget-udc-renesas_usb3-Fix-PN_INT_ENA-disabling.patch index 49eaf3d434acc0..2f42bea5c3be5f 100644 --- a/patches.renesas/0138-usb-gadget-udc-renesas_usb3-Fix-PN_INT_ENA-disabling.patch +++ b/patches.renesas/0138-usb-gadget-udc-renesas_usb3-Fix-PN_INT_ENA-disabling.patch @@ -14,14 +14,12 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> (cherry picked from commit afbbc7913a288c29616bd31ae612548f6475151a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/gadget/udc/renesas_usb3.c | 2 +- + drivers/usb/gadget/udc/renesas_usb3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c -index f16649c6d76e..cba129376001 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c -@@ -623,7 +623,6 @@ static void renesas_usb3_stop_controller(struct renesas_usb3 *usb3) +@@ -623,7 +623,6 @@ static void renesas_usb3_stop_controller { usb3_disconnect(usb3); usb3_write(usb3, 0, USB3_P0_INT_ENA); @@ -29,7 +27,7 @@ index f16649c6d76e..cba129376001 100644 usb3_write(usb3, 0, USB3_USB_OTG_INT_ENA); usb3_write(usb3, 0, USB3_USB_INT_ENA_1); usb3_write(usb3, 0, USB3_USB_INT_ENA_2); -@@ -1682,6 +1681,7 @@ static int usb3_disable_pipe_n(struct renesas_usb3_ep *usb3_ep) +@@ -1682,6 +1681,7 @@ static int usb3_disable_pipe_n(struct re spin_lock_irqsave(&usb3->lock, flags); if (!usb3_pn_change(usb3, usb3_ep->num)) { @@ -37,6 +35,3 @@ index f16649c6d76e..cba129376001 100644 usb3_write(usb3, 0, USB3_PN_RAMMAP); usb3_clear_bit(usb3, PN_CON_EN, USB3_PN_CON); } --- -2.13.3 - diff --git a/patches.renesas/0139-media-v4l-vsp1-Fix-format-info-documentation.patch b/patches.renesas/0139-media-v4l-vsp1-Fix-format-info-documentation.patch index 300d1af0838f32..3e8eaab060af86 100644 --- a/patches.renesas/0139-media-v4l-vsp1-Fix-format-info-documentation.patch +++ b/patches.renesas/0139-media-v4l-vsp1-Fix-format-info-documentation.patch @@ -13,11 +13,9 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit f1450162544f5c4dc801c85bb28f64c0fa6146e7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_pipe.h | 5 +++-- + drivers/media/platform/vsp1/vsp1_pipe.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.h b/drivers/media/platform/vsp1/vsp1_pipe.h -index ac4ad2655551..1144bf1e671a 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.h +++ b/drivers/media/platform/vsp1/vsp1_pipe.h @@ -25,11 +25,12 @@ struct vsp1_rwpf; @@ -35,6 +33,3 @@ index ac4ad2655551..1144bf1e671a 100644 * @swap_yc: the Y and C components are swapped (Y comes before C) * @swap_uv: the U and V components are swapped (V comes before U) * @hsub: horizontal subsampling factor --- -2.13.3 - diff --git a/patches.renesas/0140-media-v4l-vsp1-Clean-up-file-handle-in-open-error-pa.patch b/patches.renesas/0140-media-v4l-vsp1-Clean-up-file-handle-in-open-error-pa.patch index 6e4071b4144d60..2db49b994116b9 100644 --- a/patches.renesas/0140-media-v4l-vsp1-Clean-up-file-handle-in-open-error-pa.patch +++ b/patches.renesas/0140-media-v4l-vsp1-Clean-up-file-handle-in-open-error-pa.patch @@ -14,14 +14,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit dadc3be66c282d4c2c917186447494ae79f7b79f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_video.c | 1 + + drivers/media/platform/vsp1/vsp1_video.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index 3319277c026a..0113a55b19c9 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c -@@ -1050,6 +1050,7 @@ static int vsp1_video_open(struct file *file) +@@ -1050,6 +1050,7 @@ static int vsp1_video_open(struct file * ret = vsp1_device_get(video->vsp1); if (ret < 0) { v4l2_fh_del(vfh); @@ -29,6 +27,3 @@ index 3319277c026a..0113a55b19c9 100644 kfree(vfh); } --- -2.13.3 - diff --git a/patches.renesas/0141-media-v4l-vsp1-Fix-RPF-WPF-U-V-order-in-3-planar-for.patch b/patches.renesas/0141-media-v4l-vsp1-Fix-RPF-WPF-U-V-order-in-3-planar-for.patch index 19bcf234ec3e42..b6edaac52125e5 100644 --- a/patches.renesas/0141-media-v4l-vsp1-Fix-RPF-WPF-U-V-order-in-3-planar-for.patch +++ b/patches.renesas/0141-media-v4l-vsp1-Fix-RPF-WPF-U-V-order-in-3-planar-for.patch @@ -16,15 +16,13 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 3425382288fbd13b60581f20076aebd0ef414282) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_rpf.c | 43 ++++++++++++++++++++-------------- - drivers/media/platform/vsp1/vsp1_wpf.c | 9 +++++++ - 2 files changed, 35 insertions(+), 17 deletions(-) + drivers/media/platform/vsp1/vsp1_rpf.c | 41 ++++++++++++++++++++------------- + drivers/media/platform/vsp1/vsp1_wpf.c | 9 +++++++ + 2 files changed, 34 insertions(+), 16 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_rpf.c b/drivers/media/platform/vsp1/vsp1_rpf.c -index b2e34a800ffa..1d0944f308ae 100644 --- a/drivers/media/platform/vsp1/vsp1_rpf.c +++ b/drivers/media/platform/vsp1/vsp1_rpf.c -@@ -72,7 +72,8 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -72,7 +72,8 @@ static void rpf_configure(struct vsp1_en } if (params == VSP1_ENTITY_PARAMS_PARTITION) { @@ -34,13 +32,15 @@ index b2e34a800ffa..1d0944f308ae 100644 struct v4l2_rect crop; /* -@@ -120,22 +121,30 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -120,22 +121,30 @@ static void rpf_configure(struct vsp1_en (crop.width << VI6_RPF_SRC_ESIZE_EHSIZE_SHIFT) | (crop.height << VI6_RPF_SRC_ESIZE_EVSIZE_SHIFT)); - offsets[0] = crop.top * format->plane_fmt[0].bytesperline - + crop.left * fmtinfo->bpp[0] / 8; -- ++ mem.addr[0] += crop.top * format->plane_fmt[0].bytesperline ++ + crop.left * fmtinfo->bpp[0] / 8; + - if (format->num_planes > 1) - offsets[1] = crop.top * format->plane_fmt[1].bytesperline - + crop.left / fmtinfo->hsub @@ -54,9 +54,6 @@ index b2e34a800ffa..1d0944f308ae 100644 - rpf->mem.addr[1] + offsets[1]); - vsp1_rpf_write(rpf, dl, VI6_RPF_SRCM_ADDR_C1, - rpf->mem.addr[2] + offsets[1]); -+ mem.addr[0] += crop.top * format->plane_fmt[0].bytesperline -+ + crop.left * fmtinfo->bpp[0] / 8; -+ + if (format->num_planes > 1) { + unsigned int offset; + @@ -81,11 +78,9 @@ index b2e34a800ffa..1d0944f308ae 100644 return; } -diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c b/drivers/media/platform/vsp1/vsp1_wpf.c -index 7c48f81cd5c1..052a83e2d489 100644 --- a/drivers/media/platform/vsp1/vsp1_wpf.c +++ b/drivers/media/platform/vsp1/vsp1_wpf.c -@@ -216,6 +216,7 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -216,6 +216,7 @@ static void wpf_configure(struct vsp1_en if (params == VSP1_ENTITY_PARAMS_PARTITION) { const struct v4l2_pix_format_mplane *format = &wpf->format; @@ -93,7 +88,7 @@ index 7c48f81cd5c1..052a83e2d489 100644 struct vsp1_rwpf_memory mem = wpf->mem; unsigned int flip = wpf->flip.active; unsigned int width = source_format->width; -@@ -281,6 +282,14 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -281,6 +282,14 @@ static void wpf_configure(struct vsp1_en } } @@ -108,6 +103,3 @@ index 7c48f81cd5c1..052a83e2d489 100644 vsp1_wpf_write(wpf, dl, VI6_WPF_DSTM_ADDR_Y, mem.addr[0]); vsp1_wpf_write(wpf, dl, VI6_WPF_DSTM_ADDR_C0, mem.addr[1]); vsp1_wpf_write(wpf, dl, VI6_WPF_DSTM_ADDR_C1, mem.addr[2]); --- -2.13.3 - diff --git a/patches.renesas/0142-media-v4l-vsp1-Prevent-multiple-streamon-race-commen.patch b/patches.renesas/0142-media-v4l-vsp1-Prevent-multiple-streamon-race-commen.patch index b9e90a17c74452..e8cd34d400733c 100644 --- a/patches.renesas/0142-media-v4l-vsp1-Prevent-multiple-streamon-race-commen.patch +++ b/patches.renesas/0142-media-v4l-vsp1-Prevent-multiple-streamon-race-commen.patch @@ -30,14 +30,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 4461c84b52b4a952c657505ef7e4e06b016783df) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_video.c | 13 +++++++++++++ + drivers/media/platform/vsp1/vsp1_video.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index 0113a55b19c9..eb422c150847 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c -@@ -797,6 +797,7 @@ static int vsp1_video_start_streaming(struct vb2_queue *vq, unsigned int count) +@@ -797,6 +797,7 @@ static int vsp1_video_start_streaming(st { struct vsp1_video *video = vb2_get_drv_priv(vq); struct vsp1_pipeline *pipe = video->rwpf->pipe; @@ -45,7 +43,7 @@ index 0113a55b19c9..eb422c150847 100644 unsigned long flags; int ret; -@@ -807,11 +808,23 @@ static int vsp1_video_start_streaming(struct vb2_queue *vq, unsigned int count) +@@ -807,11 +808,23 @@ static int vsp1_video_start_streaming(st mutex_unlock(&pipe->lock); return ret; } @@ -69,6 +67,3 @@ index 0113a55b19c9..eb422c150847 100644 spin_lock_irqsave(&pipe->irqlock, flags); if (vsp1_pipeline_ready(pipe)) vsp1_video_pipeline_run(pipe); --- -2.13.3 - diff --git a/patches.renesas/0143-media-v4l-vsp1-Remove-redundant-pipe-dl-usage-from-d.patch b/patches.renesas/0143-media-v4l-vsp1-Remove-redundant-pipe-dl-usage-from-d.patch index 3fe15d4f32f577..a9fa3a4e25f397 100644 --- a/patches.renesas/0143-media-v4l-vsp1-Remove-redundant-pipe-dl-usage-from-d.patch +++ b/patches.renesas/0143-media-v4l-vsp1-Remove-redundant-pipe-dl-usage-from-d.patch @@ -13,14 +13,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit f2074708ee07848f86105b68bdce062de4e6685d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_drm.c | 20 ++++++++++---------- + drivers/media/platform/vsp1/vsp1_drm.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c -index 10287be5606f..afcb754579fc 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c -@@ -219,9 +219,6 @@ void vsp1_du_atomic_begin(struct device *dev) +@@ -219,9 +219,6 @@ void vsp1_du_atomic_begin(struct device struct vsp1_pipeline *pipe = &vsp1->drm->pipe; vsp1->drm->num_inputs = pipe->num_inputs; @@ -30,7 +28,7 @@ index 10287be5606f..afcb754579fc 100644 } EXPORT_SYMBOL_GPL(vsp1_du_atomic_begin); -@@ -425,10 +422,14 @@ void vsp1_du_atomic_flush(struct device *dev) +@@ -425,10 +422,14 @@ void vsp1_du_atomic_flush(struct device struct vsp1_pipeline *pipe = &vsp1->drm->pipe; struct vsp1_rwpf *inputs[VSP1_MAX_RPF] = { NULL, }; struct vsp1_entity *entity; @@ -45,7 +43,7 @@ index 10287be5606f..afcb754579fc 100644 /* Count the number of enabled inputs and sort them by Z-order. */ pipe->num_inputs = 0; -@@ -483,26 +484,25 @@ void vsp1_du_atomic_flush(struct device *dev) +@@ -483,26 +484,25 @@ void vsp1_du_atomic_flush(struct device struct vsp1_rwpf *rpf = to_rwpf(&entity->subdev); if (!pipe->inputs[rpf->entity.index]) { @@ -78,6 +76,3 @@ index 10287be5606f..afcb754579fc 100644 /* Start or stop the pipeline if needed. */ if (!vsp1->drm->num_inputs && pipe->num_inputs) { --- -2.13.3 - diff --git a/patches.renesas/0144-media-v4l-vsp1-Fix-multi-line-comment-style.patch b/patches.renesas/0144-media-v4l-vsp1-Fix-multi-line-comment-style.patch index ff61084da16c93..9aeb5133ae8d6a 100644 --- a/patches.renesas/0144-media-v4l-vsp1-Fix-multi-line-comment-style.patch +++ b/patches.renesas/0144-media-v4l-vsp1-Fix-multi-line-comment-style.patch @@ -10,27 +10,25 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 9dbed95ba640c1b4fb2d069814924811bdeb0de6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_bru.c | 27 ++++++++++++++++--------- - drivers/media/platform/vsp1/vsp1_dl.c | 27 ++++++++++++++++--------- - drivers/media/platform/vsp1/vsp1_drm.c | 21 +++++++++++++------- - drivers/media/platform/vsp1/vsp1_drv.c | 12 +++++++---- - drivers/media/platform/vsp1/vsp1_entity.c | 9 ++++++--- - drivers/media/platform/vsp1/vsp1_hsit.c | 3 ++- - drivers/media/platform/vsp1/vsp1_lif.c | 6 ++++-- - drivers/media/platform/vsp1/vsp1_pipe.c | 9 ++++++--- - drivers/media/platform/vsp1/vsp1_rpf.c | 9 ++++++--- - drivers/media/platform/vsp1/vsp1_rwpf.c | 6 ++++-- - drivers/media/platform/vsp1/vsp1_sru.c | 3 ++- - drivers/media/platform/vsp1/vsp1_uds.c | 3 ++- - drivers/media/platform/vsp1/vsp1_video.c | 33 ++++++++++++++++++++----------- - drivers/media/platform/vsp1/vsp1_wpf.c | 12 +++++++---- + drivers/media/platform/vsp1/vsp1_bru.c | 27 ++++++++++++++++-------- + drivers/media/platform/vsp1/vsp1_dl.c | 27 ++++++++++++++++-------- + drivers/media/platform/vsp1/vsp1_drm.c | 21 ++++++++++++------- + drivers/media/platform/vsp1/vsp1_drv.c | 12 +++++++--- + drivers/media/platform/vsp1/vsp1_entity.c | 9 +++++--- + drivers/media/platform/vsp1/vsp1_hsit.c | 3 +- + drivers/media/platform/vsp1/vsp1_lif.c | 6 +++-- + drivers/media/platform/vsp1/vsp1_pipe.c | 9 +++++--- + drivers/media/platform/vsp1/vsp1_rpf.c | 9 +++++--- + drivers/media/platform/vsp1/vsp1_rwpf.c | 6 +++-- + drivers/media/platform/vsp1/vsp1_sru.c | 3 +- + drivers/media/platform/vsp1/vsp1_uds.c | 3 +- + drivers/media/platform/vsp1/vsp1_video.c | 33 ++++++++++++++++++++---------- + drivers/media/platform/vsp1/vsp1_wpf.c | 12 +++++++--- 14 files changed, 120 insertions(+), 60 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_bru.c b/drivers/media/platform/vsp1/vsp1_bru.c -index ee8355c28f94..85362c5ef57a 100644 --- a/drivers/media/platform/vsp1/vsp1_bru.c +++ b/drivers/media/platform/vsp1/vsp1_bru.c -@@ -251,7 +251,8 @@ static int bru_set_selection(struct v4l2_subdev *subdev, +@@ -251,7 +251,8 @@ static int bru_set_selection(struct v4l2 sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1); sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1); @@ -40,7 +38,7 @@ index ee8355c28f94..85362c5ef57a 100644 * to the sink format size. */ format = vsp1_entity_get_pad_format(&bru->entity, config, sel->pad); -@@ -300,13 +301,15 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -300,13 +301,15 @@ static void bru_configure(struct vsp1_en format = vsp1_entity_get_pad_format(&bru->entity, bru->entity.config, bru->entity.source_pad); @@ -58,7 +56,7 @@ index ee8355c28f94..85362c5ef57a 100644 * format at the pipeline output is premultiplied. */ flags = pipe->output ? pipe->output->format.flags : 0; -@@ -314,7 +317,8 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -314,7 +317,8 @@ static void bru_configure(struct vsp1_en flags & V4L2_PIX_FMT_FLAG_PREMUL_ALPHA ? 0 : VI6_BRU_INCTRL_NRM); @@ -68,7 +66,7 @@ index ee8355c28f94..85362c5ef57a 100644 * configure its color. */ vsp1_bru_write(bru, dl, VI6_BRU_VIRRPF_SIZE, -@@ -325,7 +329,8 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -325,7 +329,8 @@ static void bru_configure(struct vsp1_en vsp1_bru_write(bru, dl, VI6_BRU_VIRRPF_COL, bru->bgcolor | (0xff << VI6_BRU_VIRRPF_COL_A_SHIFT)); @@ -78,7 +76,7 @@ index ee8355c28f94..85362c5ef57a 100644 * unit with a NOP operation to make BRU input 1 available as the * Blend/ROP unit B SRC input. */ -@@ -337,7 +342,8 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -337,7 +342,8 @@ static void bru_configure(struct vsp1_en bool premultiplied = false; u32 ctrl = 0; @@ -88,7 +86,7 @@ index ee8355c28f94..85362c5ef57a 100644 * input for alpha blending. Blend/ROP units corresponding to * disabled BRU inputs are used in ROP NOP mode to ignore the * SRC input. -@@ -352,13 +358,15 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -352,13 +358,15 @@ static void bru_configure(struct vsp1_en | VI6_BRU_CTRL_AROP(VI6_ROP_NOP); } @@ -106,7 +104,7 @@ index ee8355c28f94..85362c5ef57a 100644 * D in that order. The Blend/ROP unit B SRC is hardwired to the * ROP unit output, the corresponding register bits must be set * to 0. -@@ -368,7 +376,8 @@ static void bru_configure(struct vsp1_entity *entity, +@@ -368,7 +376,8 @@ static void bru_configure(struct vsp1_en vsp1_bru_write(bru, dl, VI6_BRU_CTRL(i), ctrl); @@ -116,11 +114,9 @@ index ee8355c28f94..85362c5ef57a 100644 * * DSTc = DSTc * (1 - SRCa) + SRCc * SRCa * DSTa = DSTa * (1 - SRCa) + SRCa -diff --git a/drivers/media/platform/vsp1/vsp1_dl.c b/drivers/media/platform/vsp1/vsp1_dl.c -index ad545aff4e35..7d8f37772b56 100644 --- a/drivers/media/platform/vsp1/vsp1_dl.c +++ b/drivers/media/platform/vsp1/vsp1_dl.c -@@ -240,7 +240,8 @@ static struct vsp1_dl_list *vsp1_dl_list_alloc(struct vsp1_dl_manager *dlm) +@@ -240,7 +240,8 @@ static struct vsp1_dl_list *vsp1_dl_list INIT_LIST_HEAD(&dl->fragments); dl->dlm = dlm; @@ -130,7 +126,7 @@ index ad545aff4e35..7d8f37772b56 100644 * and the optional header. Both are allocated together to avoid memory * fragmentation, with the header located right after the body in * memory. -@@ -511,7 +512,8 @@ void vsp1_dl_list_commit(struct vsp1_dl_list *dl) +@@ -511,7 +512,8 @@ void vsp1_dl_list_commit(struct vsp1_dl_ goto done; } @@ -140,7 +136,7 @@ index ad545aff4e35..7d8f37772b56 100644 * display list at any time and we can't touch the address and size * registers. In that case mark the update as pending, it will be * queued up to the hardware by the frame end interrupt handler. -@@ -523,7 +525,8 @@ void vsp1_dl_list_commit(struct vsp1_dl_list *dl) +@@ -523,7 +525,8 @@ void vsp1_dl_list_commit(struct vsp1_dl_ goto done; } @@ -150,7 +146,7 @@ index ad545aff4e35..7d8f37772b56 100644 * The UPD bit will be cleared by the device when the display list is * processed. */ -@@ -547,7 +550,8 @@ void vsp1_dlm_irq_display_start(struct vsp1_dl_manager *dlm) +@@ -547,7 +550,8 @@ void vsp1_dlm_irq_display_start(struct v { spin_lock(&dlm->lock); @@ -160,7 +156,7 @@ index ad545aff4e35..7d8f37772b56 100644 * processing by the device. The active display list, if any, won't be * accessed anymore and can be reused. */ -@@ -566,14 +570,16 @@ void vsp1_dlm_irq_frame_end(struct vsp1_dl_manager *dlm) +@@ -566,14 +570,16 @@ void vsp1_dlm_irq_frame_end(struct vsp1_ __vsp1_dl_list_put(dlm->active); dlm->active = NULL; @@ -179,7 +175,7 @@ index ad545aff4e35..7d8f37772b56 100644 * interrupt and occurred after the frame end event and UPD clear but * before interrupt processing. The hardware hasn't taken the update * into account yet, we'll thus skip one frame and retry. -@@ -581,7 +587,8 @@ void vsp1_dlm_irq_frame_end(struct vsp1_dl_manager *dlm) +@@ -581,7 +587,8 @@ void vsp1_dlm_irq_frame_end(struct vsp1_ if (vsp1_read(vsp1, VI6_DL_BODY_SIZE) & VI6_DL_BODY_SIZE_UPD) goto done; @@ -189,7 +185,7 @@ index ad545aff4e35..7d8f37772b56 100644 * frame end interrupt. The display list thus becomes active. */ if (dlm->queued) { -@@ -589,7 +596,8 @@ void vsp1_dlm_irq_frame_end(struct vsp1_dl_manager *dlm) +@@ -589,7 +596,8 @@ void vsp1_dlm_irq_frame_end(struct vsp1_ dlm->queued = NULL; } @@ -199,7 +195,7 @@ index ad545aff4e35..7d8f37772b56 100644 * list to the hardware if one has been prepared. */ if (dlm->pending) { -@@ -615,7 +623,8 @@ void vsp1_dlm_setup(struct vsp1_device *vsp1) +@@ -615,7 +623,8 @@ void vsp1_dlm_setup(struct vsp1_device * | VI6_DL_CTRL_DC2 | VI6_DL_CTRL_DC1 | VI6_DL_CTRL_DC0 | VI6_DL_CTRL_DLE; @@ -209,11 +205,9 @@ index ad545aff4e35..7d8f37772b56 100644 * Mode, all other pipelines use manual start. */ if (vsp1->drm) -diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c -index afcb754579fc..8cd88547da2c 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c -@@ -78,7 +78,8 @@ int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg) +@@ -78,7 +78,8 @@ int vsp1_du_setup_lif(struct device *dev int ret; if (!cfg) { @@ -223,7 +217,7 @@ index afcb754579fc..8cd88547da2c 100644 * the pipeline and turn the light off. */ ret = vsp1_pipeline_stop(pipe); -@@ -106,7 +107,8 @@ int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg) +@@ -106,7 +107,8 @@ int vsp1_du_setup_lif(struct device *dev dev_dbg(vsp1->dev, "%s: configuring LIF with format %ux%u\n", __func__, cfg->width, cfg->height); @@ -233,7 +227,7 @@ index afcb754579fc..8cd88547da2c 100644 * pipeline. */ memset(&format, 0, sizeof(format)); -@@ -175,7 +177,8 @@ int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg) +@@ -175,7 +177,8 @@ int vsp1_du_setup_lif(struct device *dev __func__, format.format.width, format.format.height, format.format.code); @@ -243,7 +237,7 @@ index afcb754579fc..8cd88547da2c 100644 * requested frame size and media bus code. */ if (format.format.width != cfg->width || -@@ -185,7 +188,8 @@ int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg) +@@ -185,7 +188,8 @@ int vsp1_du_setup_lif(struct device *dev return -EPIPE; } @@ -253,7 +247,7 @@ index afcb754579fc..8cd88547da2c 100644 * the pipeline pointer in all entities, which the s_stream handlers * will need. We don't start the entities themselves right at this point * as there's no plane configured yet, so we can't start processing -@@ -317,7 +321,8 @@ static int vsp1_du_setup_rpf_pipe(struct vsp1_device *vsp1, +@@ -317,7 +321,8 @@ static int vsp1_du_setup_rpf_pipe(struct const struct v4l2_rect *crop; int ret; @@ -263,7 +257,7 @@ index afcb754579fc..8cd88547da2c 100644 * BRU sink pad. */ crop = &vsp1->drm->inputs[rpf->entity.index].crop; -@@ -356,7 +361,8 @@ static int vsp1_du_setup_rpf_pipe(struct vsp1_device *vsp1, +@@ -356,7 +361,8 @@ static int vsp1_du_setup_rpf_pipe(struct __func__, sel.r.left, sel.r.top, sel.r.width, sel.r.height, rpf->entity.index); @@ -273,7 +267,7 @@ index afcb754579fc..8cd88547da2c 100644 * conversion if needed. */ format.pad = RWPF_PAD_SOURCE; -@@ -528,7 +534,8 @@ int vsp1_drm_create_links(struct vsp1_device *vsp1) +@@ -528,7 +534,8 @@ int vsp1_drm_create_links(struct vsp1_de unsigned int i; int ret; @@ -283,11 +277,9 @@ index afcb754579fc..8cd88547da2c 100644 * output to the DU. */ if (!vsp1->bru || !vsp1->lif) -diff --git a/drivers/media/platform/vsp1/vsp1_drv.c b/drivers/media/platform/vsp1/vsp1_drv.c -index aa237b48ad55..8d1e61b353bb 100644 --- a/drivers/media/platform/vsp1/vsp1_drv.c +++ b/drivers/media/platform/vsp1/vsp1_drv.c -@@ -170,7 +170,8 @@ static int vsp1_uapi_create_links(struct vsp1_device *vsp1) +@@ -170,7 +170,8 @@ static int vsp1_uapi_create_links(struct } for (i = 0; i < vsp1->info->wpf_count; ++i) { @@ -297,7 +289,7 @@ index aa237b48ad55..8d1e61b353bb 100644 * immutable. */ struct vsp1_rwpf *wpf = vsp1->wpf[i]; -@@ -227,7 +228,8 @@ static int vsp1_create_entities(struct vsp1_device *vsp1) +@@ -227,7 +228,8 @@ static int vsp1_create_entities(struct v media_device_init(mdev); vsp1->media_ops.link_setup = vsp1_entity_link_setup; @@ -307,7 +299,7 @@ index aa237b48ad55..8d1e61b353bb 100644 * the pipeline is configured internally by the driver in that case, and * its configuration can thus be trusted. */ -@@ -279,7 +281,8 @@ static int vsp1_create_entities(struct vsp1_device *vsp1) +@@ -279,7 +281,8 @@ static int vsp1_create_entities(struct v list_add_tail(&vsp1->hst->entity.list_dev, &vsp1->entities); @@ -317,7 +309,7 @@ index aa237b48ad55..8d1e61b353bb 100644 * which case the userspace API is disabled. If the userspace API is * enabled skip the LIF, even when present. */ -@@ -391,7 +394,8 @@ static int vsp1_create_entities(struct vsp1_device *vsp1) +@@ -391,7 +394,8 @@ static int vsp1_create_entities(struct v if (ret < 0) goto done; @@ -327,11 +319,9 @@ index aa237b48ad55..8d1e61b353bb 100644 * the DRM pipeline otherwise. */ if (vsp1->info->uapi) { -diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c -index da673495c222..12eca5660d6e 100644 --- a/drivers/media/platform/vsp1/vsp1_entity.c +++ b/drivers/media/platform/vsp1/vsp1_entity.c -@@ -199,7 +199,8 @@ int vsp1_subdev_enum_mbus_code(struct v4l2_subdev *subdev, +@@ -199,7 +199,8 @@ int vsp1_subdev_enum_mbus_code(struct v4 struct v4l2_subdev_pad_config *config; struct v4l2_mbus_framefmt *format; @@ -341,7 +331,7 @@ index da673495c222..12eca5660d6e 100644 * is always identical to the source format. */ if (code->index) -@@ -263,7 +264,8 @@ int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev, +@@ -263,7 +264,8 @@ int vsp1_subdev_enum_frame_size(struct v fse->min_height = min_height; fse->max_height = max_height; } else { @@ -351,7 +341,7 @@ index da673495c222..12eca5660d6e 100644 * the size on the sink pad. */ fse->min_width = format->width; -@@ -407,7 +409,8 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity, +@@ -407,7 +409,8 @@ int vsp1_entity_init(struct vsp1_device vsp1_entity_init_cfg(subdev, NULL); @@ -361,11 +351,9 @@ index da673495c222..12eca5660d6e 100644 * rectangles. */ entity->config = v4l2_subdev_alloc_pad_config(&entity->subdev); -diff --git a/drivers/media/platform/vsp1/vsp1_hsit.c b/drivers/media/platform/vsp1/vsp1_hsit.c -index 94316afc54ff..764d405345ee 100644 --- a/drivers/media/platform/vsp1/vsp1_hsit.c +++ b/drivers/media/platform/vsp1/vsp1_hsit.c -@@ -84,7 +84,8 @@ static int hsit_set_format(struct v4l2_subdev *subdev, +@@ -84,7 +84,8 @@ static int hsit_set_format(struct v4l2_s format = vsp1_entity_get_pad_format(&hsit->entity, config, fmt->pad); if (fmt->pad == HSIT_PAD_SOURCE) { @@ -375,11 +363,9 @@ index 94316afc54ff..764d405345ee 100644 * modified. */ fmt->format = *format; -diff --git a/drivers/media/platform/vsp1/vsp1_lif.c b/drivers/media/platform/vsp1/vsp1_lif.c -index e32acae1fc6e..702487f895b3 100644 --- a/drivers/media/platform/vsp1/vsp1_lif.c +++ b/drivers/media/platform/vsp1/vsp1_lif.c -@@ -84,7 +84,8 @@ static int lif_set_format(struct v4l2_subdev *subdev, +@@ -84,7 +84,8 @@ static int lif_set_format(struct v4l2_su format = vsp1_entity_get_pad_format(&lif->entity, config, fmt->pad); if (fmt->pad == LIF_PAD_SOURCE) { @@ -389,7 +375,7 @@ index e32acae1fc6e..702487f895b3 100644 * format. */ fmt->format = *format; -@@ -176,7 +177,8 @@ struct vsp1_lif *vsp1_lif_create(struct vsp1_device *vsp1) +@@ -176,7 +177,8 @@ struct vsp1_lif *vsp1_lif_create(struct lif->entity.ops = &lif_entity_ops; lif->entity.type = VSP1_ENTITY_LIF; @@ -399,11 +385,9 @@ index e32acae1fc6e..702487f895b3 100644 * requires a function to be set. Use PROC_VIDEO_PIXEL_FORMATTER just to * avoid triggering a WARN_ON(), the value won't be seen anywhere. */ -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c -index 280ba0804699..3f1acf68dc6e 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.c +++ b/drivers/media/platform/vsp1/vsp1_pipe.c -@@ -251,7 +251,8 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) +@@ -251,7 +251,8 @@ int vsp1_pipeline_stop(struct vsp1_pipel int ret; if (pipe->lif) { @@ -413,7 +397,7 @@ index 280ba0804699..3f1acf68dc6e 100644 * way to stop the pipeline is to reset the hardware. */ ret = vsp1_reset_wpf(pipe->output->entity.vsp1, -@@ -322,7 +323,8 @@ void vsp1_pipeline_propagate_alpha(struct vsp1_pipeline *pipe, +@@ -322,7 +323,8 @@ void vsp1_pipeline_propagate_alpha(struc if (!pipe->uds) return; @@ -423,7 +407,7 @@ index 280ba0804699..3f1acf68dc6e 100644 * output alpha value is thus always equal to 255. */ if (pipe->uds_input->type == VSP1_ENTITY_BRU) -@@ -337,7 +339,8 @@ void vsp1_pipelines_suspend(struct vsp1_device *vsp1) +@@ -337,7 +339,8 @@ void vsp1_pipelines_suspend(struct vsp1_ unsigned int i; int ret; @@ -433,11 +417,9 @@ index 280ba0804699..3f1acf68dc6e 100644 * pipelines twice, first to set them all to the stopping state, and * then to wait for the stop to complete. */ -diff --git a/drivers/media/platform/vsp1/vsp1_rpf.c b/drivers/media/platform/vsp1/vsp1_rpf.c -index 1d0944f308ae..f5a9a4c8c74d 100644 --- a/drivers/media/platform/vsp1/vsp1_rpf.c +++ b/drivers/media/platform/vsp1/vsp1_rpf.c -@@ -195,7 +195,8 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -195,7 +195,8 @@ static void rpf_configure(struct vsp1_en (left << VI6_RPF_LOC_HCOORD_SHIFT) | (top << VI6_RPF_LOC_VCOORD_SHIFT)); @@ -447,7 +429,7 @@ index 1d0944f308ae..f5a9a4c8c74d 100644 * a fixed alpha value set through the V4L2_CID_ALPHA_COMPONENT control * otherwise. * -@@ -225,7 +226,8 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -225,7 +226,8 @@ static void rpf_configure(struct vsp1_en u32 mult; if (fmtinfo->alpha) { @@ -457,7 +439,7 @@ index 1d0944f308ae..f5a9a4c8c74d 100644 * alpha multiplier. If the input is premultiplied we * need to multiply both the alpha channel and the pixel * components by the global alpha value to keep them -@@ -240,7 +242,8 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -240,7 +242,8 @@ static void rpf_configure(struct vsp1_en VI6_RPF_MULT_ALPHA_P_MMD_RATIO : VI6_RPF_MULT_ALPHA_P_MMD_NONE); } else { @@ -467,11 +449,9 @@ index 1d0944f308ae..f5a9a4c8c74d 100644 * global alpha value is applied in the unpacking unit, * the alpha multiplier isn't needed and must be * disabled. -diff --git a/drivers/media/platform/vsp1/vsp1_rwpf.c b/drivers/media/platform/vsp1/vsp1_rwpf.c -index 04104ef28fb5..7d52c88a583e 100644 --- a/drivers/media/platform/vsp1/vsp1_rwpf.c +++ b/drivers/media/platform/vsp1/vsp1_rwpf.c -@@ -86,7 +86,8 @@ static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev, +@@ -86,7 +86,8 @@ static int vsp1_rwpf_set_format(struct v format = vsp1_entity_get_pad_format(&rwpf->entity, config, fmt->pad); if (fmt->pad == RWPF_PAD_SOURCE) { @@ -481,7 +461,7 @@ index 04104ef28fb5..7d52c88a583e 100644 * format code can be changed on the source pad. */ format->code = fmt->format.code; -@@ -205,7 +206,8 @@ static int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev, +@@ -205,7 +206,8 @@ static int vsp1_rwpf_set_selection(struc format = vsp1_entity_get_pad_format(&rwpf->entity, config, RWPF_PAD_SINK); @@ -491,11 +471,9 @@ index 04104ef28fb5..7d52c88a583e 100644 * shifting the color plane. */ if (format->code == MEDIA_BUS_FMT_AYUV8_1X32) { -diff --git a/drivers/media/platform/vsp1/vsp1_sru.c b/drivers/media/platform/vsp1/vsp1_sru.c -index b4e568a3b4ed..30142793dfcd 100644 --- a/drivers/media/platform/vsp1/vsp1_sru.c +++ b/drivers/media/platform/vsp1/vsp1_sru.c -@@ -191,7 +191,8 @@ static void sru_try_format(struct vsp1_sru *sru, +@@ -191,7 +191,8 @@ static void sru_try_format(struct vsp1_s SRU_PAD_SINK); fmt->code = format->code; @@ -505,11 +483,9 @@ index b4e568a3b4ed..30142793dfcd 100644 * Compare the input and output rectangles areas (avoiding * integer overflows on the output): if the requested output * area is larger than 1.5^2 the input area upscale by two, -diff --git a/drivers/media/platform/vsp1/vsp1_uds.c b/drivers/media/platform/vsp1/vsp1_uds.c -index da8f89a31ea4..4226403ad235 100644 --- a/drivers/media/platform/vsp1/vsp1_uds.c +++ b/drivers/media/platform/vsp1/vsp1_uds.c -@@ -293,7 +293,8 @@ static void uds_configure(struct vsp1_entity *entity, +@@ -293,7 +293,8 @@ static void uds_configure(struct vsp1_en dev_dbg(uds->entity.vsp1->dev, "hscale %u vscale %u\n", hscale, vscale); @@ -519,11 +495,9 @@ index da8f89a31ea4..4226403ad235 100644 * scaling down with a factor lower than or equal to 1/2 in either * direction. */ -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index eb422c150847..620beb21dd14 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c -@@ -103,7 +103,8 @@ static int __vsp1_video_try_format(struct vsp1_video *video, +@@ -103,7 +103,8 @@ static int __vsp1_video_try_format(struc unsigned int height = pix->height; unsigned int i; @@ -533,7 +507,7 @@ index eb422c150847..620beb21dd14 100644 * equivalent. This selects the format older userspace applications want * while still exposing the new format. */ -@@ -114,7 +115,8 @@ static int __vsp1_video_try_format(struct vsp1_video *video, +@@ -114,7 +115,8 @@ static int __vsp1_video_try_format(struc } } @@ -543,7 +517,7 @@ index eb422c150847..620beb21dd14 100644 * requested format isn't supported. */ info = vsp1_get_format_info(video->vsp1, pix->pixelformat); -@@ -140,7 +142,8 @@ static int __vsp1_video_try_format(struct vsp1_video *video, +@@ -140,7 +142,8 @@ static int __vsp1_video_try_format(struc pix->height = clamp(height, VSP1_VIDEO_MIN_HEIGHT, VSP1_VIDEO_MAX_HEIGHT); @@ -553,7 +527,7 @@ index eb422c150847..620beb21dd14 100644 * the datasheet, strides not aligned to a multiple of 128 bytes result * in image corruption. */ -@@ -449,7 +452,8 @@ static void vsp1_video_pipeline_frame_end(struct vsp1_pipeline *pipe) +@@ -449,7 +452,8 @@ static void vsp1_video_pipeline_frame_en state = pipe->state; pipe->state = VSP1_PIPELINE_STOPPED; @@ -563,7 +537,7 @@ index eb422c150847..620beb21dd14 100644 * return. Otherwise restart the pipeline if ready. */ if (state == VSP1_PIPELINE_STOPPING) -@@ -491,7 +495,8 @@ static int vsp1_video_pipeline_build_branch(struct vsp1_pipeline *pipe, +@@ -491,7 +495,8 @@ static int vsp1_video_pipeline_build_bra entity = to_vsp1_entity( media_entity_to_v4l2_subdev(pad->entity)); @@ -573,7 +547,7 @@ index eb422c150847..620beb21dd14 100644 * number in the input RPF for use when configuring the RPF. */ if (entity->type == VSP1_ENTITY_BRU) { -@@ -526,7 +531,8 @@ static int vsp1_video_pipeline_build_branch(struct vsp1_pipeline *pipe, +@@ -526,7 +531,8 @@ static int vsp1_video_pipeline_build_bra : &input->entity; } @@ -583,7 +557,7 @@ index eb422c150847..620beb21dd14 100644 * that the output fan-out can't be more than one, there is thus * no need to verify here that only a single source link is * activated. -@@ -596,7 +602,8 @@ static int vsp1_video_pipeline_build(struct vsp1_pipeline *pipe, +@@ -596,7 +602,8 @@ static int vsp1_video_pipeline_build(str if (pipe->num_inputs == 0 || !pipe->output) return -EPIPE; @@ -593,7 +567,7 @@ index eb422c150847..620beb21dd14 100644 * contains no loop and that all branches end at the output WPF. */ for (i = 0; i < video->vsp1->info->rpf_count; ++i) { -@@ -627,7 +634,8 @@ static struct vsp1_pipeline *vsp1_video_pipeline_get(struct vsp1_video *video) +@@ -627,7 +634,8 @@ static struct vsp1_pipeline *vsp1_video_ struct vsp1_pipeline *pipe; int ret; @@ -603,7 +577,7 @@ index eb422c150847..620beb21dd14 100644 * been allocated just increment its reference count and return it. * Otherwise allocate a new pipeline and initialize it, it will be freed * when the last reference is released. -@@ -767,7 +775,8 @@ static int vsp1_video_setup_pipeline(struct vsp1_pipeline *pipe) +@@ -767,7 +775,8 @@ static int vsp1_video_setup_pipeline(str if (pipe->uds) { struct vsp1_uds *uds = to_uds(&pipe->uds->subdev); @@ -613,7 +587,7 @@ index eb422c150847..620beb21dd14 100644 * component doesn't need to be scaled as the BRU output alpha * value is fixed to 255. Otherwise we need to scale the alpha * component only when available at the input RPF. -@@ -981,7 +990,8 @@ vsp1_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type) +@@ -981,7 +990,8 @@ vsp1_video_streamon(struct file *file, v if (video->queue.owner && video->queue.owner != file->private_data) return -EBUSY; @@ -623,7 +597,7 @@ index eb422c150847..620beb21dd14 100644 * touching an entity in the pipeline can be activated or deactivated * once streaming is started. */ -@@ -1001,7 +1011,8 @@ vsp1_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type) +@@ -1001,7 +1011,8 @@ vsp1_video_streamon(struct file *file, v mutex_unlock(&mdev->graph_mutex); @@ -633,11 +607,9 @@ index eb422c150847..620beb21dd14 100644 * subdev. */ ret = vsp1_video_verify_format(video); -diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c b/drivers/media/platform/vsp1/vsp1_wpf.c -index 052a83e2d489..25a2ed6e2e18 100644 --- a/drivers/media/platform/vsp1/vsp1_wpf.c +++ b/drivers/media/platform/vsp1/vsp1_wpf.c -@@ -88,12 +88,14 @@ static int wpf_init_controls(struct vsp1_rwpf *wpf) +@@ -88,12 +88,14 @@ static int wpf_init_controls(struct vsp1 /* Only WPF0 supports flipping. */ num_flip_ctrls = 0; } else if (vsp1->info->features & VSP1_HAS_WPF_HFLIP) { @@ -654,7 +626,7 @@ index 052a83e2d489..25a2ed6e2e18 100644 * single control (vertical flip). */ num_flip_ctrls = 1; -@@ -139,7 +141,8 @@ static int wpf_s_stream(struct v4l2_subdev *subdev, int enable) +@@ -139,7 +141,8 @@ static int wpf_s_stream(struct v4l2_subd if (enable) return 0; @@ -664,7 +636,7 @@ index 052a83e2d489..25a2ed6e2e18 100644 * no pipeline run to apply the display list. */ vsp1_write(vsp1, VI6_WPF_IRQ_ENB(wpf->entity.index), 0); -@@ -336,7 +339,8 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -336,7 +339,8 @@ static void wpf_configure(struct vsp1_en vsp1_dl_list_write(dl, VI6_WPF_WRBCK_CTRL, 0); @@ -674,6 +646,3 @@ index 052a83e2d489..25a2ed6e2e18 100644 * configure it as the master layer. Otherwise configure all * inputs as sub-layers and select the virtual RPF as the master * layer. --- -2.13.3 - diff --git a/patches.renesas/0145-media-v4l-vsp1-Disable-HSV-formats-on-Gen3-hardware.patch b/patches.renesas/0145-media-v4l-vsp1-Disable-HSV-formats-on-Gen3-hardware.patch index 8eb2d9724008d0..277aa24970f945 100644 --- a/patches.renesas/0145-media-v4l-vsp1-Disable-HSV-formats-on-Gen3-hardware.patch +++ b/patches.renesas/0145-media-v4l-vsp1-Disable-HSV-formats-on-Gen3-hardware.patch @@ -14,14 +14,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 40ad34d8ebe7abd0d4df35a3364bf446e10f5c52) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_pipe.c | 12 +++++++++--- + drivers/media/platform/vsp1/vsp1_pipe.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c -index 3f1acf68dc6e..35364f594e19 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.c +++ b/drivers/media/platform/vsp1/vsp1_pipe.c -@@ -157,9 +157,15 @@ const struct vsp1_format_info *vsp1_get_format_info(struct vsp1_device *vsp1, +@@ -157,9 +157,15 @@ const struct vsp1_format_info *vsp1_get_ { unsigned int i; @@ -40,6 +38,3 @@ index 3f1acf68dc6e..35364f594e19 100644 for (i = 0; i < ARRAY_SIZE(vsp1_video_formats); ++i) { const struct vsp1_format_info *info = &vsp1_video_formats[i]; --- -2.13.3 - diff --git a/patches.renesas/0146-media-v4l-vsp1-Fix-struct-vsp1_drm-documentation.patch b/patches.renesas/0146-media-v4l-vsp1-Fix-struct-vsp1_drm-documentation.patch index aca0ef0b27db56..a58313876de0ba 100644 --- a/patches.renesas/0146-media-v4l-vsp1-Fix-struct-vsp1_drm-documentation.patch +++ b/patches.renesas/0146-media-v4l-vsp1-Fix-struct-vsp1_drm-documentation.patch @@ -13,11 +13,9 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 1b8ce4060b02c9ebfcb75a9d91cf85fb1fb1bc1b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_drm.h | 2 +- + drivers/media/platform/vsp1/vsp1_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/media/platform/vsp1/vsp1_drm.h b/drivers/media/platform/vsp1/vsp1_drm.h -index 9e28ab9254ba..c8d2f88fc483 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.h +++ b/drivers/media/platform/vsp1/vsp1_drm.h @@ -21,7 +21,7 @@ @@ -29,6 +27,3 @@ index 9e28ab9254ba..c8d2f88fc483 100644 * position for every input */ struct vsp1_drm { --- -2.13.3 - diff --git a/patches.renesas/0147-media-v4l-vsp1-Register-pipe-with-output-WPF.patch b/patches.renesas/0147-media-v4l-vsp1-Register-pipe-with-output-WPF.patch index c4007034b6a674..85334403aa4a84 100644 --- a/patches.renesas/0147-media-v4l-vsp1-Register-pipe-with-output-WPF.patch +++ b/patches.renesas/0147-media-v4l-vsp1-Register-pipe-with-output-WPF.patch @@ -20,14 +20,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 1531a208ed861e4bd287444f9466ffcf98383de2) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_drm.c | 1 + + drivers/media/platform/vsp1/vsp1_drm.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c -index 8cd88547da2c..6e161347088e 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c -@@ -602,6 +602,7 @@ int vsp1_drm_init(struct vsp1_device *vsp1) +@@ -602,6 +602,7 @@ int vsp1_drm_init(struct vsp1_device *vs pipe->bru = &vsp1->bru->entity; pipe->lif = &vsp1->lif->entity; pipe->output = vsp1->wpf[0]; @@ -35,6 +33,3 @@ index 8cd88547da2c..6e161347088e 100644 return 0; } --- -2.13.3 - diff --git a/patches.renesas/0148-media-v4l-vsp1-wpf-Implement-rotation-support.patch b/patches.renesas/0148-media-v4l-vsp1-wpf-Implement-rotation-support.patch index 954942f7e588d2..c81d8e637897cb 100644 --- a/patches.renesas/0148-media-v4l-vsp1-wpf-Implement-rotation-support.patch +++ b/patches.renesas/0148-media-v4l-vsp1-wpf-Implement-rotation-support.patch @@ -15,18 +15,16 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 3e9a0e0bfafdf6c28c520d43fd64c5775d04662f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_rpf.c | 2 +- - drivers/media/platform/vsp1/vsp1_rwpf.c | 5 + - drivers/media/platform/vsp1/vsp1_rwpf.h | 7 +- - drivers/media/platform/vsp1/vsp1_video.c | 12 +- - drivers/media/platform/vsp1/vsp1_wpf.c | 205 +++++++++++++++++++++++-------- + drivers/media/platform/vsp1/vsp1_rpf.c | 2 + drivers/media/platform/vsp1/vsp1_rwpf.c | 5 + drivers/media/platform/vsp1/vsp1_rwpf.h | 7 - + drivers/media/platform/vsp1/vsp1_video.c | 12 + + drivers/media/platform/vsp1/vsp1_wpf.c | 205 +++++++++++++++++++++++-------- 5 files changed, 177 insertions(+), 54 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_rpf.c b/drivers/media/platform/vsp1/vsp1_rpf.c -index f5a9a4c8c74d..8feddd59cf8d 100644 --- a/drivers/media/platform/vsp1/vsp1_rpf.c +++ b/drivers/media/platform/vsp1/vsp1_rpf.c -@@ -106,7 +106,7 @@ static void rpf_configure(struct vsp1_entity *entity, +@@ -106,7 +106,7 @@ static void rpf_configure(struct vsp1_en * of the pipeline. */ output = vsp1_entity_get_pad_format(wpf, wpf->config, @@ -35,11 +33,9 @@ index f5a9a4c8c74d..8feddd59cf8d 100644 crop.width = pipe->partition.width * input_width / output->width; -diff --git a/drivers/media/platform/vsp1/vsp1_rwpf.c b/drivers/media/platform/vsp1/vsp1_rwpf.c -index 7d52c88a583e..cfd8f1904fa6 100644 --- a/drivers/media/platform/vsp1/vsp1_rwpf.c +++ b/drivers/media/platform/vsp1/vsp1_rwpf.c -@@ -121,6 +121,11 @@ static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev, +@@ -121,6 +121,11 @@ static int vsp1_rwpf_set_format(struct v RWPF_PAD_SOURCE); *format = fmt->format; @@ -51,8 +47,6 @@ index 7d52c88a583e..cfd8f1904fa6 100644 done: mutex_unlock(&rwpf->entity.lock); return ret; -diff --git a/drivers/media/platform/vsp1/vsp1_rwpf.h b/drivers/media/platform/vsp1/vsp1_rwpf.h -index 1c98aff3da5d..58215a7ab631 100644 --- a/drivers/media/platform/vsp1/vsp1_rwpf.h +++ b/drivers/media/platform/vsp1/vsp1_rwpf.h @@ -56,9 +56,14 @@ struct vsp1_rwpf { @@ -71,11 +65,9 @@ index 1c98aff3da5d..58215a7ab631 100644 } flip; struct vsp1_rwpf_memory mem; -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index 620beb21dd14..79f48a025546 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c -@@ -187,9 +187,13 @@ static void vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe) +@@ -187,9 +187,13 @@ static void vsp1_video_pipeline_setup_pa struct vsp1_entity *entity; unsigned int div_size; @@ -90,7 +82,7 @@ index 620beb21dd14..79f48a025546 100644 div_size = format->width; /* Gen2 hardware doesn't require image partitioning. */ -@@ -229,9 +233,13 @@ static struct v4l2_rect vsp1_video_partition(struct vsp1_pipeline *pipe, +@@ -229,9 +233,13 @@ static struct v4l2_rect vsp1_video_parti struct v4l2_rect partition; unsigned int modulus; @@ -105,11 +97,9 @@ index 620beb21dd14..79f48a025546 100644 /* A single partition simply processes the output size in full. */ if (pipe->partitions <= 1) { -diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c b/drivers/media/platform/vsp1/vsp1_wpf.c -index 25a2ed6e2e18..32df109b119f 100644 --- a/drivers/media/platform/vsp1/vsp1_wpf.c +++ b/drivers/media/platform/vsp1/vsp1_wpf.c -@@ -43,32 +43,90 @@ static inline void vsp1_wpf_write(struct vsp1_rwpf *wpf, +@@ -43,32 +43,90 @@ static inline void vsp1_wpf_write(struct enum wpf_flip_ctrl { WPF_CTRL_VFLIP = 0, WPF_CTRL_HFLIP = 1, @@ -216,7 +206,7 @@ index 25a2ed6e2e18..32df109b119f 100644 return 0; } -@@ -89,10 +147,10 @@ static int wpf_init_controls(struct vsp1_rwpf *wpf) +@@ -89,10 +147,10 @@ static int wpf_init_controls(struct vsp1 num_flip_ctrls = 0; } else if (vsp1->info->features & VSP1_HAS_WPF_HFLIP) { /* @@ -230,7 +220,7 @@ index 25a2ed6e2e18..32df109b119f 100644 } else if (vsp1->info->features & VSP1_HAS_WPF_VFLIP) { /* * When only vertical flip is supported the WPF implements a -@@ -107,17 +165,19 @@ static int wpf_init_controls(struct vsp1_rwpf *wpf) +@@ -107,17 +165,19 @@ static int wpf_init_controls(struct vsp1 vsp1_rwpf_init_ctrls(wpf, num_flip_ctrls); if (num_flip_ctrls >= 1) { @@ -255,7 +245,7 @@ index 25a2ed6e2e18..32df109b119f 100644 } if (wpf->ctrls.error) { -@@ -222,8 +282,8 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -222,8 +282,8 @@ static void wpf_configure(struct vsp1_en const struct vsp1_format_info *fmtinfo = wpf->fmtinfo; struct vsp1_rwpf_memory mem = wpf->mem; unsigned int flip = wpf->flip.active; @@ -266,7 +256,7 @@ index 25a2ed6e2e18..32df109b119f 100644 unsigned int offset; /* -@@ -246,45 +306,78 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -246,45 +306,78 @@ static void wpf_configure(struct vsp1_en /* * Update the memory offsets based on flipping configuration. * The destination addresses point to the locations where the @@ -369,7 +359,7 @@ index 25a2ed6e2e18..32df109b119f 100644 /* * On Gen3 hardware the SPUVS bit has no effect on 3-planar * formats. Swap the U and V planes manually in that case. -@@ -306,6 +399,9 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -306,6 +399,9 @@ static void wpf_configure(struct vsp1_en outfmt = fmtinfo->hwfmt << VI6_WPF_OUTFMT_WRFMT_SHIFT; @@ -379,7 +369,7 @@ index 25a2ed6e2e18..32df109b119f 100644 if (fmtinfo->alpha) outfmt |= VI6_WPF_OUTFMT_PXA; if (fmtinfo->swap_yc) -@@ -367,9 +463,18 @@ static void wpf_configure(struct vsp1_entity *entity, +@@ -367,9 +463,18 @@ static void wpf_configure(struct vsp1_en VI6_WFP_IRQ_ENB_DFEE); } @@ -398,6 +388,3 @@ index 25a2ed6e2e18..32df109b119f 100644 }; /* ----------------------------------------------------------------------------- --- -2.13.3 - diff --git a/patches.renesas/0149-ASoC-wm8978-Add-OF-device-ID-table.patch b/patches.renesas/0149-ASoC-wm8978-Add-OF-device-ID-table.patch index bbef1e5d719c77..328b25281c4358 100644 --- a/patches.renesas/0149-ASoC-wm8978-Add-OF-device-ID-table.patch +++ b/patches.renesas/0149-ASoC-wm8978-Add-OF-device-ID-table.patch @@ -29,14 +29,12 @@ Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 5cf015d9cb02c360582b624497b0a1716881cf28) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - sound/soc/codecs/wm8978.c | 7 +++++++ + sound/soc/codecs/wm8978.c | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/sound/soc/codecs/wm8978.c b/sound/soc/codecs/wm8978.c -index 90b2d418ef60..cf761e2d7546 100644 --- a/sound/soc/codecs/wm8978.c +++ b/sound/soc/codecs/wm8978.c -@@ -1071,9 +1071,16 @@ static const struct i2c_device_id wm8978_i2c_id[] = { +@@ -1071,9 +1071,16 @@ static const struct i2c_device_id wm8978 }; MODULE_DEVICE_TABLE(i2c, wm8978_i2c_id); @@ -53,6 +51,3 @@ index 90b2d418ef60..cf761e2d7546 100644 }, .probe = wm8978_i2c_probe, .remove = wm8978_i2c_remove, --- -2.13.3 - diff --git a/patches.renesas/0150-clk-renesas-r8a7795-Add-IMR-clocks.patch b/patches.renesas/0150-clk-renesas-r8a7795-Add-IMR-clocks.patch index c7e30bc0201d26..08003254c826c7 100644 --- a/patches.renesas/0150-clk-renesas-r8a7795-Add-IMR-clocks.patch +++ b/patches.renesas/0150-clk-renesas-r8a7795-Add-IMR-clocks.patch @@ -14,14 +14,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 7d0a7c7bdf7f849ff864a539f1c0c20b8a053f2e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 4 ++++ + drivers/clk/renesas/r8a7795-cpg-mssr.c | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index bfffdb00df97..2add8218e0f7 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c -@@ -208,6 +208,10 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -208,6 +208,10 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("vin0", 811, R8A7795_CLK_S2D1), DEF_MOD("etheravb", 812, R8A7795_CLK_S3D2), DEF_MOD("sata0", 815, R8A7795_CLK_S3D2), @@ -32,6 +30,3 @@ index bfffdb00df97..2add8218e0f7 100644 DEF_MOD("gpio7", 905, R8A7795_CLK_CP), DEF_MOD("gpio6", 906, R8A7795_CLK_CP), DEF_MOD("gpio5", 907, R8A7795_CLK_CP), --- -2.13.3 - diff --git a/patches.renesas/0151-clk-renesas-r8a7796-Add-IMR-clocks.patch b/patches.renesas/0151-clk-renesas-r8a7796-Add-IMR-clocks.patch index 7db0e0d25f9cbb..6686f84d0272c8 100644 --- a/patches.renesas/0151-clk-renesas-r8a7796-Add-IMR-clocks.patch +++ b/patches.renesas/0151-clk-renesas-r8a7796-Add-IMR-clocks.patch @@ -12,14 +12,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 6c8a9312946374947287ac1bd3b94aba850a5d1f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 ++ + drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/clk/renesas/r8a7796-cpg-mssr.c b/drivers/clk/renesas/r8a7796-cpg-mssr.c -index 11e084a56b0d..12a23c18bc1e 100644 --- a/drivers/clk/renesas/r8a7796-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7796-cpg-mssr.c -@@ -179,6 +179,8 @@ static const struct mssr_mod_clk r8a7796_mod_clks[] __initconst = { +@@ -179,6 +179,8 @@ static const struct mssr_mod_clk r8a7796 DEF_MOD("vin1", 810, R8A7796_CLK_S0D2), DEF_MOD("vin0", 811, R8A7796_CLK_S0D2), DEF_MOD("etheravb", 812, R8A7796_CLK_S0D6), @@ -28,6 +26,3 @@ index 11e084a56b0d..12a23c18bc1e 100644 DEF_MOD("gpio7", 905, R8A7796_CLK_S3D4), DEF_MOD("gpio6", 906, R8A7796_CLK_S3D4), DEF_MOD("gpio5", 907, R8A7796_CLK_S3D4), --- -2.13.3 - diff --git a/patches.renesas/0152-clk-renesas-r8a7795-Correct-parent-clock-and-sort-or.patch b/patches.renesas/0152-clk-renesas-r8a7795-Correct-parent-clock-and-sort-or.patch index 4012d850113adf..429b7a3d3a2576 100644 --- a/patches.renesas/0152-clk-renesas-r8a7795-Correct-parent-clock-and-sort-or.patch +++ b/patches.renesas/0152-clk-renesas-r8a7795-Correct-parent-clock-and-sort-or.patch @@ -13,14 +13,12 @@ Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> (cherry picked from commit a843ed3f6c3e856f9091b042c6b4ed34c02a3187) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 4 ++-- + drivers/clk/renesas/r8a7795-cpg-mssr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index 2add8218e0f7..cde470ce81e4 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c -@@ -142,8 +142,8 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -142,8 +142,8 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("rwdt0", 402, R8A7795_CLK_R), DEF_MOD("intc-ex", 407, R8A7795_CLK_CP), DEF_MOD("intc-ap", 408, R8A7795_CLK_S3D1), @@ -31,6 +29,3 @@ index 2add8218e0f7..cde470ce81e4 100644 DEF_MOD("drif7", 508, R8A7795_CLK_S3D2), DEF_MOD("drif6", 509, R8A7795_CLK_S3D2), DEF_MOD("drif5", 510, R8A7795_CLK_S3D2), --- -2.13.3 - diff --git a/patches.renesas/0153-clk-renesas-r8a7795-Correct-name-of-watchdog-clock.patch b/patches.renesas/0153-clk-renesas-r8a7795-Correct-name-of-watchdog-clock.patch index 793d1e26901f75..2a9cffdd30f45f 100644 --- a/patches.renesas/0153-clk-renesas-r8a7795-Correct-name-of-watchdog-clock.patch +++ b/patches.renesas/0153-clk-renesas-r8a7795-Correct-name-of-watchdog-clock.patch @@ -9,14 +9,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 2122b56d30e4fb25b383f137e83e6b901e5b05ae) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 2 +- + drivers/clk/renesas/r8a7795-cpg-mssr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index cde470ce81e4..4e176e7f958b 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c -@@ -139,7 +139,7 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -139,7 +139,7 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("usb3-if0", 328, R8A7795_CLK_S3D1), DEF_MOD("usb-dmac0", 330, R8A7795_CLK_S3D1), DEF_MOD("usb-dmac1", 331, R8A7795_CLK_S3D1), @@ -25,6 +23,3 @@ index cde470ce81e4..4e176e7f958b 100644 DEF_MOD("intc-ex", 407, R8A7795_CLK_CP), DEF_MOD("intc-ap", 408, R8A7795_CLK_S3D1), DEF_MOD("audmac1", 501, R8A7795_CLK_S3D1), --- -2.13.3 - diff --git a/patches.renesas/0154-clk-renesas-r8a7796-Correct-name-of-watchdog-clock.patch b/patches.renesas/0154-clk-renesas-r8a7796-Correct-name-of-watchdog-clock.patch index 7853df1e117b8e..d479d0290931fd 100644 --- a/patches.renesas/0154-clk-renesas-r8a7796-Correct-name-of-watchdog-clock.patch +++ b/patches.renesas/0154-clk-renesas-r8a7796-Correct-name-of-watchdog-clock.patch @@ -9,14 +9,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 89aa58a3951bcf242c7755075a7429d0ed6640de) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 +- + drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/clk/renesas/r8a7796-cpg-mssr.c b/drivers/clk/renesas/r8a7796-cpg-mssr.c -index 12a23c18bc1e..55003194a256 100644 --- a/drivers/clk/renesas/r8a7796-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7796-cpg-mssr.c -@@ -135,7 +135,7 @@ static const struct mssr_mod_clk r8a7796_mod_clks[] __initconst = { +@@ -135,7 +135,7 @@ static const struct mssr_mod_clk r8a7796 DEF_MOD("sdif2", 312, R8A7796_CLK_SD2), DEF_MOD("sdif1", 313, R8A7796_CLK_SD1), DEF_MOD("sdif0", 314, R8A7796_CLK_SD0), @@ -25,6 +23,3 @@ index 12a23c18bc1e..55003194a256 100644 DEF_MOD("intc-ap", 408, R8A7796_CLK_S3D1), DEF_MOD("drif7", 508, R8A7796_CLK_S3D2), DEF_MOD("drif6", 509, R8A7796_CLK_S3D2), --- -2.13.3 - diff --git a/patches.renesas/0155-clk-renesas-r8a7795-Reformat-core-clock-table.patch b/patches.renesas/0155-clk-renesas-r8a7795-Reformat-core-clock-table.patch index e91fcf0c27b21f..e3c12e58929f31 100644 --- a/patches.renesas/0155-clk-renesas-r8a7795-Reformat-core-clock-table.patch +++ b/patches.renesas/0155-clk-renesas-r8a7795-Reformat-core-clock-table.patch @@ -10,11 +10,9 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 3c969cec16176e98f9d8c976c163d2bb519c7c87) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 20 ++++++++++---------- + drivers/clk/renesas/r8a7795-cpg-mssr.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index 4e176e7f958b..608178618da8 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c @@ -53,8 +53,8 @@ enum clk_ids { @@ -28,7 +26,7 @@ index 4e176e7f958b..608178618da8 100644 /* Internal Core Clocks */ DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN3_MAIN, CLK_EXTAL), -@@ -89,23 +89,23 @@ static const struct cpg_core_clk r8a7795_core_clks[] __initconst = { +@@ -89,23 +89,23 @@ static const struct cpg_core_clk r8a7795 DEF_FIXED("s3d2", R8A7795_CLK_S3D2, CLK_S3, 2, 1), DEF_FIXED("s3d4", R8A7795_CLK_S3D4, CLK_S3, 4, 1), @@ -60,6 +58,3 @@ index 4e176e7f958b..608178618da8 100644 }; static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { --- -2.13.3 - diff --git a/patches.renesas/0156-clk-renesas-r8a7796-Reformat-core-clock-table.patch b/patches.renesas/0156-clk-renesas-r8a7796-Reformat-core-clock-table.patch index 55540b60158e20..89606808ed06ee 100644 --- a/patches.renesas/0156-clk-renesas-r8a7796-Reformat-core-clock-table.patch +++ b/patches.renesas/0156-clk-renesas-r8a7796-Reformat-core-clock-table.patch @@ -10,11 +10,9 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit c013fc7d23ca5b29f0cdc37d58b2466ead4fd5f6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7796-cpg-mssr.c | 12 ++++++------ + drivers/clk/renesas/r8a7796-cpg-mssr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) -diff --git a/drivers/clk/renesas/r8a7796-cpg-mssr.c b/drivers/clk/renesas/r8a7796-cpg-mssr.c -index 55003194a256..f7787101b8d0 100644 --- a/drivers/clk/renesas/r8a7796-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7796-cpg-mssr.c @@ -54,8 +54,8 @@ enum clk_ids { @@ -28,7 +26,7 @@ index 55003194a256..f7787101b8d0 100644 /* Internal Core Clocks */ DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN3_MAIN, CLK_EXTAL), -@@ -95,10 +95,10 @@ static const struct cpg_core_clk r8a7796_core_clks[] __initconst = { +@@ -95,10 +95,10 @@ static const struct cpg_core_clk r8a7796 DEF_FIXED("s3d2", R8A7796_CLK_S3D2, CLK_S3, 2, 1), DEF_FIXED("s3d4", R8A7796_CLK_S3D4, CLK_S3, 4, 1), @@ -43,6 +41,3 @@ index 55003194a256..f7787101b8d0 100644 DEF_FIXED("cl", R8A7796_CLK_CL, CLK_PLL1_DIV2, 48, 1), DEF_FIXED("cp", R8A7796_CLK_CP, CLK_EXTAL, 2, 1), --- -2.13.3 - diff --git a/patches.renesas/0157-clk-renesas-rcar-gen3-cpg-Pass-mode-pins-to-rcar_gen.patch b/patches.renesas/0157-clk-renesas-rcar-gen3-cpg-Pass-mode-pins-to-rcar_gen.patch index 813a0cb7e34944..b0a6189e6a519f 100644 --- a/patches.renesas/0157-clk-renesas-rcar-gen3-cpg-Pass-mode-pins-to-rcar_gen.patch +++ b/patches.renesas/0157-clk-renesas-rcar-gen3-cpg-Pass-mode-pins-to-rcar_gen.patch @@ -12,17 +12,15 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 5f3a432a44b135db002d22446827cfa061fc0bfb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 2 +- - drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 +- - drivers/clk/renesas/rcar-gen3-cpg.c | 4 +++- - drivers/clk/renesas/rcar-gen3-cpg.h | 2 +- + drivers/clk/renesas/r8a7795-cpg-mssr.c | 2 +- + drivers/clk/renesas/r8a7796-cpg-mssr.c | 2 +- + drivers/clk/renesas/rcar-gen3-cpg.c | 4 +++- + drivers/clk/renesas/rcar-gen3-cpg.h | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index 608178618da8..4699f416e275 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c -@@ -330,7 +330,7 @@ static int __init r8a7795_cpg_mssr_init(struct device *dev) +@@ -330,7 +330,7 @@ static int __init r8a7795_cpg_mssr_init( return -EINVAL; } @@ -31,11 +29,9 @@ index 608178618da8..4699f416e275 100644 } const struct cpg_mssr_info r8a7795_cpg_mssr_info __initconst = { -diff --git a/drivers/clk/renesas/r8a7796-cpg-mssr.c b/drivers/clk/renesas/r8a7796-cpg-mssr.c -index f7787101b8d0..9d114b31b073 100644 --- a/drivers/clk/renesas/r8a7796-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7796-cpg-mssr.c -@@ -273,7 +273,7 @@ static int __init r8a7796_cpg_mssr_init(struct device *dev) +@@ -273,7 +273,7 @@ static int __init r8a7796_cpg_mssr_init( return -EINVAL; } @@ -44,11 +40,9 @@ index f7787101b8d0..9d114b31b073 100644 } const struct cpg_mssr_info r8a7796_cpg_mssr_info __initconst = { -diff --git a/drivers/clk/renesas/rcar-gen3-cpg.c b/drivers/clk/renesas/rcar-gen3-cpg.c -index 742f6dc7c156..d395bb8c22f5 100644 --- a/drivers/clk/renesas/rcar-gen3-cpg.c +++ b/drivers/clk/renesas/rcar-gen3-cpg.c -@@ -247,6 +247,7 @@ static struct clk * __init cpg_sd_clk_register(const struct cpg_core_clk *core, +@@ -247,6 +247,7 @@ static struct clk * __init cpg_sd_clk_re static const struct rcar_gen3_cpg_pll_config *cpg_pll_config __initdata; static unsigned int cpg_clk_extalr __initdata; @@ -56,7 +50,7 @@ index 742f6dc7c156..d395bb8c22f5 100644 struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, const struct cpg_core_clk *core, const struct cpg_mssr_info *info, -@@ -334,9 +335,10 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -334,9 +335,10 @@ struct clk * __init rcar_gen3_cpg_clk_re } int __init rcar_gen3_cpg_init(const struct rcar_gen3_cpg_pll_config *config, @@ -68,11 +62,9 @@ index 742f6dc7c156..d395bb8c22f5 100644 + cpg_mode = mode; return 0; } -diff --git a/drivers/clk/renesas/rcar-gen3-cpg.h b/drivers/clk/renesas/rcar-gen3-cpg.h -index f788f481dd42..073be54b5d03 100644 --- a/drivers/clk/renesas/rcar-gen3-cpg.h +++ b/drivers/clk/renesas/rcar-gen3-cpg.h -@@ -37,6 +37,6 @@ struct clk *rcar_gen3_cpg_clk_register(struct device *dev, +@@ -37,6 +37,6 @@ struct clk *rcar_gen3_cpg_clk_register(s const struct cpg_core_clk *core, const struct cpg_mssr_info *info, struct clk **clks, void __iomem *base); int rcar_gen3_cpg_init(const struct rcar_gen3_cpg_pll_config *config, @@ -80,6 +72,3 @@ index f788f481dd42..073be54b5d03 100644 + unsigned int clk_extalr, u32 mode); #endif --- -2.13.3 - diff --git a/patches.renesas/0158-clk-renesas-rcar-gen3-Add-workaround-for-PLL0-2-4-er.patch b/patches.renesas/0158-clk-renesas-rcar-gen3-Add-workaround-for-PLL0-2-4-er.patch index 33a0090cf2161f..97dd697609ff56 100644 --- a/patches.renesas/0158-clk-renesas-rcar-gen3-Add-workaround-for-PLL0-2-4-er.patch +++ b/patches.renesas/0158-clk-renesas-rcar-gen3-Add-workaround-for-PLL0-2-4-er.patch @@ -14,11 +14,9 @@ Cc: Dien Pham <dien.pham.ry@renesas.com> (cherry picked from commit cecbe87d73006cb321dec79b349e3fefd1a80962) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/rcar-gen3-cpg.c | 24 ++++++++++++++++++++++++ + drivers/clk/renesas/rcar-gen3-cpg.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) -diff --git a/drivers/clk/renesas/rcar-gen3-cpg.c b/drivers/clk/renesas/rcar-gen3-cpg.c -index d395bb8c22f5..e5247e3dc897 100644 --- a/drivers/clk/renesas/rcar-gen3-cpg.c +++ b/drivers/clk/renesas/rcar-gen3-cpg.c @@ -20,6 +20,7 @@ @@ -29,7 +27,7 @@ index d395bb8c22f5..e5247e3dc897 100644 #include "renesas-cpg-mssr.h" #include "rcar-gen3-cpg.h" -@@ -248,6 +249,17 @@ static struct clk * __init cpg_sd_clk_register(const struct cpg_core_clk *core, +@@ -248,6 +249,17 @@ static struct clk * __init cpg_sd_clk_re static const struct rcar_gen3_cpg_pll_config *cpg_pll_config __initdata; static unsigned int cpg_clk_extalr __initdata; static u32 cpg_mode __initdata; @@ -47,7 +45,7 @@ index d395bb8c22f5..e5247e3dc897 100644 struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, const struct cpg_core_clk *core, const struct cpg_mssr_info *info, -@@ -276,6 +288,8 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -276,6 +288,8 @@ struct clk * __init rcar_gen3_cpg_clk_re */ value = readl(base + CPG_PLL0CR); mult = (((value >> 24) & 0x7f) + 1) * 2; @@ -56,7 +54,7 @@ index d395bb8c22f5..e5247e3dc897 100644 break; case CLK_TYPE_GEN3_PLL1: -@@ -291,6 +305,8 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -291,6 +305,8 @@ struct clk * __init rcar_gen3_cpg_clk_re */ value = readl(base + CPG_PLL2CR); mult = (((value >> 24) & 0x7f) + 1) * 2; @@ -65,7 +63,7 @@ index d395bb8c22f5..e5247e3dc897 100644 break; case CLK_TYPE_GEN3_PLL3: -@@ -306,6 +322,8 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -306,6 +322,8 @@ struct clk * __init rcar_gen3_cpg_clk_re */ value = readl(base + CPG_PLL4CR); mult = (((value >> 24) & 0x7f) + 1) * 2; @@ -74,7 +72,7 @@ index d395bb8c22f5..e5247e3dc897 100644 break; case CLK_TYPE_GEN3_SD: -@@ -337,8 +355,14 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -337,8 +355,14 @@ struct clk * __init rcar_gen3_cpg_clk_re int __init rcar_gen3_cpg_init(const struct rcar_gen3_cpg_pll_config *config, unsigned int clk_extalr, u32 mode) { @@ -89,6 +87,3 @@ index d395bb8c22f5..e5247e3dc897 100644 + pr_debug("%s: mode = 0x%x quirks = 0x%x\n", __func__, mode, cpg_quirks); return 0; } --- -2.13.3 - diff --git a/patches.renesas/0159-clk-renesas-cpg-mssr-Add-support-for-fixing-up-clock.patch b/patches.renesas/0159-clk-renesas-cpg-mssr-Add-support-for-fixing-up-clock.patch index 6d79b6824b2d23..5c9cb89c9d516f 100644 --- a/patches.renesas/0159-clk-renesas-cpg-mssr-Add-support-for-fixing-up-clock.patch +++ b/patches.renesas/0159-clk-renesas-cpg-mssr-Add-support-for-fixing-up-clock.patch @@ -21,15 +21,13 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 48d0341e41870bcfc42206d38e00a6b1c2fea929) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/renesas-cpg-mssr.c | 50 ++++++++++++++++++++++++++++++++++ - drivers/clk/renesas/renesas-cpg-mssr.h | 22 +++++++++++++++ + drivers/clk/renesas/renesas-cpg-mssr.c | 50 +++++++++++++++++++++++++++++++++ + drivers/clk/renesas/renesas-cpg-mssr.h | 22 ++++++++++++++ 2 files changed, 72 insertions(+) -diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c b/drivers/clk/renesas/renesas-cpg-mssr.c -index eadcbd43ff88..99eeec6f24ec 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.c +++ b/drivers/clk/renesas/renesas-cpg-mssr.c -@@ -265,6 +265,11 @@ static void __init cpg_mssr_register_core_clk(const struct cpg_core_clk *core, +@@ -265,6 +265,11 @@ static void __init cpg_mssr_register_cor WARN_DEBUG(id >= priv->num_core_clks); WARN_DEBUG(PTR_ERR(priv->clks[id]) != -ENOENT); @@ -41,7 +39,7 @@ index eadcbd43ff88..99eeec6f24ec 100644 switch (core->type) { case CLK_TYPE_IN: clk = of_clk_get_by_name(priv->dev->of_node, core->name); -@@ -335,6 +340,11 @@ static void __init cpg_mssr_register_mod_clk(const struct mssr_mod_clk *mod, +@@ -335,6 +340,11 @@ static void __init cpg_mssr_register_mod WARN_DEBUG(mod->parent >= priv->num_core_clks + priv->num_mod_clks); WARN_DEBUG(PTR_ERR(priv->clks[id]) != -ENOENT); @@ -99,11 +97,9 @@ index eadcbd43ff88..99eeec6f24ec 100644 + MODULE_DESCRIPTION("Renesas CPG/MSSR Driver"); MODULE_LICENSE("GPL v2"); -diff --git a/drivers/clk/renesas/renesas-cpg-mssr.h b/drivers/clk/renesas/renesas-cpg-mssr.h -index 4bb7a80c6469..148f4f0aa2a4 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.h +++ b/drivers/clk/renesas/renesas-cpg-mssr.h -@@ -134,4 +134,26 @@ extern const struct cpg_mssr_info r8a7743_cpg_mssr_info; +@@ -134,4 +134,26 @@ extern const struct cpg_mssr_info r8a774 extern const struct cpg_mssr_info r8a7745_cpg_mssr_info; extern const struct cpg_mssr_info r8a7795_cpg_mssr_info; extern const struct cpg_mssr_info r8a7796_cpg_mssr_info; @@ -130,6 +126,3 @@ index 4bb7a80c6469..148f4f0aa2a4 100644 + const struct mssr_mod_reparent *clks, + unsigned int n); #endif --- -2.13.3 - diff --git a/patches.renesas/0160-clk-renesas-r8a7795-Add-support-for-R-Car-H3-ES2.0.patch b/patches.renesas/0160-clk-renesas-r8a7795-Add-support-for-R-Car-H3-ES2.0.patch index c80011e88e678c..2e79708640cb0a 100644 --- a/patches.renesas/0160-clk-renesas-r8a7795-Add-support-for-R-Car-H3-ES2.0.patch +++ b/patches.renesas/0160-clk-renesas-r8a7795-Add-support-for-R-Car-H3-ES2.0.patch @@ -34,11 +34,9 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 5573d194128b47334e3edb2db87cb471449d445a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/r8a7795-cpg-mssr.c | 201 +++++++++++++++++++++++++-------- + drivers/clk/renesas/r8a7795-cpg-mssr.c | 201 ++++++++++++++++++++++++--------- 1 file changed, 151 insertions(+), 50 deletions(-) -diff --git a/drivers/clk/renesas/r8a7795-cpg-mssr.c b/drivers/clk/renesas/r8a7795-cpg-mssr.c -index 4699f416e275..eaa98b488f01 100644 --- a/drivers/clk/renesas/r8a7795-cpg-mssr.c +++ b/drivers/clk/renesas/r8a7795-cpg-mssr.c @@ -16,6 +16,7 @@ @@ -67,7 +65,7 @@ index 4699f416e275..eaa98b488f01 100644 /* External Clock Inputs */ DEF_INPUT("extal", CLK_EXTAL), DEF_INPUT("extalr", CLK_EXTALR), -@@ -78,7 +79,12 @@ static const struct cpg_core_clk r8a7795_core_clks[] __initconst = { +@@ -78,7 +79,12 @@ static const struct cpg_core_clk r8a7795 DEF_FIXED("zt", R8A7795_CLK_ZT, CLK_PLL1_DIV2, 4, 1), DEF_FIXED("zx", R8A7795_CLK_ZX, CLK_PLL1_DIV2, 2, 1), DEF_FIXED("s0d1", R8A7795_CLK_S0D1, CLK_S0, 1, 1), @@ -80,7 +78,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_FIXED("s1d1", R8A7795_CLK_S1D1, CLK_S1, 1, 1), DEF_FIXED("s1d2", R8A7795_CLK_S1D2, CLK_S1, 2, 1), DEF_FIXED("s1d4", R8A7795_CLK_S1D4, CLK_S1, 4, 1), -@@ -108,10 +114,10 @@ static const struct cpg_core_clk r8a7795_core_clks[] __initconst = { +@@ -108,10 +114,10 @@ static const struct cpg_core_clk r8a7795 DEF_BASE("r", R8A7795_CLK_R, CLK_TYPE_GEN3_R, CLK_RINT), }; @@ -95,7 +93,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_MOD("scif5", 202, R8A7795_CLK_S3D4), DEF_MOD("scif4", 203, R8A7795_CLK_S3D4), DEF_MOD("scif3", 204, R8A7795_CLK_S3D4), -@@ -121,9 +127,9 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -121,9 +127,9 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("msiof2", 209, R8A7795_CLK_MSO), DEF_MOD("msiof1", 210, R8A7795_CLK_MSO), DEF_MOD("msiof0", 211, R8A7795_CLK_MSO), @@ -108,7 +106,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_MOD("cmt3", 300, R8A7795_CLK_R), DEF_MOD("cmt2", 301, R8A7795_CLK_R), DEF_MOD("cmt1", 302, R8A7795_CLK_R), -@@ -135,15 +141,15 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -135,15 +141,15 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("sdif0", 314, R8A7795_CLK_SD0), DEF_MOD("pcie1", 318, R8A7795_CLK_S3D1), DEF_MOD("pcie0", 319, R8A7795_CLK_S3D1), @@ -127,7 +125,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_MOD("drif7", 508, R8A7795_CLK_S3D2), DEF_MOD("drif6", 509, R8A7795_CLK_S3D2), DEF_MOD("drif5", 510, R8A7795_CLK_S3D2), -@@ -159,35 +165,35 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -159,35 +165,35 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("hscif0", 520, R8A7795_CLK_S3D1), DEF_MOD("thermal", 522, R8A7795_CLK_CP), DEF_MOD("pwm", 523, R8A7795_CLK_S3D4), @@ -188,7 +186,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_MOD("csi20", 714, R8A7795_CLK_CSI0), DEF_MOD("csi41", 715, R8A7795_CLK_CSI0), DEF_MOD("csi40", 716, R8A7795_CLK_CSI0), -@@ -198,20 +204,20 @@ static const struct mssr_mod_clk r8a7795_mod_clks[] __initconst = { +@@ -198,20 +204,20 @@ static const struct mssr_mod_clk r8a7795 DEF_MOD("lvds", 727, R8A7795_CLK_S0D4), DEF_MOD("hdmi1", 728, R8A7795_CLK_HDMI), DEF_MOD("hdmi0", 729, R8A7795_CLK_HDMI), @@ -222,7 +220,7 @@ index 4699f416e275..eaa98b488f01 100644 DEF_MOD("gpio7", 905, R8A7795_CLK_CP), DEF_MOD("gpio6", 906, R8A7795_CLK_CP), DEF_MOD("gpio5", 907, R8A7795_CLK_CP), -@@ -314,6 +320,82 @@ static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[16] __initconst = { +@@ -314,6 +320,82 @@ static const struct rcar_gen3_cpg_pll_co { 2, 192, 192, }, }; @@ -305,7 +303,7 @@ index 4699f416e275..eaa98b488f01 100644 static int __init r8a7795_cpg_mssr_init(struct device *dev) { const struct rcar_gen3_cpg_pll_config *cpg_pll_config; -@@ -330,6 +412,25 @@ static int __init r8a7795_cpg_mssr_init(struct device *dev) +@@ -330,6 +412,25 @@ static int __init r8a7795_cpg_mssr_init( return -EINVAL; } @@ -331,6 +329,3 @@ index 4699f416e275..eaa98b488f01 100644 return rcar_gen3_cpg_init(cpg_pll_config, CLK_EXTALR, cpg_mode); } --- -2.13.3 - diff --git a/patches.renesas/0161-clk-renesas-rcar-gen3-cpg-Add-support-for-RCLK-on-R-.patch b/patches.renesas/0161-clk-renesas-rcar-gen3-cpg-Add-support-for-RCLK-on-R-.patch index c5083f7266fe06..da70a3f06aa909 100644 --- a/patches.renesas/0161-clk-renesas-rcar-gen3-cpg-Add-support-for-RCLK-on-R-.patch +++ b/patches.renesas/0161-clk-renesas-rcar-gen3-cpg-Add-support-for-RCLK-on-R-.patch @@ -16,11 +16,9 @@ Cc: Takeshi Kihara <takeshi.kihara.df@renesas.com> (cherry picked from commit bb1953067c05be30a605ee1d5b05a2677735bb37) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/clk/renesas/rcar-gen3-cpg.c | 38 ++++++++++++++++++++++++++----------- - 1 file changed, 27 insertions(+), 11 deletions(-) + drivers/clk/renesas/rcar-gen3-cpg.c | 36 ++++++++++++++++++++++++++---------- + 1 file changed, 26 insertions(+), 10 deletions(-) -diff --git a/drivers/clk/renesas/rcar-gen3-cpg.c b/drivers/clk/renesas/rcar-gen3-cpg.c -index e5247e3dc897..3dee900522b7 100644 --- a/drivers/clk/renesas/rcar-gen3-cpg.c +++ b/drivers/clk/renesas/rcar-gen3-cpg.c @@ -252,11 +252,20 @@ static u32 cpg_mode __initdata; @@ -45,7 +43,7 @@ index e5247e3dc897..3dee900522b7 100644 }, { /* sentinel */ } }; -@@ -330,18 +339,25 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev, +@@ -330,18 +339,25 @@ struct clk * __init rcar_gen3_cpg_clk_re return cpg_sd_clk_register(core, base, __clk_get_name(parent)); case CLK_TYPE_GEN3_R: @@ -54,10 +52,6 @@ index e5247e3dc897..3dee900522b7 100644 - * Only if EXTALR is populated, we switch to it. - */ - value = readl(base + CPG_RCKCR) & 0x3f; -- -- if (clk_get_rate(clks[cpg_clk_extalr])) { -- parent = clks[cpg_clk_extalr]; -- value |= BIT(15); + if (cpg_quirks & RCKCR_CKSEL) { + /* + * RINT is default. @@ -69,7 +63,10 @@ index e5247e3dc897..3dee900522b7 100644 + parent = clks[cpg_clk_extalr]; + value |= BIT(15); + } -+ + +- if (clk_get_rate(clks[cpg_clk_extalr])) { +- parent = clks[cpg_clk_extalr]; +- value |= BIT(15); + writel(value, base + CPG_RCKCR); + break; } @@ -81,6 +78,3 @@ index e5247e3dc897..3dee900522b7 100644 break; default: --- -2.13.3 - diff --git a/patches.renesas/0162-pinctrl-sh-pfc-r8a7795-Fix-hscif2_clk_b-and-hscif4_c.patch b/patches.renesas/0162-pinctrl-sh-pfc-r8a7795-Fix-hscif2_clk_b-and-hscif4_c.patch deleted file mode 100644 index 5b5688670adf43..00000000000000 --- a/patches.renesas/0162-pinctrl-sh-pfc-r8a7795-Fix-hscif2_clk_b-and-hscif4_c.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f448442eccb681d866c97c37d5e1b1b7dfe3a35d Mon Sep 17 00:00:00 2001 -From: Geert Uytterhoeven <geert+renesas@glider.be> -Date: Sat, 11 Mar 2017 12:26:09 +0100 -Subject: [PATCH 162/286] pinctrl: sh-pfc: r8a7795: Fix hscif2_clk_b and - hscif4_ctrl - -Fix typos in hscif2_clk_b_mux[] and hscif4_ctrl_mux[]. - -Fixes: a56069c46c102710 ("pinctrl: sh-pfc: r8a7795: Add HSCIF pins, groups, and functions") -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit 4324b6084f45b9faebda8d6563d8625d22b4b5df) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -index 504d0c3d7f74..6ba7ed15a461 100644 ---- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -@@ -2167,7 +2167,7 @@ static const unsigned int hscif2_clk_b_pins[] = { - RCAR_GP_PIN(6, 21), - }; - static const unsigned int hscif2_clk_b_mux[] = { -- HSCK1_B_MARK, -+ HSCK2_B_MARK, - }; - static const unsigned int hscif2_ctrl_b_pins[] = { - /* RTS, CTS */ -@@ -2240,7 +2240,7 @@ static const unsigned int hscif4_ctrl_pins[] = { - RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14), - }; - static const unsigned int hscif4_ctrl_mux[] = { -- HRTS4_N_MARK, HCTS3_N_MARK, -+ HRTS4_N_MARK, HCTS4_N_MARK, - }; - - static const unsigned int hscif4_data_b_pins[] = { --- -2.13.3 - diff --git a/patches.renesas/0163-pinctrl-sh-pfc-r8a7795-Restore-sort-order.patch b/patches.renesas/0163-pinctrl-sh-pfc-r8a7795-Restore-sort-order.patch index 7f6b226205d99d..ee0fc0045f3808 100644 --- a/patches.renesas/0163-pinctrl-sh-pfc-r8a7795-Restore-sort-order.patch +++ b/patches.renesas/0163-pinctrl-sh-pfc-r8a7795-Restore-sort-order.patch @@ -10,14 +10,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit b332da51a929de9081058b17d108008cd6a0d15f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 171 ++++++++++++++++++----------------- + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 171 +++++++++++++++++------------------ 1 file changed, 86 insertions(+), 85 deletions(-) -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -index 6ba7ed15a461..3d1c32cca16a 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -@@ -3101,6 +3101,55 @@ static const unsigned int pwm6_b_mux[] = { +@@ -3101,6 +3101,55 @@ static const unsigned int pwm6_b_mux[] = PWM6_B_MARK, }; @@ -73,7 +71,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 /* - SATA --------------------------------------------------------------------*/ static const unsigned int sata0_devslp_a_pins[] = { /* DEVSLP */ -@@ -3299,6 +3348,23 @@ static const unsigned int scif5_clk_pins[] = { +@@ -3299,6 +3348,23 @@ static const unsigned int scif5_clk_pins static const unsigned int scif5_clk_mux[] = { SCK5_MARK, }; @@ -97,7 +95,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 /* - SDHI0 ------------------------------------------------------------------ */ static const unsigned int sdhi0_data1_pins[] = { /* D0 */ -@@ -3506,22 +3572,6 @@ static const unsigned int sdhi3_ds_mux[] = { +@@ -3506,22 +3572,6 @@ static const unsigned int sdhi3_ds_mux[] SD3_DS_MARK, }; @@ -176,7 +174,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(audio_clk_a_a), SH_PFC_PIN_GROUP(audio_clk_a_b), -@@ -3990,6 +3991,12 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { +@@ -3990,6 +3991,12 @@ static const struct sh_pfc_pin_group pin SH_PFC_PIN_GROUP(pwm5_b), SH_PFC_PIN_GROUP(pwm6_a), SH_PFC_PIN_GROUP(pwm6_b), @@ -189,7 +187,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 SH_PFC_PIN_GROUP(sata0_devslp_a), SH_PFC_PIN_GROUP(sata0_devslp_b), SH_PFC_PIN_GROUP(scif0_data), -@@ -4073,12 +4080,6 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { +@@ -4073,12 +4080,6 @@ static const struct sh_pfc_pin_group pin SH_PFC_PIN_GROUP(usb0), SH_PFC_PIN_GROUP(usb1), SH_PFC_PIN_GROUP(usb2), @@ -202,7 +200,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 }; static const char * const audio_clk_groups[] = { -@@ -4393,6 +4394,18 @@ static const char * const pwm6_groups[] = { +@@ -4393,6 +4394,18 @@ static const char * const pwm6_groups[] "pwm6_b", }; @@ -221,7 +219,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 static const char * const sata0_groups[] = { "sata0_devslp_a", "sata0_devslp_b", -@@ -4524,18 +4537,6 @@ static const char * const usb2_groups[] = { +@@ -4524,18 +4537,6 @@ static const char * const usb2_groups[] "usb2", }; @@ -240,7 +238,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(audio_clk), SH_PFC_FUNCTION(avb), -@@ -4569,6 +4570,8 @@ static const struct sh_pfc_function pinmux_functions[] = { +@@ -4569,6 +4570,8 @@ static const struct sh_pfc_function pinm SH_PFC_FUNCTION(pwm4), SH_PFC_FUNCTION(pwm5), SH_PFC_FUNCTION(pwm6), @@ -249,7 +247,7 @@ index 6ba7ed15a461..3d1c32cca16a 100644 SH_PFC_FUNCTION(sata0), SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), -@@ -4585,8 +4588,6 @@ static const struct sh_pfc_function pinmux_functions[] = { +@@ -4585,8 +4588,6 @@ static const struct sh_pfc_function pinm SH_PFC_FUNCTION(usb0), SH_PFC_FUNCTION(usb1), SH_PFC_FUNCTION(usb2), @@ -258,6 +256,3 @@ index 6ba7ed15a461..3d1c32cca16a 100644 }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { --- -2.13.3 - diff --git a/patches.renesas/0164-pinctrl-sh-pfc-Update-info-pointer-after-SoC-specifi.patch b/patches.renesas/0164-pinctrl-sh-pfc-Update-info-pointer-after-SoC-specifi.patch deleted file mode 100644 index 20ade9f43e9e09..00000000000000 --- a/patches.renesas/0164-pinctrl-sh-pfc-Update-info-pointer-after-SoC-specifi.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 71cf9371dde08af8cdf7edea3cf25061e1787891 Mon Sep 17 00:00:00 2001 -From: Geert Uytterhoeven <geert+renesas@glider.be> -Date: Thu, 9 Mar 2017 19:20:48 +0100 -Subject: [PATCH 164/286] pinctrl: sh-pfc: Update info pointer after - SoC-specific init - -Update the sh_pfc_soc_info pointer after calling the SoC-specific -initialization function, as it may have been updated to e.g. handle -different SoC revisions. This makes sure the correct subdriver name is -printed later. - -Fixes: 0c151062f32c9db8 ("sh-pfc: Add support for SoC-specific initialization") -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit 3091ae775fae17084013021d01513bc1ad274e6a) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/core.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c -index cf80ce1dd7ce..4a5a0feb931b 100644 ---- a/drivers/pinctrl/sh-pfc/core.c -+++ b/drivers/pinctrl/sh-pfc/core.c -@@ -586,6 +586,9 @@ static int sh_pfc_probe(struct platform_device *pdev) - ret = info->ops->init(pfc); - if (ret < 0) - return ret; -+ -+ /* .init() may have overridden pfc->info */ -+ info = pfc->info; - } - - /* Enable dummy states for those platforms without pinctrl support */ --- -2.13.3 - diff --git a/patches.renesas/0165-pinctrl-sh-pfc-r8a7795-Add-support-for-R-Car-H3-ES2..patch b/patches.renesas/0165-pinctrl-sh-pfc-r8a7795-Add-support-for-R-Car-H3-ES2..patch index 3a6e275480cbad..e9071410345f78 100644 --- a/patches.renesas/0165-pinctrl-sh-pfc-r8a7795-Add-support-for-R-Car-H3-ES2..patch +++ b/patches.renesas/0165-pinctrl-sh-pfc-r8a7795-Add-support-for-R-Car-H3-ES2..patch @@ -34,18 +34,16 @@ Cc: Takeshi Kihara <takeshi.kihara.df@renesas.com> (cherry picked from commit b205914c8f822ef2464b741c64e892823d685ad6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/pinctrl/sh-pfc/Makefile | 1 + - drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c | 5705 ++++++++++++++++++++++++++++++ - drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 4780 +++++-------------------- - drivers/pinctrl/sh-pfc/sh_pfc.h | 1 + - 4 files changed, 6603 insertions(+), 3884 deletions(-) + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c | 5705 +++++++++++++++++++++++++++++++ + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 4396 +++-------------------- + drivers/pinctrl/sh-pfc/sh_pfc.h | 1 + 4 files changed, 6411 insertions(+), 3692 deletions(-) create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c -diff --git a/drivers/pinctrl/sh-pfc/Makefile b/drivers/pinctrl/sh-pfc/Makefile -index 2dda8c63f3cf..8e08684774af 100644 --- a/drivers/pinctrl/sh-pfc/Makefile +++ b/drivers/pinctrl/sh-pfc/Makefile -@@ -11,6 +11,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7792) += pfc-r8a7792.o +@@ -11,6 +11,7 @@ obj-$(CONFIG_PINCTRL_PFC_R8A7792) += pfc obj-$(CONFIG_PINCTRL_PFC_R8A7793) += pfc-r8a7791.o obj-$(CONFIG_PINCTRL_PFC_R8A7794) += pfc-r8a7794.o obj-$(CONFIG_PINCTRL_PFC_R8A7795) += pfc-r8a7795.o @@ -53,9 +51,6 @@ index 2dda8c63f3cf..8e08684774af 100644 obj-$(CONFIG_PINCTRL_PFC_R8A7796) += pfc-r8a7796.o obj-$(CONFIG_PINCTRL_PFC_SH7203) += pfc-sh7203.o obj-$(CONFIG_PINCTRL_PFC_SH7264) += pfc-sh7264.o -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c -new file mode 100644 -index 000000000000..081efda9a280 --- /dev/null +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c @@ -0,0 +1,5705 @@ @@ -5764,8 +5759,6 @@ index 000000000000..081efda9a280 + .pinmux_data = pinmux_data, + .pinmux_data_size = ARRAY_SIZE(pinmux_data), +}; -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -index 3d1c32cca16a..6caaed53938c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c @@ -1,7 +1,7 @@ @@ -6140,7 +6133,7 @@ index 3d1c32cca16a..6caaed53938c 100644 #define PINMUX_GPSR \ \ -@@ -426,37 +437,34 @@ FM(IP12_23_20) IP12_23_20 FM(IP13_23_20) IP13_23_20 FM(IP14_23_20) IP14_23_20 FM +@@ -426,37 +437,34 @@ FM(IP12_23_20) IP12_23_20 FM(IP13_23_20) FM(IP12_27_24) IP12_27_24 FM(IP13_27_24) IP13_27_24 FM(IP14_27_24) IP14_27_24 FM(IP15_27_24) IP15_27_24 \ FM(IP12_31_28) IP12_31_28 FM(IP13_31_28) IP13_31_28 FM(IP14_31_28) IP14_31_28 FM(IP15_31_28) IP15_31_28 \ \ @@ -6342,171 +6335,89 @@ index 3d1c32cca16a..6caaed53938c 100644 PINMUX_IPSR_GPSR(IP1_19_16, PWM0), PINMUX_IPSR_GPSR(IP1_19_16, AVB_AVTP_PPS), -@@ -902,3692 +916,670 @@ static const u16 pinmux_data[] = { - PINMUX_IPSR_GPSR(IP6_3_0, VI4_DATA21), - PINMUX_IPSR_GPSR(IP6_3_0, VI5_DATA5), +@@ -1009,426 +1023,481 @@ static const u16 pinmux_data[] = { + + PINMUX_IPSR_GPSR(IP8_15_12, SD1_CMD), + PINMUX_IPSR_MSEL(IP8_15_12, MSIOF1_SYNC_G, SEL_MSIOF1_6), ++ PINMUX_IPSR_MSEL(IP8_15_12, NFCE_N_B, SEL_NDF_1), + PINMUX_IPSR_MSEL(IP8_15_12, SIM0_D_A, SEL_SIMCARD_0), + PINMUX_IPSR_MSEL(IP8_15_12, STP_IVCXO27_1_B, SEL_SSP1_1_1), + + PINMUX_IPSR_GPSR(IP8_19_16, SD1_DAT0), + PINMUX_IPSR_GPSR(IP8_19_16, SD2_DAT4), + PINMUX_IPSR_MSEL(IP8_19_16, MSIOF1_RXD_G, SEL_MSIOF1_6), ++ PINMUX_IPSR_MSEL(IP8_19_16, NFWP_N_B, SEL_NDF_1), + PINMUX_IPSR_MSEL(IP8_19_16, TS_SCK1_B, SEL_TSIF1_1), + PINMUX_IPSR_MSEL(IP8_19_16, STP_ISCLK_1_B, SEL_SSP1_1_1), + + PINMUX_IPSR_GPSR(IP8_23_20, SD1_DAT1), + PINMUX_IPSR_GPSR(IP8_23_20, SD2_DAT5), + PINMUX_IPSR_MSEL(IP8_23_20, MSIOF1_TXD_G, SEL_MSIOF1_6), ++ PINMUX_IPSR_MSEL(IP8_23_20, NFDATA14_B, SEL_NDF_1), + PINMUX_IPSR_MSEL(IP8_23_20, TS_SPSYNC1_B, SEL_TSIF1_1), + PINMUX_IPSR_MSEL(IP8_23_20, STP_ISSYNC_1_B, SEL_SSP1_1_1), + + PINMUX_IPSR_GPSR(IP8_27_24, SD1_DAT2), + PINMUX_IPSR_GPSR(IP8_27_24, SD2_DAT6), + PINMUX_IPSR_MSEL(IP8_27_24, MSIOF1_SS1_G, SEL_MSIOF1_6), ++ PINMUX_IPSR_MSEL(IP8_27_24, NFDATA15_B, SEL_NDF_1), + PINMUX_IPSR_MSEL(IP8_27_24, TS_SDAT1_B, SEL_TSIF1_1), + PINMUX_IPSR_MSEL(IP8_27_24, STP_ISD_1_B, SEL_SSP1_1_1), + + PINMUX_IPSR_GPSR(IP8_31_28, SD1_DAT3), + PINMUX_IPSR_GPSR(IP8_31_28, SD2_DAT7), + PINMUX_IPSR_MSEL(IP8_31_28, MSIOF1_SS2_G, SEL_MSIOF1_6), ++ PINMUX_IPSR_MSEL(IP8_31_28, NFRB_N_B, SEL_NDF_1), + PINMUX_IPSR_MSEL(IP8_31_28, TS_SDEN1_B, SEL_TSIF1_1), + PINMUX_IPSR_MSEL(IP8_31_28, STP_ISEN_1_B, SEL_SSP1_1_1), + + /* IPSR9 */ + PINMUX_IPSR_GPSR(IP9_3_0, SD2_CLK), ++ PINMUX_IPSR_GPSR(IP9_3_0, NFDATA8), -- PINMUX_IPSR_GPSR(IP6_7_4, D6), -- PINMUX_IPSR_MSEL(IP6_7_4, MSIOF2_RXD_B, SEL_MSIOF2_1), -- PINMUX_IPSR_GPSR(IP6_7_4, VI4_DATA22), -- PINMUX_IPSR_GPSR(IP6_7_4, VI5_DATA6), -- -- PINMUX_IPSR_GPSR(IP6_11_8, D7), -- PINMUX_IPSR_MSEL(IP6_11_8, MSIOF2_TXD_B, SEL_MSIOF2_1), -- PINMUX_IPSR_GPSR(IP6_11_8, VI4_DATA23), -- PINMUX_IPSR_GPSR(IP6_11_8, VI5_DATA7), -- -- PINMUX_IPSR_GPSR(IP6_15_12, D8), -- PINMUX_IPSR_GPSR(IP6_15_12, LCDOUT0), -- PINMUX_IPSR_MSEL(IP6_15_12, MSIOF2_SCK_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP6_15_12, SCK4_C, SEL_SCIF4_2), -- PINMUX_IPSR_MSEL(IP6_15_12, VI4_DATA0_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP6_15_12, DU_DR0), -- -- PINMUX_IPSR_GPSR(IP6_19_16, D9), -- PINMUX_IPSR_GPSR(IP6_19_16, LCDOUT1), -- PINMUX_IPSR_MSEL(IP6_19_16, MSIOF2_SYNC_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP6_19_16, VI4_DATA1_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP6_19_16, DU_DR1), -- -- PINMUX_IPSR_GPSR(IP6_23_20, D10), -- PINMUX_IPSR_GPSR(IP6_23_20, LCDOUT2), -- PINMUX_IPSR_MSEL(IP6_23_20, MSIOF2_RXD_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP6_23_20, HRX3_B, SEL_HSCIF3_1), -- PINMUX_IPSR_MSEL(IP6_23_20, VI4_DATA2_A, SEL_VIN4_0), -- PINMUX_IPSR_MSEL(IP6_23_20, CTS4_N_C, SEL_SCIF4_2), -- PINMUX_IPSR_GPSR(IP6_23_20, DU_DR2), -- -- PINMUX_IPSR_GPSR(IP6_27_24, D11), -- PINMUX_IPSR_GPSR(IP6_27_24, LCDOUT3), -- PINMUX_IPSR_MSEL(IP6_27_24, MSIOF2_TXD_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP6_27_24, HTX3_B, SEL_HSCIF3_1), -- PINMUX_IPSR_MSEL(IP6_27_24, VI4_DATA3_A, SEL_VIN4_0), -- PINMUX_IPSR_MSEL(IP6_27_24, RTS4_N_TANS_C, SEL_SCIF4_2), -- PINMUX_IPSR_GPSR(IP6_27_24, DU_DR3), -- -- PINMUX_IPSR_GPSR(IP6_31_28, D12), -- PINMUX_IPSR_GPSR(IP6_31_28, LCDOUT4), -- PINMUX_IPSR_MSEL(IP6_31_28, MSIOF2_SS1_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP6_31_28, RX4_C, SEL_SCIF4_2), -- PINMUX_IPSR_MSEL(IP6_31_28, VI4_DATA4_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP6_31_28, DU_DR4), -- -- /* IPSR7 */ -- PINMUX_IPSR_GPSR(IP7_3_0, D13), -- PINMUX_IPSR_GPSR(IP7_3_0, LCDOUT5), -- PINMUX_IPSR_MSEL(IP7_3_0, MSIOF2_SS2_D, SEL_MSIOF2_3), -- PINMUX_IPSR_MSEL(IP7_3_0, TX4_C, SEL_SCIF4_2), -- PINMUX_IPSR_MSEL(IP7_3_0, VI4_DATA5_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP7_3_0, DU_DR5), -- -- PINMUX_IPSR_GPSR(IP7_7_4, D14), -- PINMUX_IPSR_GPSR(IP7_7_4, LCDOUT6), -- PINMUX_IPSR_MSEL(IP7_7_4, MSIOF3_SS1_A, SEL_MSIOF3_0), -- PINMUX_IPSR_MSEL(IP7_7_4, HRX3_C, SEL_HSCIF3_2), -- PINMUX_IPSR_MSEL(IP7_7_4, VI4_DATA6_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP7_7_4, DU_DR6), -- PINMUX_IPSR_MSEL(IP7_7_4, SCL6_C, SEL_I2C6_2), -- -- PINMUX_IPSR_GPSR(IP7_11_8, D15), -- PINMUX_IPSR_GPSR(IP7_11_8, LCDOUT7), -- PINMUX_IPSR_MSEL(IP7_11_8, MSIOF3_SS2_A, SEL_MSIOF3_0), -- PINMUX_IPSR_MSEL(IP7_11_8, HTX3_C, SEL_HSCIF3_2), -- PINMUX_IPSR_MSEL(IP7_11_8, VI4_DATA7_A, SEL_VIN4_0), -- PINMUX_IPSR_GPSR(IP7_11_8, DU_DR7), -- PINMUX_IPSR_MSEL(IP7_11_8, SDA6_C, SEL_I2C6_2), -- -- PINMUX_IPSR_GPSR(IP7_15_12, FSCLKST), -- -- PINMUX_IPSR_GPSR(IP7_19_16, SD0_CLK), -- PINMUX_IPSR_MSEL(IP7_19_16, MSIOF1_SCK_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP7_19_16, STP_OPWM_0_B, SEL_SSP1_0_1), -- -- PINMUX_IPSR_GPSR(IP7_23_20, SD0_CMD), -- PINMUX_IPSR_MSEL(IP7_23_20, MSIOF1_SYNC_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP7_23_20, STP_IVCXO27_0_B, SEL_SSP1_0_1), -- -- PINMUX_IPSR_GPSR(IP7_27_24, SD0_DAT0), -- PINMUX_IPSR_MSEL(IP7_27_24, MSIOF1_RXD_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP7_27_24, TS_SCK0_B, SEL_TSIF0_1), -- PINMUX_IPSR_MSEL(IP7_27_24, STP_ISCLK_0_B, SEL_SSP1_0_1), -- -- PINMUX_IPSR_GPSR(IP7_31_28, SD0_DAT1), -- PINMUX_IPSR_MSEL(IP7_31_28, MSIOF1_TXD_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP7_31_28, TS_SPSYNC0_B, SEL_TSIF0_1), -- PINMUX_IPSR_MSEL(IP7_31_28, STP_ISSYNC_0_B, SEL_SSP1_0_1), -- -- /* IPSR8 */ -- PINMUX_IPSR_GPSR(IP8_3_0, SD0_DAT2), -- PINMUX_IPSR_MSEL(IP8_3_0, MSIOF1_SS1_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP8_3_0, TS_SDAT0_B, SEL_TSIF0_1), -- PINMUX_IPSR_MSEL(IP8_3_0, STP_ISD_0_B, SEL_SSP1_0_1), -- -- PINMUX_IPSR_GPSR(IP8_7_4, SD0_DAT3), -- PINMUX_IPSR_MSEL(IP8_7_4, MSIOF1_SS2_E, SEL_MSIOF1_4), -- PINMUX_IPSR_MSEL(IP8_7_4, TS_SDEN0_B, SEL_TSIF0_1), -- PINMUX_IPSR_MSEL(IP8_7_4, STP_ISEN_0_B, SEL_SSP1_0_1), -- -- PINMUX_IPSR_GPSR(IP8_11_8, SD1_CLK), -- PINMUX_IPSR_MSEL(IP8_11_8, MSIOF1_SCK_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_11_8, SIM0_CLK_A, SEL_SIMCARD_0), -- -- PINMUX_IPSR_GPSR(IP8_15_12, SD1_CMD), -- PINMUX_IPSR_MSEL(IP8_15_12, MSIOF1_SYNC_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_15_12, SIM0_D_A, SEL_SIMCARD_0), -- PINMUX_IPSR_MSEL(IP8_15_12, STP_IVCXO27_1_B, SEL_SSP1_1_1), -- -- PINMUX_IPSR_GPSR(IP8_19_16, SD1_DAT0), -- PINMUX_IPSR_GPSR(IP8_19_16, SD2_DAT4), -- PINMUX_IPSR_MSEL(IP8_19_16, MSIOF1_RXD_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_19_16, TS_SCK1_B, SEL_TSIF1_1), -- PINMUX_IPSR_MSEL(IP8_19_16, STP_ISCLK_1_B, SEL_SSP1_1_1), -- -- PINMUX_IPSR_GPSR(IP8_23_20, SD1_DAT1), -- PINMUX_IPSR_GPSR(IP8_23_20, SD2_DAT5), -- PINMUX_IPSR_MSEL(IP8_23_20, MSIOF1_TXD_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_23_20, TS_SPSYNC1_B, SEL_TSIF1_1), -- PINMUX_IPSR_MSEL(IP8_23_20, STP_ISSYNC_1_B, SEL_SSP1_1_1), -- -- PINMUX_IPSR_GPSR(IP8_27_24, SD1_DAT2), -- PINMUX_IPSR_GPSR(IP8_27_24, SD2_DAT6), -- PINMUX_IPSR_MSEL(IP8_27_24, MSIOF1_SS1_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_27_24, TS_SDAT1_B, SEL_TSIF1_1), -- PINMUX_IPSR_MSEL(IP8_27_24, STP_ISD_1_B, SEL_SSP1_1_1), -- -- PINMUX_IPSR_GPSR(IP8_31_28, SD1_DAT3), -- PINMUX_IPSR_GPSR(IP8_31_28, SD2_DAT7), -- PINMUX_IPSR_MSEL(IP8_31_28, MSIOF1_SS2_G, SEL_MSIOF1_6), -- PINMUX_IPSR_MSEL(IP8_31_28, TS_SDEN1_B, SEL_TSIF1_1), -- PINMUX_IPSR_MSEL(IP8_31_28, STP_ISEN_1_B, SEL_SSP1_1_1), -- -- /* IPSR9 */ -- PINMUX_IPSR_GPSR(IP9_3_0, SD2_CLK), -- - PINMUX_IPSR_GPSR(IP9_7_4, SD2_DAT0), -- ++ PINMUX_IPSR_GPSR(IP9_7_4, SD2_CMD), ++ PINMUX_IPSR_GPSR(IP9_7_4, NFDATA9), + - PINMUX_IPSR_GPSR(IP9_11_8, SD2_DAT1), -- ++ PINMUX_IPSR_GPSR(IP9_11_8, SD2_DAT0), ++ PINMUX_IPSR_GPSR(IP9_11_8, NFDATA10), + - PINMUX_IPSR_GPSR(IP9_15_12, SD2_DAT2), -- ++ PINMUX_IPSR_GPSR(IP9_15_12, SD2_DAT1), ++ PINMUX_IPSR_GPSR(IP9_15_12, NFDATA11), + - PINMUX_IPSR_GPSR(IP9_19_16, SD2_DAT3), -- ++ PINMUX_IPSR_GPSR(IP9_19_16, SD2_DAT2), ++ PINMUX_IPSR_GPSR(IP9_19_16, NFDATA12), + - PINMUX_IPSR_GPSR(IP9_23_20, SD2_DS), - PINMUX_IPSR_MSEL(IP9_23_20, SATA_DEVSLP_B, SEL_SATA_1), -- ++ PINMUX_IPSR_GPSR(IP9_23_20, SD2_DAT3), ++ PINMUX_IPSR_GPSR(IP9_23_20, NFDATA13), + - PINMUX_IPSR_GPSR(IP9_27_24, SD3_DAT4), - PINMUX_IPSR_MSEL(IP9_27_24, SD2_CD_A, SEL_SDHI2_0), -- ++ PINMUX_IPSR_GPSR(IP9_27_24, SD2_DS), ++ PINMUX_IPSR_GPSR(IP9_27_24, NFALE), ++ PINMUX_IPSR_GPSR(IP9_27_24, SATA_DEVSLP_B), + - PINMUX_IPSR_GPSR(IP9_31_28, SD3_DAT5), - PINMUX_IPSR_MSEL(IP9_31_28, SD2_WP_A, SEL_SDHI2_0), -- -- /* IPSR10 */ ++ PINMUX_IPSR_GPSR(IP9_31_28, SD3_CLK), ++ PINMUX_IPSR_GPSR(IP9_31_28, NFWE_N), + + /* IPSR10 */ - PINMUX_IPSR_GPSR(IP10_3_0, SD3_DAT6), - PINMUX_IPSR_GPSR(IP10_3_0, SD3_CD), -- ++ PINMUX_IPSR_GPSR(IP10_3_0, SD3_CMD), ++ PINMUX_IPSR_GPSR(IP10_3_0, NFRE_N), + - PINMUX_IPSR_GPSR(IP10_7_4, SD3_DAT7), - PINMUX_IPSR_GPSR(IP10_7_4, SD3_WP), -- ++ PINMUX_IPSR_GPSR(IP10_7_4, SD3_DAT0), ++ PINMUX_IPSR_GPSR(IP10_7_4, NFDATA0), + - PINMUX_IPSR_GPSR(IP10_11_8, SD0_CD), - PINMUX_IPSR_MSEL(IP10_11_8, SCL2_B, SEL_I2C2_1), - PINMUX_IPSR_MSEL(IP10_11_8, SIM0_RST_A, SEL_SIMCARD_0), @@ -6535,7 +6446,9 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP10_31_28, TS_SCK0_C, SEL_TSIF0_2), - PINMUX_IPSR_MSEL(IP10_31_28, STP_ISCLK_0_C, SEL_SSP1_0_2), - PINMUX_IPSR_MSEL(IP10_31_28, RIF0_D0_B, SEL_DRIF0_1), -- ++ PINMUX_IPSR_GPSR(IP10_11_8, SD3_DAT1), ++ PINMUX_IPSR_GPSR(IP10_11_8, NFDATA1), + - /* IPSR11 */ - PINMUX_IPSR_GPSR(IP11_3_0, TX0), - PINMUX_IPSR_MSEL(IP11_3_0, HTX1_B, SEL_HSCIF1_1), @@ -6596,7 +6509,9 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP11_31_28, STP_ISCLK_1_C, SEL_SSP1_1_2), - PINMUX_IPSR_MSEL(IP11_31_28, RIF1_CLK_B, SEL_DRIF1_1), - PINMUX_IPSR_GPSR(IP11_31_28, ADICLK), -- ++ PINMUX_IPSR_GPSR(IP10_15_12, SD3_DAT2), ++ PINMUX_IPSR_GPSR(IP10_15_12, NFDATA2), + - /* IPSR12 */ - PINMUX_IPSR_MSEL(IP12_3_0, TX2_A, SEL_SCIF2_0), - PINMUX_IPSR_MSEL(IP12_3_0, SD2_CD_B, SEL_SDHI2_1), @@ -6650,10 +6565,15 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP12_27_24, STP_IVCXO27_0_D, SEL_SSP1_0_3), - PINMUX_IPSR_MSEL(IP12_27_24, BPFCLK_A, SEL_FM_0), - PINMUX_IPSR_MSEL(IP12_27_24, AUDIO_CLKOUT2_A, SEL_ADG_0), -- ++ PINMUX_IPSR_GPSR(IP10_19_16, SD3_DAT3), ++ PINMUX_IPSR_GPSR(IP10_19_16, NFDATA3), + - PINMUX_IPSR_GPSR(IP12_31_28, MSIOF0_SYNC), - PINMUX_IPSR_MSEL(IP12_31_28, AUDIO_CLKOUT_A, SEL_ADG_0), -- ++ PINMUX_IPSR_GPSR(IP10_23_20, SD3_DAT4), ++ PINMUX_IPSR_MSEL(IP10_23_20, SD2_CD_A, SEL_SDHI2_0), ++ PINMUX_IPSR_GPSR(IP10_23_20, NFDATA4), + - /* IPSR13 */ - PINMUX_IPSR_GPSR(IP13_3_0, MSIOF0_SS1), - PINMUX_IPSR_GPSR(IP13_3_0, RX5), @@ -6684,22 +6604,220 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_GPSR(IP13_19_16, MLB_DAT), - PINMUX_IPSR_MSEL(IP13_19_16, TX1_B, SEL_SCIF1_1), - PINMUX_IPSR_MSEL(IP13_19_16, MSIOF1_RXD_F, SEL_MSIOF1_5), -- ++ PINMUX_IPSR_GPSR(IP10_27_24, SD3_DAT5), ++ PINMUX_IPSR_MSEL(IP10_27_24, SD2_WP_A, SEL_SDHI2_0), ++ PINMUX_IPSR_GPSR(IP10_27_24, NFDATA5), ++ ++ PINMUX_IPSR_GPSR(IP10_31_28, SD3_DAT6), ++ PINMUX_IPSR_GPSR(IP10_31_28, SD3_CD), ++ PINMUX_IPSR_GPSR(IP10_31_28, NFDATA6), + - PINMUX_IPSR_GPSR(IP13_23_20, SSI_SCK01239), - PINMUX_IPSR_MSEL(IP13_23_20, MSIOF1_TXD_F, SEL_MSIOF1_5), -- ++ /* IPSR11 */ ++ PINMUX_IPSR_GPSR(IP11_3_0, SD3_DAT7), ++ PINMUX_IPSR_GPSR(IP11_3_0, SD3_WP), ++ PINMUX_IPSR_GPSR(IP11_3_0, NFDATA7), ++ ++ PINMUX_IPSR_GPSR(IP11_7_4, SD3_DS), ++ PINMUX_IPSR_GPSR(IP11_7_4, NFCLE), ++ ++ PINMUX_IPSR_GPSR(IP11_11_8, SD0_CD), ++ PINMUX_IPSR_MSEL(IP11_11_8, SCL2_B, SEL_I2C2_1), ++ PINMUX_IPSR_MSEL(IP11_11_8, SIM0_RST_A, SEL_SIMCARD_0), ++ ++ PINMUX_IPSR_GPSR(IP11_15_12, SD0_WP), ++ PINMUX_IPSR_MSEL(IP11_15_12, SDA2_B, SEL_I2C2_1), ++ ++ PINMUX_IPSR_GPSR(IP11_19_16, SD1_CD), ++ PINMUX_IPSR_MSEL(IP11_19_16, SIM0_CLK_B, SEL_SIMCARD_1), ++ ++ PINMUX_IPSR_GPSR(IP11_23_20, SD1_WP), ++ PINMUX_IPSR_MSEL(IP11_23_20, SIM0_D_B, SEL_SIMCARD_1), ++ ++ PINMUX_IPSR_GPSR(IP11_27_24, SCK0), ++ PINMUX_IPSR_MSEL(IP11_27_24, HSCK1_B, SEL_HSCIF1_1), ++ PINMUX_IPSR_MSEL(IP11_27_24, MSIOF1_SS2_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP11_27_24, AUDIO_CLKC_B, SEL_ADG_C_1), ++ PINMUX_IPSR_MSEL(IP11_27_24, SDA2_A, SEL_I2C2_0), ++ PINMUX_IPSR_MSEL(IP11_27_24, SIM0_RST_B, SEL_SIMCARD_1), ++ PINMUX_IPSR_MSEL(IP11_27_24, STP_OPWM_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_MSEL(IP11_27_24, RIF0_CLK_B, SEL_DRIF0_1), ++ PINMUX_IPSR_GPSR(IP11_27_24, ADICHS2), ++ PINMUX_IPSR_MSEL(IP11_27_24, SCK5_B, SEL_SCIF5_1), ++ ++ PINMUX_IPSR_GPSR(IP11_31_28, RX0), ++ PINMUX_IPSR_MSEL(IP11_31_28, HRX1_B, SEL_HSCIF1_1), ++ PINMUX_IPSR_MSEL(IP11_31_28, TS_SCK0_C, SEL_TSIF0_2), ++ PINMUX_IPSR_MSEL(IP11_31_28, STP_ISCLK_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_MSEL(IP11_31_28, RIF0_D0_B, SEL_DRIF0_1), + - PINMUX_IPSR_GPSR(IP13_27_24, SSI_WS01239), - PINMUX_IPSR_MSEL(IP13_27_24, MSIOF1_SS1_F, SEL_MSIOF1_5), -- ++ /* IPSR12 */ ++ PINMUX_IPSR_GPSR(IP12_3_0, TX0), ++ PINMUX_IPSR_MSEL(IP12_3_0, HTX1_B, SEL_HSCIF1_1), ++ PINMUX_IPSR_MSEL(IP12_3_0, TS_SPSYNC0_C, SEL_TSIF0_2), ++ PINMUX_IPSR_MSEL(IP12_3_0, STP_ISSYNC_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_MSEL(IP12_3_0, RIF0_D1_B, SEL_DRIF0_1), ++ ++ PINMUX_IPSR_GPSR(IP12_7_4, CTS0_N), ++ PINMUX_IPSR_MSEL(IP12_7_4, HCTS1_N_B, SEL_HSCIF1_1), ++ PINMUX_IPSR_MSEL(IP12_7_4, MSIOF1_SYNC_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP12_7_4, TS_SPSYNC1_C, SEL_TSIF1_2), ++ PINMUX_IPSR_MSEL(IP12_7_4, STP_ISSYNC_1_C, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP12_7_4, RIF1_SYNC_B, SEL_DRIF1_1), ++ PINMUX_IPSR_GPSR(IP12_7_4, AUDIO_CLKOUT_C), ++ PINMUX_IPSR_GPSR(IP12_7_4, ADICS_SAMP), ++ ++ PINMUX_IPSR_GPSR(IP12_11_8, RTS0_N_TANS), ++ PINMUX_IPSR_MSEL(IP12_11_8, HRTS1_N_B, SEL_HSCIF1_1), ++ PINMUX_IPSR_MSEL(IP12_11_8, MSIOF1_SS1_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP12_11_8, AUDIO_CLKA_B, SEL_ADG_A_1), ++ PINMUX_IPSR_MSEL(IP12_11_8, SCL2_A, SEL_I2C2_0), ++ PINMUX_IPSR_MSEL(IP12_11_8, STP_IVCXO27_1_C, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP12_11_8, RIF0_SYNC_B, SEL_DRIF0_1), ++ PINMUX_IPSR_GPSR(IP12_11_8, ADICHS1), ++ ++ PINMUX_IPSR_MSEL(IP12_15_12, RX1_A, SEL_SCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_15_12, HRX1_A, SEL_HSCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_15_12, TS_SDAT0_C, SEL_TSIF0_2), ++ PINMUX_IPSR_MSEL(IP12_15_12, STP_ISD_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_MSEL(IP12_15_12, RIF1_CLK_C, SEL_DRIF1_2), ++ ++ PINMUX_IPSR_MSEL(IP12_19_16, TX1_A, SEL_SCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_19_16, HTX1_A, SEL_HSCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_19_16, TS_SDEN0_C, SEL_TSIF0_2), ++ PINMUX_IPSR_MSEL(IP12_19_16, STP_ISEN_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_MSEL(IP12_19_16, RIF1_D0_C, SEL_DRIF1_2), ++ ++ PINMUX_IPSR_GPSR(IP12_23_20, CTS1_N), ++ PINMUX_IPSR_MSEL(IP12_23_20, HCTS1_N_A, SEL_HSCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_23_20, MSIOF1_RXD_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP12_23_20, TS_SDEN1_C, SEL_TSIF1_2), ++ PINMUX_IPSR_MSEL(IP12_23_20, STP_ISEN_1_C, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP12_23_20, RIF1_D0_B, SEL_DRIF1_1), ++ PINMUX_IPSR_GPSR(IP12_23_20, ADIDATA), ++ ++ PINMUX_IPSR_GPSR(IP12_27_24, RTS1_N_TANS), ++ PINMUX_IPSR_MSEL(IP12_27_24, HRTS1_N_A, SEL_HSCIF1_0), ++ PINMUX_IPSR_MSEL(IP12_27_24, MSIOF1_TXD_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP12_27_24, TS_SDAT1_C, SEL_TSIF1_2), ++ PINMUX_IPSR_MSEL(IP12_27_24, STP_ISD_1_C, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP12_27_24, RIF1_D1_B, SEL_DRIF1_1), ++ PINMUX_IPSR_GPSR(IP12_27_24, ADICHS0), ++ ++ PINMUX_IPSR_GPSR(IP12_31_28, SCK2), ++ PINMUX_IPSR_MSEL(IP12_31_28, SCIF_CLK_B, SEL_SCIF1_1), ++ PINMUX_IPSR_MSEL(IP12_31_28, MSIOF1_SCK_B, SEL_MSIOF1_1), ++ PINMUX_IPSR_MSEL(IP12_31_28, TS_SCK1_C, SEL_TSIF1_2), ++ PINMUX_IPSR_MSEL(IP12_31_28, STP_ISCLK_1_C, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP12_31_28, RIF1_CLK_B, SEL_DRIF1_1), ++ PINMUX_IPSR_GPSR(IP12_31_28, ADICLK), + - PINMUX_IPSR_GPSR(IP13_31_28, SSI_SDATA0), - PINMUX_IPSR_MSEL(IP13_31_28, MSIOF1_SS2_F, SEL_MSIOF1_5), -- -- /* IPSR14 */ ++ /* IPSR13 */ ++ PINMUX_IPSR_MSEL(IP13_3_0, TX2_A, SEL_SCIF2_0), ++ PINMUX_IPSR_MSEL(IP13_3_0, SD2_CD_B, SEL_SDHI2_1), ++ PINMUX_IPSR_MSEL(IP13_3_0, SCL1_A, SEL_I2C1_0), ++ PINMUX_IPSR_MSEL(IP13_3_0, FMCLK_A, SEL_FM_0), ++ PINMUX_IPSR_MSEL(IP13_3_0, RIF1_D1_C, SEL_DRIF1_2), ++ PINMUX_IPSR_GPSR(IP13_3_0, FSO_CFE_0_N), ++ ++ PINMUX_IPSR_MSEL(IP13_7_4, RX2_A, SEL_SCIF2_0), ++ PINMUX_IPSR_MSEL(IP13_7_4, SD2_WP_B, SEL_SDHI2_1), ++ PINMUX_IPSR_MSEL(IP13_7_4, SDA1_A, SEL_I2C1_0), ++ PINMUX_IPSR_MSEL(IP13_7_4, FMIN_A, SEL_FM_0), ++ PINMUX_IPSR_MSEL(IP13_7_4, RIF1_SYNC_C, SEL_DRIF1_2), ++ PINMUX_IPSR_GPSR(IP13_7_4, FSO_CFE_1_N), ++ ++ PINMUX_IPSR_GPSR(IP13_11_8, HSCK0), ++ PINMUX_IPSR_MSEL(IP13_11_8, MSIOF1_SCK_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP13_11_8, AUDIO_CLKB_A, SEL_ADG_B_0), ++ PINMUX_IPSR_MSEL(IP13_11_8, SSI_SDATA1_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP13_11_8, TS_SCK0_D, SEL_TSIF0_3), ++ PINMUX_IPSR_MSEL(IP13_11_8, STP_ISCLK_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_MSEL(IP13_11_8, RIF0_CLK_C, SEL_DRIF0_2), ++ PINMUX_IPSR_MSEL(IP13_11_8, RX5_B, SEL_SCIF5_1), ++ ++ PINMUX_IPSR_GPSR(IP13_15_12, HRX0), ++ PINMUX_IPSR_MSEL(IP13_15_12, MSIOF1_RXD_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP13_15_12, SSI_SDATA2_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP13_15_12, TS_SDEN0_D, SEL_TSIF0_3), ++ PINMUX_IPSR_MSEL(IP13_15_12, STP_ISEN_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_MSEL(IP13_15_12, RIF0_D0_C, SEL_DRIF0_2), ++ ++ PINMUX_IPSR_GPSR(IP13_19_16, HTX0), ++ PINMUX_IPSR_MSEL(IP13_19_16, MSIOF1_TXD_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP13_19_16, SSI_SDATA9_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP13_19_16, TS_SDAT0_D, SEL_TSIF0_3), ++ PINMUX_IPSR_MSEL(IP13_19_16, STP_ISD_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_MSEL(IP13_19_16, RIF0_D1_C, SEL_DRIF0_2), ++ ++ PINMUX_IPSR_GPSR(IP13_23_20, HCTS0_N), ++ PINMUX_IPSR_MSEL(IP13_23_20, RX2_B, SEL_SCIF2_1), ++ PINMUX_IPSR_MSEL(IP13_23_20, MSIOF1_SYNC_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP13_23_20, SSI_SCK9_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP13_23_20, TS_SPSYNC0_D, SEL_TSIF0_3), ++ PINMUX_IPSR_MSEL(IP13_23_20, STP_ISSYNC_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_MSEL(IP13_23_20, RIF0_SYNC_C, SEL_DRIF0_2), ++ PINMUX_IPSR_GPSR(IP13_23_20, AUDIO_CLKOUT1_A), ++ ++ PINMUX_IPSR_GPSR(IP13_27_24, HRTS0_N), ++ PINMUX_IPSR_MSEL(IP13_27_24, TX2_B, SEL_SCIF2_1), ++ PINMUX_IPSR_MSEL(IP13_27_24, MSIOF1_SS1_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP13_27_24, SSI_WS9_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP13_27_24, STP_IVCXO27_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_MSEL(IP13_27_24, BPFCLK_A, SEL_FM_0), ++ PINMUX_IPSR_GPSR(IP13_27_24, AUDIO_CLKOUT2_A), ++ ++ PINMUX_IPSR_GPSR(IP13_31_28, MSIOF0_SYNC), ++ PINMUX_IPSR_GPSR(IP13_31_28, AUDIO_CLKOUT_A), ++ PINMUX_IPSR_MSEL(IP13_31_28, TX5_B, SEL_SCIF5_1), ++ PINMUX_IPSR_MSEL(IP13_31_28, BPFCLK_D, SEL_FM_3), + + /* IPSR14 */ - PINMUX_IPSR_MSEL(IP14_3_0, SSI_SDATA1_A, SEL_SSI_0), -- ++ PINMUX_IPSR_GPSR(IP14_3_0, MSIOF0_SS1), ++ PINMUX_IPSR_MSEL(IP14_3_0, RX5_A, SEL_SCIF5_0), ++ PINMUX_IPSR_MSEL(IP14_3_0, NFWP_N_A, SEL_NDF_0), ++ PINMUX_IPSR_MSEL(IP14_3_0, AUDIO_CLKA_C, SEL_ADG_A_2), ++ PINMUX_IPSR_MSEL(IP14_3_0, SSI_SCK2_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP14_3_0, STP_IVCXO27_0_C, SEL_SSP1_0_2), ++ PINMUX_IPSR_GPSR(IP14_3_0, AUDIO_CLKOUT3_A), ++ PINMUX_IPSR_MSEL(IP14_3_0, TCLK1_B, SEL_TIMER_TMU_1), ++ ++ PINMUX_IPSR_GPSR(IP14_7_4, MSIOF0_SS2), ++ PINMUX_IPSR_MSEL(IP14_7_4, TX5_A, SEL_SCIF5_0), ++ PINMUX_IPSR_MSEL(IP14_7_4, MSIOF1_SS2_D, SEL_MSIOF1_3), ++ PINMUX_IPSR_MSEL(IP14_7_4, AUDIO_CLKC_A, SEL_ADG_C_0), ++ PINMUX_IPSR_MSEL(IP14_7_4, SSI_WS2_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP14_7_4, STP_OPWM_0_D, SEL_SSP1_0_3), ++ PINMUX_IPSR_GPSR(IP14_7_4, AUDIO_CLKOUT_D), ++ PINMUX_IPSR_MSEL(IP14_7_4, SPEEDIN_B, SEL_SPEED_PULSE_1), ++ ++ PINMUX_IPSR_GPSR(IP14_11_8, MLB_CLK), ++ PINMUX_IPSR_MSEL(IP14_11_8, MSIOF1_SCK_F, SEL_MSIOF1_5), ++ PINMUX_IPSR_MSEL(IP14_11_8, SCL1_B, SEL_I2C1_1), ++ ++ PINMUX_IPSR_GPSR(IP14_15_12, MLB_SIG), ++ PINMUX_IPSR_MSEL(IP14_15_12, RX1_B, SEL_SCIF1_1), ++ PINMUX_IPSR_MSEL(IP14_15_12, MSIOF1_SYNC_F, SEL_MSIOF1_5), ++ PINMUX_IPSR_MSEL(IP14_15_12, SDA1_B, SEL_I2C1_1), ++ ++ PINMUX_IPSR_GPSR(IP14_19_16, MLB_DAT), ++ PINMUX_IPSR_MSEL(IP14_19_16, TX1_B, SEL_SCIF1_1), ++ PINMUX_IPSR_MSEL(IP14_19_16, MSIOF1_RXD_F, SEL_MSIOF1_5), ++ ++ PINMUX_IPSR_GPSR(IP14_23_20, SSI_SCK01239), ++ PINMUX_IPSR_MSEL(IP14_23_20, MSIOF1_TXD_F, SEL_MSIOF1_5), + - PINMUX_IPSR_MSEL(IP14_7_4, SSI_SDATA2_A, SEL_SSI_0), - PINMUX_IPSR_MSEL(IP14_7_4, SSI_SCK1_B, SEL_SSI_1), -- ++ PINMUX_IPSR_GPSR(IP14_27_24, SSI_WS01239), ++ PINMUX_IPSR_MSEL(IP14_27_24, MSIOF1_SS1_F, SEL_MSIOF1_5), + - PINMUX_IPSR_GPSR(IP14_11_8, SSI_SCK34), - PINMUX_IPSR_MSEL(IP14_11_8, MSIOF1_SS1_A, SEL_MSIOF1_0), - PINMUX_IPSR_MSEL(IP14_11_8, STP_OPWM_0_A, SEL_SSP1_0_0), @@ -6740,8 +6858,10 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP14_31_28, STP_ISSYNC_0_A, SEL_SSP1_0_0), - PINMUX_IPSR_MSEL(IP14_31_28, RIF0_D0_A, SEL_DRIF0_0), - PINMUX_IPSR_MSEL(IP14_31_28, RIF2_D1_A, SEL_DRIF2_0), -- -- /* IPSR15 */ ++ PINMUX_IPSR_GPSR(IP14_31_28, SSI_SDATA0), ++ PINMUX_IPSR_MSEL(IP14_31_28, MSIOF1_SS2_F, SEL_MSIOF1_5), + + /* IPSR15 */ - PINMUX_IPSR_GPSR(IP15_3_0, SSI_SCK6), - PINMUX_IPSR_GPSR(IP15_3_0, USB2_PWEN), - PINMUX_IPSR_MSEL(IP15_3_0, SIM0_RST_D, SEL_SIMCARD_3), @@ -6795,11 +6915,55 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_GPSR(IP15_31_28, SCK1), - PINMUX_IPSR_MSEL(IP15_31_28, STP_IVCXO27_1_A, SEL_SSP1_1_0), - PINMUX_IPSR_GPSR(IP15_31_28, SCK5), -- ++ PINMUX_IPSR_MSEL(IP15_3_0, SSI_SDATA1_A, SEL_SSI_0), + - /* IPSR16 */ - PINMUX_IPSR_MSEL(IP16_3_0, AUDIO_CLKA_A, SEL_ADG_0), - PINMUX_IPSR_GPSR(IP16_3_0, CC5_OSCOUT), -- ++ PINMUX_IPSR_MSEL(IP15_7_4, SSI_SDATA2_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP15_7_4, SSI_SCK1_B, SEL_SSI_1), ++ ++ PINMUX_IPSR_GPSR(IP15_11_8, SSI_SCK34), ++ PINMUX_IPSR_MSEL(IP15_11_8, MSIOF1_SS1_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_11_8, STP_OPWM_0_A, SEL_SSP1_0_0), ++ ++ PINMUX_IPSR_GPSR(IP15_15_12, SSI_WS34), ++ PINMUX_IPSR_MSEL(IP15_15_12, HCTS2_N_A, SEL_HSCIF2_0), ++ PINMUX_IPSR_MSEL(IP15_15_12, MSIOF1_SS2_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_15_12, STP_IVCXO27_0_A, SEL_SSP1_0_0), ++ ++ PINMUX_IPSR_GPSR(IP15_19_16, SSI_SDATA3), ++ PINMUX_IPSR_MSEL(IP15_19_16, HRTS2_N_A, SEL_HSCIF2_0), ++ PINMUX_IPSR_MSEL(IP15_19_16, MSIOF1_TXD_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_19_16, TS_SCK0_A, SEL_TSIF0_0), ++ PINMUX_IPSR_MSEL(IP15_19_16, STP_ISCLK_0_A, SEL_SSP1_0_0), ++ PINMUX_IPSR_MSEL(IP15_19_16, RIF0_D1_A, SEL_DRIF0_0), ++ PINMUX_IPSR_MSEL(IP15_19_16, RIF2_D0_A, SEL_DRIF2_0), ++ ++ PINMUX_IPSR_GPSR(IP15_23_20, SSI_SCK4), ++ PINMUX_IPSR_MSEL(IP15_23_20, HRX2_A, SEL_HSCIF2_0), ++ PINMUX_IPSR_MSEL(IP15_23_20, MSIOF1_SCK_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_23_20, TS_SDAT0_A, SEL_TSIF0_0), ++ PINMUX_IPSR_MSEL(IP15_23_20, STP_ISD_0_A, SEL_SSP1_0_0), ++ PINMUX_IPSR_MSEL(IP15_23_20, RIF0_CLK_A, SEL_DRIF0_0), ++ PINMUX_IPSR_MSEL(IP15_23_20, RIF2_CLK_A, SEL_DRIF2_0), ++ ++ PINMUX_IPSR_GPSR(IP15_27_24, SSI_WS4), ++ PINMUX_IPSR_MSEL(IP15_27_24, HTX2_A, SEL_HSCIF2_0), ++ PINMUX_IPSR_MSEL(IP15_27_24, MSIOF1_SYNC_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_27_24, TS_SDEN0_A, SEL_TSIF0_0), ++ PINMUX_IPSR_MSEL(IP15_27_24, STP_ISEN_0_A, SEL_SSP1_0_0), ++ PINMUX_IPSR_MSEL(IP15_27_24, RIF0_SYNC_A, SEL_DRIF0_0), ++ PINMUX_IPSR_MSEL(IP15_27_24, RIF2_SYNC_A, SEL_DRIF2_0), ++ ++ PINMUX_IPSR_GPSR(IP15_31_28, SSI_SDATA4), ++ PINMUX_IPSR_MSEL(IP15_31_28, HSCK2_A, SEL_HSCIF2_0), ++ PINMUX_IPSR_MSEL(IP15_31_28, MSIOF1_RXD_A, SEL_MSIOF1_0), ++ PINMUX_IPSR_MSEL(IP15_31_28, TS_SPSYNC0_A, SEL_TSIF0_0), ++ PINMUX_IPSR_MSEL(IP15_31_28, STP_ISSYNC_0_A, SEL_SSP1_0_0), ++ PINMUX_IPSR_MSEL(IP15_31_28, RIF0_D0_A, SEL_DRIF0_0), ++ PINMUX_IPSR_MSEL(IP15_31_28, RIF2_D1_A, SEL_DRIF2_0), + - PINMUX_IPSR_MSEL(IP16_7_4, AUDIO_CLKB_B, SEL_ADG_1), - PINMUX_IPSR_MSEL(IP16_7_4, SCIF_CLK_A, SEL_SCIF1_0), - PINMUX_IPSR_MSEL(IP16_7_4, STP_IVCXO27_1_D, SEL_SSP1_1_3), @@ -6856,8 +7020,62 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP16_31_28, RIF3_D1_B, SEL_DRIF3_1), - PINMUX_IPSR_MSEL(IP16_31_28, FSO_TOE_B, SEL_FSO_1), - PINMUX_IPSR_GPSR(IP16_31_28, TPU0TO1), -- -- /* IPSR17 */ ++ /* IPSR16 */ ++ PINMUX_IPSR_GPSR(IP16_3_0, SSI_SCK6), ++ PINMUX_IPSR_GPSR(IP16_3_0, USB2_PWEN), ++ PINMUX_IPSR_MSEL(IP16_3_0, SIM0_RST_D, SEL_SIMCARD_3), ++ ++ PINMUX_IPSR_GPSR(IP16_7_4, SSI_WS6), ++ PINMUX_IPSR_GPSR(IP16_7_4, USB2_OVC), ++ PINMUX_IPSR_MSEL(IP16_7_4, SIM0_D_D, SEL_SIMCARD_3), ++ ++ PINMUX_IPSR_GPSR(IP16_11_8, SSI_SDATA6), ++ PINMUX_IPSR_MSEL(IP16_11_8, SIM0_CLK_D, SEL_SIMCARD_3), ++ PINMUX_IPSR_GPSR(IP16_11_8, SATA_DEVSLP_A), ++ ++ PINMUX_IPSR_GPSR(IP16_15_12, SSI_SCK78), ++ PINMUX_IPSR_MSEL(IP16_15_12, HRX2_B, SEL_HSCIF2_1), ++ PINMUX_IPSR_MSEL(IP16_15_12, MSIOF1_SCK_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP16_15_12, TS_SCK1_A, SEL_TSIF1_0), ++ PINMUX_IPSR_MSEL(IP16_15_12, STP_ISCLK_1_A, SEL_SSP1_1_0), ++ PINMUX_IPSR_MSEL(IP16_15_12, RIF1_CLK_A, SEL_DRIF1_0), ++ PINMUX_IPSR_MSEL(IP16_15_12, RIF3_CLK_A, SEL_DRIF3_0), ++ ++ PINMUX_IPSR_GPSR(IP16_19_16, SSI_WS78), ++ PINMUX_IPSR_MSEL(IP16_19_16, HTX2_B, SEL_HSCIF2_1), ++ PINMUX_IPSR_MSEL(IP16_19_16, MSIOF1_SYNC_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP16_19_16, TS_SDAT1_A, SEL_TSIF1_0), ++ PINMUX_IPSR_MSEL(IP16_19_16, STP_ISD_1_A, SEL_SSP1_1_0), ++ PINMUX_IPSR_MSEL(IP16_19_16, RIF1_SYNC_A, SEL_DRIF1_0), ++ PINMUX_IPSR_MSEL(IP16_19_16, RIF3_SYNC_A, SEL_DRIF3_0), ++ ++ PINMUX_IPSR_GPSR(IP16_23_20, SSI_SDATA7), ++ PINMUX_IPSR_MSEL(IP16_23_20, HCTS2_N_B, SEL_HSCIF2_1), ++ PINMUX_IPSR_MSEL(IP16_23_20, MSIOF1_RXD_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP16_23_20, TS_SDEN1_A, SEL_TSIF1_0), ++ PINMUX_IPSR_MSEL(IP16_23_20, STP_ISEN_1_A, SEL_SSP1_1_0), ++ PINMUX_IPSR_MSEL(IP16_23_20, RIF1_D0_A, SEL_DRIF1_0), ++ PINMUX_IPSR_MSEL(IP16_23_20, RIF3_D0_A, SEL_DRIF3_0), ++ PINMUX_IPSR_MSEL(IP16_23_20, TCLK2_A, SEL_TIMER_TMU_0), ++ ++ PINMUX_IPSR_GPSR(IP16_27_24, SSI_SDATA8), ++ PINMUX_IPSR_MSEL(IP16_27_24, HRTS2_N_B, SEL_HSCIF2_1), ++ PINMUX_IPSR_MSEL(IP16_27_24, MSIOF1_TXD_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP16_27_24, TS_SPSYNC1_A, SEL_TSIF1_0), ++ PINMUX_IPSR_MSEL(IP16_27_24, STP_ISSYNC_1_A, SEL_SSP1_1_0), ++ PINMUX_IPSR_MSEL(IP16_27_24, RIF1_D1_A, SEL_DRIF1_0), ++ PINMUX_IPSR_MSEL(IP16_27_24, RIF3_D1_A, SEL_DRIF3_0), ++ ++ PINMUX_IPSR_MSEL(IP16_31_28, SSI_SDATA9_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP16_31_28, HSCK2_B, SEL_HSCIF2_1), ++ PINMUX_IPSR_MSEL(IP16_31_28, MSIOF1_SS1_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP16_31_28, HSCK1_A, SEL_HSCIF1_0), ++ PINMUX_IPSR_MSEL(IP16_31_28, SSI_WS1_B, SEL_SSI_1), ++ PINMUX_IPSR_GPSR(IP16_31_28, SCK1), ++ PINMUX_IPSR_MSEL(IP16_31_28, STP_IVCXO27_1_A, SEL_SSP1_1_0), ++ PINMUX_IPSR_GPSR(IP16_31_28, SCK5_A), + + /* IPSR17 */ - PINMUX_IPSR_GPSR(IP17_3_0, USB31_PWEN), - PINMUX_IPSR_MSEL(IP17_3_0, AUDIO_CLKOUT2_B, SEL_ADG_1), - PINMUX_IPSR_MSEL(IP17_3_0, SSI_SCK9_B, SEL_SSI_1), @@ -6873,84 +7091,99 @@ index 3d1c32cca16a..6caaed53938c 100644 - PINMUX_IPSR_MSEL(IP17_7_4, STP_ISSYNC_0_E, SEL_SSP1_0_4), - PINMUX_IPSR_MSEL(IP17_7_4, RIF2_D1_B, SEL_DRIF2_1), - PINMUX_IPSR_GPSR(IP17_7_4, TPU0TO3), -- --/* -- * Static pins can not be muxed between different functions but -- * still needs a mark entry in the pinmux list. Add each static -- * pin to the list without an associated function. The sh-pfc -- * core will do the right thing and skip trying to mux then pin -- * while still applying configuration to it -- */ --#define FM(x) PINMUX_DATA(x##_MARK, 0), -- PINMUX_STATIC --#undef FM --}; -- --/* -- * R8A7795 has 8 banks with 32 PGIOS in each => 256 GPIOs. -- * Physical layout rows: A - AW, cols: 1 - 39. -- */ --#define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) --#define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) --#define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) -- --static const struct sh_pfc_pin pinmux_pins[] = { -- PINMUX_GPIO_GP_ALL(), -- -- /* -- * Pins not associated with a GPIO port. -- * -- * The pin positions are different between different r8a7795 -- * packages, all that is needed for the pfc driver is a unique -- * number for each pin. To this end use the pin layout from -- * R-Car H3SiP to calculate a unique number for each pin. -- */ -- SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('F', 1, CLKOUT, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST#, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 7, DU_DOTCLKIN2, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), -- SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), --}; -- ++ PINMUX_IPSR_MSEL(IP17_3_0, AUDIO_CLKA_A, SEL_ADG_A_0), ++ PINMUX_IPSR_GPSR(IP17_3_0, CC5_OSCOUT), ++ ++ PINMUX_IPSR_MSEL(IP17_7_4, AUDIO_CLKB_B, SEL_ADG_B_1), ++ PINMUX_IPSR_MSEL(IP17_7_4, SCIF_CLK_A, SEL_SCIF1_0), ++ PINMUX_IPSR_MSEL(IP17_7_4, STP_IVCXO27_1_D, SEL_SSP1_1_3), ++ PINMUX_IPSR_MSEL(IP17_7_4, REMOCON_A, SEL_REMOCON_0), ++ PINMUX_IPSR_MSEL(IP17_7_4, TCLK1_A, SEL_TIMER_TMU_0), ++ ++ PINMUX_IPSR_GPSR(IP17_11_8, USB0_PWEN), ++ PINMUX_IPSR_MSEL(IP17_11_8, SIM0_RST_C, SEL_SIMCARD_2), ++ PINMUX_IPSR_MSEL(IP17_11_8, TS_SCK1_D, SEL_TSIF1_3), ++ PINMUX_IPSR_MSEL(IP17_11_8, STP_ISCLK_1_D, SEL_SSP1_1_3), ++ PINMUX_IPSR_MSEL(IP17_11_8, BPFCLK_B, SEL_FM_1), ++ PINMUX_IPSR_MSEL(IP17_11_8, RIF3_CLK_B, SEL_DRIF3_1), ++ PINMUX_IPSR_MSEL(IP17_11_8, HSCK2_C, SEL_HSCIF2_2), ++ ++ PINMUX_IPSR_GPSR(IP17_15_12, USB0_OVC), ++ PINMUX_IPSR_MSEL(IP17_15_12, SIM0_D_C, SEL_SIMCARD_2), ++ PINMUX_IPSR_MSEL(IP17_15_12, TS_SDAT1_D, SEL_TSIF1_3), ++ PINMUX_IPSR_MSEL(IP17_15_12, STP_ISD_1_D, SEL_SSP1_1_3), ++ PINMUX_IPSR_MSEL(IP17_15_12, RIF3_SYNC_B, SEL_DRIF3_1), ++ PINMUX_IPSR_MSEL(IP17_15_12, HRX2_C, SEL_HSCIF2_2), ++ ++ PINMUX_IPSR_GPSR(IP17_19_16, USB1_PWEN), ++ PINMUX_IPSR_MSEL(IP17_19_16, SIM0_CLK_C, SEL_SIMCARD_2), ++ PINMUX_IPSR_MSEL(IP17_19_16, SSI_SCK1_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP17_19_16, TS_SCK0_E, SEL_TSIF0_4), ++ PINMUX_IPSR_MSEL(IP17_19_16, STP_ISCLK_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP17_19_16, FMCLK_B, SEL_FM_1), ++ PINMUX_IPSR_MSEL(IP17_19_16, RIF2_CLK_B, SEL_DRIF2_1), ++ PINMUX_IPSR_MSEL(IP17_19_16, SPEEDIN_A, SEL_SPEED_PULSE_0), ++ PINMUX_IPSR_MSEL(IP17_19_16, HTX2_C, SEL_HSCIF2_2), ++ ++ PINMUX_IPSR_GPSR(IP17_23_20, USB1_OVC), ++ PINMUX_IPSR_MSEL(IP17_23_20, MSIOF1_SS2_C, SEL_MSIOF1_2), ++ PINMUX_IPSR_MSEL(IP17_23_20, SSI_WS1_A, SEL_SSI_0), ++ PINMUX_IPSR_MSEL(IP17_23_20, TS_SDAT0_E, SEL_TSIF0_4), ++ PINMUX_IPSR_MSEL(IP17_23_20, STP_ISD_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP17_23_20, FMIN_B, SEL_FM_1), ++ PINMUX_IPSR_MSEL(IP17_23_20, RIF2_SYNC_B, SEL_DRIF2_1), ++ PINMUX_IPSR_MSEL(IP17_23_20, REMOCON_B, SEL_REMOCON_1), ++ PINMUX_IPSR_MSEL(IP17_23_20, HCTS2_N_C, SEL_HSCIF2_2), ++ ++ PINMUX_IPSR_GPSR(IP17_27_24, USB30_PWEN), ++ PINMUX_IPSR_GPSR(IP17_27_24, AUDIO_CLKOUT_B), ++ PINMUX_IPSR_MSEL(IP17_27_24, SSI_SCK2_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP17_27_24, TS_SDEN1_D, SEL_TSIF1_3), ++ PINMUX_IPSR_MSEL(IP17_27_24, STP_ISEN_1_D, SEL_SSP1_1_2), ++ PINMUX_IPSR_MSEL(IP17_27_24, STP_OPWM_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP17_27_24, RIF3_D0_B, SEL_DRIF3_1), ++ PINMUX_IPSR_MSEL(IP17_27_24, TCLK2_B, SEL_TIMER_TMU_1), ++ PINMUX_IPSR_GPSR(IP17_27_24, TPU0TO0), ++ PINMUX_IPSR_MSEL(IP17_27_24, BPFCLK_C, SEL_FM_2), ++ PINMUX_IPSR_MSEL(IP17_27_24, HRTS2_N_C, SEL_HSCIF2_2), ++ ++ PINMUX_IPSR_GPSR(IP17_31_28, USB30_OVC), ++ PINMUX_IPSR_GPSR(IP17_31_28, AUDIO_CLKOUT1_B), ++ PINMUX_IPSR_MSEL(IP17_31_28, SSI_WS2_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP17_31_28, TS_SPSYNC1_D, SEL_TSIF1_3), ++ PINMUX_IPSR_MSEL(IP17_31_28, STP_ISSYNC_1_D, SEL_SSP1_1_3), ++ PINMUX_IPSR_MSEL(IP17_31_28, STP_IVCXO27_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP17_31_28, RIF3_D1_B, SEL_DRIF3_1), ++ PINMUX_IPSR_GPSR(IP17_31_28, FSO_TOE_N), ++ PINMUX_IPSR_GPSR(IP17_31_28, TPU0TO1), ++ ++ /* IPSR18 */ ++ PINMUX_IPSR_GPSR(IP18_3_0, USB3_PWEN), ++ PINMUX_IPSR_GPSR(IP18_3_0, AUDIO_CLKOUT2_B), ++ PINMUX_IPSR_MSEL(IP18_3_0, SSI_SCK9_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP18_3_0, TS_SDEN0_E, SEL_TSIF0_4), ++ PINMUX_IPSR_MSEL(IP18_3_0, STP_ISEN_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP18_3_0, RIF2_D0_B, SEL_DRIF2_1), ++ PINMUX_IPSR_GPSR(IP18_3_0, TPU0TO2), ++ PINMUX_IPSR_MSEL(IP18_3_0, FMCLK_C, SEL_FM_2), ++ PINMUX_IPSR_MSEL(IP18_3_0, FMCLK_D, SEL_FM_3), ++ ++ PINMUX_IPSR_GPSR(IP18_7_4, USB3_OVC), ++ PINMUX_IPSR_GPSR(IP18_7_4, AUDIO_CLKOUT3_B), ++ PINMUX_IPSR_MSEL(IP18_7_4, SSI_WS9_B, SEL_SSI_1), ++ PINMUX_IPSR_MSEL(IP18_7_4, TS_SPSYNC0_E, SEL_TSIF0_4), ++ PINMUX_IPSR_MSEL(IP18_7_4, STP_ISSYNC_0_E, SEL_SSP1_0_4), ++ PINMUX_IPSR_MSEL(IP18_7_4, RIF2_D1_B, SEL_DRIF2_1), ++ PINMUX_IPSR_GPSR(IP18_7_4, TPU0TO3), ++ PINMUX_IPSR_MSEL(IP18_7_4, FMIN_C, SEL_FM_2), ++ PINMUX_IPSR_MSEL(IP18_7_4, FMIN_D, SEL_FM_3), + + /* + * Static pins can not be muxed between different functions but +@@ -1507,3087 +1576,10 @@ static const struct sh_pfc_pin pinmux_pi + SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), + }; + -/* - AUDIO CLOCK ------------------------------------------------------------ */ -static const unsigned int audio_clk_a_a_pins[] = { - /* CLK A */ @@ -9218,7 +9451,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - USB2_PWEN_MARK, USB2_OVC_MARK, -}; - --static const struct sh_pfc_pin_group pinmux_groups[] = { + static const struct sh_pfc_pin_group pinmux_groups[] = { - SH_PFC_PIN_GROUP(audio_clk_a_a), - SH_PFC_PIN_GROUP(audio_clk_a_b), - SH_PFC_PIN_GROUP(audio_clk_a_c), @@ -9545,11 +9778,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "audio_clkout3_a", - "audio_clkout3_b", -}; -+ PINMUX_IPSR_GPSR(IP6_7_4, D6), -+ PINMUX_IPSR_MSEL(IP6_7_4, MSIOF2_RXD_B, SEL_MSIOF2_1), -+ PINMUX_IPSR_GPSR(IP6_7_4, VI4_DATA22), -+ PINMUX_IPSR_GPSR(IP6_7_4, VI5_DATA6), - +- -static const char * const avb_groups[] = { - "avb_link", - "avb_magic", @@ -9562,64 +9791,29 @@ index 3d1c32cca16a..6caaed53938c 100644 - "avb_avtp_match_b", - "avb_avtp_capture_b", -}; -+ PINMUX_IPSR_GPSR(IP6_11_8, D7), -+ PINMUX_IPSR_MSEL(IP6_11_8, MSIOF2_TXD_B, SEL_MSIOF2_1), -+ PINMUX_IPSR_GPSR(IP6_11_8, VI4_DATA23), -+ PINMUX_IPSR_GPSR(IP6_11_8, VI5_DATA7), - +- -static const char * const can0_groups[] = { - "can0_data_a", - "can0_data_b", -}; -+ PINMUX_IPSR_GPSR(IP6_15_12, D8), -+ PINMUX_IPSR_GPSR(IP6_15_12, LCDOUT0), -+ PINMUX_IPSR_MSEL(IP6_15_12, MSIOF2_SCK_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP6_15_12, SCK4_C, SEL_SCIF4_2), -+ PINMUX_IPSR_MSEL(IP6_15_12, VI4_DATA0_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP6_15_12, DU_DR0), - +- -static const char * const can1_groups[] = { - "can1_data", -}; -+ PINMUX_IPSR_GPSR(IP6_19_16, D9), -+ PINMUX_IPSR_GPSR(IP6_19_16, LCDOUT1), -+ PINMUX_IPSR_MSEL(IP6_19_16, MSIOF2_SYNC_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP6_19_16, VI4_DATA1_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP6_19_16, DU_DR1), - +- -static const char * const can_clk_groups[] = { - "can_clk", -}; -+ PINMUX_IPSR_GPSR(IP6_23_20, D10), -+ PINMUX_IPSR_GPSR(IP6_23_20, LCDOUT2), -+ PINMUX_IPSR_MSEL(IP6_23_20, MSIOF2_RXD_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP6_23_20, HRX3_B, SEL_HSCIF3_1), -+ PINMUX_IPSR_MSEL(IP6_23_20, VI4_DATA2_A, SEL_VIN4_0), -+ PINMUX_IPSR_MSEL(IP6_23_20, CTS4_N_C, SEL_SCIF4_2), -+ PINMUX_IPSR_GPSR(IP6_23_20, DU_DR2), - +- -static const char * const canfd0_groups[] = { - "canfd0_data_a", - "canfd0_data_b", -}; -+ PINMUX_IPSR_GPSR(IP6_27_24, D11), -+ PINMUX_IPSR_GPSR(IP6_27_24, LCDOUT3), -+ PINMUX_IPSR_MSEL(IP6_27_24, MSIOF2_TXD_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP6_27_24, HTX3_B, SEL_HSCIF3_1), -+ PINMUX_IPSR_MSEL(IP6_27_24, VI4_DATA3_A, SEL_VIN4_0), -+ PINMUX_IPSR_MSEL(IP6_27_24, RTS4_N_TANS_C, SEL_SCIF4_2), -+ PINMUX_IPSR_GPSR(IP6_27_24, DU_DR3), - +- -static const char * const canfd1_groups[] = { - "canfd1_data", -}; -+ PINMUX_IPSR_GPSR(IP6_31_28, D12), -+ PINMUX_IPSR_GPSR(IP6_31_28, LCDOUT4), -+ PINMUX_IPSR_MSEL(IP6_31_28, MSIOF2_SS1_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP6_31_28, RX4_C, SEL_SCIF4_2), -+ PINMUX_IPSR_MSEL(IP6_31_28, VI4_DATA4_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP6_31_28, DU_DR4), - +- -static const char * const drif0_groups[] = { - "drif0_ctrl_a", - "drif0_data0_a", @@ -9631,14 +9825,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "drif0_data0_c", - "drif0_data1_c", -}; -+ /* IPSR7 */ -+ PINMUX_IPSR_GPSR(IP7_3_0, D13), -+ PINMUX_IPSR_GPSR(IP7_3_0, LCDOUT5), -+ PINMUX_IPSR_MSEL(IP7_3_0, MSIOF2_SS2_D, SEL_MSIOF2_3), -+ PINMUX_IPSR_MSEL(IP7_3_0, TX4_C, SEL_SCIF4_2), -+ PINMUX_IPSR_MSEL(IP7_3_0, VI4_DATA5_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP7_3_0, DU_DR5), - +- -static const char * const drif1_groups[] = { - "drif1_ctrl_a", - "drif1_data0_a", @@ -9650,14 +9837,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "drif1_data0_c", - "drif1_data1_c", -}; -+ PINMUX_IPSR_GPSR(IP7_7_4, D14), -+ PINMUX_IPSR_GPSR(IP7_7_4, LCDOUT6), -+ PINMUX_IPSR_MSEL(IP7_7_4, MSIOF3_SS1_A, SEL_MSIOF3_0), -+ PINMUX_IPSR_MSEL(IP7_7_4, HRX3_C, SEL_HSCIF3_2), -+ PINMUX_IPSR_MSEL(IP7_7_4, VI4_DATA6_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP7_7_4, DU_DR6), -+ PINMUX_IPSR_MSEL(IP7_7_4, SCL6_C, SEL_I2C6_2), - +- -static const char * const drif2_groups[] = { - "drif2_ctrl_a", - "drif2_data0_a", @@ -9666,14 +9846,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "drif2_data0_b", - "drif2_data1_b", -}; -+ PINMUX_IPSR_GPSR(IP7_11_8, D15), -+ PINMUX_IPSR_GPSR(IP7_11_8, LCDOUT7), -+ PINMUX_IPSR_MSEL(IP7_11_8, MSIOF3_SS2_A, SEL_MSIOF3_0), -+ PINMUX_IPSR_MSEL(IP7_11_8, HTX3_C, SEL_HSCIF3_2), -+ PINMUX_IPSR_MSEL(IP7_11_8, VI4_DATA7_A, SEL_VIN4_0), -+ PINMUX_IPSR_GPSR(IP7_11_8, DU_DR7), -+ PINMUX_IPSR_MSEL(IP7_11_8, SDA6_C, SEL_I2C6_2), - +- -static const char * const drif3_groups[] = { - "drif3_ctrl_a", - "drif3_data0_a", @@ -9682,8 +9855,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "drif3_data0_b", - "drif3_data1_b", -}; -+ PINMUX_IPSR_GPSR(IP7_15_12, FSCLKST), - +- -static const char * const du_groups[] = { - "du_rgb666", - "du_rgb888", @@ -9694,19 +9866,13 @@ index 3d1c32cca16a..6caaed53938c 100644 - "du_cde", - "du_disp", -}; -+ PINMUX_IPSR_GPSR(IP7_19_16, SD0_CLK), -+ PINMUX_IPSR_MSEL(IP7_19_16, MSIOF1_SCK_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP7_19_16, STP_OPWM_0_B, SEL_SSP1_0_1), - +- -static const char * const hscif0_groups[] = { - "hscif0_data", - "hscif0_clk", - "hscif0_ctrl", -}; -+ PINMUX_IPSR_GPSR(IP7_23_20, SD0_CMD), -+ PINMUX_IPSR_MSEL(IP7_23_20, MSIOF1_SYNC_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP7_23_20, STP_IVCXO27_0_B, SEL_SSP1_0_1), - +- -static const char * const hscif1_groups[] = { - "hscif1_data_a", - "hscif1_clk_a", @@ -9715,11 +9881,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "hscif1_clk_b", - "hscif1_ctrl_b", -}; -+ PINMUX_IPSR_GPSR(IP7_27_24, SD0_DAT0), -+ PINMUX_IPSR_MSEL(IP7_27_24, MSIOF1_RXD_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP7_27_24, TS_SCK0_B, SEL_TSIF0_1), -+ PINMUX_IPSR_MSEL(IP7_27_24, STP_ISCLK_0_B, SEL_SSP1_0_1), - +- -static const char * const hscif2_groups[] = { - "hscif2_data_a", - "hscif2_clk_a", @@ -9728,11 +9890,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "hscif2_clk_b", - "hscif2_ctrl_b", -}; -+ PINMUX_IPSR_GPSR(IP7_31_28, SD0_DAT1), -+ PINMUX_IPSR_MSEL(IP7_31_28, MSIOF1_TXD_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP7_31_28, TS_SPSYNC0_B, SEL_TSIF0_1), -+ PINMUX_IPSR_MSEL(IP7_31_28, STP_ISSYNC_0_B, SEL_SSP1_0_1), - +- -static const char * const hscif3_groups[] = { - "hscif3_data_a", - "hscif3_clk", @@ -9741,53 +9899,30 @@ index 3d1c32cca16a..6caaed53938c 100644 - "hscif3_data_c", - "hscif3_data_d", -}; -+ /* IPSR8 */ -+ PINMUX_IPSR_GPSR(IP8_3_0, SD0_DAT2), -+ PINMUX_IPSR_MSEL(IP8_3_0, MSIOF1_SS1_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP8_3_0, TS_SDAT0_B, SEL_TSIF0_1), -+ PINMUX_IPSR_MSEL(IP8_3_0, STP_ISD_0_B, SEL_SSP1_0_1), - +- -static const char * const hscif4_groups[] = { - "hscif4_data_a", - "hscif4_clk", - "hscif4_ctrl", - "hscif4_data_b", -}; -+ PINMUX_IPSR_GPSR(IP8_7_4, SD0_DAT3), -+ PINMUX_IPSR_MSEL(IP8_7_4, MSIOF1_SS2_E, SEL_MSIOF1_4), -+ PINMUX_IPSR_MSEL(IP8_7_4, TS_SDEN0_B, SEL_TSIF0_1), -+ PINMUX_IPSR_MSEL(IP8_7_4, STP_ISEN_0_B, SEL_SSP1_0_1), - +- -static const char * const i2c1_groups[] = { - "i2c1_a", - "i2c1_b", -}; -+ PINMUX_IPSR_GPSR(IP8_11_8, SD1_CLK), -+ PINMUX_IPSR_MSEL(IP8_11_8, MSIOF1_SCK_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_11_8, SIM0_CLK_A, SEL_SIMCARD_0), - +- -static const char * const i2c2_groups[] = { - "i2c2_a", - "i2c2_b", -}; -+ PINMUX_IPSR_GPSR(IP8_15_12, SD1_CMD), -+ PINMUX_IPSR_MSEL(IP8_15_12, MSIOF1_SYNC_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_15_12, NFCE_N_B, SEL_NDF_1), -+ PINMUX_IPSR_MSEL(IP8_15_12, SIM0_D_A, SEL_SIMCARD_0), -+ PINMUX_IPSR_MSEL(IP8_15_12, STP_IVCXO27_1_B, SEL_SSP1_1_1), - +- -static const char * const i2c6_groups[] = { - "i2c6_a", - "i2c6_b", - "i2c6_c", -}; -+ PINMUX_IPSR_GPSR(IP8_19_16, SD1_DAT0), -+ PINMUX_IPSR_GPSR(IP8_19_16, SD2_DAT4), -+ PINMUX_IPSR_MSEL(IP8_19_16, MSIOF1_RXD_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_19_16, NFWP_N_B, SEL_NDF_1), -+ PINMUX_IPSR_MSEL(IP8_19_16, TS_SCK1_B, SEL_TSIF1_1), -+ PINMUX_IPSR_MSEL(IP8_19_16, STP_ISCLK_1_B, SEL_SSP1_1_1), - +- -static const char * const intc_ex_groups[] = { - "intc_ex_irq0", - "intc_ex_irq1", @@ -9796,13 +9931,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "intc_ex_irq4", - "intc_ex_irq5", -}; -+ PINMUX_IPSR_GPSR(IP8_23_20, SD1_DAT1), -+ PINMUX_IPSR_GPSR(IP8_23_20, SD2_DAT5), -+ PINMUX_IPSR_MSEL(IP8_23_20, MSIOF1_TXD_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_23_20, NFDATA14_B, SEL_NDF_1), -+ PINMUX_IPSR_MSEL(IP8_23_20, TS_SPSYNC1_B, SEL_TSIF1_1), -+ PINMUX_IPSR_MSEL(IP8_23_20, STP_ISSYNC_1_B, SEL_SSP1_1_1), - +- -static const char * const msiof0_groups[] = { - "msiof0_clk", - "msiof0_sync", @@ -9811,13 +9940,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "msiof0_txd", - "msiof0_rxd", -}; -+ PINMUX_IPSR_GPSR(IP8_27_24, SD1_DAT2), -+ PINMUX_IPSR_GPSR(IP8_27_24, SD2_DAT6), -+ PINMUX_IPSR_MSEL(IP8_27_24, MSIOF1_SS1_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_27_24, NFDATA15_B, SEL_NDF_1), -+ PINMUX_IPSR_MSEL(IP8_27_24, TS_SDAT1_B, SEL_TSIF1_1), -+ PINMUX_IPSR_MSEL(IP8_27_24, STP_ISD_1_B, SEL_SSP1_1_1), - +- -static const char * const msiof1_groups[] = { - "msiof1_clk_a", - "msiof1_sync_a", @@ -9862,13 +9985,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "msiof1_txd_g", - "msiof1_rxd_g", -}; -+ PINMUX_IPSR_GPSR(IP8_31_28, SD1_DAT3), -+ PINMUX_IPSR_GPSR(IP8_31_28, SD2_DAT7), -+ PINMUX_IPSR_MSEL(IP8_31_28, MSIOF1_SS2_G, SEL_MSIOF1_6), -+ PINMUX_IPSR_MSEL(IP8_31_28, NFRB_N_B, SEL_NDF_1), -+ PINMUX_IPSR_MSEL(IP8_31_28, TS_SDEN1_B, SEL_TSIF1_1), -+ PINMUX_IPSR_MSEL(IP8_31_28, STP_ISEN_1_B, SEL_SSP1_1_1), - +- -static const char * const msiof2_groups[] = { - "msiof2_clk_a", - "msiof2_sync_a", @@ -9895,10 +10012,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "msiof2_txd_d", - "msiof2_rxd_d", -}; -+ /* IPSR9 */ -+ PINMUX_IPSR_GPSR(IP9_3_0, SD2_CLK), -+ PINMUX_IPSR_GPSR(IP9_3_0, NFDATA8), - +- -static const char * const msiof3_groups[] = { - "msiof3_clk_a", - "msiof3_sync_a", @@ -9922,119 +10036,84 @@ index 3d1c32cca16a..6caaed53938c 100644 - "msiof3_txd_d", - "msiof3_rxd_d", -}; -+ PINMUX_IPSR_GPSR(IP9_7_4, SD2_CMD), -+ PINMUX_IPSR_GPSR(IP9_7_4, NFDATA9), - +- -static const char * const pwm0_groups[] = { - "pwm0", -}; -+ PINMUX_IPSR_GPSR(IP9_11_8, SD2_DAT0), -+ PINMUX_IPSR_GPSR(IP9_11_8, NFDATA10), - +- -static const char * const pwm1_groups[] = { - "pwm1_a", - "pwm1_b", -}; -+ PINMUX_IPSR_GPSR(IP9_15_12, SD2_DAT1), -+ PINMUX_IPSR_GPSR(IP9_15_12, NFDATA11), - +- -static const char * const pwm2_groups[] = { - "pwm2_a", - "pwm2_b", -}; -+ PINMUX_IPSR_GPSR(IP9_19_16, SD2_DAT2), -+ PINMUX_IPSR_GPSR(IP9_19_16, NFDATA12), - +- -static const char * const pwm3_groups[] = { - "pwm3_a", - "pwm3_b", -}; -+ PINMUX_IPSR_GPSR(IP9_23_20, SD2_DAT3), -+ PINMUX_IPSR_GPSR(IP9_23_20, NFDATA13), - +- -static const char * const pwm4_groups[] = { - "pwm4_a", - "pwm4_b", -}; -+ PINMUX_IPSR_GPSR(IP9_27_24, SD2_DS), -+ PINMUX_IPSR_GPSR(IP9_27_24, NFALE), -+ PINMUX_IPSR_GPSR(IP9_27_24, SATA_DEVSLP_B), - +- -static const char * const pwm5_groups[] = { - "pwm5_a", - "pwm5_b", -}; -+ PINMUX_IPSR_GPSR(IP9_31_28, SD3_CLK), -+ PINMUX_IPSR_GPSR(IP9_31_28, NFWE_N), - +- -static const char * const pwm6_groups[] = { - "pwm6_a", - "pwm6_b", -}; -+ /* IPSR10 */ -+ PINMUX_IPSR_GPSR(IP10_3_0, SD3_CMD), -+ PINMUX_IPSR_GPSR(IP10_3_0, NFRE_N), - +- -static const char * const qspi0_groups[] = { - "qspi0_ctrl", - "qspi0_data2", - "qspi0_data4", -}; -+ PINMUX_IPSR_GPSR(IP10_7_4, SD3_DAT0), -+ PINMUX_IPSR_GPSR(IP10_7_4, NFDATA0), - +- -static const char * const qspi1_groups[] = { - "qspi1_ctrl", - "qspi1_data2", - "qspi1_data4", -}; -+ PINMUX_IPSR_GPSR(IP10_11_8, SD3_DAT1), -+ PINMUX_IPSR_GPSR(IP10_11_8, NFDATA1), - +- -static const char * const sata0_groups[] = { - "sata0_devslp_a", - "sata0_devslp_b", -}; -+ PINMUX_IPSR_GPSR(IP10_15_12, SD3_DAT2), -+ PINMUX_IPSR_GPSR(IP10_15_12, NFDATA2), - +- -static const char * const scif0_groups[] = { - "scif0_data", - "scif0_clk", - "scif0_ctrl", -}; -+ PINMUX_IPSR_GPSR(IP10_19_16, SD3_DAT3), -+ PINMUX_IPSR_GPSR(IP10_19_16, NFDATA3), - +- -static const char * const scif1_groups[] = { - "scif1_data_a", - "scif1_clk", - "scif1_ctrl", - "scif1_data_b", -}; -+ PINMUX_IPSR_GPSR(IP10_23_20, SD3_DAT4), -+ PINMUX_IPSR_MSEL(IP10_23_20, SD2_CD_A, SEL_SDHI2_0), -+ PINMUX_IPSR_GPSR(IP10_23_20, NFDATA4), - +- -static const char * const scif2_groups[] = { - "scif2_data_a", - "scif2_clk", - "scif2_data_b", -}; -+ PINMUX_IPSR_GPSR(IP10_27_24, SD3_DAT5), -+ PINMUX_IPSR_MSEL(IP10_27_24, SD2_WP_A, SEL_SDHI2_0), -+ PINMUX_IPSR_GPSR(IP10_27_24, NFDATA5), - +- -static const char * const scif3_groups[] = { - "scif3_data_a", - "scif3_clk", - "scif3_ctrl", - "scif3_data_b", -}; -+ PINMUX_IPSR_GPSR(IP10_31_28, SD3_DAT6), -+ PINMUX_IPSR_GPSR(IP10_31_28, SD3_CD), -+ PINMUX_IPSR_GPSR(IP10_31_28, NFDATA6), - +- -static const char * const scif4_groups[] = { - "scif4_data_a", - "scif4_clk_a", @@ -10046,173 +10125,17 @@ index 3d1c32cca16a..6caaed53938c 100644 - "scif4_clk_c", - "scif4_ctrl_c", -}; -+ /* IPSR11 */ -+ PINMUX_IPSR_GPSR(IP11_3_0, SD3_DAT7), -+ PINMUX_IPSR_GPSR(IP11_3_0, SD3_WP), -+ PINMUX_IPSR_GPSR(IP11_3_0, NFDATA7), -+ -+ PINMUX_IPSR_GPSR(IP11_7_4, SD3_DS), -+ PINMUX_IPSR_GPSR(IP11_7_4, NFCLE), -+ -+ PINMUX_IPSR_GPSR(IP11_11_8, SD0_CD), -+ PINMUX_IPSR_MSEL(IP11_11_8, SCL2_B, SEL_I2C2_1), -+ PINMUX_IPSR_MSEL(IP11_11_8, SIM0_RST_A, SEL_SIMCARD_0), -+ -+ PINMUX_IPSR_GPSR(IP11_15_12, SD0_WP), -+ PINMUX_IPSR_MSEL(IP11_15_12, SDA2_B, SEL_I2C2_1), -+ -+ PINMUX_IPSR_GPSR(IP11_19_16, SD1_CD), -+ PINMUX_IPSR_MSEL(IP11_19_16, SIM0_CLK_B, SEL_SIMCARD_1), -+ -+ PINMUX_IPSR_GPSR(IP11_23_20, SD1_WP), -+ PINMUX_IPSR_MSEL(IP11_23_20, SIM0_D_B, SEL_SIMCARD_1), -+ -+ PINMUX_IPSR_GPSR(IP11_27_24, SCK0), -+ PINMUX_IPSR_MSEL(IP11_27_24, HSCK1_B, SEL_HSCIF1_1), -+ PINMUX_IPSR_MSEL(IP11_27_24, MSIOF1_SS2_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP11_27_24, AUDIO_CLKC_B, SEL_ADG_C_1), -+ PINMUX_IPSR_MSEL(IP11_27_24, SDA2_A, SEL_I2C2_0), -+ PINMUX_IPSR_MSEL(IP11_27_24, SIM0_RST_B, SEL_SIMCARD_1), -+ PINMUX_IPSR_MSEL(IP11_27_24, STP_OPWM_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_MSEL(IP11_27_24, RIF0_CLK_B, SEL_DRIF0_1), -+ PINMUX_IPSR_GPSR(IP11_27_24, ADICHS2), -+ PINMUX_IPSR_MSEL(IP11_27_24, SCK5_B, SEL_SCIF5_1), -+ -+ PINMUX_IPSR_GPSR(IP11_31_28, RX0), -+ PINMUX_IPSR_MSEL(IP11_31_28, HRX1_B, SEL_HSCIF1_1), -+ PINMUX_IPSR_MSEL(IP11_31_28, TS_SCK0_C, SEL_TSIF0_2), -+ PINMUX_IPSR_MSEL(IP11_31_28, STP_ISCLK_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_MSEL(IP11_31_28, RIF0_D0_B, SEL_DRIF0_1), - +- -static const char * const scif5_groups[] = { - "scif5_data", - "scif5_clk", -}; -+ /* IPSR12 */ -+ PINMUX_IPSR_GPSR(IP12_3_0, TX0), -+ PINMUX_IPSR_MSEL(IP12_3_0, HTX1_B, SEL_HSCIF1_1), -+ PINMUX_IPSR_MSEL(IP12_3_0, TS_SPSYNC0_C, SEL_TSIF0_2), -+ PINMUX_IPSR_MSEL(IP12_3_0, STP_ISSYNC_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_MSEL(IP12_3_0, RIF0_D1_B, SEL_DRIF0_1), -+ -+ PINMUX_IPSR_GPSR(IP12_7_4, CTS0_N), -+ PINMUX_IPSR_MSEL(IP12_7_4, HCTS1_N_B, SEL_HSCIF1_1), -+ PINMUX_IPSR_MSEL(IP12_7_4, MSIOF1_SYNC_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP12_7_4, TS_SPSYNC1_C, SEL_TSIF1_2), -+ PINMUX_IPSR_MSEL(IP12_7_4, STP_ISSYNC_1_C, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP12_7_4, RIF1_SYNC_B, SEL_DRIF1_1), -+ PINMUX_IPSR_GPSR(IP12_7_4, AUDIO_CLKOUT_C), -+ PINMUX_IPSR_GPSR(IP12_7_4, ADICS_SAMP), -+ -+ PINMUX_IPSR_GPSR(IP12_11_8, RTS0_N_TANS), -+ PINMUX_IPSR_MSEL(IP12_11_8, HRTS1_N_B, SEL_HSCIF1_1), -+ PINMUX_IPSR_MSEL(IP12_11_8, MSIOF1_SS1_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP12_11_8, AUDIO_CLKA_B, SEL_ADG_A_1), -+ PINMUX_IPSR_MSEL(IP12_11_8, SCL2_A, SEL_I2C2_0), -+ PINMUX_IPSR_MSEL(IP12_11_8, STP_IVCXO27_1_C, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP12_11_8, RIF0_SYNC_B, SEL_DRIF0_1), -+ PINMUX_IPSR_GPSR(IP12_11_8, ADICHS1), -+ -+ PINMUX_IPSR_MSEL(IP12_15_12, RX1_A, SEL_SCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_15_12, HRX1_A, SEL_HSCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_15_12, TS_SDAT0_C, SEL_TSIF0_2), -+ PINMUX_IPSR_MSEL(IP12_15_12, STP_ISD_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_MSEL(IP12_15_12, RIF1_CLK_C, SEL_DRIF1_2), -+ -+ PINMUX_IPSR_MSEL(IP12_19_16, TX1_A, SEL_SCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_19_16, HTX1_A, SEL_HSCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_19_16, TS_SDEN0_C, SEL_TSIF0_2), -+ PINMUX_IPSR_MSEL(IP12_19_16, STP_ISEN_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_MSEL(IP12_19_16, RIF1_D0_C, SEL_DRIF1_2), -+ -+ PINMUX_IPSR_GPSR(IP12_23_20, CTS1_N), -+ PINMUX_IPSR_MSEL(IP12_23_20, HCTS1_N_A, SEL_HSCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_23_20, MSIOF1_RXD_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP12_23_20, TS_SDEN1_C, SEL_TSIF1_2), -+ PINMUX_IPSR_MSEL(IP12_23_20, STP_ISEN_1_C, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP12_23_20, RIF1_D0_B, SEL_DRIF1_1), -+ PINMUX_IPSR_GPSR(IP12_23_20, ADIDATA), -+ -+ PINMUX_IPSR_GPSR(IP12_27_24, RTS1_N_TANS), -+ PINMUX_IPSR_MSEL(IP12_27_24, HRTS1_N_A, SEL_HSCIF1_0), -+ PINMUX_IPSR_MSEL(IP12_27_24, MSIOF1_TXD_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP12_27_24, TS_SDAT1_C, SEL_TSIF1_2), -+ PINMUX_IPSR_MSEL(IP12_27_24, STP_ISD_1_C, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP12_27_24, RIF1_D1_B, SEL_DRIF1_1), -+ PINMUX_IPSR_GPSR(IP12_27_24, ADICHS0), -+ -+ PINMUX_IPSR_GPSR(IP12_31_28, SCK2), -+ PINMUX_IPSR_MSEL(IP12_31_28, SCIF_CLK_B, SEL_SCIF1_1), -+ PINMUX_IPSR_MSEL(IP12_31_28, MSIOF1_SCK_B, SEL_MSIOF1_1), -+ PINMUX_IPSR_MSEL(IP12_31_28, TS_SCK1_C, SEL_TSIF1_2), -+ PINMUX_IPSR_MSEL(IP12_31_28, STP_ISCLK_1_C, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP12_31_28, RIF1_CLK_B, SEL_DRIF1_1), -+ PINMUX_IPSR_GPSR(IP12_31_28, ADICLK), - +- -static const char * const scif_clk_groups[] = { - "scif_clk_a", - "scif_clk_b", -}; -+ /* IPSR13 */ -+ PINMUX_IPSR_MSEL(IP13_3_0, TX2_A, SEL_SCIF2_0), -+ PINMUX_IPSR_MSEL(IP13_3_0, SD2_CD_B, SEL_SDHI2_1), -+ PINMUX_IPSR_MSEL(IP13_3_0, SCL1_A, SEL_I2C1_0), -+ PINMUX_IPSR_MSEL(IP13_3_0, FMCLK_A, SEL_FM_0), -+ PINMUX_IPSR_MSEL(IP13_3_0, RIF1_D1_C, SEL_DRIF1_2), -+ PINMUX_IPSR_GPSR(IP13_3_0, FSO_CFE_0_N), -+ -+ PINMUX_IPSR_MSEL(IP13_7_4, RX2_A, SEL_SCIF2_0), -+ PINMUX_IPSR_MSEL(IP13_7_4, SD2_WP_B, SEL_SDHI2_1), -+ PINMUX_IPSR_MSEL(IP13_7_4, SDA1_A, SEL_I2C1_0), -+ PINMUX_IPSR_MSEL(IP13_7_4, FMIN_A, SEL_FM_0), -+ PINMUX_IPSR_MSEL(IP13_7_4, RIF1_SYNC_C, SEL_DRIF1_2), -+ PINMUX_IPSR_GPSR(IP13_7_4, FSO_CFE_1_N), -+ -+ PINMUX_IPSR_GPSR(IP13_11_8, HSCK0), -+ PINMUX_IPSR_MSEL(IP13_11_8, MSIOF1_SCK_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP13_11_8, AUDIO_CLKB_A, SEL_ADG_B_0), -+ PINMUX_IPSR_MSEL(IP13_11_8, SSI_SDATA1_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP13_11_8, TS_SCK0_D, SEL_TSIF0_3), -+ PINMUX_IPSR_MSEL(IP13_11_8, STP_ISCLK_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_MSEL(IP13_11_8, RIF0_CLK_C, SEL_DRIF0_2), -+ PINMUX_IPSR_MSEL(IP13_11_8, RX5_B, SEL_SCIF5_1), -+ -+ PINMUX_IPSR_GPSR(IP13_15_12, HRX0), -+ PINMUX_IPSR_MSEL(IP13_15_12, MSIOF1_RXD_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP13_15_12, SSI_SDATA2_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP13_15_12, TS_SDEN0_D, SEL_TSIF0_3), -+ PINMUX_IPSR_MSEL(IP13_15_12, STP_ISEN_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_MSEL(IP13_15_12, RIF0_D0_C, SEL_DRIF0_2), -+ -+ PINMUX_IPSR_GPSR(IP13_19_16, HTX0), -+ PINMUX_IPSR_MSEL(IP13_19_16, MSIOF1_TXD_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP13_19_16, SSI_SDATA9_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP13_19_16, TS_SDAT0_D, SEL_TSIF0_3), -+ PINMUX_IPSR_MSEL(IP13_19_16, STP_ISD_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_MSEL(IP13_19_16, RIF0_D1_C, SEL_DRIF0_2), -+ -+ PINMUX_IPSR_GPSR(IP13_23_20, HCTS0_N), -+ PINMUX_IPSR_MSEL(IP13_23_20, RX2_B, SEL_SCIF2_1), -+ PINMUX_IPSR_MSEL(IP13_23_20, MSIOF1_SYNC_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP13_23_20, SSI_SCK9_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP13_23_20, TS_SPSYNC0_D, SEL_TSIF0_3), -+ PINMUX_IPSR_MSEL(IP13_23_20, STP_ISSYNC_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_MSEL(IP13_23_20, RIF0_SYNC_C, SEL_DRIF0_2), -+ PINMUX_IPSR_GPSR(IP13_23_20, AUDIO_CLKOUT1_A), -+ -+ PINMUX_IPSR_GPSR(IP13_27_24, HRTS0_N), -+ PINMUX_IPSR_MSEL(IP13_27_24, TX2_B, SEL_SCIF2_1), -+ PINMUX_IPSR_MSEL(IP13_27_24, MSIOF1_SS1_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP13_27_24, SSI_WS9_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP13_27_24, STP_IVCXO27_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_MSEL(IP13_27_24, BPFCLK_A, SEL_FM_0), -+ PINMUX_IPSR_GPSR(IP13_27_24, AUDIO_CLKOUT2_A), -+ -+ PINMUX_IPSR_GPSR(IP13_31_28, MSIOF0_SYNC), -+ PINMUX_IPSR_GPSR(IP13_31_28, AUDIO_CLKOUT_A), -+ PINMUX_IPSR_MSEL(IP13_31_28, TX5_B, SEL_SCIF5_1), -+ PINMUX_IPSR_MSEL(IP13_31_28, BPFCLK_D, SEL_FM_3), - +- -static const char * const sdhi0_groups[] = { - "sdhi0_data1", - "sdhi0_data4", @@ -10220,47 +10143,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "sdhi0_cd", - "sdhi0_wp", -}; -+ /* IPSR14 */ -+ PINMUX_IPSR_GPSR(IP14_3_0, MSIOF0_SS1), -+ PINMUX_IPSR_MSEL(IP14_3_0, RX5_A, SEL_SCIF5_0), -+ PINMUX_IPSR_MSEL(IP14_3_0, NFWP_N_A, SEL_NDF_0), -+ PINMUX_IPSR_MSEL(IP14_3_0, AUDIO_CLKA_C, SEL_ADG_A_2), -+ PINMUX_IPSR_MSEL(IP14_3_0, SSI_SCK2_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP14_3_0, STP_IVCXO27_0_C, SEL_SSP1_0_2), -+ PINMUX_IPSR_GPSR(IP14_3_0, AUDIO_CLKOUT3_A), -+ PINMUX_IPSR_MSEL(IP14_3_0, TCLK1_B, SEL_TIMER_TMU_1), -+ -+ PINMUX_IPSR_GPSR(IP14_7_4, MSIOF0_SS2), -+ PINMUX_IPSR_MSEL(IP14_7_4, TX5_A, SEL_SCIF5_0), -+ PINMUX_IPSR_MSEL(IP14_7_4, MSIOF1_SS2_D, SEL_MSIOF1_3), -+ PINMUX_IPSR_MSEL(IP14_7_4, AUDIO_CLKC_A, SEL_ADG_C_0), -+ PINMUX_IPSR_MSEL(IP14_7_4, SSI_WS2_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP14_7_4, STP_OPWM_0_D, SEL_SSP1_0_3), -+ PINMUX_IPSR_GPSR(IP14_7_4, AUDIO_CLKOUT_D), -+ PINMUX_IPSR_MSEL(IP14_7_4, SPEEDIN_B, SEL_SPEED_PULSE_1), -+ -+ PINMUX_IPSR_GPSR(IP14_11_8, MLB_CLK), -+ PINMUX_IPSR_MSEL(IP14_11_8, MSIOF1_SCK_F, SEL_MSIOF1_5), -+ PINMUX_IPSR_MSEL(IP14_11_8, SCL1_B, SEL_I2C1_1), -+ -+ PINMUX_IPSR_GPSR(IP14_15_12, MLB_SIG), -+ PINMUX_IPSR_MSEL(IP14_15_12, RX1_B, SEL_SCIF1_1), -+ PINMUX_IPSR_MSEL(IP14_15_12, MSIOF1_SYNC_F, SEL_MSIOF1_5), -+ PINMUX_IPSR_MSEL(IP14_15_12, SDA1_B, SEL_I2C1_1), -+ -+ PINMUX_IPSR_GPSR(IP14_19_16, MLB_DAT), -+ PINMUX_IPSR_MSEL(IP14_19_16, TX1_B, SEL_SCIF1_1), -+ PINMUX_IPSR_MSEL(IP14_19_16, MSIOF1_RXD_F, SEL_MSIOF1_5), -+ -+ PINMUX_IPSR_GPSR(IP14_23_20, SSI_SCK01239), -+ PINMUX_IPSR_MSEL(IP14_23_20, MSIOF1_TXD_F, SEL_MSIOF1_5), -+ -+ PINMUX_IPSR_GPSR(IP14_27_24, SSI_WS01239), -+ PINMUX_IPSR_MSEL(IP14_27_24, MSIOF1_SS1_F, SEL_MSIOF1_5), -+ -+ PINMUX_IPSR_GPSR(IP14_31_28, SSI_SDATA0), -+ PINMUX_IPSR_MSEL(IP14_31_28, MSIOF1_SS2_F, SEL_MSIOF1_5), - +- -static const char * const sdhi1_groups[] = { - "sdhi1_data1", - "sdhi1_data4", @@ -10268,53 +10151,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "sdhi1_cd", - "sdhi1_wp", -}; -+ /* IPSR15 */ -+ PINMUX_IPSR_MSEL(IP15_3_0, SSI_SDATA1_A, SEL_SSI_0), -+ -+ PINMUX_IPSR_MSEL(IP15_7_4, SSI_SDATA2_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP15_7_4, SSI_SCK1_B, SEL_SSI_1), -+ -+ PINMUX_IPSR_GPSR(IP15_11_8, SSI_SCK34), -+ PINMUX_IPSR_MSEL(IP15_11_8, MSIOF1_SS1_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_11_8, STP_OPWM_0_A, SEL_SSP1_0_0), -+ -+ PINMUX_IPSR_GPSR(IP15_15_12, SSI_WS34), -+ PINMUX_IPSR_MSEL(IP15_15_12, HCTS2_N_A, SEL_HSCIF2_0), -+ PINMUX_IPSR_MSEL(IP15_15_12, MSIOF1_SS2_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_15_12, STP_IVCXO27_0_A, SEL_SSP1_0_0), -+ -+ PINMUX_IPSR_GPSR(IP15_19_16, SSI_SDATA3), -+ PINMUX_IPSR_MSEL(IP15_19_16, HRTS2_N_A, SEL_HSCIF2_0), -+ PINMUX_IPSR_MSEL(IP15_19_16, MSIOF1_TXD_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_19_16, TS_SCK0_A, SEL_TSIF0_0), -+ PINMUX_IPSR_MSEL(IP15_19_16, STP_ISCLK_0_A, SEL_SSP1_0_0), -+ PINMUX_IPSR_MSEL(IP15_19_16, RIF0_D1_A, SEL_DRIF0_0), -+ PINMUX_IPSR_MSEL(IP15_19_16, RIF2_D0_A, SEL_DRIF2_0), -+ -+ PINMUX_IPSR_GPSR(IP15_23_20, SSI_SCK4), -+ PINMUX_IPSR_MSEL(IP15_23_20, HRX2_A, SEL_HSCIF2_0), -+ PINMUX_IPSR_MSEL(IP15_23_20, MSIOF1_SCK_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_23_20, TS_SDAT0_A, SEL_TSIF0_0), -+ PINMUX_IPSR_MSEL(IP15_23_20, STP_ISD_0_A, SEL_SSP1_0_0), -+ PINMUX_IPSR_MSEL(IP15_23_20, RIF0_CLK_A, SEL_DRIF0_0), -+ PINMUX_IPSR_MSEL(IP15_23_20, RIF2_CLK_A, SEL_DRIF2_0), -+ -+ PINMUX_IPSR_GPSR(IP15_27_24, SSI_WS4), -+ PINMUX_IPSR_MSEL(IP15_27_24, HTX2_A, SEL_HSCIF2_0), -+ PINMUX_IPSR_MSEL(IP15_27_24, MSIOF1_SYNC_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_27_24, TS_SDEN0_A, SEL_TSIF0_0), -+ PINMUX_IPSR_MSEL(IP15_27_24, STP_ISEN_0_A, SEL_SSP1_0_0), -+ PINMUX_IPSR_MSEL(IP15_27_24, RIF0_SYNC_A, SEL_DRIF0_0), -+ PINMUX_IPSR_MSEL(IP15_27_24, RIF2_SYNC_A, SEL_DRIF2_0), -+ -+ PINMUX_IPSR_GPSR(IP15_31_28, SSI_SDATA4), -+ PINMUX_IPSR_MSEL(IP15_31_28, HSCK2_A, SEL_HSCIF2_0), -+ PINMUX_IPSR_MSEL(IP15_31_28, MSIOF1_RXD_A, SEL_MSIOF1_0), -+ PINMUX_IPSR_MSEL(IP15_31_28, TS_SPSYNC0_A, SEL_TSIF0_0), -+ PINMUX_IPSR_MSEL(IP15_31_28, STP_ISSYNC_0_A, SEL_SSP1_0_0), -+ PINMUX_IPSR_MSEL(IP15_31_28, RIF0_D0_A, SEL_DRIF0_0), -+ PINMUX_IPSR_MSEL(IP15_31_28, RIF2_D1_A, SEL_DRIF2_0), - +- -static const char * const sdhi2_groups[] = { - "sdhi2_data1", - "sdhi2_data4", @@ -10326,61 +10163,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "sdhi2_wp_b", - "sdhi2_ds", -}; -+ /* IPSR16 */ -+ PINMUX_IPSR_GPSR(IP16_3_0, SSI_SCK6), -+ PINMUX_IPSR_GPSR(IP16_3_0, USB2_PWEN), -+ PINMUX_IPSR_MSEL(IP16_3_0, SIM0_RST_D, SEL_SIMCARD_3), -+ -+ PINMUX_IPSR_GPSR(IP16_7_4, SSI_WS6), -+ PINMUX_IPSR_GPSR(IP16_7_4, USB2_OVC), -+ PINMUX_IPSR_MSEL(IP16_7_4, SIM0_D_D, SEL_SIMCARD_3), -+ -+ PINMUX_IPSR_GPSR(IP16_11_8, SSI_SDATA6), -+ PINMUX_IPSR_MSEL(IP16_11_8, SIM0_CLK_D, SEL_SIMCARD_3), -+ PINMUX_IPSR_GPSR(IP16_11_8, SATA_DEVSLP_A), -+ -+ PINMUX_IPSR_GPSR(IP16_15_12, SSI_SCK78), -+ PINMUX_IPSR_MSEL(IP16_15_12, HRX2_B, SEL_HSCIF2_1), -+ PINMUX_IPSR_MSEL(IP16_15_12, MSIOF1_SCK_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP16_15_12, TS_SCK1_A, SEL_TSIF1_0), -+ PINMUX_IPSR_MSEL(IP16_15_12, STP_ISCLK_1_A, SEL_SSP1_1_0), -+ PINMUX_IPSR_MSEL(IP16_15_12, RIF1_CLK_A, SEL_DRIF1_0), -+ PINMUX_IPSR_MSEL(IP16_15_12, RIF3_CLK_A, SEL_DRIF3_0), -+ -+ PINMUX_IPSR_GPSR(IP16_19_16, SSI_WS78), -+ PINMUX_IPSR_MSEL(IP16_19_16, HTX2_B, SEL_HSCIF2_1), -+ PINMUX_IPSR_MSEL(IP16_19_16, MSIOF1_SYNC_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP16_19_16, TS_SDAT1_A, SEL_TSIF1_0), -+ PINMUX_IPSR_MSEL(IP16_19_16, STP_ISD_1_A, SEL_SSP1_1_0), -+ PINMUX_IPSR_MSEL(IP16_19_16, RIF1_SYNC_A, SEL_DRIF1_0), -+ PINMUX_IPSR_MSEL(IP16_19_16, RIF3_SYNC_A, SEL_DRIF3_0), -+ -+ PINMUX_IPSR_GPSR(IP16_23_20, SSI_SDATA7), -+ PINMUX_IPSR_MSEL(IP16_23_20, HCTS2_N_B, SEL_HSCIF2_1), -+ PINMUX_IPSR_MSEL(IP16_23_20, MSIOF1_RXD_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP16_23_20, TS_SDEN1_A, SEL_TSIF1_0), -+ PINMUX_IPSR_MSEL(IP16_23_20, STP_ISEN_1_A, SEL_SSP1_1_0), -+ PINMUX_IPSR_MSEL(IP16_23_20, RIF1_D0_A, SEL_DRIF1_0), -+ PINMUX_IPSR_MSEL(IP16_23_20, RIF3_D0_A, SEL_DRIF3_0), -+ PINMUX_IPSR_MSEL(IP16_23_20, TCLK2_A, SEL_TIMER_TMU_0), -+ -+ PINMUX_IPSR_GPSR(IP16_27_24, SSI_SDATA8), -+ PINMUX_IPSR_MSEL(IP16_27_24, HRTS2_N_B, SEL_HSCIF2_1), -+ PINMUX_IPSR_MSEL(IP16_27_24, MSIOF1_TXD_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP16_27_24, TS_SPSYNC1_A, SEL_TSIF1_0), -+ PINMUX_IPSR_MSEL(IP16_27_24, STP_ISSYNC_1_A, SEL_SSP1_1_0), -+ PINMUX_IPSR_MSEL(IP16_27_24, RIF1_D1_A, SEL_DRIF1_0), -+ PINMUX_IPSR_MSEL(IP16_27_24, RIF3_D1_A, SEL_DRIF3_0), -+ -+ PINMUX_IPSR_MSEL(IP16_31_28, SSI_SDATA9_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP16_31_28, HSCK2_B, SEL_HSCIF2_1), -+ PINMUX_IPSR_MSEL(IP16_31_28, MSIOF1_SS1_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP16_31_28, HSCK1_A, SEL_HSCIF1_0), -+ PINMUX_IPSR_MSEL(IP16_31_28, SSI_WS1_B, SEL_SSI_1), -+ PINMUX_IPSR_GPSR(IP16_31_28, SCK1), -+ PINMUX_IPSR_MSEL(IP16_31_28, STP_IVCXO27_1_A, SEL_SSP1_1_0), -+ PINMUX_IPSR_GPSR(IP16_31_28, SCK5_A), - +- -static const char * const sdhi3_groups[] = { - "sdhi3_data1", - "sdhi3_data4", @@ -10390,94 +10173,7 @@ index 3d1c32cca16a..6caaed53938c 100644 - "sdhi3_wp", - "sdhi3_ds", -}; -+ /* IPSR17 */ -+ PINMUX_IPSR_MSEL(IP17_3_0, AUDIO_CLKA_A, SEL_ADG_A_0), -+ PINMUX_IPSR_GPSR(IP17_3_0, CC5_OSCOUT), -+ -+ PINMUX_IPSR_MSEL(IP17_7_4, AUDIO_CLKB_B, SEL_ADG_B_1), -+ PINMUX_IPSR_MSEL(IP17_7_4, SCIF_CLK_A, SEL_SCIF1_0), -+ PINMUX_IPSR_MSEL(IP17_7_4, STP_IVCXO27_1_D, SEL_SSP1_1_3), -+ PINMUX_IPSR_MSEL(IP17_7_4, REMOCON_A, SEL_REMOCON_0), -+ PINMUX_IPSR_MSEL(IP17_7_4, TCLK1_A, SEL_TIMER_TMU_0), -+ -+ PINMUX_IPSR_GPSR(IP17_11_8, USB0_PWEN), -+ PINMUX_IPSR_MSEL(IP17_11_8, SIM0_RST_C, SEL_SIMCARD_2), -+ PINMUX_IPSR_MSEL(IP17_11_8, TS_SCK1_D, SEL_TSIF1_3), -+ PINMUX_IPSR_MSEL(IP17_11_8, STP_ISCLK_1_D, SEL_SSP1_1_3), -+ PINMUX_IPSR_MSEL(IP17_11_8, BPFCLK_B, SEL_FM_1), -+ PINMUX_IPSR_MSEL(IP17_11_8, RIF3_CLK_B, SEL_DRIF3_1), -+ PINMUX_IPSR_MSEL(IP17_11_8, HSCK2_C, SEL_HSCIF2_2), -+ -+ PINMUX_IPSR_GPSR(IP17_15_12, USB0_OVC), -+ PINMUX_IPSR_MSEL(IP17_15_12, SIM0_D_C, SEL_SIMCARD_2), -+ PINMUX_IPSR_MSEL(IP17_15_12, TS_SDAT1_D, SEL_TSIF1_3), -+ PINMUX_IPSR_MSEL(IP17_15_12, STP_ISD_1_D, SEL_SSP1_1_3), -+ PINMUX_IPSR_MSEL(IP17_15_12, RIF3_SYNC_B, SEL_DRIF3_1), -+ PINMUX_IPSR_MSEL(IP17_15_12, HRX2_C, SEL_HSCIF2_2), -+ -+ PINMUX_IPSR_GPSR(IP17_19_16, USB1_PWEN), -+ PINMUX_IPSR_MSEL(IP17_19_16, SIM0_CLK_C, SEL_SIMCARD_2), -+ PINMUX_IPSR_MSEL(IP17_19_16, SSI_SCK1_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP17_19_16, TS_SCK0_E, SEL_TSIF0_4), -+ PINMUX_IPSR_MSEL(IP17_19_16, STP_ISCLK_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP17_19_16, FMCLK_B, SEL_FM_1), -+ PINMUX_IPSR_MSEL(IP17_19_16, RIF2_CLK_B, SEL_DRIF2_1), -+ PINMUX_IPSR_MSEL(IP17_19_16, SPEEDIN_A, SEL_SPEED_PULSE_0), -+ PINMUX_IPSR_MSEL(IP17_19_16, HTX2_C, SEL_HSCIF2_2), -+ -+ PINMUX_IPSR_GPSR(IP17_23_20, USB1_OVC), -+ PINMUX_IPSR_MSEL(IP17_23_20, MSIOF1_SS2_C, SEL_MSIOF1_2), -+ PINMUX_IPSR_MSEL(IP17_23_20, SSI_WS1_A, SEL_SSI_0), -+ PINMUX_IPSR_MSEL(IP17_23_20, TS_SDAT0_E, SEL_TSIF0_4), -+ PINMUX_IPSR_MSEL(IP17_23_20, STP_ISD_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP17_23_20, FMIN_B, SEL_FM_1), -+ PINMUX_IPSR_MSEL(IP17_23_20, RIF2_SYNC_B, SEL_DRIF2_1), -+ PINMUX_IPSR_MSEL(IP17_23_20, REMOCON_B, SEL_REMOCON_1), -+ PINMUX_IPSR_MSEL(IP17_23_20, HCTS2_N_C, SEL_HSCIF2_2), -+ -+ PINMUX_IPSR_GPSR(IP17_27_24, USB30_PWEN), -+ PINMUX_IPSR_GPSR(IP17_27_24, AUDIO_CLKOUT_B), -+ PINMUX_IPSR_MSEL(IP17_27_24, SSI_SCK2_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP17_27_24, TS_SDEN1_D, SEL_TSIF1_3), -+ PINMUX_IPSR_MSEL(IP17_27_24, STP_ISEN_1_D, SEL_SSP1_1_2), -+ PINMUX_IPSR_MSEL(IP17_27_24, STP_OPWM_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP17_27_24, RIF3_D0_B, SEL_DRIF3_1), -+ PINMUX_IPSR_MSEL(IP17_27_24, TCLK2_B, SEL_TIMER_TMU_1), -+ PINMUX_IPSR_GPSR(IP17_27_24, TPU0TO0), -+ PINMUX_IPSR_MSEL(IP17_27_24, BPFCLK_C, SEL_FM_2), -+ PINMUX_IPSR_MSEL(IP17_27_24, HRTS2_N_C, SEL_HSCIF2_2), -+ -+ PINMUX_IPSR_GPSR(IP17_31_28, USB30_OVC), -+ PINMUX_IPSR_GPSR(IP17_31_28, AUDIO_CLKOUT1_B), -+ PINMUX_IPSR_MSEL(IP17_31_28, SSI_WS2_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP17_31_28, TS_SPSYNC1_D, SEL_TSIF1_3), -+ PINMUX_IPSR_MSEL(IP17_31_28, STP_ISSYNC_1_D, SEL_SSP1_1_3), -+ PINMUX_IPSR_MSEL(IP17_31_28, STP_IVCXO27_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP17_31_28, RIF3_D1_B, SEL_DRIF3_1), -+ PINMUX_IPSR_GPSR(IP17_31_28, FSO_TOE_N), -+ PINMUX_IPSR_GPSR(IP17_31_28, TPU0TO1), -+ -+ /* IPSR18 */ -+ PINMUX_IPSR_GPSR(IP18_3_0, USB3_PWEN), -+ PINMUX_IPSR_GPSR(IP18_3_0, AUDIO_CLKOUT2_B), -+ PINMUX_IPSR_MSEL(IP18_3_0, SSI_SCK9_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP18_3_0, TS_SDEN0_E, SEL_TSIF0_4), -+ PINMUX_IPSR_MSEL(IP18_3_0, STP_ISEN_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP18_3_0, RIF2_D0_B, SEL_DRIF2_1), -+ PINMUX_IPSR_GPSR(IP18_3_0, TPU0TO2), -+ PINMUX_IPSR_MSEL(IP18_3_0, FMCLK_C, SEL_FM_2), -+ PINMUX_IPSR_MSEL(IP18_3_0, FMCLK_D, SEL_FM_3), -+ -+ PINMUX_IPSR_GPSR(IP18_7_4, USB3_OVC), -+ PINMUX_IPSR_GPSR(IP18_7_4, AUDIO_CLKOUT3_B), -+ PINMUX_IPSR_MSEL(IP18_7_4, SSI_WS9_B, SEL_SSI_1), -+ PINMUX_IPSR_MSEL(IP18_7_4, TS_SPSYNC0_E, SEL_TSIF0_4), -+ PINMUX_IPSR_MSEL(IP18_7_4, STP_ISSYNC_0_E, SEL_SSP1_0_4), -+ PINMUX_IPSR_MSEL(IP18_7_4, RIF2_D1_B, SEL_DRIF2_1), -+ PINMUX_IPSR_GPSR(IP18_7_4, TPU0TO3), -+ PINMUX_IPSR_MSEL(IP18_7_4, FMIN_C, SEL_FM_2), -+ PINMUX_IPSR_MSEL(IP18_7_4, FMIN_D, SEL_FM_3), - +- -static const char * const ssi_groups[] = { - "ssi0_data", - "ssi01239_ctrl", @@ -10504,91 +10200,18 @@ index 3d1c32cca16a..6caaed53938c 100644 - "ssi9_data_b", - "ssi9_ctrl_a", - "ssi9_ctrl_b", -+/* -+ * Static pins can not be muxed between different functions but -+ * still needs a mark entry in the pinmux list. Add each static -+ * pin to the list without an associated function. The sh-pfc -+ * core will do the right thing and skip trying to mux then pin -+ * while still applying configuration to it -+ */ -+#define FM(x) PINMUX_DATA(x##_MARK, 0), -+ PINMUX_STATIC -+#undef FM - }; - +-}; +- -static const char * const usb0_groups[] = { - "usb0", -}; -+/* -+ * R8A7795 has 8 banks with 32 PGIOS in each => 256 GPIOs. -+ * Physical layout rows: A - AW, cols: 1 - 39. -+ */ -+#define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) -+#define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) -+#define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) -+ -+static const struct sh_pfc_pin pinmux_pins[] = { -+ PINMUX_GPIO_GP_ALL(), - +- -static const char * const usb1_groups[] = { - "usb1", -+ /* -+ * Pins not associated with a GPIO port. -+ * -+ * The pin positions are different between different r8a7795 -+ * packages, all that is needed for the pfc driver is a unique -+ * number for each pin. To this end use the pin layout from -+ * R-Car H3SiP to calculate a unique number for each pin. -+ */ -+ SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('F', 1, CLKOUT, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST#, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 7, DU_DOTCLKIN2, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), -+ SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), - }; - +-}; +- -static const char * const usb2_groups[] = { - "usb2", -+static const struct sh_pfc_pin_group pinmux_groups[] = { }; static const struct sh_pfc_function pinmux_functions[] = { @@ -10645,7 +10268,7 @@ index 3d1c32cca16a..6caaed53938c 100644 }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { -@@ -5041,46 +2033,54 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -5041,46 +2033,54 @@ static const struct pinmux_cfg_reg pinmu IP16_3_0 } }, { PINMUX_CFG_REG("IPSR17", 0xe6060244, 32, 4) { @@ -10722,7 +10345,7 @@ index 3d1c32cca16a..6caaed53938c 100644 }, { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32, 2, 3, 1, 2, 3, 1, 1, 2, 1, -@@ -5110,22 +2110,22 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -5110,22 +2110,22 @@ static const struct pinmux_cfg_reg pinmu MOD_SEL1_0 } }, { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xe6060508, 32, @@ -10757,7 +10380,7 @@ index 3d1c32cca16a..6caaed53938c 100644 /* RESERVED 15, 14, 13, 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -5135,10 +2135,8 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -5135,10 +2135,8 @@ static const struct pinmux_cfg_reg pinmu /* RESERVED 7, 6, 5, 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10770,7 +10393,7 @@ index 3d1c32cca16a..6caaed53938c 100644 MOD_SEL2_0 } }, { }, -@@ -5387,8 +2385,8 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = { +@@ -5387,8 +2385,8 @@ static const struct pinmux_drive_reg pin { RCAR_GP_PIN(6, 27), 20, 3 }, /* USB1_OVC */ { RCAR_GP_PIN(6, 28), 16, 3 }, /* USB30_PWEN */ { RCAR_GP_PIN(6, 29), 12, 3 }, /* USB30_OVC */ @@ -10781,7 +10404,7 @@ index 3d1c32cca16a..6caaed53938c 100644 } }, { }, }; -@@ -5618,8 +2616,8 @@ static const struct sh_pfc_bias_info bias_info[] = { +@@ -5618,8 +2616,8 @@ static const struct sh_pfc_bias_info bia { RCAR_GP_PIN(5, 21), PU5, 1 }, /* MSIOF0_SS2 */ { RCAR_GP_PIN(5, 20), PU5, 0 }, /* MSIOF0_TXD */ @@ -10792,7 +10415,7 @@ index 3d1c32cca16a..6caaed53938c 100644 { RCAR_GP_PIN(6, 29), PU6, 4 }, /* USB30_OVC */ { RCAR_GP_PIN(6, 28), PU6, 3 }, /* USB30_PWEN */ { RCAR_GP_PIN(6, 27), PU6, 2 }, /* USB1_OVC */ -@@ -5676,14 +2674,28 @@ static void r8a7795_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, +@@ -5676,14 +2674,28 @@ static void r8a7795_pinmux_set_bias(stru sh_pfc_write_reg(pfc, PUEN + reg, 32, enable); } @@ -10822,11 +10445,9 @@ index 3d1c32cca16a..6caaed53938c 100644 .ops = &r8a7795_pinmux_ops, .unlock_reg = 0xe6060000, /* PMMR */ -diff --git a/drivers/pinctrl/sh-pfc/sh_pfc.h b/drivers/pinctrl/sh-pfc/sh_pfc.h -index e42cc7a8d10e..f31eb6c1e87d 100644 --- a/drivers/pinctrl/sh-pfc/sh_pfc.h +++ b/drivers/pinctrl/sh-pfc/sh_pfc.h -@@ -267,6 +267,7 @@ extern const struct sh_pfc_soc_info r8a7792_pinmux_info; +@@ -267,6 +267,7 @@ extern const struct sh_pfc_soc_info r8a7 extern const struct sh_pfc_soc_info r8a7793_pinmux_info; extern const struct sh_pfc_soc_info r8a7794_pinmux_info; extern const struct sh_pfc_soc_info r8a7795_pinmux_info; @@ -10834,6 +10455,3 @@ index e42cc7a8d10e..f31eb6c1e87d 100644 extern const struct sh_pfc_soc_info r8a7796_pinmux_info; extern const struct sh_pfc_soc_info sh7203_pinmux_info; extern const struct sh_pfc_soc_info sh7264_pinmux_info; --- -2.13.3 - diff --git a/patches.renesas/0166-pinctrl-sh-pfc-r8a7795-Add-SCIF-support.patch b/patches.renesas/0166-pinctrl-sh-pfc-r8a7795-Add-SCIF-support.patch index a6e56be288f0ce..241c7ff205eadb 100644 --- a/patches.renesas/0166-pinctrl-sh-pfc-r8a7795-Add-SCIF-support.patch +++ b/patches.renesas/0166-pinctrl-sh-pfc-r8a7795-Add-SCIF-support.patch @@ -13,14 +13,12 @@ Cc: Takeshi Kihara <takeshi.kihara.df@renesas.com> (cherry picked from commit e7ad4d3c1dd9dd6881d4470dd6586d5cc84b8e0c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 275 +++++++++++++++++++++++++++++++++++ + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 275 +++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -index 6caaed53938c..996cacee99c3 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -@@ -1576,10 +1576,285 @@ static const struct sh_pfc_pin pinmux_pins[] = { +@@ -1576,10 +1576,285 @@ static const struct sh_pfc_pin pinmux_pi SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), }; @@ -306,6 +304,3 @@ index 6caaed53938c..996cacee99c3 100644 }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { --- -2.13.3 - diff --git a/patches.renesas/0167-pinctrl-sh-pfc-r8a7795-Add-SCIF_CLK-support.patch b/patches.renesas/0167-pinctrl-sh-pfc-r8a7795-Add-SCIF_CLK-support.patch index 4bac280b668a59..fd336ff32f9aff 100644 --- a/patches.renesas/0167-pinctrl-sh-pfc-r8a7795-Add-SCIF_CLK-support.patch +++ b/patches.renesas/0167-pinctrl-sh-pfc-r8a7795-Add-SCIF_CLK-support.patch @@ -14,14 +14,12 @@ Cc: Takeshi Kihara <takeshi.kihara.df@renesas.com> (cherry picked from commit d14a39edf757f5bdd73cf25d0155d7cfb271e782) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 24 ++++++++++++++++++++++++ + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -index 996cacee99c3..0454f31c0831 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c -@@ -1773,6 +1773,22 @@ static const unsigned int scif5_clk_b_mux[] = { +@@ -1773,6 +1773,22 @@ static const unsigned int scif5_clk_b_mu SCK5_B_MARK, }; @@ -44,7 +42,7 @@ index 996cacee99c3..0454f31c0831 100644 static const struct sh_pfc_pin_group pinmux_groups[] = { SH_PFC_PIN_GROUP(scif0_data), SH_PFC_PIN_GROUP(scif0_clk), -@@ -1801,6 +1817,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { +@@ -1801,6 +1817,8 @@ static const struct sh_pfc_pin_group pin SH_PFC_PIN_GROUP(scif5_clk_a), SH_PFC_PIN_GROUP(scif5_data_b), SH_PFC_PIN_GROUP(scif5_clk_b), @@ -53,7 +51,7 @@ index 996cacee99c3..0454f31c0831 100644 }; static const char * const scif0_groups[] = { -@@ -1848,6 +1866,11 @@ static const char * const scif5_groups[] = { +@@ -1848,6 +1866,11 @@ static const char * const scif5_groups[] "scif5_clk_b", }; @@ -65,7 +63,7 @@ index 996cacee99c3..0454f31c0831 100644 static const struct sh_pfc_function pinmux_functions[] = { SH_PFC_FUNCTION(scif0), SH_PFC_FUNCTION(scif1), -@@ -1855,6 +1878,7 @@ static const struct sh_pfc_function pinmux_functions[] = { +@@ -1855,6 +1878,7 @@ static const struct sh_pfc_function pinm SH_PFC_FUNCTION(scif3), SH_PFC_FUNCTION(scif4), SH_PFC_FUNCTION(scif5), @@ -73,6 +71,3 @@ index 996cacee99c3..0454f31c0831 100644 }; static const struct pinmux_cfg_reg pinmux_config_regs[] = { --- -2.13.3 - diff --git a/patches.renesas/0168-pinctrl-sh-pfc-r8a7791-Add-missing-HSCIF1-pinmux-dat.patch b/patches.renesas/0168-pinctrl-sh-pfc-r8a7791-Add-missing-HSCIF1-pinmux-dat.patch deleted file mode 100644 index 00c0d42c862d9a..00000000000000 --- a/patches.renesas/0168-pinctrl-sh-pfc-r8a7791-Add-missing-HSCIF1-pinmux-dat.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 0e1c9e8e6eff51a650699a24a70559729ea01498 Mon Sep 17 00:00:00 2001 -From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Date: Wed, 29 Mar 2017 21:36:50 +0300 -Subject: [PATCH 168/286] pinctrl: sh-pfc: r8a7791: Add missing HSCIF1 pinmux - data - -The R8A7791 PFC driver was apparently based on the preliminary revisions -of the user's manual, which omitted the HSCIF1 group E signals in the -IPSR4 register description. This would cause HSCIF1's probe to fail with -the messages like below: - -sh-pfc e6060000.pfc: cannot locate data/mark enum_id for mark 1989 -sh-sci e62c8000.serial: Error applying setting, reverse things back -sh-sci: probe of e62c8000.serial failed with error -22 - -Add the neceassary PINMUX_IPSR_MSEL() invocations for the HSCK1_E, -HCTS1#_E, and HRTS1#_E signals... - -Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") -Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit da7a692fbbab07f4e9798b5b52798f6e3256dd8f) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -index 841cecdca7ea..cc852e68162c 100644 ---- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -@@ -1010,14 +1010,17 @@ static const u16 pinmux_data[] = { - PINMUX_IPSR_MSEL(IP4_12_10, SCL2, SEL_IIC2_0), - PINMUX_IPSR_MSEL(IP4_12_10, GPS_CLK_B, SEL_GPS_1), - PINMUX_IPSR_MSEL(IP4_12_10, GLO_Q0_D, SEL_GPS_3), -+ PINMUX_IPSR_MSEL(IP4_12_10, HSCK1_E, SEL_HSCIF1_4), - PINMUX_IPSR_GPSR(IP4_15_13, SSI_WS2), - PINMUX_IPSR_MSEL(IP4_15_13, SDA2, SEL_IIC2_0), - PINMUX_IPSR_MSEL(IP4_15_13, GPS_SIGN_B, SEL_GPS_1), - PINMUX_IPSR_MSEL(IP4_15_13, RX2_E, SEL_SCIF2_4), - PINMUX_IPSR_MSEL(IP4_15_13, GLO_Q1_D, SEL_GPS_3), -+ PINMUX_IPSR_MSEL(IP4_15_13, HCTS1_N_E, SEL_HSCIF1_4), - PINMUX_IPSR_GPSR(IP4_18_16, SSI_SDATA2), - PINMUX_IPSR_MSEL(IP4_18_16, GPS_MAG_B, SEL_GPS_1), - PINMUX_IPSR_MSEL(IP4_18_16, TX2_E, SEL_SCIF2_4), -+ PINMUX_IPSR_MSEL(IP4_18_16, HRTS1_N_E, SEL_HSCIF1_4), - PINMUX_IPSR_GPSR(IP4_19, SSI_SCK34), - PINMUX_IPSR_GPSR(IP4_20, SSI_WS34), - PINMUX_IPSR_GPSR(IP4_21, SSI_SDATA3), --- -2.13.3 - diff --git a/patches.renesas/0169-pinctrl-sh-pfc-r8a7791-Add-missing-DVC_MUTE-signal.patch b/patches.renesas/0169-pinctrl-sh-pfc-r8a7791-Add-missing-DVC_MUTE-signal.patch deleted file mode 100644 index aea58b7b97e563..00000000000000 --- a/patches.renesas/0169-pinctrl-sh-pfc-r8a7791-Add-missing-DVC_MUTE-signal.patch +++ /dev/null @@ -1,61 +0,0 @@ -From e623e96e9d8f94460fcb2488613e64c9583ca4d0 Mon Sep 17 00:00:00 2001 -From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Date: Wed, 29 Mar 2017 21:36:51 +0300 -Subject: [PATCH 169/286] pinctrl: sh-pfc: r8a7791: Add missing DVC_MUTE signal - -The R8A7791 PFC driver was apparently based on the preliminary revisions -of the user's manual, which omitted the DVC_MUTE signal altogether in -the PFC section. The modern manual has the signal described, so just add -the necassary data to the driver... - -Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") -Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit 3908632fb829d73317c64c3d04f584b49f62e4ae) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -index cc852e68162c..41ac1a3b1964 100644 ---- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -@@ -203,7 +203,7 @@ enum { - - /* IPSR6 */ - FN_AUDIO_CLKB, FN_STP_OPWM_0_B, FN_MSIOF1_SCK_B, -- FN_SCIF_CLK, FN_BPFCLK_E, -+ FN_SCIF_CLK, FN_DVC_MUTE, FN_BPFCLK_E, - FN_AUDIO_CLKC, FN_SCIFB0_SCK_C, FN_MSIOF1_SYNC_B, FN_RX2, - FN_SCIFA2_RXD, FN_FMIN_E, - FN_AUDIO_CLKOUT, FN_MSIOF1_SS1_B, FN_TX2, FN_SCIFA2_TXD, -@@ -573,7 +573,7 @@ enum { - - /* IPSR6 */ - AUDIO_CLKB_MARK, STP_OPWM_0_B_MARK, MSIOF1_SCK_B_MARK, -- SCIF_CLK_MARK, BPFCLK_E_MARK, -+ SCIF_CLK_MARK, DVC_MUTE_MARK, BPFCLK_E_MARK, - AUDIO_CLKC_MARK, SCIFB0_SCK_C_MARK, MSIOF1_SYNC_B_MARK, RX2_MARK, - SCIFA2_RXD_MARK, FMIN_E_MARK, - AUDIO_CLKOUT_MARK, MSIOF1_SS1_B_MARK, TX2_MARK, SCIFA2_TXD_MARK, -@@ -1093,6 +1093,7 @@ static const u16 pinmux_data[] = { - PINMUX_IPSR_MSEL(IP6_2_0, STP_OPWM_0_B, SEL_SSP_1), - PINMUX_IPSR_MSEL(IP6_2_0, MSIOF1_SCK_B, SEL_SOF1_1), - PINMUX_IPSR_MSEL(IP6_2_0, SCIF_CLK, SEL_SCIF_0), -+ PINMUX_IPSR_GPSR(IP6_2_0, DVC_MUTE), - PINMUX_IPSR_MSEL(IP6_2_0, BPFCLK_E, SEL_FM_4), - PINMUX_IPSR_GPSR(IP6_5_3, AUDIO_CLKC), - PINMUX_IPSR_MSEL(IP6_5_3, SCIFB0_SCK_C, SEL_SCIFB_2), -@@ -5899,7 +5900,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { - 0, 0, - /* IP6_2_0 [3] */ - FN_AUDIO_CLKB, FN_STP_OPWM_0_B, FN_MSIOF1_SCK_B, -- FN_SCIF_CLK, 0, FN_BPFCLK_E, -+ FN_SCIF_CLK, FN_DVC_MUTE, FN_BPFCLK_E, - 0, 0, } - }, - { PINMUX_CFG_REG_VAR("IPSR7", 0xE606003C, 32, --- -2.13.3 - diff --git a/patches.renesas/0170-pinctrl-sh-pfc-r8a7791-Fix-SCIF2-pinmux-data.patch b/patches.renesas/0170-pinctrl-sh-pfc-r8a7791-Fix-SCIF2-pinmux-data.patch deleted file mode 100644 index c16ecb29c55df8..00000000000000 --- a/patches.renesas/0170-pinctrl-sh-pfc-r8a7791-Fix-SCIF2-pinmux-data.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6ccc9616097306424a0da7460e4a9042dc81fe58 Mon Sep 17 00:00:00 2001 -From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Date: Thu, 30 Mar 2017 23:20:48 +0300 -Subject: [PATCH 170/286] pinctrl: sh-pfc: r8a7791: Fix SCIF2 pinmux data - -PINMUX_IPSR_MSEL() macro invocation for the TX2 signal has apparently wrong -1st argument -- most probably a result of cut&paste programming... - -Fixes: 508845196238 ("pinctrl: sh-pfc: r8a7791 PFC support") -Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit 58439280f84e6b39fd7d61f25ab30489c1aaf0a9) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -index 41ac1a3b1964..437238691d16 100644 ---- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -@@ -1103,7 +1103,7 @@ static const u16 pinmux_data[] = { - PINMUX_IPSR_MSEL(IP6_5_3, FMIN_E, SEL_FM_4), - PINMUX_IPSR_GPSR(IP6_7_6, AUDIO_CLKOUT), - PINMUX_IPSR_MSEL(IP6_7_6, MSIOF1_SS1_B, SEL_SOF1_1), -- PINMUX_IPSR_MSEL(IP6_5_3, TX2, SEL_SCIF2_0), -+ PINMUX_IPSR_MSEL(IP6_7_6, TX2, SEL_SCIF2_0), - PINMUX_IPSR_MSEL(IP6_7_6, SCIFA2_TXD, SEL_SCIFA2_0), - PINMUX_IPSR_GPSR(IP6_9_8, IRQ0), - PINMUX_IPSR_MSEL(IP6_9_8, SCIFB1_RXD_D, SEL_SCIFB1_3), --- -2.13.3 - diff --git a/patches.renesas/0171-pinctrl-sh-pfc-r8a7791-Fix-IPSR-comment-typos.patch b/patches.renesas/0171-pinctrl-sh-pfc-r8a7791-Fix-IPSR-comment-typos.patch index cd6eb552142b5f..301c85c347f072 100644 --- a/patches.renesas/0171-pinctrl-sh-pfc-r8a7791-Fix-IPSR-comment-typos.patch +++ b/patches.renesas/0171-pinctrl-sh-pfc-r8a7791-Fix-IPSR-comment-typos.patch @@ -12,14 +12,12 @@ Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> (cherry picked from commit 0cbdc11482d72ad164e33ef7cc57b01e8b61e40d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 6 +++--- + drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -index 437238691d16..2ed7eeb50aac 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c -@@ -5711,7 +5711,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -5711,7 +5711,7 @@ static const struct pinmux_cfg_reg pinmu }, { PINMUX_CFG_REG_VAR("IPSR2", 0xE6060028, 32, 2, 3, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3) { @@ -28,7 +26,7 @@ index 437238691d16..2ed7eeb50aac 100644 0, 0, 0, 0, /* IP2_29_27 [3] */ FN_EX_CS3_N, FN_ATADIR0_N, FN_MSIOF2_TXD, -@@ -5731,7 +5731,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -5731,7 +5731,7 @@ static const struct pinmux_cfg_reg pinmu /* IP2_15_13 [3] */ FN_A24, FN_DREQ2, FN_IO3, FN_TX1, FN_SCIFA1_TXD, 0, 0, 0, @@ -37,7 +35,7 @@ index 437238691d16..2ed7eeb50aac 100644 FN_A23, FN_IO2, FN_BPFCLK_B, FN_RX0, FN_SCIFA0_RXD, 0, 0, 0, /* IP2_9_7 [3] */ -@@ -6042,7 +6042,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { +@@ -6042,7 +6042,7 @@ static const struct pinmux_cfg_reg pinmu /* IP10_24_22 [3] */ FN_VI0_R1, FN_VI2_DATA2, FN_GLO_I1_B, FN_TS_SCK0_C, FN_ATAG1_N, 0, 0, 0, @@ -46,6 +44,3 @@ index 437238691d16..2ed7eeb50aac 100644 FN_VI0_R0, FN_VI2_DATA1, FN_GLO_I0_B, FN_TS_SDATA0_C, FN_ATACS11_N, 0, 0, 0, --- -2.13.3 - diff --git a/patches.renesas/0172-pinctrl-sh-pfc-r8a7794-Swap-ATA-signals.patch b/patches.renesas/0172-pinctrl-sh-pfc-r8a7794-Swap-ATA-signals.patch deleted file mode 100644 index d6038b1b457580..00000000000000 --- a/patches.renesas/0172-pinctrl-sh-pfc-r8a7794-Swap-ATA-signals.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 5fe6e9d9a8917a5ecdcabfc60c35b66136e40d28 Mon Sep 17 00:00:00 2001 -From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Date: Tue, 4 Apr 2017 23:20:16 +0300 -Subject: [PATCH 172/286] pinctrl: sh-pfc: r8a7794: Swap ATA signals - -All R8A7794 manuals I have here (0.50 and 1.10) agree that the PFC driver -has ATAG0# and ATAWR0# signals in IPSR12 swapped -- fix this. - -Fixes: 43c4436e2f18 ("pinctrl: sh-pfc: add R8A7794 PFC support") -Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> -Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> -(cherry picked from commit 5f4c8cafe1148f8a91287072815df8f0b66f0e5c) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c -index ed734f560c84..ef093ac0cf2f 100644 ---- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c -+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c -@@ -281,8 +281,8 @@ enum { - FN_AVB_AVTP_CAPTURE, FN_ETH_CRS_DV_B, FN_SSI_WS1, FN_SCIF1_TXD_B, - FN_IIC1_SDA_C, FN_VI1_DATA0, FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, - FN_ETH_RX_ER_B, FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_SDATA, FN_VI1_DATA1, -- FN_ATAG0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, -- FN_MDATA, FN_ATAWR0_N, FN_ETH_RXD1_B, -+ FN_ATAWR0_N, FN_ETH_RXD0_B, FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, -+ FN_MDATA, FN_ATAG0_N, FN_ETH_RXD1_B, - - /* IPSR13 */ - FN_SSI_WS2, FN_HSCIF1_HCTS_N_B, FN_SCIFA0_RXD_D, FN_VI1_DATA3, FN_SCKZ, -@@ -575,8 +575,8 @@ enum { - ETH_CRS_DV_B_MARK, SSI_WS1_MARK, SCIF1_TXD_B_MARK, IIC1_SDA_C_MARK, - VI1_DATA0_MARK, CAN0_TX_D_MARK, AVB_AVTP_MATCH_MARK, ETH_RX_ER_B_MARK, - SSI_SDATA1_MARK, HSCIF1_HRX_B_MARK, VI1_DATA1_MARK, SDATA_MARK, -- ATAG0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, -- VI1_DATA2_MARK, MDATA_MARK, ATAWR0_N_MARK, ETH_RXD1_B_MARK, -+ ATAWR0_N_MARK, ETH_RXD0_B_MARK, SSI_SCK2_MARK, HSCIF1_HTX_B_MARK, -+ VI1_DATA2_MARK, MDATA_MARK, ATAG0_N_MARK, ETH_RXD1_B_MARK, - - /* IPSR13 */ - SSI_WS2_MARK, HSCIF1_HCTS_N_B_MARK, SCIFA0_RXD_D_MARK, VI1_DATA3_MARK, -@@ -1413,13 +1413,13 @@ static const u16 pinmux_data[] = { - PINMUX_IPSR_MSEL(IP12_26_24, HSCIF1_HRX_B, SEL_HSCIF1_1), - PINMUX_IPSR_GPSR(IP12_26_24, VI1_DATA1), - PINMUX_IPSR_MSEL(IP12_26_24, SDATA, SEL_FSN_0), -- PINMUX_IPSR_GPSR(IP12_26_24, ATAG0_N), -+ PINMUX_IPSR_GPSR(IP12_26_24, ATAWR0_N), - PINMUX_IPSR_MSEL(IP12_26_24, ETH_RXD0_B, SEL_ETH_1), - PINMUX_IPSR_MSEL(IP12_29_27, SSI_SCK2, SEL_SSI2_0), - PINMUX_IPSR_MSEL(IP12_29_27, HSCIF1_HTX_B, SEL_HSCIF1_1), - PINMUX_IPSR_GPSR(IP12_29_27, VI1_DATA2), - PINMUX_IPSR_MSEL(IP12_29_27, MDATA, SEL_FSN_0), -- PINMUX_IPSR_GPSR(IP12_29_27, ATAWR0_N), -+ PINMUX_IPSR_GPSR(IP12_29_27, ATAG0_N), - PINMUX_IPSR_MSEL(IP12_29_27, ETH_RXD1_B, SEL_ETH_1), - - /* IPSR13 */ -@@ -4938,10 +4938,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { - 0, 0, 0, 0, - /* IP12_29_27 [3] */ - FN_SSI_SCK2, FN_HSCIF1_HTX_B, FN_VI1_DATA2, FN_MDATA, -- FN_ATAWR0_N, FN_ETH_RXD1_B, 0, 0, -+ FN_ATAG0_N, FN_ETH_RXD1_B, 0, 0, - /* IP12_26_24 [3] */ - FN_SSI_SDATA1, FN_HSCIF1_HRX_B, FN_VI1_DATA1, FN_SDATA, -- FN_ATAG0_N, FN_ETH_RXD0_B, 0, 0, -+ FN_ATAWR0_N, FN_ETH_RXD0_B, 0, 0, - /* IP12_23_21 [3] */ - FN_SSI_WS1, FN_SCIF1_TXD_B, FN_IIC1_SDA_C, FN_VI1_DATA0, - FN_CAN0_TX_D, FN_AVB_AVTP_MATCH, FN_ETH_RX_ER_B, 0, --- -2.13.3 - diff --git a/patches.renesas/0173-net-phy-micrel-Restore-led_mode-and-clk_sel-on-resum.patch b/patches.renesas/0173-net-phy-micrel-Restore-led_mode-and-clk_sel-on-resum.patch index d17bdfc54db0d3..7cf1b14f751b0e 100644 --- a/patches.renesas/0173-net-phy-micrel-Restore-led_mode-and-clk_sel-on-resum.patch +++ b/patches.renesas/0173-net-phy-micrel-Restore-led_mode-and-clk_sel-on-resum.patch @@ -16,14 +16,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 79e498a9c7da0737829ff864aae44df434105676) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/net/phy/micrel.c | 42 ++++++++++++++++++++++++++++-------------- + drivers/net/phy/micrel.c | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) -diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c -index da5b39268370..d18d631c9fed 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c -@@ -268,23 +268,12 @@ static int kszphy_nand_tree_disable(struct phy_device *phydev) +@@ -268,23 +268,12 @@ out: return ret; } @@ -49,7 +47,7 @@ index da5b39268370..d18d631c9fed 100644 if (priv->rmii_ref_clk_sel) { ret = kszphy_rmii_clk_sel(phydev, priv->rmii_ref_clk_sel_val); if (ret) { -@@ -295,11 +284,30 @@ static int kszphy_config_init(struct phy_device *phydev) +@@ -295,11 +284,30 @@ static int kszphy_config_init(struct phy } if (priv->led_mode >= 0) @@ -81,7 +79,7 @@ index da5b39268370..d18d631c9fed 100644 static int ksz8041_config_init(struct phy_device *phydev) { struct device_node *of_node = phydev->mdio.dev.of_node; -@@ -701,8 +709,14 @@ static int kszphy_suspend(struct phy_device *phydev) +@@ -703,8 +711,14 @@ static int kszphy_suspend(struct phy_dev static int kszphy_resume(struct phy_device *phydev) { @@ -96,6 +94,3 @@ index da5b39268370..d18d631c9fed 100644 /* Enable PHY Interrupts */ if (phy_interrupt_is_valid(phydev)) { phydev->interrupts = PHY_INTERRUPT_ENABLED; --- -2.13.3 - diff --git a/patches.renesas/0174-soc-renesas-rcar-sysc-Add-support-for-fixing-up-powe.patch b/patches.renesas/0174-soc-renesas-rcar-sysc-Add-support-for-fixing-up-powe.patch index dd0abe0daa2d74..b17112a1deb080 100644 --- a/patches.renesas/0174-soc-renesas-rcar-sysc-Add-support-for-fixing-up-powe.patch +++ b/patches.renesas/0174-soc-renesas-rcar-sysc-Add-support-for-fixing-up-powe.patch @@ -20,12 +20,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit afa6f53df6052968ce3934ad324777c0057e31d1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/soc/renesas/rcar-sysc.c | 25 ++++++++++++++++++++++++- - drivers/soc/renesas/rcar-sysc.h | 10 ++++++++++ + drivers/soc/renesas/rcar-sysc.c | 25 ++++++++++++++++++++++++- + drivers/soc/renesas/rcar-sysc.h | 10 ++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) -diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c -index 225c35c79d9a..528a13742aeb 100644 --- a/drivers/soc/renesas/rcar-sysc.c +++ b/drivers/soc/renesas/rcar-sysc.c @@ -2,7 +2,7 @@ @@ -37,7 +35,7 @@ index 225c35c79d9a..528a13742aeb 100644 * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive -@@ -334,6 +334,12 @@ static int __init rcar_sysc_pd_init(void) +@@ -334,6 +334,12 @@ static int __init rcar_sysc_pd_init(void info = match->data; @@ -50,7 +48,7 @@ index 225c35c79d9a..528a13742aeb 100644 has_cpg_mstp = of_find_compatible_node(NULL, NULL, "renesas,cpg-mstp-clocks"); -@@ -377,6 +383,11 @@ static int __init rcar_sysc_pd_init(void) +@@ -377,6 +383,11 @@ static int __init rcar_sysc_pd_init(void const struct rcar_sysc_area *area = &info->areas[i]; struct rcar_sysc_pd *pd; @@ -62,7 +60,7 @@ index 225c35c79d9a..528a13742aeb 100644 pd = kzalloc(sizeof(*pd) + strlen(area->name) + 1, GFP_KERNEL); if (!pd) { error = -ENOMEM; -@@ -406,6 +417,18 @@ static int __init rcar_sysc_pd_init(void) +@@ -406,6 +417,18 @@ out_put: } early_initcall(rcar_sysc_pd_init); @@ -81,8 +79,6 @@ index 225c35c79d9a..528a13742aeb 100644 void __init rcar_sysc_init(phys_addr_t base, u32 syscier) { u32 syscimr; -diff --git a/drivers/soc/renesas/rcar-sysc.h b/drivers/soc/renesas/rcar-sysc.h -index f6e842e2976e..07edb049a401 100644 --- a/drivers/soc/renesas/rcar-sysc.h +++ b/drivers/soc/renesas/rcar-sysc.h @@ -46,6 +46,7 @@ struct rcar_sysc_area { @@ -93,7 +89,7 @@ index f6e842e2976e..07edb049a401 100644 const struct rcar_sysc_area *areas; unsigned int num_areas; }; -@@ -59,4 +60,13 @@ extern const struct rcar_sysc_info r8a7792_sysc_info; +@@ -59,4 +60,13 @@ extern const struct rcar_sysc_info r8a77 extern const struct rcar_sysc_info r8a7794_sysc_info; extern const struct rcar_sysc_info r8a7795_sysc_info; extern const struct rcar_sysc_info r8a7796_sysc_info; @@ -107,6 +103,3 @@ index f6e842e2976e..07edb049a401 100644 + unsigned int num_areas, u8 id); + #endif /* __SOC_RENESAS_RCAR_SYSC_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0175-soc-renesas-rcar-sysc-Add-support-for-R-Car-H3-ES2.0.patch b/patches.renesas/0175-soc-renesas-rcar-sysc-Add-support-for-R-Car-H3-ES2.0.patch index 42e9d8a2f45130..95121bff57958b 100644 --- a/patches.renesas/0175-soc-renesas-rcar-sysc-Add-support-for-R-Car-H3-ES2.0.patch +++ b/patches.renesas/0175-soc-renesas-rcar-sysc-Add-support-for-R-Car-H3-ES2.0.patch @@ -21,12 +21,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit fcb87087261e1be51b4c03677f39246bdc312b1c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/soc/renesas/r8a7795-sysc.c | 26 ++++++++++++++++++++++++-- - include/dt-bindings/power/r8a7795-sysc.h | 2 +- + drivers/soc/renesas/r8a7795-sysc.c | 26 ++++++++++++++++++++++++-- + include/dt-bindings/power/r8a7795-sysc.h | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) -diff --git a/drivers/soc/renesas/r8a7795-sysc.c b/drivers/soc/renesas/r8a7795-sysc.c -index 5e7537c96f7b..7412666187b3 100644 --- a/drivers/soc/renesas/r8a7795-sysc.c +++ b/drivers/soc/renesas/r8a7795-sysc.c @@ -1,7 +1,7 @@ @@ -53,7 +51,7 @@ index 5e7537c96f7b..7412666187b3 100644 { "always-on", 0, 0, R8A7795_PD_ALWAYS_ON, -1, PD_ALWAYS_ON }, { "ca57-scu", 0x1c0, 0, R8A7795_PD_CA57_SCU, R8A7795_PD_ALWAYS_ON, PD_SCU }, -@@ -40,6 +41,7 @@ static const struct rcar_sysc_area r8a7795_areas[] __initconst = { +@@ -40,6 +41,7 @@ static const struct rcar_sysc_area r8a77 { "a3vp", 0x340, 0, R8A7795_PD_A3VP, R8A7795_PD_ALWAYS_ON }, { "cr7", 0x240, 0, R8A7795_PD_CR7, R8A7795_PD_ALWAYS_ON }, { "a3vc", 0x380, 0, R8A7795_PD_A3VC, R8A7795_PD_ALWAYS_ON }, @@ -61,7 +59,7 @@ index 5e7537c96f7b..7412666187b3 100644 { "a2vc0", 0x3c0, 0, R8A7795_PD_A2VC0, R8A7795_PD_A3VC }, { "a2vc1", 0x3c0, 1, R8A7795_PD_A2VC1, R8A7795_PD_A3VC }, { "3dg-a", 0x100, 0, R8A7795_PD_3DG_A, R8A7795_PD_ALWAYS_ON }, -@@ -50,7 +52,27 @@ static const struct rcar_sysc_area r8a7795_areas[] __initconst = { +@@ -50,7 +52,27 @@ static const struct rcar_sysc_area r8a77 { "a3ir", 0x180, 0, R8A7795_PD_A3IR, R8A7795_PD_ALWAYS_ON }, }; @@ -89,8 +87,6 @@ index 5e7537c96f7b..7412666187b3 100644 .areas = r8a7795_areas, .num_areas = ARRAY_SIZE(r8a7795_areas), }; -diff --git a/include/dt-bindings/power/r8a7795-sysc.h b/include/dt-bindings/power/r8a7795-sysc.h -index ee2e26ba605e..ad679eeda137 100644 --- a/include/dt-bindings/power/r8a7795-sysc.h +++ b/include/dt-bindings/power/r8a7795-sysc.h @@ -33,7 +33,7 @@ @@ -102,6 +98,3 @@ index ee2e26ba605e..ad679eeda137 100644 #define R8A7795_PD_A2VC1 26 /* Always-on power area */ --- -2.13.3 - diff --git a/patches.renesas/0176-usb-xhci-plat-Enable-async-suspend-resume.patch b/patches.renesas/0176-usb-xhci-plat-Enable-async-suspend-resume.patch index 6f144665b8fee1..dfaae08527ac04 100644 --- a/patches.renesas/0176-usb-xhci-plat-Enable-async-suspend-resume.patch +++ b/patches.renesas/0176-usb-xhci-plat-Enable-async-suspend-resume.patch @@ -19,14 +19,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit c70a1529b29cb1362ade5dd113313fb945e32c3e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-plat.c | 2 ++ + drivers/usb/host/xhci-plat.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 66ddd080a2a8..37f59a975dd9 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -258,6 +258,8 @@ static int xhci_plat_probe(struct platform_device *pdev) +@@ -258,6 +258,8 @@ static int xhci_plat_probe(struct platfo if (ret) goto dealloc_usb2_hcd; @@ -35,6 +33,3 @@ index 66ddd080a2a8..37f59a975dd9 100644 return 0; --- -2.13.3 - diff --git a/patches.renesas/0177-usb-xhci-clear-EINT-bit-in-status-correctly.patch b/patches.renesas/0177-usb-xhci-clear-EINT-bit-in-status-correctly.patch index 419292ea6c2845..9c4b4e1bfc1762 100644 --- a/patches.renesas/0177-usb-xhci-clear-EINT-bit-in-status-correctly.patch +++ b/patches.renesas/0177-usb-xhci-clear-EINT-bit-in-status-correctly.patch @@ -25,14 +25,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit d1001ab41064c7fe7bffbc1d7c3921912f3ec32d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.c | 4 ++-- + drivers/usb/host/xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 304ee6bbe80c..cb3871c93004 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -721,7 +721,7 @@ void xhci_stop(struct usb_hcd *hcd) +@@ -724,7 +724,7 @@ void xhci_stop(struct usb_hcd *hcd) xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Disabling event ring interrupts"); temp = readl(&xhci->op_regs->status); @@ -41,7 +39,7 @@ index 304ee6bbe80c..cb3871c93004 100644 temp = readl(&xhci->ir_set->irq_pending); writel(ER_IRQ_DISABLE(temp), &xhci->ir_set->irq_pending); xhci_print_ir_set(xhci, 0); -@@ -1054,7 +1054,7 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated) +@@ -1057,7 +1057,7 @@ int xhci_resume(struct xhci_hcd *xhci, b xhci_dbg(xhci, "// Disabling event ring interrupts\n"); temp = readl(&xhci->op_regs->status); @@ -50,6 +48,3 @@ index 304ee6bbe80c..cb3871c93004 100644 temp = readl(&xhci->ir_set->irq_pending); writel(ER_IRQ_DISABLE(temp), &xhci->ir_set->irq_pending); xhci_print_ir_set(xhci, 0); --- -2.13.3 - diff --git a/patches.renesas/0178-usb-xhci-Add-helper-function-xhci_set_power_on.patch b/patches.renesas/0178-usb-xhci-Add-helper-function-xhci_set_power_on.patch index 29d47b4cddbec4..94cee0911a09ed 100644 --- a/patches.renesas/0178-usb-xhci-Add-helper-function-xhci_set_power_on.patch +++ b/patches.renesas/0178-usb-xhci-Add-helper-function-xhci_set_power_on.patch @@ -15,14 +15,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit a6ff6cbf1fabe7500d8ac25e133e3346db0a0fca) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 66 ++++++++++++++++++++++++++++++--------------- + drivers/usb/host/xhci-hub.c | 66 ++++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 21 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index 3bddeaa1e2d7..04344c14180c 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -540,6 +540,49 @@ static int xhci_get_ports(struct usb_hcd *hcd, __le32 __iomem ***port_array) +@@ -540,6 +540,49 @@ static int xhci_get_ports(struct usb_hcd return max_ports; } @@ -72,7 +70,7 @@ index 3bddeaa1e2d7..04344c14180c 100644 void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, int port_id, u32 link_state) { -@@ -1092,18 +1135,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1095,18 +1138,7 @@ int xhci_hub_control(struct usb_hcd *hcd * However, hub_wq will ignore the roothub events until * the roothub is registered. */ @@ -92,7 +90,7 @@ index 3bddeaa1e2d7..04344c14180c 100644 break; case USB_PORT_FEAT_RESET: temp = (temp | PORT_RESET); -@@ -1207,15 +1239,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1210,15 +1242,7 @@ int xhci_hub_control(struct usb_hcd *hcd port_array[wIndex], temp); break; case USB_PORT_FEAT_POWER: @@ -109,6 +107,3 @@ index 3bddeaa1e2d7..04344c14180c 100644 break; default: goto error; --- -2.13.3 - diff --git a/patches.renesas/0179-usb-xhci-Add-helper-function-xhci_disable_slot.patch b/patches.renesas/0179-usb-xhci-Add-helper-function-xhci_disable_slot.patch index df6f4d5e1ca1d5..ec0d41490d3920 100644 --- a/patches.renesas/0179-usb-xhci-Add-helper-function-xhci_disable_slot.patch +++ b/patches.renesas/0179-usb-xhci-Add-helper-function-xhci_disable_slot.patch @@ -13,15 +13,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit f9e609b82479ef48469d42b022b0951abc00dcd1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.c | 49 +++++++++++++++++++++++++++++++------------------ - drivers/usb/host/xhci.h | 2 ++ + drivers/usb/host/xhci.c | 49 ++++++++++++++++++++++++++++++------------------ + drivers/usb/host/xhci.h | 2 + 2 files changed, 33 insertions(+), 18 deletions(-) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index cb3871c93004..ccd6f330ad38 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3558,8 +3558,6 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3564,8 +3564,6 @@ void xhci_free_dev(struct usb_hcd *hcd, { struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct xhci_virt_device *virt_dev; @@ -30,7 +28,7 @@ index cb3871c93004..ccd6f330ad38 100644 int i, ret; struct xhci_command *command; -@@ -3594,30 +3592,50 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3600,30 +3598,50 @@ void xhci_free_dev(struct usb_hcd *hcd, del_timer_sync(&virt_dev->eps[i].stop_cmd_timer); } @@ -91,7 +89,7 @@ index cb3871c93004..ccd6f330ad38 100644 } /* -@@ -3724,15 +3742,10 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3730,15 +3748,10 @@ int xhci_alloc_dev(struct usb_hcd *hcd, disable_slot: /* Disable slot, if we can do it without mem alloc */ @@ -108,11 +106,9 @@ index cb3871c93004..ccd6f330ad38 100644 } /* -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 2496bd6304ca..e2eec806eafc 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2019,6 +2019,8 @@ void xhci_shutdown(struct usb_hcd *hcd); +@@ -2021,6 +2021,8 @@ void xhci_shutdown(struct usb_hcd *hcd); int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks); void xhci_init_driver(struct hc_driver *drv, const struct xhci_driver_overrides *over); @@ -121,6 +117,3 @@ index 2496bd6304ca..e2eec806eafc 100644 #ifdef CONFIG_PM int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup); --- -2.13.3 - diff --git a/patches.renesas/0180-usb-xhci-Expose-xhci_start-function.patch b/patches.renesas/0180-usb-xhci-Expose-xhci_start-function.patch index 1f67259dc08898..0d329e2f3af7eb 100644 --- a/patches.renesas/0180-usb-xhci-Expose-xhci_start-function.patch +++ b/patches.renesas/0180-usb-xhci-Expose-xhci_start-function.patch @@ -12,12 +12,10 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 26bba5c767de6724f330cdc2ad28bb783674f5a0) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.c | 2 +- - drivers/usb/host/xhci.h | 1 + + drivers/usb/host/xhci.c | 2 +- + drivers/usb/host/xhci.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index ccd6f330ad38..0f9edee7bab3 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -125,7 +125,7 @@ int xhci_halt(struct xhci_hcd *xhci) @@ -29,11 +27,9 @@ index ccd6f330ad38..0f9edee7bab3 100644 { u32 temp; int ret; -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index e2eec806eafc..93e1dc1a6812 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2011,6 +2011,7 @@ typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); +@@ -2013,6 +2013,7 @@ typedef void (*xhci_get_quirks_t)(struct int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec); void xhci_quiesce(struct xhci_hcd *xhci); int xhci_halt(struct xhci_hcd *xhci); @@ -41,6 +37,3 @@ index e2eec806eafc..93e1dc1a6812 100644 int xhci_reset(struct xhci_hcd *xhci); int xhci_init(struct usb_hcd *hcd); int xhci_run(struct usb_hcd *hcd); --- -2.13.3 - diff --git a/patches.renesas/0181-usb-xhci-Add-port-test-modes-support-for-usb2.patch b/patches.renesas/0181-usb-xhci-Add-port-test-modes-support-for-usb2.patch index 02c1831af57da0..51bc8824019c93 100644 --- a/patches.renesas/0181-usb-xhci-Add-port-test-modes-support-for-usb2.patch +++ b/patches.renesas/0181-usb-xhci-Add-port-test-modes-support-for-usb2.patch @@ -27,15 +27,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 0f1d832ed1fb9527a4cc5fcb8511e85fd0a85185) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 85 +++++++++++++++++++++++++++++++++++++++++++++ - drivers/usb/host/xhci.h | 2 ++ + drivers/usb/host/xhci-hub.c | 85 ++++++++++++++++++++++++++++++++++++++++++++ + drivers/usb/host/xhci.h | 2 + 2 files changed, 87 insertions(+) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index 04344c14180c..a0545fc367ca 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -583,6 +583,77 @@ static void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, +@@ -583,6 +583,77 @@ static void xhci_set_port_power(struct x spin_lock_irqsave(&xhci->lock, flags); } @@ -113,7 +111,7 @@ index 04344c14180c..a0545fc367ca 100644 void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, int port_id, u32 link_state) { -@@ -938,6 +1009,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -941,6 +1012,7 @@ int xhci_hub_control(struct usb_hcd *hcd u16 link_state = 0; u16 wake_mask = 0; u16 timeout = 0; @@ -121,7 +119,7 @@ index 04344c14180c..a0545fc367ca 100644 max_ports = xhci_get_ports(hcd, &port_array); bus_state = &xhci->bus_state[hcd_index(hcd)]; -@@ -1011,6 +1083,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1014,6 +1086,8 @@ int xhci_hub_control(struct usb_hcd *hcd link_state = (wIndex & 0xff00) >> 3; if (wValue == USB_PORT_FEAT_REMOTE_WAKE_MASK) wake_mask = wIndex & 0xff00; @@ -130,7 +128,7 @@ index 04344c14180c..a0545fc367ca 100644 /* The MSB of wIndex is the U1/U2 timeout */ timeout = (wIndex & 0xff00) >> 8; wIndex &= 0xff; -@@ -1174,6 +1248,14 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1177,6 +1251,14 @@ int xhci_hub_control(struct usb_hcd *hcd temp |= PORT_U2_TIMEOUT(timeout); writel(temp, port_array[wIndex] + PORTPMSC); break; @@ -145,7 +143,7 @@ index 04344c14180c..a0545fc367ca 100644 default: goto error; } -@@ -1241,6 +1323,9 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1244,6 +1326,9 @@ int xhci_hub_control(struct usb_hcd *hcd case USB_PORT_FEAT_POWER: xhci_set_port_power(xhci, hcd, wIndex, false); break; @@ -155,8 +153,6 @@ index 04344c14180c..a0545fc367ca 100644 default: goto error; } -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 93e1dc1a6812..b65429aa6da4 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -425,6 +425,7 @@ struct xhci_op_regs { @@ -167,7 +163,7 @@ index 93e1dc1a6812..b65429aa6da4 100644 /* USB3 Protocol PORTLI Port Link Information */ #define PORT_RX_LANES(p) (((p) >> 16) & 0xf) -@@ -1844,6 +1845,7 @@ struct xhci_hcd { +@@ -1846,6 +1847,7 @@ struct xhci_hcd { /* Compliance Mode Recovery Data */ struct timer_list comp_mode_recovery_timer; u32 port_status_u0; @@ -175,6 +171,3 @@ index 93e1dc1a6812..b65429aa6da4 100644 /* Compliance Mode Timer Triggered every 2 seconds */ #define COMP_MODE_RCVRY_MSECS 2000 --- -2.13.3 - diff --git a/patches.renesas/0182-usb-host-xhci-extract-xhci_slot_state_string.patch b/patches.renesas/0182-usb-host-xhci-extract-xhci_slot_state_string.patch index 5acce8fffff688..0a361769d37674 100644 --- a/patches.renesas/0182-usb-host-xhci-extract-xhci_slot_state_string.patch +++ b/patches.renesas/0182-usb-host-xhci-extract-xhci_slot_state_string.patch @@ -13,15 +13,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 52407729fbeabb654d38c0c99661a41a481092d1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 14 ++------------ - drivers/usb/host/xhci.h | 16 ++++++++++++++++ + drivers/usb/host/xhci-dbg.c | 14 ++------------ + drivers/usb/host/xhci.h | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 12 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index 2b4a00fa735d..4cfdd51340d4 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -451,19 +451,9 @@ char *xhci_get_slot_state(struct xhci_hcd *xhci, +@@ -451,19 +451,9 @@ char *xhci_get_slot_state(struct xhci_hc struct xhci_container_ctx *ctx) { struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); @@ -43,11 +41,9 @@ index 2b4a00fa735d..4cfdd51340d4 100644 } static void xhci_dbg_slot_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index b65429aa6da4..facdae3ea5bb 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2159,6 +2159,22 @@ static inline struct xhci_ring *xhci_urb_to_transfer_ring(struct xhci_hcd *xhci, +@@ -2161,6 +2161,22 @@ static inline struct xhci_ring *xhci_urb urb->stream_id); } @@ -70,6 +66,3 @@ index b65429aa6da4..facdae3ea5bb 100644 static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, u32 field3) { --- -2.13.3 - diff --git a/patches.renesas/0183-usb-host-xhci-add-Slot-and-EP-Context-tracers.patch b/patches.renesas/0183-usb-host-xhci-add-Slot-and-EP-Context-tracers.patch index 6a9b1c30f20bb1..31e22bab91c397 100644 --- a/patches.renesas/0183-usb-host-xhci-add-Slot-and-EP-Context-tracers.patch +++ b/patches.renesas/0183-usb-host-xhci-add-Slot-and-EP-Context-tracers.patch @@ -14,17 +14,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 19a7d0d65c4a813069f4bc4ca701d6a163c337e9) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-ring.c | 42 ++++++++++++ - drivers/usb/host/xhci-trace.h | 101 +++++++++++++++++++++++++++++ - drivers/usb/host/xhci.c | 15 ++++- - drivers/usb/host/xhci.h | 146 ++++++++++++++++++++++++++++++++++++++++++ + drivers/usb/host/xhci-ring.c | 42 ++++++++++++ + drivers/usb/host/xhci-trace.h | 101 +++++++++++++++++++++++++++++ + drivers/usb/host/xhci.c | 15 +++- + drivers/usb/host/xhci.h | 146 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 302 insertions(+), 2 deletions(-) -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index a3309aa02993..2f700c9893bd 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -689,6 +689,8 @@ static void xhci_handle_cmd_stop_ep(struct xhci_hcd *xhci, int slot_id, +@@ -689,6 +689,8 @@ static void xhci_handle_cmd_stop_ep(stru struct xhci_virt_ep *ep; struct xhci_td *cur_td = NULL; struct xhci_td *last_unlinked_td; @@ -33,7 +31,7 @@ index a3309aa02993..2f700c9893bd 100644 struct xhci_dequeue_state deq_state; -@@ -702,6 +704,11 @@ static void xhci_handle_cmd_stop_ep(struct xhci_hcd *xhci, int slot_id, +@@ -702,6 +704,11 @@ static void xhci_handle_cmd_stop_ep(stru memset(&deq_state, 0, sizeof(deq_state)); ep_index = TRB_TO_EP_INDEX(le32_to_cpu(trb->generic.field[3])); @@ -45,7 +43,7 @@ index a3309aa02993..2f700c9893bd 100644 ep = &xhci->devs[slot_id]->eps[ep_index]; last_unlinked_td = list_last_entry(&ep->cancelled_td_list, struct xhci_td, cancelled_td_list); -@@ -1029,6 +1036,8 @@ static void xhci_handle_cmd_set_deq(struct xhci_hcd *xhci, int slot_id, +@@ -1032,6 +1039,8 @@ static void xhci_handle_cmd_set_deq(stru ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index); slot_ctx = xhci_get_slot_ctx(xhci, dev->out_ctx); @@ -54,7 +52,7 @@ index a3309aa02993..2f700c9893bd 100644 if (cmd_comp_code != COMP_SUCCESS) { unsigned int ep_state; -@@ -1099,9 +1108,15 @@ static void xhci_handle_cmd_set_deq(struct xhci_hcd *xhci, int slot_id, +@@ -1102,9 +1111,15 @@ cleanup: static void xhci_handle_cmd_reset_ep(struct xhci_hcd *xhci, int slot_id, union xhci_trb *trb, u32 cmd_comp_code) { @@ -70,7 +68,7 @@ index a3309aa02993..2f700c9893bd 100644 /* This command will only fail if the endpoint wasn't halted, * but we don't care. */ -@@ -1143,10 +1158,15 @@ static void xhci_handle_cmd_enable_slot(struct xhci_hcd *xhci, int slot_id, +@@ -1146,10 +1161,15 @@ static void xhci_handle_cmd_enable_slot( static void xhci_handle_cmd_disable_slot(struct xhci_hcd *xhci, int slot_id) { struct xhci_virt_device *virt_dev; @@ -86,7 +84,7 @@ index a3309aa02993..2f700c9893bd 100644 if (xhci->quirks & XHCI_EP_LIMIT_QUIRK) /* Delete default control endpoint resources */ xhci_free_device_endpoint_resources(xhci, virt_dev, true); -@@ -1158,6 +1178,7 @@ static void xhci_handle_cmd_config_ep(struct xhci_hcd *xhci, int slot_id, +@@ -1161,6 +1181,7 @@ static void xhci_handle_cmd_config_ep(st { struct xhci_virt_device *virt_dev; struct xhci_input_control_ctx *ctrl_ctx; @@ -94,7 +92,7 @@ index a3309aa02993..2f700c9893bd 100644 unsigned int ep_index; unsigned int ep_state; u32 add_flags, drop_flags; -@@ -1182,6 +1203,9 @@ static void xhci_handle_cmd_config_ep(struct xhci_hcd *xhci, int slot_id, +@@ -1185,6 +1206,9 @@ static void xhci_handle_cmd_config_ep(st /* Input ctx add_flags are the endpoint index plus one */ ep_index = xhci_last_valid_endpoint(add_flags) - 1; @@ -104,7 +102,7 @@ index a3309aa02993..2f700c9893bd 100644 /* A usb_set_interface() call directly after clearing a halted * condition may race on this quirky hardware. Not worth * worrying about, since this is prototype hardware. Not sure -@@ -1206,9 +1230,26 @@ static void xhci_handle_cmd_config_ep(struct xhci_hcd *xhci, int slot_id, +@@ -1209,9 +1233,26 @@ static void xhci_handle_cmd_config_ep(st return; } @@ -131,7 +129,7 @@ index a3309aa02993..2f700c9893bd 100644 xhci_dbg(xhci, "Completed reset device command.\n"); if (!xhci->devs[slot_id]) xhci_warn(xhci, "Reset device command completion " -@@ -1384,6 +1425,7 @@ static void handle_cmd_completion(struct xhci_hcd *xhci, +@@ -1387,6 +1428,7 @@ static void handle_cmd_completion(struct case TRB_EVAL_CONTEXT: break; case TRB_ADDR_DEV: @@ -139,11 +137,9 @@ index a3309aa02993..2f700c9893bd 100644 break; case TRB_STOP_RING: WARN_ON(slot_id != TRB_TO_SLOT_ID( -diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h -index fecd226b422d..f24a45ae153d 100644 --- a/drivers/usb/host/xhci-trace.h +++ b/drivers/usb/host/xhci-trace.h -@@ -285,6 +285,107 @@ DEFINE_EVENT(xhci_log_urb, xhci_urb_dequeue, +@@ -285,6 +285,107 @@ DEFINE_EVENT(xhci_log_urb, xhci_urb_dequ TP_ARGS(urb) ); @@ -251,11 +247,9 @@ index fecd226b422d..f24a45ae153d 100644 #endif /* __XHCI_TRACE_H */ /* this part must be outside header guard */ -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 0f9edee7bab3..6c4cef7e51c9 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3443,6 +3443,8 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3449,6 +3449,8 @@ int xhci_discover_or_reset_device(struct SLOT_STATE_DISABLED) return 0; @@ -264,7 +258,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 xhci_dbg(xhci, "Resetting device with slot ID %u\n", slot_id); /* Allocate the command structure that holds the struct completion. * Assume we're in process context, since the normal device reset -@@ -3558,6 +3560,7 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3564,6 +3566,7 @@ void xhci_free_dev(struct usb_hcd *hcd, { struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct xhci_virt_device *virt_dev; @@ -272,7 +266,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 int i, ret; struct xhci_command *command; -@@ -3585,6 +3588,8 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3591,6 +3594,8 @@ void xhci_free_dev(struct usb_hcd *hcd, } virt_dev = xhci->devs[udev->slot_id]; @@ -281,7 +275,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 /* Stop any wayward timer functions (which may grab the lock) */ for (i = 0; i < 31; i++) { -@@ -3668,6 +3673,8 @@ static int xhci_reserve_host_control_ep_resources(struct xhci_hcd *xhci) +@@ -3674,6 +3679,8 @@ static int xhci_reserve_host_control_ep_ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); @@ -290,7 +284,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 unsigned long flags; int ret, slot_id; struct xhci_command *command; -@@ -3723,6 +3730,10 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3729,6 +3736,10 @@ int xhci_alloc_dev(struct usb_hcd *hcd, xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n"); goto disable_slot; } @@ -301,7 +295,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 udev->slot_id = slot_id; #ifndef CONFIG_USB_DEFAULT_PERSIST -@@ -3792,9 +3803,10 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3798,9 +3809,10 @@ static int xhci_setup_device(struct usb_ ret = -EINVAL; goto out; } @@ -313,7 +307,7 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 if (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state)) == SLOT_STATE_DEFAULT) { xhci_dbg(xhci, "Slot already in default state\n"); -@@ -3915,7 +3927,6 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3921,7 +3933,6 @@ static int xhci_setup_device(struct usb_ * USB core uses address 1 for the roothubs, so we add one to the * address given back to us by the HC. */ @@ -321,8 +315,6 @@ index 0f9edee7bab3..6c4cef7e51c9 100644 trace_xhci_address_ctx(xhci, virt_dev->out_ctx, le32_to_cpu(slot_ctx->dev_info) >> 27); /* Zero the input context control for later use */ -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index facdae3ea5bb..2acb6fe64892 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -618,6 +618,7 @@ struct xhci_slot_ctx { @@ -349,7 +341,7 @@ index facdae3ea5bb..2acb6fe64892 100644 /* dev_state bitmasks */ /* USB device address - assigned by the HC */ -@@ -2381,5 +2384,148 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2383,5 +2386,148 @@ static inline const char *xhci_decode_tr return str; } @@ -498,6 +490,3 @@ index facdae3ea5bb..2acb6fe64892 100644 +} #endif /* __LINUX_XHCI_HCD_H */ --- -2.13.3 - diff --git a/patches.renesas/0184-usb-host-xhci-fix-up-Control-Transfer-TRB-decoder.patch b/patches.renesas/0184-usb-host-xhci-fix-up-Control-Transfer-TRB-decoder.patch index 08f8aa3313c831..f222d1f1ec6ec3 100644 --- a/patches.renesas/0184-usb-host-xhci-fix-up-Control-Transfer-TRB-decoder.patch +++ b/patches.renesas/0184-usb-host-xhci-fix-up-Control-Transfer-TRB-decoder.patch @@ -12,14 +12,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 5d062aba0d399c57e2d793603d6e372adb09b4d7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.h | 59 +++++++++++++++++++++++++++++++------------------ + drivers/usb/host/xhci.h | 59 ++++++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 22 deletions(-) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 2acb6fe64892..82fce191b500 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2218,31 +2218,46 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2220,31 +2220,46 @@ static inline const char *xhci_decode_tr break; case TRB_SETUP: @@ -88,6 +86,3 @@ index 2acb6fe64892..82fce191b500 100644 case TRB_ISOC: case TRB_EVENT_DATA: case TRB_TR_NOOP: --- -2.13.3 - diff --git a/patches.renesas/0185-xhci-add-slot-and-endpoint-numbers-to-debug-messages.patch b/patches.renesas/0185-xhci-add-slot-and-endpoint-numbers-to-debug-messages.patch index e867ef212d4430..eb96aafe1a9f68 100644 --- a/patches.renesas/0185-xhci-add-slot-and-endpoint-numbers-to-debug-messages.patch +++ b/patches.renesas/0185-xhci-add-slot-and-endpoint-numbers-to-debug-messages.patch @@ -15,14 +15,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit b7f769ae1b126086c5ec6686734924bac1dc0a9f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-ring.c | 80 ++++++++++++++++++++++++++++++-------------- + drivers/usb/host/xhci-ring.c | 80 +++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 25 deletions(-) -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 2f700c9893bd..d45f533772ee 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2285,7 +2285,8 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2288,7 +2288,8 @@ static int handle_tx_event(struct xhci_h slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags)); xdev = xhci->devs[slot_id]; if (!xdev) { @@ -32,7 +30,7 @@ index 2f700c9893bd..d45f533772ee 100644 xhci_err(xhci, "@%016llx %08x %08x %08x %08x\n", (unsigned long long) xhci_trb_virt_to_dma( xhci->event_ring->deq_seg, -@@ -2305,8 +2306,9 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2308,8 +2309,9 @@ static int handle_tx_event(struct xhci_h ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); if (!ep_ring || GET_EP_CTX_STATE(ep_ctx) == EP_STATE_DISABLED) { @@ -44,7 +42,7 @@ index 2f700c9893bd..d45f533772ee 100644 xhci_err(xhci, "@%016llx %08x %08x %08x %08x\n", (unsigned long long) xhci_trb_virt_to_dma( xhci->event_ring->deq_seg, -@@ -2340,45 +2342,62 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2343,45 +2345,62 @@ static int handle_tx_event(struct xhci_h trb_comp_code = COMP_SHORT_PACKET; else xhci_warn_ratelimited(xhci, @@ -118,7 +116,7 @@ index 2f700c9893bd..d45f533772ee 100644 break; case COMP_RING_UNDERRUN: /* -@@ -2402,7 +2421,9 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2405,7 +2424,9 @@ static int handle_tx_event(struct xhci_h ep_index); goto cleanup; case COMP_INCOMPATIBLE_DEVICE_ERROR: @@ -129,7 +127,7 @@ index 2f700c9893bd..d45f533772ee 100644 status = -EPROTO; break; case COMP_MISSED_SERVICE_ERROR: -@@ -2413,19 +2434,24 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2416,19 +2437,24 @@ static int handle_tx_event(struct xhci_h * short transfer when process the ep_ring next time. */ ep->skip = true; @@ -158,7 +156,7 @@ index 2f700c9893bd..d45f533772ee 100644 goto cleanup; } -@@ -2451,8 +2477,8 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2454,8 +2480,8 @@ static int handle_tx_event(struct xhci_h } if (ep->skip) { ep->skip = false; @@ -169,7 +167,7 @@ index 2f700c9893bd..d45f533772ee 100644 } goto cleanup; } -@@ -2460,8 +2486,8 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2463,8 +2489,8 @@ static int handle_tx_event(struct xhci_h /* We've skipped all the TDs on the ep ring when ep->skip set */ if (ep->skip && td_num == 0) { ep->skip = false; @@ -180,7 +178,7 @@ index 2f700c9893bd..d45f533772ee 100644 goto cleanup; } -@@ -2520,7 +2546,9 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2523,7 +2549,9 @@ static int handle_tx_event(struct xhci_h ep_ring->last_td_was_short = false; if (ep->skip) { @@ -191,7 +189,7 @@ index 2f700c9893bd..d45f533772ee 100644 ep->skip = false; } -@@ -2537,7 +2565,9 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2540,7 +2568,9 @@ static int handle_tx_event(struct xhci_h * the TD. */ if (trb_is_noop(ep_trb)) { @@ -202,6 +200,3 @@ index 2f700c9893bd..d45f533772ee 100644 goto cleanup; } --- -2.13.3 - diff --git a/patches.renesas/0186-xhci-Do-not-halt-the-host-until-both-HCD-have-discon.patch b/patches.renesas/0186-xhci-Do-not-halt-the-host-until-both-HCD-have-discon.patch index de03157a813bc7..174d33a0be211c 100644 --- a/patches.renesas/0186-xhci-Do-not-halt-the-host-until-both-HCD-have-discon.patch +++ b/patches.renesas/0186-xhci-Do-not-halt-the-host-until-both-HCD-have-discon.patch @@ -20,14 +20,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit fe190ed0d60260e44f48d8b0b04f26a8c8898a02) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.c | 20 ++++++++++---------- + drivers/usb/host/xhci.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 6c4cef7e51c9..8d8c02f4a3a6 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -689,21 +689,21 @@ void xhci_stop(struct usb_hcd *hcd) +@@ -692,21 +692,21 @@ void xhci_stop(struct usb_hcd *hcd) mutex_lock(&xhci->mutex); @@ -59,6 +57,3 @@ index 6c4cef7e51c9..8d8c02f4a3a6 100644 xhci_cleanup_msix(xhci); /* Deleting Compliance Mode Recovery Timer */ --- -2.13.3 - diff --git a/patches.renesas/0187-xhci-Rework-how-we-handle-unresponsive-or-hoptlug-re.patch b/patches.renesas/0187-xhci-Rework-how-we-handle-unresponsive-or-hoptlug-re.patch index 97b94a4f70f3e4..bd9e763148572f 100644 --- a/patches.renesas/0187-xhci-Rework-how-we-handle-unresponsive-or-hoptlug-re.patch +++ b/patches.renesas/0187-xhci-Rework-how-we-handle-unresponsive-or-hoptlug-re.patch @@ -24,17 +24,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit d9f11ba9f107aa335091ab8d7ba5eea714e46e8b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 12 +++-- - drivers/usb/host/xhci-ring.c | 118 +++++++++++++++++++++---------------------- - drivers/usb/host/xhci.c | 16 +++++- - drivers/usb/host/xhci.h | 1 + + drivers/usb/host/xhci-hub.c | 12 ++-- + drivers/usb/host/xhci-ring.c | 118 ++++++++++++++++++++----------------------- + drivers/usb/host/xhci.c | 16 +++++ + drivers/usb/host/xhci.h | 1 4 files changed, 80 insertions(+), 67 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index a0545fc367ca..0b88e76251eb 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -1050,7 +1050,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1053,7 +1053,8 @@ int xhci_hub_control(struct usb_hcd *hcd goto error; wIndex--; temp = readl(port_array[wIndex]); @@ -44,7 +42,7 @@ index a0545fc367ca..0b88e76251eb 100644 retval = -ENODEV; break; } -@@ -1092,7 +1093,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1095,7 +1096,8 @@ int xhci_hub_control(struct usb_hcd *hcd goto error; wIndex--; temp = readl(port_array[wIndex]); @@ -54,7 +52,7 @@ index a0545fc367ca..0b88e76251eb 100644 retval = -ENODEV; break; } -@@ -1267,7 +1269,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1270,7 +1272,8 @@ int xhci_hub_control(struct usb_hcd *hcd goto error; wIndex--; temp = readl(port_array[wIndex]); @@ -64,7 +62,7 @@ index a0545fc367ca..0b88e76251eb 100644 retval = -ENODEV; break; } -@@ -1378,7 +1381,8 @@ int xhci_hub_status_data(struct usb_hcd *hcd, char *buf) +@@ -1381,7 +1384,8 @@ int xhci_hub_status_data(struct usb_hcd /* For each port, did anything change? If so, set that bit in buf. */ for (i = 0; i < max_ports; i++) { temp = readl(port_array[i]); @@ -74,11 +72,9 @@ index a0545fc367ca..0b88e76251eb 100644 retval = -ENODEV; break; } -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index d45f533772ee..c8910fd9b34c 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -359,21 +359,19 @@ static int xhci_abort_cmd_ring(struct xhci_hcd *xhci, unsigned long flags) +@@ -359,21 +359,19 @@ static int xhci_abort_cmd_ring(struct xh xhci_write_64(xhci, temp_64 | CMD_RING_ABORT, &xhci->op_regs->cmd_ring); @@ -108,7 +104,7 @@ index d45f533772ee..c8910fd9b34c 100644 } /* * Writing the CMD_RING_ABORT bit should cause a cmd completion event, -@@ -873,6 +871,40 @@ static void xhci_kill_endpoint_urbs(struct xhci_hcd *xhci, +@@ -876,6 +874,40 @@ static void xhci_kill_endpoint_urbs(stru } } @@ -149,7 +145,7 @@ index d45f533772ee..c8910fd9b34c 100644 /* Watchdog timer function for when a stop endpoint command fails to complete. * In this case, we assume the host controller is broken or dying or dead. The * host may still be completing some other events, so we have to be careful to -@@ -894,7 +926,6 @@ void xhci_stop_endpoint_command_watchdog(unsigned long arg) +@@ -897,7 +929,6 @@ void xhci_stop_endpoint_command_watchdog { struct xhci_hcd *xhci; struct xhci_virt_ep *ep; @@ -157,7 +153,7 @@ index d45f533772ee..c8910fd9b34c 100644 unsigned long flags; ep = (struct xhci_virt_ep *) arg; -@@ -911,52 +942,22 @@ void xhci_stop_endpoint_command_watchdog(unsigned long arg) +@@ -914,52 +945,22 @@ void xhci_stop_endpoint_command_watchdog } xhci_warn(xhci, "xHCI host not responding to stop endpoint command.\n"); @@ -217,7 +213,7 @@ index d45f533772ee..c8910fd9b34c 100644 static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, struct xhci_virt_device *dev, struct xhci_ring *ep_ring, -@@ -1291,7 +1292,6 @@ void xhci_cleanup_command_queue(struct xhci_hcd *xhci) +@@ -1294,7 +1295,6 @@ void xhci_cleanup_command_queue(struct x void xhci_handle_command_timeout(struct work_struct *work) { struct xhci_hcd *xhci; @@ -225,7 +221,7 @@ index d45f533772ee..c8910fd9b34c 100644 unsigned long flags; u64 hw_ring_state; -@@ -1312,22 +1312,17 @@ void xhci_handle_command_timeout(struct work_struct *work) +@@ -1315,22 +1315,17 @@ void xhci_handle_command_timeout(struct /* Make sure command ring is running before aborting it */ hw_ring_state = xhci_read_64(xhci, &xhci->op_regs->cmd_ring); @@ -254,7 +250,7 @@ index d45f533772ee..c8910fd9b34c 100644 goto time_out_completed; } -@@ -2695,7 +2690,8 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) +@@ -2698,7 +2693,8 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd spin_lock(&xhci->lock); /* Check if the xHC generated the interrupt, or the irq is shared */ status = readl(&xhci->op_regs->status); @@ -264,11 +260,9 @@ index d45f533772ee..c8910fd9b34c 100644 ret = IRQ_HANDLED; goto out; } -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 8d8c02f4a3a6..388bf2f1b661 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1501,10 +1501,16 @@ int xhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) +@@ -1507,10 +1507,16 @@ int xhci_urb_dequeue(struct usb_hcd *hcd if (!ep || !ep_ring) goto err_giveback; @@ -287,7 +281,7 @@ index 8d8c02f4a3a6..388bf2f1b661 100644 for (i = urb_priv->num_tds_done; i < urb_priv->num_tds; i++) { -@@ -2595,6 +2601,12 @@ static int xhci_configure_endpoint(struct xhci_hcd *xhci, +@@ -2601,6 +2607,12 @@ static int xhci_configure_endpoint(struc return -EINVAL; spin_lock_irqsave(&xhci->lock, flags); @@ -300,11 +294,9 @@ index 8d8c02f4a3a6..388bf2f1b661 100644 virt_dev = xhci->devs[udev->slot_id]; ctrl_ctx = xhci_get_input_control_ctx(command->in_ctx); -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 82fce191b500..9e24d2890b4d 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2132,6 +2132,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex, +@@ -2134,6 +2134,7 @@ int xhci_hub_control(struct usb_hcd *hcd char *buf, u16 wLength); int xhci_hub_status_data(struct usb_hcd *hcd, char *buf); int xhci_find_raw_port_number(struct usb_hcd *hcd, int port1); @@ -312,6 +304,3 @@ index 82fce191b500..9e24d2890b4d 100644 #ifdef CONFIG_PM int xhci_bus_suspend(struct usb_hcd *hcd); --- -2.13.3 - diff --git a/patches.renesas/0188-usb-xhci-add-xhci_log_ring-trace-events.patch b/patches.renesas/0188-usb-xhci-add-xhci_log_ring-trace-events.patch index ccb11efa8a2593..e3e78f38c59d3c 100644 --- a/patches.renesas/0188-usb-xhci-add-xhci_log_ring-trace-events.patch +++ b/patches.renesas/0188-usb-xhci-add-xhci_log_ring-trace-events.patch @@ -21,16 +21,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit b2d6edbb95487e90ffc22072879b0865ccb89a80) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-mem.c | 4 +++ - drivers/usb/host/xhci-ring.c | 5 ++++ - drivers/usb/host/xhci-trace.h | 65 +++++++++++++++++++++++++++++++++++++++++++ + drivers/usb/host/xhci-mem.c | 4 ++ + drivers/usb/host/xhci-ring.c | 5 +++ + drivers/usb/host/xhci-trace.h | 65 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 4f28cfebe302..3fc323b92cc8 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -288,6 +288,8 @@ void xhci_ring_free(struct xhci_hcd *xhci, struct xhci_ring *ring) +@@ -288,6 +288,8 @@ void xhci_ring_free(struct xhci_hcd *xhc if (!ring) return; @@ -39,7 +37,7 @@ index 4f28cfebe302..3fc323b92cc8 100644 if (ring->first_seg) { if (ring->type == TYPE_STREAM) xhci_remove_stream_mapping(ring); -@@ -400,6 +402,7 @@ static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci, +@@ -400,6 +402,7 @@ static struct xhci_ring *xhci_ring_alloc cpu_to_le32(LINK_TOGGLE); } xhci_initialize_ring_info(ring, cycle_state); @@ -47,7 +45,7 @@ index 4f28cfebe302..3fc323b92cc8 100644 return ring; fail: -@@ -504,6 +507,7 @@ int xhci_ring_expansion(struct xhci_hcd *xhci, struct xhci_ring *ring, +@@ -504,6 +507,7 @@ int xhci_ring_expansion(struct xhci_hcd } xhci_link_rings(xhci, ring, first, last, num_segs); @@ -55,11 +53,9 @@ index 4f28cfebe302..3fc323b92cc8 100644 xhci_dbg_trace(xhci, trace_xhci_dbg_ring_expansion, "ring expansion succeed, now has %d segments", ring->num_segs); -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index c8910fd9b34c..28ea69338ed1 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -191,6 +191,9 @@ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) +@@ -191,6 +191,9 @@ static void inc_deq(struct xhci_hcd *xhc ring->deq_seg = ring->deq_seg->next; ring->dequeue = ring->deq_seg->trbs; } @@ -69,7 +65,7 @@ index c8910fd9b34c..28ea69338ed1 100644 return; } -@@ -259,6 +262,8 @@ static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, +@@ -259,6 +262,8 @@ static void inc_enq(struct xhci_hcd *xhc ring->enqueue = ring->enq_seg->trbs; next = ring->enqueue; } @@ -78,11 +74,9 @@ index c8910fd9b34c..28ea69338ed1 100644 } /* -diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h -index f24a45ae153d..3c14b9e27c49 100644 --- a/drivers/usb/host/xhci-trace.h +++ b/drivers/usb/host/xhci-trace.h -@@ -386,6 +386,71 @@ DEFINE_EVENT(xhci_log_slot_ctx, xhci_handle_cmd_set_deq, +@@ -386,6 +386,71 @@ DEFINE_EVENT(xhci_log_slot_ctx, xhci_han TP_ARGS(ctx) ); @@ -154,6 +148,3 @@ index f24a45ae153d..3c14b9e27c49 100644 #endif /* __XHCI_TRACE_H */ /* this part must be outside header guard */ --- -2.13.3 - diff --git a/patches.renesas/0189-usb-xhci-remove-xhci_dbg_ep_rings.patch b/patches.renesas/0189-usb-xhci-remove-xhci_dbg_ep_rings.patch index 54b03f0014f3af..d9dd1cd3959be3 100644 --- a/patches.renesas/0189-usb-xhci-remove-xhci_dbg_ep_rings.patch +++ b/patches.renesas/0189-usb-xhci-remove-xhci_dbg_ep_rings.patch @@ -12,15 +12,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit b7d09fe863561014085503986cb202f4111be347) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 24 ------------------------ - drivers/usb/host/xhci.h | 3 --- + drivers/usb/host/xhci-dbg.c | 24 ------------------------ + drivers/usb/host/xhci.h | 3 --- 2 files changed, 27 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index 4cfdd51340d4..f6d30314348d 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -381,30 +381,6 @@ void xhci_debug_ring(struct xhci_hcd *xhci, struct xhci_ring *ring) +@@ -381,30 +381,6 @@ void xhci_debug_ring(struct xhci_hcd *xh xhci_debug_segment(xhci, seg); } @@ -51,11 +49,9 @@ index 4cfdd51340d4..f6d30314348d 100644 void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst) { u64 addr = erst->erst_dma_addr; -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 9e24d2890b4d..f5ed359ad8e9 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1934,9 +1934,6 @@ void xhci_dbg_ring_ptrs(struct xhci_hcd *xhci, struct xhci_ring *ring); +@@ -1936,9 +1936,6 @@ void xhci_dbg_ring_ptrs(struct xhci_hcd void xhci_dbg_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep); char *xhci_get_slot_state(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); @@ -65,6 +61,3 @@ index 9e24d2890b4d..f5ed359ad8e9 100644 void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *), const char *fmt, ...); --- -2.13.3 - diff --git a/patches.renesas/0190-usb-xhci-make-several-functions-static.patch b/patches.renesas/0190-usb-xhci-make-several-functions-static.patch index f117db15952ce1..a7eb73b19f8a2c 100644 --- a/patches.renesas/0190-usb-xhci-make-several-functions-static.patch +++ b/patches.renesas/0190-usb-xhci-make-several-functions-static.patch @@ -12,15 +12,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 3969384cf88aa2726afb05ad5d1c6ec27e670f07) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.c | 59 +++++++++++++++++++++++++------------------------ - drivers/usb/host/xhci.h | 41 ---------------------------------- + drivers/usb/host/xhci.c | 59 ++++++++++++++++++++++++------------------------ + drivers/usb/host/xhci.h | 41 --------------------------------- 2 files changed, 30 insertions(+), 70 deletions(-) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 388bf2f1b661..7867b2d3b693 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -539,7 +539,7 @@ static int xhci_all_ports_seen_u0(struct xhci_hcd *xhci) +@@ -542,7 +542,7 @@ static int xhci_all_ports_seen_u0(struct * device contexts (?), set up a command ring segment (or two?), create event * ring (one for now). */ @@ -29,7 +27,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); int retval = 0; -@@ -682,7 +682,7 @@ EXPORT_SYMBOL_GPL(xhci_run); +@@ -685,7 +685,7 @@ EXPORT_SYMBOL_GPL(xhci_run); * Disable device contexts, disable IRQs, and quiesce the HC. * Reset the HC, finish any completed transactions, and cleanup memory. */ @@ -38,7 +36,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { u32 temp; struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -743,7 +743,7 @@ void xhci_stop(struct usb_hcd *hcd) +@@ -746,7 +746,7 @@ void xhci_stop(struct usb_hcd *hcd) * * This will only ever be called with the main usb_hcd (the USB3 roothub). */ @@ -47,7 +45,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -1176,7 +1176,7 @@ unsigned int xhci_get_endpoint_address(unsigned int ep_index) +@@ -1182,7 +1182,7 @@ unsigned int xhci_get_endpoint_address(u * endpoint index to create a bitmask. The slot context is bit 0, endpoint 0 is * bit 1, etc. */ @@ -56,7 +54,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { return 1 << (xhci_get_endpoint_index(desc) + 1); } -@@ -1185,7 +1185,7 @@ unsigned int xhci_get_endpoint_flag(struct usb_endpoint_descriptor *desc) +@@ -1191,7 +1191,7 @@ unsigned int xhci_get_endpoint_flag(stru * endpoint index to create a bitmask. The slot context is bit 0, endpoint 0 is * bit 1, etc. */ @@ -65,7 +63,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { return 1 << (ep_index + 1); } -@@ -1329,7 +1329,7 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1335,7 +1335,7 @@ command_cleanup: * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ @@ -74,7 +72,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); unsigned long flags; -@@ -1465,7 +1465,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) +@@ -1471,7 +1471,7 @@ free_priv: * Note that this function can be called in any context, or so says * usb_hcd_unlink_urb() */ @@ -83,7 +81,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { unsigned long flags; int ret, i; -@@ -1582,7 +1582,7 @@ int xhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) +@@ -1588,7 +1588,7 @@ err_giveback: * disabled, so there's no need for mutual exclusion to protect * the xhci->devs[slot_id] structure. */ @@ -92,7 +90,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_host_endpoint *ep) { struct xhci_hcd *xhci; -@@ -1665,7 +1665,7 @@ int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev, +@@ -1671,7 +1671,7 @@ int xhci_drop_endpoint(struct usb_hcd *h * configuration or alt setting is installed in the device, so there's no need * for mutual exclusion to protect the xhci->devs[slot_id] structure. */ @@ -101,7 +99,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_host_endpoint *ep) { struct xhci_hcd *xhci; -@@ -2336,7 +2336,7 @@ static unsigned int xhci_get_ss_bw_consumed(struct xhci_bw_info *ep_bw) +@@ -2342,7 +2342,7 @@ static unsigned int xhci_get_ss_bw_consu } @@ -110,7 +108,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct xhci_bw_info *ep_bw, struct xhci_interval_bw_table *bw_table, struct usb_device *udev, -@@ -2701,7 +2701,7 @@ static void xhci_check_bw_drop_ep_streams(struct xhci_hcd *xhci, +@@ -2707,7 +2707,7 @@ static void xhci_check_bw_drop_ep_stream * else should be touching the xhci->devs[slot_id] structure, so we * don't need to take the xhci->lock for manipulating that. */ @@ -119,7 +117,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { int i; int ret = 0; -@@ -2805,7 +2805,7 @@ int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) +@@ -2811,7 +2811,7 @@ command_cleanup: return ret; } @@ -128,7 +126,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci; struct xhci_virt_device *virt_dev; -@@ -2931,7 +2931,7 @@ void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, +@@ -2937,7 +2937,7 @@ void xhci_cleanup_stalled_ring(struct xh * Context: in_interrupt */ @@ -137,7 +135,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_host_endpoint *ep) { struct xhci_hcd *xhci; -@@ -3107,7 +3107,7 @@ static u32 xhci_calculate_no_streams_bitmask(struct xhci_hcd *xhci, +@@ -3113,7 +3113,7 @@ static u32 xhci_calculate_no_streams_bit * hardware or endpoints claim they can't support the number of requested * stream IDs. */ @@ -146,7 +144,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_host_endpoint **eps, unsigned int num_eps, unsigned int num_streams, gfp_t mem_flags) { -@@ -3271,7 +3271,7 @@ int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3277,7 +3277,7 @@ cleanup: * Modify the endpoint context state, submit a configure endpoint command, * and free all endpoint rings for streams if that completes successfully. */ @@ -155,7 +153,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_host_endpoint **eps, unsigned int num_eps, gfp_t mem_flags) { -@@ -3403,7 +3403,8 @@ void xhci_free_device_endpoint_resources(struct xhci_hcd *xhci, +@@ -3409,7 +3409,8 @@ void xhci_free_device_endpoint_resources * re-initialization during S3/S4. In this case, call xhci_alloc_dev() to * re-allocate the device. */ @@ -165,7 +163,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { int ret, i; unsigned long flags; -@@ -3568,7 +3569,7 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3574,7 +3575,7 @@ command_cleanup: * disconnected, and all traffic has been stopped and the endpoints have been * disabled. Free any HC data structures associated with that device. */ @@ -174,7 +172,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct xhci_virt_device *virt_dev; -@@ -3957,12 +3958,12 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3963,12 +3964,12 @@ out: return ret; } @@ -189,7 +187,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { return xhci_setup_device(hcd, udev, SETUP_CONTEXT_ONLY); } -@@ -4119,7 +4120,7 @@ static int xhci_calculate_usb2_hw_lpm_params(struct usb_device *udev) +@@ -4125,7 +4126,7 @@ static int xhci_calculate_usb2_hw_lpm_pa return PORT_BESLD(besld) | PORT_L1_TIMEOUT(l1) | PORT_HIRDM(hirdm); } @@ -198,7 +196,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_device *udev, int enable) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -4243,7 +4244,7 @@ static int xhci_check_usb2_port_capability(struct xhci_hcd *xhci, int port, +@@ -4249,7 +4250,7 @@ static int xhci_check_usb2_port_capabili return 0; } @@ -207,7 +205,7 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); int portnum = udev->portnum - 1; -@@ -4652,7 +4653,7 @@ static int calculate_max_exit_latency(struct usb_device *udev, +@@ -4658,7 +4659,7 @@ static int calculate_max_exit_latency(st } /* Returns the USB3 hub-encoded value for the U1/U2 timeout. */ @@ -216,7 +214,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_device *udev, enum usb3_link_state state) { struct xhci_hcd *xhci; -@@ -4683,7 +4684,7 @@ int xhci_enable_usb3_lpm_timeout(struct usb_hcd *hcd, +@@ -4689,7 +4690,7 @@ int xhci_enable_usb3_lpm_timeout(struct return hub_encoded_timeout; } @@ -225,7 +223,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_device *udev, enum usb3_link_state state) { struct xhci_hcd *xhci; -@@ -4699,24 +4700,24 @@ int xhci_disable_usb3_lpm_timeout(struct usb_hcd *hcd, +@@ -4705,24 +4706,24 @@ int xhci_disable_usb3_lpm_timeout(struct } #else /* CONFIG_PM */ @@ -254,7 +252,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_device *udev, enum usb3_link_state state) { return 0; -@@ -4728,7 +4729,7 @@ int xhci_disable_usb3_lpm_timeout(struct usb_hcd *hcd, +@@ -4734,7 +4735,7 @@ int xhci_disable_usb3_lpm_timeout(struct /* Once a hub descriptor is fetched for a device, we need to update the xHC's * internal data structures for the device. */ @@ -263,7 +261,7 @@ index 388bf2f1b661..7867b2d3b693 100644 struct usb_tt *tt, gfp_t mem_flags) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -4834,7 +4835,7 @@ int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, +@@ -4840,7 +4841,7 @@ int xhci_update_hub_device(struct usb_hc return ret; } @@ -272,11 +270,9 @@ index 388bf2f1b661..7867b2d3b693 100644 { struct xhci_hcd *xhci = hcd_to_xhci(hcd); /* EHCI mods by the periodic size. Why? */ -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index f5ed359ad8e9..8b360f60d81e 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1947,16 +1947,8 @@ void xhci_copy_ep0_dequeue_into_input_ctx(struct xhci_hcd *xhci, +@@ -1949,16 +1949,8 @@ void xhci_copy_ep0_dequeue_into_input_ct struct usb_device *udev); unsigned int xhci_get_endpoint_index(struct usb_endpoint_descriptor *desc); unsigned int xhci_get_endpoint_address(unsigned int ep_index); @@ -293,7 +289,7 @@ index f5ed359ad8e9..8b360f60d81e 100644 void xhci_update_tt_active_eps(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev, int old_active_eps); -@@ -2015,10 +2007,7 @@ void xhci_quiesce(struct xhci_hcd *xhci); +@@ -2017,10 +2009,7 @@ void xhci_quiesce(struct xhci_hcd *xhci) int xhci_halt(struct xhci_hcd *xhci); int xhci_start(struct xhci_hcd *xhci); int xhci_reset(struct xhci_hcd *xhci); @@ -304,7 +300,7 @@ index f5ed359ad8e9..8b360f60d81e 100644 int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks); void xhci_init_driver(struct hc_driver *drv, const struct xhci_driver_overrides *over); -@@ -2033,36 +2022,13 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated); +@@ -2035,36 +2024,13 @@ int xhci_resume(struct xhci_hcd *xhci, b #define xhci_resume NULL #endif @@ -341,7 +337,7 @@ index f5ed359ad8e9..8b360f60d81e 100644 /* xHCI ring, segment, TRB, and TD functions */ dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment *seg, union xhci_trb *trb); -@@ -2106,9 +2072,6 @@ void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, +@@ -2108,9 +2074,6 @@ void xhci_queue_new_dequeue_state(struct struct xhci_dequeue_state *deq_state); void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int ep_index, struct xhci_td *td); @@ -351,7 +347,7 @@ index f5ed359ad8e9..8b360f60d81e 100644 void xhci_stop_endpoint_command_watchdog(unsigned long arg); void xhci_handle_command_timeout(struct work_struct *work); -@@ -2119,10 +2082,6 @@ void xhci_cleanup_command_queue(struct xhci_hcd *xhci); +@@ -2121,10 +2084,6 @@ void xhci_cleanup_command_queue(struct x /* xHCI roothub code */ void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, int port_id, u32 link_state); @@ -362,6 +358,3 @@ index f5ed359ad8e9..8b360f60d81e 100644 void xhci_test_and_clear_bit(struct xhci_hcd *xhci, __le32 __iomem **port_array, int port_id, u32 port_bit); int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex, --- -2.13.3 - diff --git a/patches.renesas/0191-usb-xhci-remove-error-messages-for-failed-memory-all.patch b/patches.renesas/0191-usb-xhci-remove-error-messages-for-failed-memory-all.patch index e0c607acfe24c8..9be3727b9b2a55 100644 --- a/patches.renesas/0191-usb-xhci-remove-error-messages-for-failed-memory-all.patch +++ b/patches.renesas/0191-usb-xhci-remove-error-messages-for-failed-memory-all.patch @@ -12,17 +12,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 74e0b5649c26428a4b87f496cef0df8307eff364) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 4 +--- - drivers/usb/host/xhci-mem.c | 1 - - drivers/usb/host/xhci-ring.c | 10 ++++------ - drivers/usb/host/xhci.c | 13 +++++++------ + drivers/usb/host/xhci-hub.c | 4 +--- + drivers/usb/host/xhci-mem.c | 1 - + drivers/usb/host/xhci-ring.c | 10 ++++------ + drivers/usb/host/xhci.c | 13 +++++++------ 4 files changed, 12 insertions(+), 16 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index 0b88e76251eb..ab818bd5d0ac 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -392,10 +392,8 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend) +@@ -392,10 +392,8 @@ static int xhci_stop_device(struct xhci_ trace_xhci_stop_device(virt_dev); cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO); @@ -34,11 +32,9 @@ index 0b88e76251eb..ab818bd5d0ac 100644 spin_lock_irqsave(&xhci->lock, flags); for (i = LAST_EP_INDEX; i > 0; i--) { -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 3fc323b92cc8..e2e27a332e9a 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -2619,7 +2619,6 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) +@@ -2619,7 +2619,6 @@ int xhci_mem_init(struct xhci_hcd *xhci, return 0; fail: @@ -46,11 +42,9 @@ index 3fc323b92cc8..e2e27a332e9a 100644 xhci_halt(xhci); xhci_reset(xhci); xhci_mem_cleanup(xhci); -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 28ea69338ed1..deb318e0c679 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -1135,11 +1135,11 @@ static void xhci_handle_cmd_reset_ep(struct xhci_hcd *xhci, int slot_id, +@@ -1138,11 +1138,11 @@ static void xhci_handle_cmd_reset_ep(str */ if (xhci->quirks & XHCI_RESET_EP_QUIRK) { struct xhci_command *command; @@ -65,7 +59,7 @@ index 28ea69338ed1..deb318e0c679 100644 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, "Queueing configure endpoint command"); xhci_queue_configure_endpoint(xhci, command, -@@ -4015,10 +4015,8 @@ void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, +@@ -4018,10 +4018,8 @@ void xhci_queue_new_dequeue_state(struct /* This function gets called from contexts where it cannot sleep */ cmd = xhci_alloc_command(xhci, false, false, GFP_ATOMIC); @@ -77,11 +71,9 @@ index 28ea69338ed1..deb318e0c679 100644 ep->queued_deq_seg = deq_state->new_deq_seg; ep->queued_deq_ptr = deq_state->new_deq_ptr; -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 7867b2d3b693..e0392564ed33 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -661,9 +661,11 @@ int xhci_run(struct usb_hcd *hcd) +@@ -664,9 +664,11 @@ int xhci_run(struct usb_hcd *hcd) if (xhci->quirks & XHCI_NEC_HOST) { struct xhci_command *command; @@ -93,7 +85,7 @@ index 7867b2d3b693..e0392564ed33 100644 xhci_queue_vendor_command(xhci, command, 0, 0, 0, TRB_TYPE(TRB_NEC_GET_FW)); } -@@ -3141,10 +3143,9 @@ static int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3147,10 +3149,9 @@ static int xhci_alloc_streams(struct usb } config_cmd = xhci_alloc_command(xhci, true, true, mem_flags); @@ -106,7 +98,7 @@ index 7867b2d3b693..e0392564ed33 100644 ctrl_ctx = xhci_get_input_control_ctx(config_cmd->in_ctx); if (!ctrl_ctx) { xhci_warn(xhci, "%s: Could not get input context, bad type.\n", -@@ -4750,11 +4751,11 @@ static int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, +@@ -4756,11 +4757,11 @@ static int xhci_update_hub_device(struct xhci_warn(xhci, "Cannot update hub desc for unknown device.\n"); return -EINVAL; } @@ -121,6 +113,3 @@ index 7867b2d3b693..e0392564ed33 100644 ctrl_ctx = xhci_get_input_control_ctx(config_cmd->in_ctx); if (!ctrl_ctx) { xhci_warn(xhci, "%s: Could not get input context, bad type.\n", --- -2.13.3 - diff --git a/patches.renesas/0192-usb-xhci-remove-enq_updates-and-deq_updates-from-rin.patch b/patches.renesas/0192-usb-xhci-remove-enq_updates-and-deq_updates-from-rin.patch index 94ab3faf582c37..433ba580902f98 100644 --- a/patches.renesas/0192-usb-xhci-remove-enq_updates-and-deq_updates-from-rin.patch +++ b/patches.renesas/0192-usb-xhci-remove-enq_updates-and-deq_updates-from-rin.patch @@ -16,17 +16,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit cd12fd9f6d05d1b2b9ff2630802c55b5fd2e534c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 8 -------- - drivers/usb/host/xhci-mem.c | 3 --- - drivers/usb/host/xhci-ring.c | 3 --- - drivers/usb/host/xhci.h | 2 -- + drivers/usb/host/xhci-dbg.c | 8 -------- + drivers/usb/host/xhci-mem.c | 3 --- + drivers/usb/host/xhci-ring.c | 3 --- + drivers/usb/host/xhci.h | 2 -- 4 files changed, 16 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index f6d30314348d..21c563f9a98d 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -347,14 +347,10 @@ void xhci_dbg_ring_ptrs(struct xhci_hcd *xhci, struct xhci_ring *ring) +@@ -347,14 +347,10 @@ void xhci_dbg_ring_ptrs(struct xhci_hcd ring->dequeue, (unsigned long long)xhci_trb_virt_to_dma(ring->deq_seg, ring->dequeue)); @@ -41,7 +39,7 @@ index f6d30314348d..21c563f9a98d 100644 } /** -@@ -373,10 +369,6 @@ void xhci_debug_ring(struct xhci_hcd *xhci, struct xhci_ring *ring) +@@ -373,10 +369,6 @@ void xhci_debug_ring(struct xhci_hcd *xh struct xhci_segment *first_seg = ring->first_seg; xhci_debug_segment(xhci, first_seg); @@ -52,11 +50,9 @@ index f6d30314348d..21c563f9a98d 100644 for (seg = first_seg->next; seg != first_seg; seg = seg->next) xhci_debug_segment(xhci, seg); } -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index e2e27a332e9a..9b37ef13bf3a 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -315,9 +315,6 @@ static void xhci_initialize_ring_info(struct xhci_ring *ring, +@@ -315,9 +315,6 @@ static void xhci_initialize_ring_info(st * handling ring expansion, set the cycle state equal to the old ring. */ ring->cycle_state = cycle_state; @@ -66,11 +62,9 @@ index e2e27a332e9a..9b37ef13bf3a 100644 /* * Each segment has a link TRB, and leave an extra TRB for SW -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index deb318e0c679..b382cf071562 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -167,8 +167,6 @@ static void next_trb(struct xhci_hcd *xhci, +@@ -167,8 +167,6 @@ static void next_trb(struct xhci_hcd *xh */ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) { @@ -79,7 +73,7 @@ index deb318e0c679..b382cf071562 100644 /* event ring doesn't have link trbs, check for last trb */ if (ring->type == TYPE_EVENT) { if (!last_trb_on_seg(ring->deq_seg, ring->dequeue)) { -@@ -226,7 +224,6 @@ static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, +@@ -226,7 +224,6 @@ static void inc_enq(struct xhci_hcd *xhc ring->num_trbs_free--; next = ++(ring->enqueue); @@ -87,8 +81,6 @@ index deb318e0c679..b382cf071562 100644 /* Update the dequeue pointer further if that was a link TRB */ while (trb_is_link(next)) { -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 8b360f60d81e..770947b4e9a8 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1566,10 +1566,8 @@ struct xhci_ring { @@ -102,6 +94,3 @@ index 8b360f60d81e..770947b4e9a8 100644 struct list_head td_list; /* * Write the cycle state into the TRB cycle field to give ownership of --- -2.13.3 - diff --git a/patches.renesas/0193-usb-xhci-remove-ring-debugging-code.patch b/patches.renesas/0193-usb-xhci-remove-ring-debugging-code.patch index d23bd94f8a709b..771c667b964ec8 100644 --- a/patches.renesas/0193-usb-xhci-remove-ring-debugging-code.patch +++ b/patches.renesas/0193-usb-xhci-remove-ring-debugging-code.patch @@ -13,17 +13,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 121dcf11908ecea252776c8268aab117f91aa1f5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 62 -------------------------------------------- - drivers/usb/host/xhci-ring.c | 4 --- - drivers/usb/host/xhci.c | 6 ----- - drivers/usb/host/xhci.h | 3 --- + drivers/usb/host/xhci-dbg.c | 62 ------------------------------------------- + drivers/usb/host/xhci-ring.c | 4 -- + drivers/usb/host/xhci.c | 6 ---- + drivers/usb/host/xhci.h | 3 -- 4 files changed, 75 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index 21c563f9a98d..77f80ceeccab 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -311,68 +311,6 @@ void xhci_debug_trb(struct xhci_hcd *xhci, union xhci_trb *trb) +@@ -311,68 +311,6 @@ void xhci_debug_trb(struct xhci_hcd *xhc } } @@ -92,11 +90,9 @@ index 21c563f9a98d..77f80ceeccab 100644 void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst) { u64 addr = erst->erst_dma_addr; -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index b382cf071562..a2bfd75b1ae6 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2292,8 +2292,6 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2295,8 +2295,6 @@ static int handle_tx_event(struct xhci_h upper_32_bits(le64_to_cpu(event->buffer)), le32_to_cpu(event->transfer_len), le32_to_cpu(event->flags)); @@ -105,7 +101,7 @@ index b382cf071562..a2bfd75b1ae6 100644 return -ENODEV; } -@@ -2314,8 +2312,6 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2317,8 +2315,6 @@ static int handle_tx_event(struct xhci_h upper_32_bits(le64_to_cpu(event->buffer)), le32_to_cpu(event->transfer_len), le32_to_cpu(event->flags)); @@ -114,11 +110,9 @@ index b382cf071562..a2bfd75b1ae6 100644 return -ENODEV; } -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index e0392564ed33..7ac9a84376dc 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -619,16 +619,10 @@ int xhci_run(struct usb_hcd *hcd) +@@ -622,16 +622,10 @@ int xhci_run(struct usb_hcd *hcd) if (ret) return ret; @@ -135,11 +129,9 @@ index e0392564ed33..7ac9a84376dc 100644 temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); temp_64 &= ~ERST_PTR_MASK; xhci_dbg_trace(xhci, trace_xhci_dbg_init, -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 770947b4e9a8..b7338a303e40 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1924,11 +1924,8 @@ void xhci_dbg_regs(struct xhci_hcd *xhci); +@@ -1926,11 +1926,8 @@ void xhci_dbg_regs(struct xhci_hcd *xhci void xhci_print_run_regs(struct xhci_hcd *xhci); void xhci_print_trb_offsets(struct xhci_hcd *xhci, union xhci_trb *trb); void xhci_debug_trb(struct xhci_hcd *xhci, union xhci_trb *trb); @@ -151,6 +143,3 @@ index 770947b4e9a8..b7338a303e40 100644 void xhci_dbg_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep); char *xhci_get_slot_state(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); --- -2.13.3 - diff --git a/patches.renesas/0194-usb-xhci-remove-xhci_debug_trb.patch b/patches.renesas/0194-usb-xhci-remove-xhci_debug_trb.patch index 7b299402b23c4a..99fa7b3fae0d21 100644 --- a/patches.renesas/0194-usb-xhci-remove-xhci_debug_trb.patch +++ b/patches.renesas/0194-usb-xhci-remove-xhci_debug_trb.patch @@ -13,16 +13,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 8c10152ec52b850f9806c5c2f5a93ebe38838959) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 57 -------------------------------------------- - drivers/usb/host/xhci-ring.c | 4 ---- - drivers/usb/host/xhci.h | 2 -- + drivers/usb/host/xhci-dbg.c | 57 ------------------------------------------- + drivers/usb/host/xhci-ring.c | 4 --- + drivers/usb/host/xhci.h | 2 - 3 files changed, 63 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index 77f80ceeccab..dc0194b87b74 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -254,63 +254,6 @@ void xhci_print_registers(struct xhci_hcd *xhci) +@@ -254,63 +254,6 @@ void xhci_print_registers(struct xhci_hc xhci_print_ports(xhci); } @@ -86,11 +84,9 @@ index 77f80ceeccab..dc0194b87b74 100644 void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst) { u64 addr = erst->erst_dma_addr; -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index a2bfd75b1ae6..74bf5c60a260 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2463,10 +2463,6 @@ static int handle_tx_event(struct xhci_hcd *xhci, +@@ -2466,10 +2466,6 @@ static int handle_tx_event(struct xhci_h xhci_warn(xhci, "WARN Event TRB for slot %d ep %d with no TDs queued?\n", TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), ep_index); @@ -101,11 +97,9 @@ index a2bfd75b1ae6..74bf5c60a260 100644 } if (ep->skip) { ep->skip = false; -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index b7338a303e40..ed6d094381af 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1922,8 +1922,6 @@ void xhci_print_ir_set(struct xhci_hcd *xhci, int set_num); +@@ -1924,8 +1924,6 @@ void xhci_print_ir_set(struct xhci_hcd * void xhci_print_registers(struct xhci_hcd *xhci); void xhci_dbg_regs(struct xhci_hcd *xhci); void xhci_print_run_regs(struct xhci_hcd *xhci); @@ -114,6 +108,3 @@ index b7338a303e40..ed6d094381af 100644 void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst); void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci); void xhci_dbg_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep); --- -2.13.3 - diff --git a/patches.renesas/0195-usb-xhci-remove-xhci_dbg_ctx.patch b/patches.renesas/0195-usb-xhci-remove-xhci_dbg_ctx.patch index f380edff1e179b..636a6ab27b0c55 100644 --- a/patches.renesas/0195-usb-xhci-remove-xhci_dbg_ctx.patch +++ b/patches.renesas/0195-usb-xhci-remove-xhci_dbg_ctx.patch @@ -13,16 +13,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit c8844f2ddb0d2bc42a813c567ad4240759f373bd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-dbg.c | 143 -------------------------------------------- - drivers/usb/host/xhci.c | 37 ------------ - drivers/usb/host/xhci.h | 1 - + drivers/usb/host/xhci-dbg.c | 143 -------------------------------------------- + drivers/usb/host/xhci.c | 37 ----------- + drivers/usb/host/xhci.h | 1 3 files changed, 181 deletions(-) -diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c -index dc0194b87b74..2c83b37ae8f2 100644 --- a/drivers/usb/host/xhci-dbg.c +++ b/drivers/usb/host/xhci-dbg.c -@@ -283,19 +283,6 @@ void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci) +@@ -283,19 +283,6 @@ void xhci_dbg_cmd_ptrs(struct xhci_hcd * upper_32_bits(val)); } @@ -42,7 +40,7 @@ index dc0194b87b74..2c83b37ae8f2 100644 char *xhci_get_slot_state(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx) { -@@ -305,136 +292,6 @@ char *xhci_get_slot_state(struct xhci_hcd *xhci, +@@ -305,136 +292,6 @@ char *xhci_get_slot_state(struct xhci_hc return xhci_slot_state_string(state); } @@ -179,11 +177,9 @@ index dc0194b87b74..2c83b37ae8f2 100644 void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *), const char *fmt, ...) { -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 7ac9a84376dc..dd2b42f52d99 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1302,11 +1302,6 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1308,11 +1308,6 @@ static int xhci_check_maxpacket(struct x ctrl_ctx->add_flags = cpu_to_le32(EP0_FLAG); ctrl_ctx->drop_flags = 0; @@ -195,7 +191,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 ret = xhci_configure_endpoint(xhci, urb->dev, command, true, false); -@@ -1854,7 +1849,6 @@ static int xhci_evaluate_context_result(struct xhci_hcd *xhci, +@@ -1860,7 +1855,6 @@ static int xhci_evaluate_context_result( struct usb_device *udev, u32 *cmd_status) { int ret; @@ -203,7 +199,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 switch (*cmd_status) { case COMP_COMMAND_ABORTED: -@@ -1875,7 +1869,6 @@ static int xhci_evaluate_context_result(struct xhci_hcd *xhci, +@@ -1881,7 +1875,6 @@ static int xhci_evaluate_context_result( case COMP_CONTEXT_STATE_ERROR: dev_warn(&udev->dev, "WARN: invalid context state for evaluate context command.\n"); @@ -211,7 +207,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 ret = -EINVAL; break; case COMP_INCOMPATIBLE_DEVICE_ERROR: -@@ -2754,9 +2747,6 @@ static int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) +@@ -2760,9 +2753,6 @@ static int xhci_check_bandwidth(struct u break; } } @@ -221,7 +217,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 ret = xhci_configure_endpoint(xhci, udev, command, false, false); -@@ -2764,10 +2754,6 @@ static int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) +@@ -2770,10 +2760,6 @@ static int xhci_check_bandwidth(struct u /* Callee should call reset_bandwidth() */ goto command_cleanup; @@ -232,7 +228,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 /* Free any rings that were dropped, but not changed. */ for (i = 1; i < 31; i++) { if ((le32_to_cpu(ctrl_ctx->drop_flags) & (1 << (i + 1))) && -@@ -2834,9 +2820,6 @@ static void xhci_setup_input_ctx_for_config_ep(struct xhci_hcd *xhci, +@@ -2840,9 +2826,6 @@ static void xhci_setup_input_ctx_for_con ctrl_ctx->drop_flags = cpu_to_le32(drop_flags); xhci_slot_copy(xhci, in_ctx, out_ctx); ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); @@ -242,7 +238,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 } static void xhci_setup_input_ctx_for_quirk(struct xhci_hcd *xhci, -@@ -3549,9 +3532,6 @@ static int xhci_discover_or_reset_device(struct usb_hcd *hcd, +@@ -3555,9 +3538,6 @@ static int xhci_discover_or_reset_device } /* If necessary, update the number of active TTs on this root port */ xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); @@ -252,7 +248,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 ret = 0; command_cleanup: -@@ -3851,8 +3831,6 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3857,8 +3837,6 @@ static int xhci_setup_device(struct usb_ ctrl_ctx->add_flags = cpu_to_le32(SLOT_FLAG | EP0_FLAG); ctrl_ctx->drop_flags = 0; @@ -261,7 +257,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 trace_xhci_address_ctx(xhci, virt_dev->in_ctx, le32_to_cpu(slot_ctx->dev_info) >> 27); -@@ -3905,8 +3883,6 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3911,8 +3889,6 @@ static int xhci_setup_device(struct usb_ xhci_err(xhci, "ERROR: unexpected setup %s command completion code 0x%x.\n", act, command->status); @@ -270,7 +266,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 trace_xhci_address_ctx(xhci, virt_dev->out_ctx, 1); ret = -EINVAL; break; -@@ -3925,12 +3901,8 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3931,12 +3907,8 @@ static int xhci_setup_device(struct usb_ xhci_dbg_trace(xhci, trace_xhci_dbg_address, "Output Context DMA address = %#08llx", (unsigned long long)virt_dev->out_ctx->dma); @@ -283,7 +279,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 /* * USB core uses address 1 for the roothubs, so we add one to the * address given back to us by the HC. -@@ -4035,14 +4007,10 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci, +@@ -4041,14 +4013,10 @@ static int __maybe_unused xhci_change_ma xhci_dbg_trace(xhci, trace_xhci_dbg_context_change, "Set up evaluate context for LPM MEL change."); @@ -298,7 +294,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 if (!ret) { spin_lock_irqsave(&xhci->lock, flags); -@@ -4810,8 +4778,6 @@ static int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, +@@ -4816,8 +4784,6 @@ static int xhci_update_hub_device(struct xhci_dbg(xhci, "Set up %s for hub device.\n", (xhci->hci_version > 0x95) ? "configure endpoint" : "evaluate context"); @@ -307,7 +303,7 @@ index 7ac9a84376dc..dd2b42f52d99 100644 /* Issue and wait for the configure endpoint or * evaluate context command. -@@ -4823,9 +4789,6 @@ static int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, +@@ -4829,9 +4795,6 @@ static int xhci_update_hub_device(struct ret = xhci_configure_endpoint(xhci, hdev, config_cmd, true, false); @@ -317,11 +313,9 @@ index 7ac9a84376dc..dd2b42f52d99 100644 xhci_free_command(xhci, config_cmd); return ret; } -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index ed6d094381af..064d48afe496 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1924,7 +1924,6 @@ void xhci_dbg_regs(struct xhci_hcd *xhci); +@@ -1926,7 +1926,6 @@ void xhci_dbg_regs(struct xhci_hcd *xhci void xhci_print_run_regs(struct xhci_hcd *xhci); void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst); void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci); @@ -329,6 +323,3 @@ index ed6d094381af..064d48afe496 100644 char *xhci_get_slot_state(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *), --- -2.13.3 - diff --git a/patches.renesas/0196-usb-xhci-fix-link-trb-decoding.patch b/patches.renesas/0196-usb-xhci-fix-link-trb-decoding.patch index c077d4daf1aaba..18298f856d2444 100644 --- a/patches.renesas/0196-usb-xhci-fix-link-trb-decoding.patch +++ b/patches.renesas/0196-usb-xhci-fix-link-trb-decoding.patch @@ -13,14 +13,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 96d9a6eb97d77d6a3768f101f400c42743799bb2) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.h | 12 +++++------- + drivers/usb/host/xhci.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 064d48afe496..fcf72937e5ec 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2136,14 +2136,12 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2138,14 +2138,12 @@ static inline const char *xhci_decode_tr switch (type) { case TRB_LINK: sprintf(str, @@ -40,6 +38,3 @@ index 064d48afe496..fcf72937e5ec 100644 field3 & TRB_CYCLE ? 'C' : 'c'); break; case TRB_TRANSFER: --- -2.13.3 - diff --git a/patches.renesas/0197-usb-xhci-refine-xhci_decode_trb.patch b/patches.renesas/0197-usb-xhci-refine-xhci_decode_trb.patch index 250d17a99b3df0..c6f736b80b830c 100644 --- a/patches.renesas/0197-usb-xhci-refine-xhci_decode_trb.patch +++ b/patches.renesas/0197-usb-xhci-refine-xhci_decode_trb.patch @@ -12,14 +12,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit d2561626b9d126a94753ad6f048114bab702f02f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci.h | 40 ++++++++++++++++++++-------------------- + drivers/usb/host/xhci.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index fcf72937e5ec..914968c662c9 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2138,7 +2138,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2140,7 +2140,7 @@ static inline const char *xhci_decode_tr sprintf(str, "LINK %08x%08x intr %d type '%s' flags %c:%c:%c:%c", field1, field0, GET_INTR_TARGET(field2), @@ -28,7 +26,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & TRB_IOC ? 'I' : 'i', field3 & TRB_CHAIN ? 'C' : 'c', field3 & TRB_TC ? 'T' : 't', -@@ -2159,7 +2159,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2161,7 +2161,7 @@ static inline const char *xhci_decode_tr EVENT_TRB_LEN(field2), TRB_TO_SLOT_ID(field3), /* Macro decrements 1, maybe it shouldn't?!? */ TRB_TO_EP_INDEX(field3) + 1, @@ -37,7 +35,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & EVENT_DATA ? 'E' : 'e', field3 & TRB_CYCLE ? 'C' : 'c'); -@@ -2176,7 +2176,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2178,7 +2178,7 @@ static inline const char *xhci_decode_tr (field1 & 0xff0000) >> 16, TRB_LEN(field2), GET_TD_SIZE(field2), GET_INTR_TARGET(field2), @@ -46,7 +44,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & TRB_IDT ? 'I' : 'i', field3 & TRB_IOC ? 'I' : 'i', field3 & TRB_CYCLE ? 'C' : 'c'); -@@ -2185,7 +2185,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2187,7 +2187,7 @@ static inline const char *xhci_decode_tr sprintf(str, "Buffer %08x%08x length %d TD size %d intr %d type '%s' flags %c:%c:%c:%c:%c:%c:%c", field1, field0, TRB_LEN(field2), GET_TD_SIZE(field2), GET_INTR_TARGET(field2), @@ -55,7 +53,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & TRB_IDT ? 'I' : 'i', field3 & TRB_IOC ? 'I' : 'i', field3 & TRB_CHAIN ? 'C' : 'c', -@@ -2198,7 +2198,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2200,7 +2200,7 @@ static inline const char *xhci_decode_tr sprintf(str, "Buffer %08x%08x length %d TD size %d intr %d type '%s' flags %c:%c:%c:%c", field1, field0, TRB_LEN(field2), GET_TD_SIZE(field2), GET_INTR_TARGET(field2), @@ -64,7 +62,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & TRB_IOC ? 'I' : 'i', field3 & TRB_CHAIN ? 'C' : 'c', field3 & TRB_ENT ? 'E' : 'e', -@@ -2212,7 +2212,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2214,7 +2214,7 @@ static inline const char *xhci_decode_tr "Buffer %08x%08x length %d TD size %d intr %d type '%s' flags %c:%c:%c:%c:%c:%c:%c:%c", field1, field0, TRB_LEN(field2), GET_TD_SIZE(field2), GET_INTR_TARGET(field2), @@ -73,7 +71,7 @@ index fcf72937e5ec..914968c662c9 100644 field3 & TRB_BEI ? 'B' : 'b', field3 & TRB_IDT ? 'I' : 'i', field3 & TRB_IOC ? 'I' : 'i', -@@ -2227,21 +2227,21 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2229,21 +2229,21 @@ static inline const char *xhci_decode_tr case TRB_ENABLE_SLOT: sprintf(str, "%s: flags %c", @@ -98,7 +96,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_SLOT_ID(field3), field3 & TRB_BSR ? 'B' : 'b', -@@ -2250,7 +2250,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2252,7 +2252,7 @@ static inline const char *xhci_decode_tr case TRB_CONFIG_EP: sprintf(str, "%s: ctx %08x%08x slot %d flags %c:%c", @@ -107,7 +105,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_SLOT_ID(field3), field3 & TRB_DC ? 'D' : 'd', -@@ -2259,7 +2259,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2261,7 +2261,7 @@ static inline const char *xhci_decode_tr case TRB_EVAL_CONTEXT: sprintf(str, "%s: ctx %08x%08x slot %d flags %c", @@ -116,7 +114,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_SLOT_ID(field3), field3 & TRB_CYCLE ? 'C' : 'c'); -@@ -2267,7 +2267,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2269,7 +2269,7 @@ static inline const char *xhci_decode_tr case TRB_RESET_EP: sprintf(str, "%s: ctx %08x%08x slot %d ep %d flags %c", @@ -125,7 +123,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_SLOT_ID(field3), /* Macro decrements 1, maybe it shouldn't?!? */ -@@ -2277,7 +2277,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2279,7 +2279,7 @@ static inline const char *xhci_decode_tr case TRB_STOP_RING: sprintf(str, "%s: slot %d sp %d ep %d flags %c", @@ -134,7 +132,7 @@ index fcf72937e5ec..914968c662c9 100644 TRB_TO_SLOT_ID(field3), TRB_TO_SUSPEND_PORT(field3), /* Macro decrements 1, maybe it shouldn't?!? */ -@@ -2287,7 +2287,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2289,7 +2289,7 @@ static inline const char *xhci_decode_tr case TRB_SET_DEQ: sprintf(str, "%s: deq %08x%08x stream %d slot %d ep %d flags %c", @@ -143,7 +141,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_STREAM_ID(field2), TRB_TO_SLOT_ID(field3), -@@ -2298,14 +2298,14 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2300,14 +2300,14 @@ static inline const char *xhci_decode_tr case TRB_RESET_DEV: sprintf(str, "%s: slot %d flags %c", @@ -160,7 +158,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_VF_INTR_TARGET(field2), TRB_TO_VF_ID(field3), -@@ -2314,14 +2314,14 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2316,14 +2316,14 @@ static inline const char *xhci_decode_tr case TRB_SET_LT: sprintf(str, "%s: belt %d flags %c", @@ -177,7 +175,7 @@ index fcf72937e5ec..914968c662c9 100644 field1, field0, TRB_TO_SLOT_ID(field3), TRB_TO_DEV_SPEED(field3), -@@ -2330,7 +2330,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2332,7 +2332,7 @@ static inline const char *xhci_decode_tr case TRB_FORCE_HEADER: sprintf(str, "%s: info %08x%08x%08x pkt type %d roothub port %d flags %c", @@ -186,7 +184,7 @@ index fcf72937e5ec..914968c662c9 100644 field2, field1, field0 & 0xffffffe0, TRB_TO_PACKET_TYPE(field0), TRB_TO_ROOTHUB_PORT(field3), -@@ -2339,7 +2339,7 @@ static inline const char *xhci_decode_trb(u32 field0, u32 field1, u32 field2, +@@ -2341,7 +2341,7 @@ static inline const char *xhci_decode_tr default: sprintf(str, "type '%s' -> raw %08x %08x %08x %08x", @@ -195,6 +193,3 @@ index fcf72937e5ec..914968c662c9 100644 field0, field1, field2, field3); } --- -2.13.3 - diff --git a/patches.renesas/0198-usb-xhci-bInterval-quirk-for-TI-TUSB73x0.patch b/patches.renesas/0198-usb-xhci-bInterval-quirk-for-TI-TUSB73x0.patch index 3f795fe07d7efa..fff638a537a5ca 100644 --- a/patches.renesas/0198-usb-xhci-bInterval-quirk-for-TI-TUSB73x0.patch +++ b/patches.renesas/0198-usb-xhci-bInterval-quirk-for-TI-TUSB73x0.patch @@ -28,14 +28,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 69307ccb9ad7ccb653e332de68effdeaaab6907d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-pci.c | 3 +++ + drivers/usb/host/xhci-pci.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 69864ba38698..8b390cc5167f 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -208,6 +208,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -226,6 +226,9 @@ static void xhci_pci_quirks(struct devic if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241) xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7; @@ -45,6 +43,3 @@ index 69864ba38698..8b390cc5167f 100644 if (xhci->quirks & XHCI_RESET_ON_RESUME) xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, "QUIRK: Resetting on resume"); --- -2.13.3 - diff --git a/patches.renesas/0199-xhci-use-correct-flags-for-spin_lock_irqrestore-when.patch b/patches.renesas/0199-xhci-use-correct-flags-for-spin_lock_irqrestore-when.patch index c4229fbb61fabe..5550476ac763b3 100644 --- a/patches.renesas/0199-xhci-use-correct-flags-for-spin_lock_irqrestore-when.patch +++ b/patches.renesas/0199-xhci-use-correct-flags-for-spin_lock_irqrestore-when.patch @@ -23,14 +23,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit ec1dafe8ec5f846d6b1b280309d8b03d25b096fd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 20 ++++++++++---------- + drivers/usb/host/xhci-hub.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index ab818bd5d0ac..5e3e9d4c6956 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -552,11 +552,10 @@ static __le32 __iomem *xhci_get_port_io_addr(struct usb_hcd *hcd, int index) +@@ -552,11 +552,10 @@ static __le32 __iomem *xhci_get_port_io_ * method. */ static void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, @@ -43,7 +41,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 addr = xhci_get_port_io_addr(hcd, index); temp = readl(addr); -@@ -572,13 +571,13 @@ static void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, +@@ -572,13 +571,13 @@ static void xhci_set_port_power(struct x writel(temp & ~PORT_POWER, addr); } @@ -59,7 +57,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 } static void xhci_port_set_test_mode(struct xhci_hcd *xhci, -@@ -598,7 +597,7 @@ static void xhci_port_set_test_mode(struct xhci_hcd *xhci, +@@ -598,7 +597,7 @@ static void xhci_port_set_test_mode(stru } static int xhci_enter_test_mode(struct xhci_hcd *xhci, @@ -68,7 +66,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 { int i, retval; -@@ -614,10 +613,10 @@ static int xhci_enter_test_mode(struct xhci_hcd *xhci, +@@ -614,10 +613,10 @@ static int xhci_enter_test_mode(struct x xhci_dbg(xhci, "Disable all port (PP = 0)\n"); /* Power off USB3 ports*/ for (i = 0; i < xhci->num_usb3_ports; i++) @@ -81,7 +79,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 /* Stop the controller */ xhci_dbg(xhci, "Stop controller\n"); retval = xhci_halt(xhci); -@@ -1209,7 +1208,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1212,7 +1211,7 @@ int xhci_hub_control(struct usb_hcd *hcd * However, hub_wq will ignore the roothub events until * the roothub is registered. */ @@ -90,7 +88,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 break; case USB_PORT_FEAT_RESET: temp = (temp | PORT_RESET); -@@ -1254,7 +1253,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1257,7 +1256,8 @@ int xhci_hub_control(struct usb_hcd *hcd goto error; if (test_mode > TEST_FORCE_EN || test_mode < TEST_J) goto error; @@ -100,7 +98,7 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 break; default: goto error; -@@ -1322,7 +1322,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -1325,7 +1325,7 @@ int xhci_hub_control(struct usb_hcd *hcd port_array[wIndex], temp); break; case USB_PORT_FEAT_POWER: @@ -109,6 +107,3 @@ index ab818bd5d0ac..5e3e9d4c6956 100644 break; case USB_PORT_FEAT_TEST: retval = xhci_exit_test_mode(xhci); --- -2.13.3 - diff --git a/patches.renesas/0200-usb-host-plat-Enable-xHCI-plat-runtime-PM.patch b/patches.renesas/0200-usb-host-plat-Enable-xHCI-plat-runtime-PM.patch index 4a86a8a98169b1..9bcf411cef6c8b 100644 --- a/patches.renesas/0200-usb-host-plat-Enable-xHCI-plat-runtime-PM.patch +++ b/patches.renesas/0200-usb-host-plat-Enable-xHCI-plat-runtime-PM.patch @@ -18,14 +18,12 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Conflicts: drivers/usb/host/xhci-plat.c --- - drivers/usb/host/xhci-plat.c | 53 ++++++++++++++++++++++++++++++++++++++------ + drivers/usb/host/xhci-plat.c | 53 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 7 deletions(-) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 37f59a975dd9..6046ae3712fa 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -179,9 +179,15 @@ static int xhci_plat_probe(struct platform_device *pdev) +@@ -179,9 +179,15 @@ static int xhci_plat_probe(struct platfo return ret; } @@ -43,7 +41,7 @@ index 37f59a975dd9..6046ae3712fa 100644 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); hcd->regs = devm_ioremap_resource(&pdev->dev, res); -@@ -259,6 +265,13 @@ static int xhci_plat_probe(struct platform_device *pdev) +@@ -259,6 +265,13 @@ static int xhci_plat_probe(struct platfo goto dealloc_usb2_hcd; device_enable_async_suspend(&pdev->dev); @@ -57,7 +55,7 @@ index 37f59a975dd9..6046ae3712fa 100644 return 0; -@@ -279,6 +292,10 @@ static int xhci_plat_probe(struct platform_device *pdev) +@@ -279,6 +292,10 @@ disable_clk: put_hcd: usb_put_hcd(hcd); @@ -68,7 +66,7 @@ index 37f59a975dd9..6046ae3712fa 100644 return ret; } -@@ -300,6 +317,9 @@ static int xhci_plat_remove(struct platform_device *dev) +@@ -300,6 +317,9 @@ static int xhci_plat_remove(struct platf clk_disable_unprepare(clk); usb_put_hcd(hcd); @@ -78,7 +76,7 @@ index 37f59a975dd9..6046ae3712fa 100644 return 0; } -@@ -327,14 +347,33 @@ static int xhci_plat_resume(struct device *dev) +@@ -327,14 +347,33 @@ static int xhci_plat_resume(struct devic return xhci_resume(xhci, 0); } @@ -116,7 +114,7 @@ index 37f59a975dd9..6046ae3712fa 100644 static const struct acpi_device_id usb_xhci_acpi_match[] = { /* XHCI-compliant USB Controller */ -@@ -349,7 +388,7 @@ static struct platform_driver usb_xhci_driver = { +@@ -349,7 +388,7 @@ static struct platform_driver usb_xhci_d .shutdown = usb_hcd_platform_shutdown, .driver = { .name = "xhci-hcd", @@ -125,6 +123,3 @@ index 37f59a975dd9..6046ae3712fa 100644 .of_match_table = of_match_ptr(usb_xhci_of_match), .acpi_match_table = ACPI_PTR(usb_xhci_acpi_match), }, --- -2.13.3 - diff --git a/patches.renesas/0201-usb-host-xhci-plat-enable-clk-in-resume-timing.patch b/patches.renesas/0201-usb-host-xhci-plat-enable-clk-in-resume-timing.patch index 0e6e66687d3c5e..277ee0eb0035a3 100644 --- a/patches.renesas/0201-usb-host-xhci-plat-enable-clk-in-resume-timing.patch +++ b/patches.renesas/0201-usb-host-xhci-plat-enable-clk-in-resume-timing.patch @@ -13,14 +13,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 835e4241e714fbd659838618466766b132823da3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-plat.c | 11 ++++++++++- + drivers/usb/host/xhci-plat.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 6046ae3712fa..89898eae82ae 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -328,6 +328,7 @@ static int xhci_plat_suspend(struct device *dev) +@@ -328,6 +328,7 @@ static int xhci_plat_suspend(struct devi { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); @@ -28,7 +26,7 @@ index 6046ae3712fa..89898eae82ae 100644 /* * xhci_suspend() needs `do_wakeup` to know whether host is allowed -@@ -337,7 +338,12 @@ static int xhci_plat_suspend(struct device *dev) +@@ -337,7 +338,12 @@ static int xhci_plat_suspend(struct devi * reconsider this when xhci_plat_suspend enlarges its scope, e.g., * also applies to runtime suspend. */ @@ -42,7 +40,7 @@ index 6046ae3712fa..89898eae82ae 100644 } static int xhci_plat_resume(struct device *dev) -@@ -345,6 +351,9 @@ static int xhci_plat_resume(struct device *dev) +@@ -345,6 +351,9 @@ static int xhci_plat_resume(struct devic struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); @@ -52,6 +50,3 @@ index 6046ae3712fa..89898eae82ae 100644 return xhci_resume(xhci, 0); } #endif /* CONFIG_PM_SLEEP */ --- -2.13.3 - diff --git a/patches.renesas/0202-usb-host-xhci-plat-add-resume_quirk.patch b/patches.renesas/0202-usb-host-xhci-plat-add-resume_quirk.patch index 1213638996de9f..2b496318143cd5 100644 --- a/patches.renesas/0202-usb-host-xhci-plat-add-resume_quirk.patch +++ b/patches.renesas/0202-usb-host-xhci-plat-add-resume_quirk.patch @@ -12,15 +12,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 98c0a3ffa30c4b389257f7e7ee80ab9e90b78924) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-plat.c | 15 +++++++++++++++ - drivers/usb/host/xhci-plat.h | 1 + + drivers/usb/host/xhci-plat.c | 15 +++++++++++++++ + drivers/usb/host/xhci-plat.h | 1 + 2 files changed, 16 insertions(+) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 89898eae82ae..96fcba325b93 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -54,6 +54,16 @@ static int xhci_priv_init_quirk(struct usb_hcd *hcd) +@@ -54,6 +54,16 @@ static int xhci_priv_init_quirk(struct u return priv->init_quirk(hcd); } @@ -37,7 +35,7 @@ index 89898eae82ae..96fcba325b93 100644 static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci) { /* -@@ -350,10 +360,15 @@ static int xhci_plat_resume(struct device *dev) +@@ -350,10 +360,15 @@ static int xhci_plat_resume(struct devic { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); @@ -53,8 +51,6 @@ index 89898eae82ae..96fcba325b93 100644 return xhci_resume(xhci, 0); } #endif /* CONFIG_PM_SLEEP */ -diff --git a/drivers/usb/host/xhci-plat.h b/drivers/usb/host/xhci-plat.h -index 9af0cb48053f..29b227895b07 100644 --- a/drivers/usb/host/xhci-plat.h +++ b/drivers/usb/host/xhci-plat.h @@ -17,6 +17,7 @@ struct xhci_plat_priv { @@ -65,6 +61,3 @@ index 9af0cb48053f..29b227895b07 100644 }; #define hcd_to_xhci_priv(h) ((struct xhci_plat_priv *)hcd_to_xhci(h)->priv) --- -2.13.3 - diff --git a/patches.renesas/0203-usb-host-xhci-plat-set-resume_quirk-for-R-Car-contro.patch b/patches.renesas/0203-usb-host-xhci-plat-set-resume_quirk-for-R-Car-contro.patch index 830b48cba6e5ea..9df971b703e306 100644 --- a/patches.renesas/0203-usb-host-xhci-plat-set-resume_quirk-for-R-Car-contro.patch +++ b/patches.renesas/0203-usb-host-xhci-plat-set-resume_quirk-for-R-Car-contro.patch @@ -15,16 +15,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 435cc1138ec94af7497ea68c8eb8b0c17cfcf002) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-plat.c | 3 +++ - drivers/usb/host/xhci-rcar.c | 11 +++++++++++ - drivers/usb/host/xhci-rcar.h | 6 ++++++ + drivers/usb/host/xhci-plat.c | 3 +++ + drivers/usb/host/xhci-rcar.c | 11 +++++++++++ + drivers/usb/host/xhci-rcar.h | 6 ++++++ 3 files changed, 20 insertions(+) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 96fcba325b93..8728ce7bf245 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -102,18 +102,21 @@ static const struct xhci_plat_priv xhci_plat_renesas_rcar_gen2 = { +@@ -102,18 +102,21 @@ static const struct xhci_plat_priv xhci_ .firmware_name = XHCI_RCAR_FIRMWARE_NAME_V1, .init_quirk = xhci_rcar_init_quirk, .plat_start = xhci_rcar_start, @@ -46,11 +44,9 @@ index 96fcba325b93..8728ce7bf245 100644 }; static const struct of_device_id usb_xhci_of_match[] = { -diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c -index d28df386e780..07278228214b 100644 --- a/drivers/usb/host/xhci-rcar.c +++ b/drivers/usb/host/xhci-rcar.c -@@ -198,3 +198,14 @@ int xhci_rcar_init_quirk(struct usb_hcd *hcd) +@@ -198,3 +198,14 @@ int xhci_rcar_init_quirk(struct usb_hcd return xhci_rcar_download_firmware(hcd); } @@ -65,8 +61,6 @@ index d28df386e780..07278228214b 100644 + + return ret; +} -diff --git a/drivers/usb/host/xhci-rcar.h b/drivers/usb/host/xhci-rcar.h -index d2ffe20401cf..d247951147a1 100644 --- a/drivers/usb/host/xhci-rcar.h +++ b/drivers/usb/host/xhci-rcar.h @@ -18,6 +18,7 @@ @@ -77,7 +71,7 @@ index d2ffe20401cf..d247951147a1 100644 #else static inline void xhci_rcar_start(struct usb_hcd *hcd) { -@@ -27,5 +28,10 @@ static inline int xhci_rcar_init_quirk(struct usb_hcd *hcd) +@@ -27,5 +28,10 @@ static inline int xhci_rcar_init_quirk(s { return 0; } @@ -88,6 +82,3 @@ index d2ffe20401cf..d247951147a1 100644 +} #endif #endif /* _XHCI_RCAR_H */ --- -2.13.3 - diff --git a/patches.renesas/0204-usb-host-xhci-using-correct-specification-chapter-re.patch b/patches.renesas/0204-usb-host-xhci-using-correct-specification-chapter-re.patch index 08c2a63cc5f0f9..9735f18ab72edc 100644 --- a/patches.renesas/0204-usb-host-xhci-using-correct-specification-chapter-re.patch +++ b/patches.renesas/0204-usb-host-xhci-using-correct-specification-chapter-re.patch @@ -13,14 +13,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 724e882daeb67d58d04a3d0f8cccdd33775bb9bb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-mem.c | 2 +- + drivers/usb/host/xhci-mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 9b37ef13bf3a..87169f5dd4de 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -2434,7 +2434,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) +@@ -2434,7 +2434,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, writel(val, &xhci->op_regs->config_reg); /* @@ -29,6 +27,3 @@ index 9b37ef13bf3a..87169f5dd4de 100644 * "physically contiguous and 64-byte (cache line) aligned". */ xhci->dcbaa = dma_alloc_coherent(dev, sizeof(*xhci->dcbaa), &dma, --- -2.13.3 - diff --git a/patches.renesas/0205-usb-host-xhci-delete-sp_dma_buffers-for-scratchpad.patch b/patches.renesas/0205-usb-host-xhci-delete-sp_dma_buffers-for-scratchpad.patch index 26a3c8c39df5ba..2cf827736c11b9 100644 --- a/patches.renesas/0205-usb-host-xhci-delete-sp_dma_buffers-for-scratchpad.patch +++ b/patches.renesas/0205-usb-host-xhci-delete-sp_dma_buffers-for-scratchpad.patch @@ -12,15 +12,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 314eaf7dec13b975e51c8faf980f7b0f4e20b3e9) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-mem.c | 18 ++++-------------- - drivers/usb/host/xhci.h | 1 - + drivers/usb/host/xhci-mem.c | 18 ++++-------------- + drivers/usb/host/xhci.h | 1 - 2 files changed, 4 insertions(+), 15 deletions(-) -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 87169f5dd4de..ea1308a7b814 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -1721,36 +1721,27 @@ static int scratchpad_alloc(struct xhci_hcd *xhci, gfp_t flags) +@@ -1721,36 +1721,27 @@ static int scratchpad_alloc(struct xhci_ if (!xhci->scratchpad->sp_buffers) goto fail_sp3; @@ -60,7 +58,7 @@ index 87169f5dd4de..ea1308a7b814 100644 kfree(xhci->scratchpad->sp_buffers); fail_sp3: -@@ -1780,9 +1771,8 @@ static void scratchpad_free(struct xhci_hcd *xhci) +@@ -1780,9 +1771,8 @@ static void scratchpad_free(struct xhci_ for (i = 0; i < num_sp; i++) { dma_free_coherent(dev, xhci->page_size, xhci->scratchpad->sp_buffers[i], @@ -71,8 +69,6 @@ index 87169f5dd4de..ea1308a7b814 100644 kfree(xhci->scratchpad->sp_buffers); dma_free_coherent(dev, num_sp * sizeof(u64), xhci->scratchpad->sp_array, -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 914968c662c9..c23d5312c714 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1606,7 +1606,6 @@ struct xhci_scratchpad { @@ -83,6 +79,3 @@ index 914968c662c9..c23d5312c714 100644 }; struct urb_priv { --- -2.13.3 - diff --git a/patches.renesas/0206-usb-host-xhci-remove-ifdef-around-PM-functions.patch b/patches.renesas/0206-usb-host-xhci-remove-ifdef-around-PM-functions.patch index 21489a1b0ef385..60d79cc3409919 100644 --- a/patches.renesas/0206-usb-host-xhci-remove-ifdef-around-PM-functions.patch +++ b/patches.renesas/0206-usb-host-xhci-remove-ifdef-around-PM-functions.patch @@ -19,15 +19,13 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit d852ed98f62e0d44f594adb850b3d6cedb5c9292) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-plat.c | 12 ++++-------- - drivers/usb/host/xhci.h | 5 ----- + drivers/usb/host/xhci-plat.c | 12 ++++-------- + drivers/usb/host/xhci.h | 5 ----- 2 files changed, 4 insertions(+), 13 deletions(-) -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 8728ce7bf245..f6a97f67f5ad 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -336,8 +336,7 @@ static int xhci_plat_remove(struct platform_device *dev) +@@ -336,8 +336,7 @@ static int xhci_plat_remove(struct platf return 0; } @@ -37,7 +35,7 @@ index 8728ce7bf245..f6a97f67f5ad 100644 { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -359,7 +358,7 @@ static int xhci_plat_suspend(struct device *dev) +@@ -359,7 +358,7 @@ static int xhci_plat_suspend(struct devi return ret; } @@ -46,7 +44,7 @@ index 8728ce7bf245..f6a97f67f5ad 100644 { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -374,10 +373,8 @@ static int xhci_plat_resume(struct device *dev) +@@ -374,10 +373,8 @@ static int xhci_plat_resume(struct devic return xhci_resume(xhci, 0); } @@ -58,7 +56,7 @@ index 8728ce7bf245..f6a97f67f5ad 100644 { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); -@@ -385,14 +382,13 @@ static int xhci_plat_runtime_suspend(struct device *dev) +@@ -385,14 +382,13 @@ static int xhci_plat_runtime_suspend(str return xhci_suspend(xhci, true); } @@ -74,11 +72,9 @@ index 8728ce7bf245..f6a97f67f5ad 100644 static const struct dev_pm_ops xhci_plat_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(xhci_plat_suspend, xhci_plat_resume) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index c23d5312c714..88350319b952 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -2005,13 +2005,8 @@ void xhci_init_driver(struct hc_driver *drv, +@@ -2007,13 +2007,8 @@ void xhci_init_driver(struct hc_driver * int xhci_disable_slot(struct xhci_hcd *xhci, struct xhci_command *command, u32 slot_id); @@ -92,6 +88,3 @@ index c23d5312c714..88350319b952 100644 irqreturn_t xhci_irq(struct usb_hcd *hcd); irqreturn_t xhci_msi_irq(int irq, void *hcd); --- -2.13.3 - diff --git a/patches.renesas/0207-media-v4l-Add-metadata-buffer-type-and-format.patch b/patches.renesas/0207-media-v4l-Add-metadata-buffer-type-and-format.patch index cdd036c1e9e451..019841fc662e66 100644 --- a/patches.renesas/0207-media-v4l-Add-metadata-buffer-type-and-format.patch +++ b/patches.renesas/0207-media-v4l-Add-metadata-buffer-type-and-format.patch @@ -18,23 +18,21 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit fb9ffa6a7f7ef39cc0f14f417b66411be5492512) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/media/uapi/v4l/buffer.rst | 3 ++ - Documentation/media/uapi/v4l/dev-meta.rst | 58 ++++++++++++++++++++++++ - Documentation/media/uapi/v4l/devices.rst | 1 + - Documentation/media/uapi/v4l/vidioc-querycap.rst | 3 ++ - Documentation/media/videodev2.h.rst.exceptions | 2 + - drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 19 ++++++++ - drivers/media/v4l2-core/v4l2-dev.c | 16 ++++--- - drivers/media/v4l2-core/v4l2-ioctl.c | 34 ++++++++++++++ - drivers/media/v4l2-core/videobuf2-v4l2.c | 3 ++ - include/media/v4l2-ioctl.h | 17 +++++++ - include/trace/events/v4l2.h | 1 + - include/uapi/linux/videodev2.h | 13 ++++++ + Documentation/media/uapi/v4l/buffer.rst | 3 + + Documentation/media/uapi/v4l/dev-meta.rst | 58 +++++++++++++++++++++++ + Documentation/media/uapi/v4l/devices.rst | 1 + Documentation/media/uapi/v4l/vidioc-querycap.rst | 3 + + Documentation/media/videodev2.h.rst.exceptions | 2 + drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 19 +++++++ + drivers/media/v4l2-core/v4l2-dev.c | 16 +++--- + drivers/media/v4l2-core/v4l2-ioctl.c | 34 +++++++++++++ + drivers/media/v4l2-core/videobuf2-v4l2.c | 3 + + include/media/v4l2-ioctl.h | 17 ++++++ + include/trace/events/v4l2.h | 1 + include/uapi/linux/videodev2.h | 13 +++++ 12 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 Documentation/media/uapi/v4l/dev-meta.rst -diff --git a/Documentation/media/uapi/v4l/buffer.rst b/Documentation/media/uapi/v4l/buffer.rst -index ac58966ccb9b..537fd65daffd 100644 --- a/Documentation/media/uapi/v4l/buffer.rst +++ b/Documentation/media/uapi/v4l/buffer.rst @@ -330,6 +330,9 @@ enum v4l2_buf_type @@ -47,9 +45,6 @@ index ac58966ccb9b..537fd65daffd 100644 -diff --git a/Documentation/media/uapi/v4l/dev-meta.rst b/Documentation/media/uapi/v4l/dev-meta.rst -new file mode 100644 -index 000000000000..62518adfe37b --- /dev/null +++ b/Documentation/media/uapi/v4l/dev-meta.rst @@ -0,0 +1,58 @@ @@ -111,8 +106,6 @@ index 000000000000..62518adfe37b + - ``buffersize`` + - Maximum buffer size in bytes required for data. The value is set by the + driver. -diff --git a/Documentation/media/uapi/v4l/devices.rst b/Documentation/media/uapi/v4l/devices.rst -index 5c3d6c29e12c..fb7f8c26cf09 100644 --- a/Documentation/media/uapi/v4l/devices.rst +++ b/Documentation/media/uapi/v4l/devices.rst @@ -25,3 +25,4 @@ Interfaces @@ -120,11 +113,9 @@ index 5c3d6c29e12c..fb7f8c26cf09 100644 dev-event dev-subdev + dev-meta -diff --git a/Documentation/media/uapi/v4l/vidioc-querycap.rst b/Documentation/media/uapi/v4l/vidioc-querycap.rst -index 165d8314327e..12e0d9a63cd8 100644 --- a/Documentation/media/uapi/v4l/vidioc-querycap.rst +++ b/Documentation/media/uapi/v4l/vidioc-querycap.rst -@@ -236,6 +236,9 @@ specification the ioctl returns an ``EINVAL`` error code. +@@ -236,6 +236,9 @@ specification the ioctl returns an ``EIN * - ``V4L2_CAP_SDR_OUTPUT`` - 0x00400000 - The device supports the :ref:`SDR Output <sdr>` interface. @@ -134,11 +125,9 @@ index 165d8314327e..12e0d9a63cd8 100644 * - ``V4L2_CAP_READWRITE`` - 0x01000000 - The device supports the :ref:`read() <rw>` and/or -diff --git a/Documentation/media/videodev2.h.rst.exceptions b/Documentation/media/videodev2.h.rst.exceptions -index 1d3f27d922b2..20f72a201ca5 100644 --- a/Documentation/media/videodev2.h.rst.exceptions +++ b/Documentation/media/videodev2.h.rst.exceptions -@@ -27,6 +27,7 @@ replace symbol V4L2_FIELD_SEQ_TB :c:type:`v4l2_field` +@@ -27,6 +27,7 @@ replace symbol V4L2_FIELD_SEQ_TB :c:type replace symbol V4L2_FIELD_TOP :c:type:`v4l2_field` # Documented enum v4l2_buf_type @@ -146,7 +135,7 @@ index 1d3f27d922b2..20f72a201ca5 100644 replace symbol V4L2_BUF_TYPE_SDR_CAPTURE :c:type:`v4l2_buf_type` replace symbol V4L2_BUF_TYPE_SDR_OUTPUT :c:type:`v4l2_buf_type` replace symbol V4L2_BUF_TYPE_SLICED_VBI_CAPTURE :c:type:`v4l2_buf_type` -@@ -148,6 +149,7 @@ replace define V4L2_CAP_MODULATOR device-capabilities +@@ -148,6 +149,7 @@ replace define V4L2_CAP_MODULATOR device replace define V4L2_CAP_SDR_CAPTURE device-capabilities replace define V4L2_CAP_EXT_PIX_FORMAT device-capabilities replace define V4L2_CAP_SDR_OUTPUT device-capabilities @@ -154,11 +143,9 @@ index 1d3f27d922b2..20f72a201ca5 100644 replace define V4L2_CAP_READWRITE device-capabilities replace define V4L2_CAP_ASYNCIO device-capabilities replace define V4L2_CAP_STREAMING device-capabilities -diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c -index bacecbd68a6d..da2d836e8887 100644 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c -@@ -161,6 +161,20 @@ static inline int put_v4l2_sdr_format(struct v4l2_sdr_format *kp, struct v4l2_sd +@@ -161,6 +161,20 @@ static inline int put_v4l2_sdr_format(st return 0; } @@ -187,7 +174,7 @@ index bacecbd68a6d..da2d836e8887 100644 __u8 raw_data[200]; /* user-defined */ } fmt; }; -@@ -216,6 +231,8 @@ static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us +@@ -216,6 +231,8 @@ static int __get_v4l2_format32(struct v4 case V4L2_BUF_TYPE_SDR_CAPTURE: case V4L2_BUF_TYPE_SDR_OUTPUT: return get_v4l2_sdr_format(&kp->fmt.sdr, &up->fmt.sdr); @@ -196,7 +183,7 @@ index bacecbd68a6d..da2d836e8887 100644 default: pr_info("compat_ioctl32: unexpected VIDIOC_FMT type %d\n", kp->type); -@@ -263,6 +280,8 @@ static int __put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us +@@ -263,6 +280,8 @@ static int __put_v4l2_format32(struct v4 case V4L2_BUF_TYPE_SDR_CAPTURE: case V4L2_BUF_TYPE_SDR_OUTPUT: return put_v4l2_sdr_format(&kp->fmt.sdr, &up->fmt.sdr); @@ -205,11 +192,9 @@ index bacecbd68a6d..da2d836e8887 100644 default: pr_info("compat_ioctl32: unexpected VIDIOC_FMT type %d\n", kp->type); -diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c -index 8be561ab2615..6541d5597966 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c -@@ -575,30 +575,34 @@ static void determine_valid_ioctls(struct video_device *vdev) +@@ -575,30 +575,34 @@ static void determine_valid_ioctls(struc set_bit(_IOC_NR(VIDIOC_ENUM_FREQ_BANDS), valid_ioctls); if (is_vid || is_tch) { @@ -249,7 +234,7 @@ index 8be561ab2615..6541d5597966 100644 (is_tx && (ops->vidioc_try_fmt_vid_out || ops->vidioc_try_fmt_vid_out_mplane || ops->vidioc_try_fmt_vid_out_overlay))) -@@ -664,7 +668,7 @@ static void determine_valid_ioctls(struct video_device *vdev) +@@ -664,7 +668,7 @@ static void determine_valid_ioctls(struc } if (is_vid || is_vbi || is_sdr || is_tch) { @@ -258,8 +243,6 @@ index 8be561ab2615..6541d5597966 100644 SET_VALID_IOCTL(ops, VIDIOC_REQBUFS, vidioc_reqbufs); SET_VALID_IOCTL(ops, VIDIOC_QUERYBUF, vidioc_querybuf); SET_VALID_IOCTL(ops, VIDIOC_QBUF, vidioc_qbuf); -diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 5c49351af7ae..b1e4fff556f0 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -155,6 +155,7 @@ const char *v4l2_type_names[] = { @@ -270,7 +253,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 }; EXPORT_SYMBOL(v4l2_type_names); -@@ -249,6 +250,7 @@ static void v4l_print_format(const void *arg, bool write_only) +@@ -249,6 +250,7 @@ static void v4l_print_format(const void const struct v4l2_sliced_vbi_format *sliced; const struct v4l2_window *win; const struct v4l2_sdr_format *sdr; @@ -278,7 +261,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 unsigned i; pr_cont("type=%s", prt_names(p->type, v4l2_type_names)); -@@ -336,6 +338,15 @@ static void v4l_print_format(const void *arg, bool write_only) +@@ -336,6 +338,15 @@ static void v4l_print_format(const void (sdr->pixelformat >> 16) & 0xff, (sdr->pixelformat >> 24) & 0xff); break; @@ -294,7 +277,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 } } -@@ -982,6 +993,10 @@ static int check_fmt(struct file *file, enum v4l2_buf_type type) +@@ -982,6 +993,10 @@ static int check_fmt(struct file *file, if (is_sdr && is_tx && ops->vidioc_g_fmt_sdr_out) return 0; break; @@ -305,7 +288,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 default: break; } -@@ -1357,6 +1372,11 @@ static int v4l_enum_fmt(const struct v4l2_ioctl_ops *ops, +@@ -1357,6 +1372,11 @@ static int v4l_enum_fmt(const struct v4l break; ret = ops->vidioc_enum_fmt_sdr_out(file, fh, arg); break; @@ -317,7 +300,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 } if (ret == 0) v4l_fill_fmtdesc(p); -@@ -1456,6 +1476,10 @@ static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops, +@@ -1456,6 +1476,10 @@ static int v4l_g_fmt(const struct v4l2_i if (unlikely(!is_tx || !is_sdr || !ops->vidioc_g_fmt_sdr_out)) break; return ops->vidioc_g_fmt_sdr_out(file, fh, arg); @@ -328,7 +311,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 } return -EINVAL; } -@@ -1561,6 +1585,11 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops, +@@ -1561,6 +1585,11 @@ static int v4l_s_fmt(const struct v4l2_i break; CLEAR_AFTER_FIELD(p, fmt.sdr); return ops->vidioc_s_fmt_sdr_out(file, fh, arg); @@ -340,7 +323,7 @@ index 5c49351af7ae..b1e4fff556f0 100644 } return -EINVAL; } -@@ -1646,6 +1675,11 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops, +@@ -1646,6 +1675,11 @@ static int v4l_try_fmt(const struct v4l2 break; CLEAR_AFTER_FIELD(p, fmt.sdr); return ops->vidioc_try_fmt_sdr_out(file, fh, arg); @@ -352,11 +335,9 @@ index 5c49351af7ae..b1e4fff556f0 100644 } return -EINVAL; } -diff --git a/drivers/media/v4l2-core/videobuf2-v4l2.c b/drivers/media/v4l2-core/videobuf2-v4l2.c -index 52ef8833f6b6..12e12f932b6b 100644 --- a/drivers/media/v4l2-core/videobuf2-v4l2.c +++ b/drivers/media/v4l2-core/videobuf2-v4l2.c -@@ -546,6 +546,9 @@ int vb2_create_bufs(struct vb2_queue *q, struct v4l2_create_buffers *create) +@@ -546,6 +546,9 @@ int vb2_create_bufs(struct vb2_queue *q, case V4L2_BUF_TYPE_SDR_OUTPUT: requested_sizes[0] = f->fmt.sdr.buffersize; break; @@ -366,8 +347,6 @@ index 52ef8833f6b6..12e12f932b6b 100644 default: return -EINVAL; } -diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h -index 574ff2ae94be..b6433cc5964b 100644 --- a/include/media/v4l2-ioctl.h +++ b/include/media/v4l2-ioctl.h @@ -43,6 +43,9 @@ struct v4l2_fh; @@ -443,8 +422,6 @@ index 574ff2ae94be..b6433cc5964b 100644 /* Buffer handlers */ int (*vidioc_reqbufs)(struct file *file, void *fh, -diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h -index ee7754c6e4a1..b3a85b3df53e 100644 --- a/include/trace/events/v4l2.h +++ b/include/trace/events/v4l2.h @@ -29,6 +29,7 @@ @@ -455,8 +432,6 @@ index ee7754c6e4a1..b3a85b3df53e 100644 EMe(V4L2_BUF_TYPE_PRIVATE, "PRIVATE" ) SHOW_TYPE -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 803e58c1c0b1..2e0c8a9df8af 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -143,6 +143,7 @@ enum v4l2_buf_type { @@ -500,6 +475,3 @@ index 803e58c1c0b1..2e0c8a9df8af 100644 __u8 raw_data[200]; /* user-defined */ } fmt; }; --- -2.13.3 - diff --git a/patches.renesas/0208-media-v4l-vsp1-Add-histogram-support.patch b/patches.renesas/0208-media-v4l-vsp1-Add-histogram-support.patch index 2d14d8099ab6ae..a9cd9e4f6d5cfc 100644 --- a/patches.renesas/0208-media-v4l-vsp1-Add-histogram-support.patch +++ b/patches.renesas/0208-media-v4l-vsp1-Add-histogram-support.patch @@ -11,16 +11,14 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 99362e32332b5ce591a67a632073668754f28b0d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/Kconfig | 1 + - drivers/media/platform/vsp1/Makefile | 1 + - drivers/media/platform/vsp1/vsp1_histo.c | 646 +++++++++++++++++++++++++++++++ - drivers/media/platform/vsp1/vsp1_histo.h | 84 ++++ + drivers/media/platform/Kconfig | 1 + drivers/media/platform/vsp1/Makefile | 1 + drivers/media/platform/vsp1/vsp1_histo.c | 646 +++++++++++++++++++++++++++++++ + drivers/media/platform/vsp1/vsp1_histo.h | 84 ++++ 4 files changed, 732 insertions(+) create mode 100644 drivers/media/platform/vsp1/vsp1_histo.c create mode 100644 drivers/media/platform/vsp1/vsp1_histo.h -diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig -index f898862e2c69..d5f9e18b09af 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -334,6 +334,7 @@ config VIDEO_RENESAS_VSP1 @@ -31,11 +29,9 @@ index f898862e2c69..d5f9e18b09af 100644 ---help--- This is a V4L2 driver for the Renesas VSP1 video processing engine. -diff --git a/drivers/media/platform/vsp1/Makefile b/drivers/media/platform/vsp1/Makefile -index 1328e1bd2143..c559536f7867 100644 --- a/drivers/media/platform/vsp1/Makefile +++ b/drivers/media/platform/vsp1/Makefile -@@ -3,6 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_video.o +@@ -3,6 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_ vsp1-y += vsp1_rpf.o vsp1_rwpf.o vsp1_wpf.o vsp1-y += vsp1_clu.o vsp1_hsit.o vsp1_lut.o vsp1-y += vsp1_bru.o vsp1_sru.o vsp1_uds.o @@ -43,9 +39,6 @@ index 1328e1bd2143..c559536f7867 100644 vsp1-y += vsp1_lif.o obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1.o -diff --git a/drivers/media/platform/vsp1/vsp1_histo.c b/drivers/media/platform/vsp1/vsp1_histo.c -new file mode 100644 -index 000000000000..afab77cf4fa5 --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_histo.c @@ -0,0 +1,646 @@ @@ -695,9 +688,6 @@ index 000000000000..afab77cf4fa5 + vsp1_histogram_cleanup(histo); + return ret; +} -diff --git a/drivers/media/platform/vsp1/vsp1_histo.h b/drivers/media/platform/vsp1/vsp1_histo.h -new file mode 100644 -index 000000000000..af2874f6031d --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_histo.h @@ -0,0 +1,84 @@ @@ -785,6 +775,3 @@ index 000000000000..af2874f6031d + size_t size); + +#endif /* __VSP1_HISTO_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0209-media-v4l-vsp1-Support-histogram-generators-in-pipel.patch b/patches.renesas/0209-media-v4l-vsp1-Support-histogram-generators-in-pipel.patch index 607c8020e52575..b705c12084648a 100644 --- a/patches.renesas/0209-media-v4l-vsp1-Support-histogram-generators-in-pipel.patch +++ b/patches.renesas/0209-media-v4l-vsp1-Support-histogram-generators-in-pipel.patch @@ -15,19 +15,17 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit c8663c8e15c95a351296d9d284b0cad5d373234c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_drm.c | 2 +- - drivers/media/platform/vsp1/vsp1_drv.c | 4 +- - drivers/media/platform/vsp1/vsp1_entity.c | 124 ++++++++++++++++++++++++++---- - drivers/media/platform/vsp1/vsp1_entity.h | 8 +- - drivers/media/platform/vsp1/vsp1_pipe.c | 6 +- - drivers/media/platform/vsp1/vsp1_video.c | 18 ++--- + drivers/media/platform/vsp1/vsp1_drm.c | 2 + drivers/media/platform/vsp1/vsp1_drv.c | 4 + drivers/media/platform/vsp1/vsp1_entity.c | 124 ++++++++++++++++++++++++++---- + drivers/media/platform/vsp1/vsp1_entity.h | 8 + + drivers/media/platform/vsp1/vsp1_pipe.c | 6 - + drivers/media/platform/vsp1/vsp1_video.c | 18 ++-- 6 files changed, 134 insertions(+), 28 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c -index 6e161347088e..14215051cef4 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c -@@ -496,7 +496,7 @@ void vsp1_du_atomic_flush(struct device *dev) +@@ -496,7 +496,7 @@ void vsp1_du_atomic_flush(struct device } } @@ -36,11 +34,9 @@ index 6e161347088e..14215051cef4 100644 if (entity->ops->configure) { entity->ops->configure(entity, pipe, dl, -diff --git a/drivers/media/platform/vsp1/vsp1_drv.c b/drivers/media/platform/vsp1/vsp1_drv.c -index 8d1e61b353bb..83a6669a6328 100644 --- a/drivers/media/platform/vsp1/vsp1_drv.c +++ b/drivers/media/platform/vsp1/vsp1_drv.c -@@ -105,7 +105,9 @@ static int vsp1_create_sink_links(struct vsp1_device *vsp1, +@@ -105,7 +105,9 @@ static int vsp1_create_sink_links(struct if (source->type == sink->type) continue; @@ -51,8 +47,6 @@ index 8d1e61b353bb..83a6669a6328 100644 source->type == VSP1_ENTITY_WPF) continue; -diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c -index 12eca5660d6e..88a2aae182ba 100644 --- a/drivers/media/platform/vsp1/vsp1_entity.c +++ b/drivers/media/platform/vsp1/vsp1_entity.c @@ -21,6 +21,8 @@ @@ -64,7 +58,7 @@ index 12eca5660d6e..88a2aae182ba 100644 static inline struct vsp1_entity * media_entity_to_vsp1_entity(struct media_entity *entity) -@@ -28,11 +30,14 @@ media_entity_to_vsp1_entity(struct media_entity *entity) +@@ -28,11 +30,14 @@ media_entity_to_vsp1_entity(struct media return container_of(entity, struct vsp1_entity, subdev.entity); } @@ -80,7 +74,7 @@ index 12eca5660d6e..88a2aae182ba 100644 if (source->route->reg == 0) return; -@@ -283,25 +288,32 @@ int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev, +@@ -283,25 +288,32 @@ done: * Media Operations */ @@ -124,7 +118,7 @@ index 12eca5660d6e..88a2aae182ba 100644 } else { source->sink = NULL; source->sink_pad = 0; -@@ -310,6 +322,85 @@ int vsp1_entity_link_setup(struct media_entity *entity, +@@ -310,6 +322,85 @@ int vsp1_entity_link_setup(struct media_ return 0; } @@ -210,7 +204,7 @@ index 12eca5660d6e..88a2aae182ba 100644 /* ----------------------------------------------------------------------------- * Initialization */ -@@ -388,7 +479,14 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity, +@@ -388,7 +479,14 @@ int vsp1_entity_init(struct vsp1_device for (i = 0; i < num_pads - 1; ++i) entity->pads[i].flags = MEDIA_PAD_FL_SINK; @@ -226,8 +220,6 @@ index 12eca5660d6e..88a2aae182ba 100644 /* Initialize the media entity. */ ret = media_entity_pads_init(&entity->subdev.entity, num_pads, -diff --git a/drivers/media/platform/vsp1/vsp1_entity.h b/drivers/media/platform/vsp1/vsp1_entity.h -index 901146f807b9..c169a060b6d2 100644 --- a/drivers/media/platform/vsp1/vsp1_entity.h +++ b/drivers/media/platform/vsp1/vsp1_entity.h @@ -25,6 +25,8 @@ struct vsp1_pipeline; @@ -247,7 +239,7 @@ index 901146f807b9..c169a060b6d2 100644 struct media_entity *sink; unsigned int sink_pad; -@@ -142,9 +145,12 @@ vsp1_entity_get_pad_selection(struct vsp1_entity *entity, +@@ -142,9 +145,12 @@ vsp1_entity_get_pad_selection(struct vsp int vsp1_entity_init_cfg(struct v4l2_subdev *subdev, struct v4l2_subdev_pad_config *cfg); @@ -261,11 +253,9 @@ index 901146f807b9..c169a060b6d2 100644 int vsp1_subdev_get_pad_format(struct v4l2_subdev *subdev, struct v4l2_subdev_pad_config *cfg, struct v4l2_subdev_format *fmt); -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c -index 35364f594e19..b5a765cbfc86 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.c +++ b/drivers/media/platform/vsp1/vsp1_pipe.c -@@ -252,6 +252,7 @@ bool vsp1_pipeline_stopped(struct vsp1_pipeline *pipe) +@@ -252,6 +252,7 @@ bool vsp1_pipeline_stopped(struct vsp1_p int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) { @@ -273,7 +263,7 @@ index 35364f594e19..b5a765cbfc86 100644 struct vsp1_entity *entity; unsigned long flags; int ret; -@@ -261,8 +262,7 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) +@@ -261,8 +262,7 @@ int vsp1_pipeline_stop(struct vsp1_pipel * When using display lists in continuous frame mode the only * way to stop the pipeline is to reset the hardware. */ @@ -283,7 +273,7 @@ index 35364f594e19..b5a765cbfc86 100644 if (ret == 0) { spin_lock_irqsave(&pipe->irqlock, flags); pipe->state = VSP1_PIPELINE_STOPPED; -@@ -282,7 +282,7 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) +@@ -282,7 +282,7 @@ int vsp1_pipeline_stop(struct vsp1_pipel list_for_each_entry(entity, &pipe->entities, list_pipe) { if (entity->route && entity->route->reg) @@ -292,11 +282,9 @@ index 35364f594e19..b5a765cbfc86 100644 VI6_DPR_NODE_UNUSED); } -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index 79f48a025546..1a98bc91d1e2 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c -@@ -486,7 +486,12 @@ static int vsp1_video_pipeline_build_branch(struct vsp1_pipeline *pipe, +@@ -486,7 +486,12 @@ static int vsp1_video_pipeline_build_bra if (ret < 0) return ret; @@ -310,7 +298,7 @@ index 79f48a025546..1a98bc91d1e2 100644 while (1) { if (pad == NULL) { -@@ -539,14 +544,9 @@ static int vsp1_video_pipeline_build_branch(struct vsp1_pipeline *pipe, +@@ -539,14 +544,9 @@ static int vsp1_video_pipeline_build_bra : &input->entity; } @@ -327,7 +315,7 @@ index 79f48a025546..1a98bc91d1e2 100644 } /* The last entity must be the output WPF. */ -@@ -800,7 +800,7 @@ static int vsp1_video_setup_pipeline(struct vsp1_pipeline *pipe) +@@ -800,7 +800,7 @@ static int vsp1_video_setup_pipeline(str } list_for_each_entry(entity, &pipe->entities, list_pipe) { @@ -336,6 +324,3 @@ index 79f48a025546..1a98bc91d1e2 100644 if (entity->ops->configure) entity->ops->configure(entity, pipe, pipe->dl, --- -2.13.3 - diff --git a/patches.renesas/0210-media-v4l-vsp1-Fix-HGO-and-HGT-routing-register-addr.patch b/patches.renesas/0210-media-v4l-vsp1-Fix-HGO-and-HGT-routing-register-addr.patch index d830c9668d7a52..ed9d6279ae8f1f 100644 --- a/patches.renesas/0210-media-v4l-vsp1-Fix-HGO-and-HGT-routing-register-addr.patch +++ b/patches.renesas/0210-media-v4l-vsp1-Fix-HGO-and-HGT-routing-register-addr.patch @@ -11,11 +11,9 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 98eee2550f7b5e800641e90469f400a8c06fde73) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_regs.h | 4 ++-- + drivers/media/platform/vsp1/vsp1_regs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/media/platform/vsp1/vsp1_regs.h b/drivers/media/platform/vsp1/vsp1_regs.h -index 47b1dee044fb..61369e267667 100644 --- a/drivers/media/platform/vsp1/vsp1_regs.h +++ b/drivers/media/platform/vsp1/vsp1_regs.h @@ -328,8 +328,8 @@ @@ -29,6 +27,3 @@ index 47b1dee044fb..61369e267667 100644 #define VI6_DPR_SMPPT_TGW_MASK (7 << 8) #define VI6_DPR_SMPPT_TGW_SHIFT 8 #define VI6_DPR_SMPPT_PT_MASK (0x3f << 0) --- -2.13.3 - diff --git a/patches.renesas/0211-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-1.patch b/patches.renesas/0211-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-1.patch index 56f1870b08515f..3ffc34d2dbdae1 100644 --- a/patches.renesas/0211-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-1.patch +++ b/patches.renesas/0211-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-1.patch @@ -13,18 +13,15 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 14d66538716574f8899b22bff24a68301e65f08d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/media/uapi/v4l/meta-formats.rst | 15 ++ - .../media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst | 168 +++++++++++++++++++++ - Documentation/media/uapi/v4l/pixfmt.rst | 1 + - drivers/media/v4l2-core/v4l2-ioctl.c | 1 + - include/uapi/linux/videodev2.h | 3 + + Documentation/media/uapi/v4l/meta-formats.rst | 15 + + Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst | 168 ++++++++++++++++++ + Documentation/media/uapi/v4l/pixfmt.rst | 1 + drivers/media/v4l2-core/v4l2-ioctl.c | 1 + include/uapi/linux/videodev2.h | 3 5 files changed, 188 insertions(+) create mode 100644 Documentation/media/uapi/v4l/meta-formats.rst create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst -diff --git a/Documentation/media/uapi/v4l/meta-formats.rst b/Documentation/media/uapi/v4l/meta-formats.rst -new file mode 100644 -index 000000000000..05ab91e12f10 --- /dev/null +++ b/Documentation/media/uapi/v4l/meta-formats.rst @@ -0,0 +1,15 @@ @@ -43,9 +40,6 @@ index 000000000000..05ab91e12f10 + :maxdepth: 1 + + pixfmt-meta-vsp1-hgo -diff --git a/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst -new file mode 100644 -index 000000000000..8d37bb313493 --- /dev/null +++ b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst @@ -0,0 +1,168 @@ @@ -217,21 +211,17 @@ index 000000000000..8d37bb313493 + - :cspan:`4` ... + * - 1028 + - :cspan:`4` max(R,G,B) bin 255 [31:0] -diff --git a/Documentation/media/uapi/v4l/pixfmt.rst b/Documentation/media/uapi/v4l/pixfmt.rst -index 4d297f6eb5f1..126fcd0faa7f 100644 --- a/Documentation/media/uapi/v4l/pixfmt.rst +++ b/Documentation/media/uapi/v4l/pixfmt.rst -@@ -33,4 +33,5 @@ see also :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>`.) +@@ -33,4 +33,5 @@ see also :ref:`VIDIOC_G_FBUF <VIDIOC_G_F pixfmt-013 sdr-formats tch-formats + meta-formats pixfmt-reserved -diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index b1e4fff556f0..9f51ae56e4c3 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1265,6 +1265,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1265,6 +1265,7 @@ static void v4l_fill_fmtdesc(struct v4l2 case V4L2_TCH_FMT_DELTA_TD08: descr = "8-bit signed deltas"; break; case V4L2_TCH_FMT_TU16: descr = "16-bit unsigned touch data"; break; case V4L2_TCH_FMT_TU08: descr = "8-bit unsigned touch data"; break; @@ -239,8 +229,6 @@ index b1e4fff556f0..9f51ae56e4c3 100644 default: /* Compressed formats */ -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 2e0c8a9df8af..b4dc1bea942c 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -672,6 +672,9 @@ struct v4l2_pix_format { @@ -253,6 +241,3 @@ index 2e0c8a9df8af..b4dc1bea942c 100644 /* priv field value to indicates that subsequent fields are valid. */ #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe --- -2.13.3 - diff --git a/patches.renesas/0212-media-v4l-vsp1-Add-HGO-support.patch b/patches.renesas/0212-media-v4l-vsp1-Add-HGO-support.patch index 1f8e2dd9a60a7d..a92dcd4de39f29 100644 --- a/patches.renesas/0212-media-v4l-vsp1-Add-HGO-support.patch +++ b/patches.renesas/0212-media-v4l-vsp1-Add-HGO-support.patch @@ -12,25 +12,23 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit f2421521de185c0281799712863db8e23d29a375) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/Makefile | 2 +- - drivers/media/platform/vsp1/vsp1.h | 3 + - drivers/media/platform/vsp1/vsp1_drv.c | 42 ++++-- - drivers/media/platform/vsp1/vsp1_entity.c | 16 +++ - drivers/media/platform/vsp1/vsp1_hgo.c | 228 ++++++++++++++++++++++++++++++ - drivers/media/platform/vsp1/vsp1_hgo.h | 45 ++++++ - drivers/media/platform/vsp1/vsp1_pipe.c | 16 +++ - drivers/media/platform/vsp1/vsp1_pipe.h | 2 + - drivers/media/platform/vsp1/vsp1_regs.h | 20 ++- - drivers/media/platform/vsp1/vsp1_video.c | 6 + + drivers/media/platform/vsp1/Makefile | 2 + drivers/media/platform/vsp1/vsp1.h | 3 + drivers/media/platform/vsp1/vsp1_drv.c | 42 ++++- + drivers/media/platform/vsp1/vsp1_entity.c | 16 ++ + drivers/media/platform/vsp1/vsp1_hgo.c | 228 ++++++++++++++++++++++++++++++ + drivers/media/platform/vsp1/vsp1_hgo.h | 45 +++++ + drivers/media/platform/vsp1/vsp1_pipe.c | 16 ++ + drivers/media/platform/vsp1/vsp1_pipe.h | 2 + drivers/media/platform/vsp1/vsp1_regs.h | 20 ++ + drivers/media/platform/vsp1/vsp1_video.c | 6 10 files changed, 367 insertions(+), 13 deletions(-) create mode 100644 drivers/media/platform/vsp1/vsp1_hgo.c create mode 100644 drivers/media/platform/vsp1/vsp1_hgo.h -diff --git a/drivers/media/platform/vsp1/Makefile b/drivers/media/platform/vsp1/Makefile -index c559536f7867..8ab6a063569e 100644 --- a/drivers/media/platform/vsp1/Makefile +++ b/drivers/media/platform/vsp1/Makefile -@@ -3,7 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_video.o +@@ -3,7 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_ vsp1-y += vsp1_rpf.o vsp1_rwpf.o vsp1_wpf.o vsp1-y += vsp1_clu.o vsp1_hsit.o vsp1_lut.o vsp1-y += vsp1_bru.o vsp1_sru.o vsp1_uds.o @@ -39,8 +37,6 @@ index c559536f7867..8ab6a063569e 100644 vsp1-y += vsp1_lif.o obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1.o -diff --git a/drivers/media/platform/vsp1/vsp1.h b/drivers/media/platform/vsp1/vsp1.h -index b23fa879a9aa..0ba7521c01b4 100644 --- a/drivers/media/platform/vsp1/vsp1.h +++ b/drivers/media/platform/vsp1/vsp1.h @@ -32,6 +32,7 @@ struct vsp1_entity; @@ -67,8 +63,6 @@ index b23fa879a9aa..0ba7521c01b4 100644 struct vsp1_hsit *hsi; struct vsp1_hsit *hst; struct vsp1_lif *lif; -diff --git a/drivers/media/platform/vsp1/vsp1_drv.c b/drivers/media/platform/vsp1/vsp1_drv.c -index 83a6669a6328..0acc8ed6ac59 100644 --- a/drivers/media/platform/vsp1/vsp1_drv.c +++ b/drivers/media/platform/vsp1/vsp1_drv.c @@ -30,6 +30,7 @@ @@ -79,7 +73,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 #include "vsp1_hsit.h" #include "vsp1_lif.h" #include "vsp1_lut.h" -@@ -150,6 +151,16 @@ static int vsp1_uapi_create_links(struct vsp1_device *vsp1) +@@ -150,6 +151,16 @@ static int vsp1_uapi_create_links(struct return ret; } @@ -96,7 +90,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 if (vsp1->lif) { ret = media_create_pad_link(&vsp1->wpf[0]->entity.subdev.entity, RWPF_PAD_SOURCE, -@@ -283,6 +294,17 @@ static int vsp1_create_entities(struct vsp1_device *vsp1) +@@ -283,6 +294,17 @@ static int vsp1_create_entities(struct v list_add_tail(&vsp1->hst->entity.list_dev, &vsp1->entities); @@ -114,7 +108,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 /* * The LIF is only supported when used in conjunction with the DU, in * which case the userspace API is disabled. If the userspace API is -@@ -568,8 +590,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -568,8 +590,8 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPS_H2, .model = "VSP1-S", .gen = 2, @@ -125,7 +119,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 .rpf_count = 5, .uds_count = 3, .wpf_count = 4, -@@ -589,7 +611,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -589,7 +611,8 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPD_GEN2, .model = "VSP1-D", .gen = 2, @@ -135,7 +129,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 .rpf_count = 4, .uds_count = 1, .wpf_count = 1, -@@ -599,8 +622,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -599,8 +622,8 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPS_M2, .model = "VSP1-S", .gen = 2, @@ -146,7 +140,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 .rpf_count = 5, .uds_count = 1, .wpf_count = 4, -@@ -632,8 +655,9 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -632,8 +655,9 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPI_GEN3, .model = "VSP2-I", .gen = 3, @@ -158,7 +152,7 @@ index 83a6669a6328..0acc8ed6ac59 100644 .rpf_count = 1, .uds_count = 1, .wpf_count = 1, -@@ -651,8 +675,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -651,8 +675,8 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPBC_GEN3, .model = "VSP2-BC", .gen = 3, @@ -169,11 +163,9 @@ index 83a6669a6328..0acc8ed6ac59 100644 .rpf_count = 5, .wpf_count = 1, .num_bru_inputs = 5, -diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c -index 88a2aae182ba..c1587e3f01cb 100644 --- a/drivers/media/platform/vsp1/vsp1_entity.c +++ b/drivers/media/platform/vsp1/vsp1_entity.c -@@ -37,6 +37,21 @@ void vsp1_entity_route_setup(struct vsp1_entity *entity, +@@ -37,6 +37,21 @@ void vsp1_entity_route_setup(struct vsp1 struct vsp1_entity *source; struct vsp1_entity *sink; @@ -195,7 +187,7 @@ index 88a2aae182ba..c1587e3f01cb 100644 source = entity; if (source->route->reg == 0) return; -@@ -427,6 +442,7 @@ static const struct vsp1_route vsp1_routes[] = { +@@ -427,6 +442,7 @@ static const struct vsp1_route vsp1_rout VI6_DPR_NODE_BRU_IN(2), VI6_DPR_NODE_BRU_IN(3), VI6_DPR_NODE_BRU_IN(4) }, VI6_DPR_NODE_BRU_OUT }, VSP1_ENTITY_ROUTE(CLU), @@ -203,9 +195,6 @@ index 88a2aae182ba..c1587e3f01cb 100644 VSP1_ENTITY_ROUTE(HSI), VSP1_ENTITY_ROUTE(HST), { VSP1_ENTITY_LIF, 0, 0, { VI6_DPR_NODE_LIF, }, VI6_DPR_NODE_LIF }, -diff --git a/drivers/media/platform/vsp1/vsp1_hgo.c b/drivers/media/platform/vsp1/vsp1_hgo.c -new file mode 100644 -index 000000000000..a138c6b7fb05 --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_hgo.c @@ -0,0 +1,228 @@ @@ -437,9 +426,6 @@ index 000000000000..a138c6b7fb05 + + return hgo; +} -diff --git a/drivers/media/platform/vsp1/vsp1_hgo.h b/drivers/media/platform/vsp1/vsp1_hgo.h -new file mode 100644 -index 000000000000..c6c0b7a80e0c --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_hgo.h @@ -0,0 +1,45 @@ @@ -488,8 +474,6 @@ index 000000000000..c6c0b7a80e0c +void vsp1_hgo_frame_end(struct vsp1_entity *hgo); + +#endif /* __VSP1_HGO_H__ */ -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c -index b5a765cbfc86..bc0460c24397 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.c +++ b/drivers/media/platform/vsp1/vsp1_pipe.c @@ -23,6 +23,7 @@ @@ -500,7 +484,7 @@ index b5a765cbfc86..bc0460c24397 100644 #include "vsp1_pipe.h" #include "vsp1_rwpf.h" #include "vsp1_uds.h" -@@ -204,11 +205,18 @@ void vsp1_pipeline_reset(struct vsp1_pipeline *pipe) +@@ -204,11 +205,18 @@ void vsp1_pipeline_reset(struct vsp1_pip pipe->output = NULL; } @@ -519,7 +503,7 @@ index b5a765cbfc86..bc0460c24397 100644 pipe->lif = NULL; pipe->uds = NULL; } -@@ -286,6 +294,11 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) +@@ -286,6 +294,11 @@ int vsp1_pipeline_stop(struct vsp1_pipel VI6_DPR_NODE_UNUSED); } @@ -531,7 +515,7 @@ index b5a765cbfc86..bc0460c24397 100644 v4l2_subdev_call(&pipe->output->entity.subdev, video, s_stream, 0); return ret; -@@ -309,6 +322,9 @@ void vsp1_pipeline_frame_end(struct vsp1_pipeline *pipe) +@@ -309,6 +322,9 @@ void vsp1_pipeline_frame_end(struct vsp1 vsp1_dlm_irq_frame_end(pipe->output->dlm); @@ -541,8 +525,6 @@ index b5a765cbfc86..bc0460c24397 100644 if (pipe->frame_end) pipe->frame_end(pipe); -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.h b/drivers/media/platform/vsp1/vsp1_pipe.h -index 1144bf1e671a..4d91088c386b 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.h +++ b/drivers/media/platform/vsp1/vsp1_pipe.h @@ -73,6 +73,7 @@ enum vsp1_pipeline_state { @@ -561,8 +543,6 @@ index 1144bf1e671a..4d91088c386b 100644 struct vsp1_entity *lif; struct vsp1_entity *uds; struct vsp1_entity *uds_input; -diff --git a/drivers/media/platform/vsp1/vsp1_regs.h b/drivers/media/platform/vsp1/vsp1_regs.h -index 61369e267667..5414e519f7d8 100644 --- a/drivers/media/platform/vsp1/vsp1_regs.h +++ b/drivers/media/platform/vsp1/vsp1_regs.h @@ -590,24 +590,38 @@ @@ -607,8 +587,6 @@ index 61369e267667..5414e519f7d8 100644 /* ----------------------------------------------------------------------------- * HGT Control Registers -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index 1a98bc91d1e2..d47b93f2af79 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c @@ -31,6 +31,7 @@ @@ -619,7 +597,7 @@ index 1a98bc91d1e2..d47b93f2af79 100644 #include "vsp1_pipe.h" #include "vsp1_rwpf.h" #include "vsp1_uds.h" -@@ -601,6 +602,11 @@ static int vsp1_video_pipeline_build(struct vsp1_pipeline *pipe, +@@ -601,6 +602,11 @@ static int vsp1_video_pipeline_build(str pipe->lif = e; } else if (e->type == VSP1_ENTITY_BRU) { pipe->bru = e; @@ -631,6 +609,3 @@ index 1a98bc91d1e2..d47b93f2af79 100644 } } --- -2.13.3 - diff --git a/patches.renesas/0213-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-2.patch b/patches.renesas/0213-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-2.patch index ae9d9606a4522c..fb4ed2e55e4fd6 100644 --- a/patches.renesas/0213-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-2.patch +++ b/patches.renesas/0213-media-v4l-Define-a-pixel-format-for-the-R-Car-VSP1-2.patch @@ -18,25 +18,20 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 5deb1c04c9f2cc3fe4b355a55a8fad244683a54a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/media/uapi/v4l/meta-formats.rst | 1 + - .../media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst | 120 +++++++++++++++++++++ - drivers/media/v4l2-core/v4l2-ioctl.c | 1 + - include/uapi/linux/videodev2.h | 3 +- + Documentation/media/uapi/v4l/meta-formats.rst | 1 + Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst | 120 ++++++++++++++++++ + drivers/media/v4l2-core/v4l2-ioctl.c | 1 + include/uapi/linux/videodev2.h | 3 4 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst -diff --git a/Documentation/media/uapi/v4l/meta-formats.rst b/Documentation/media/uapi/v4l/meta-formats.rst -index 05ab91e12f10..01e24e3df571 100644 --- a/Documentation/media/uapi/v4l/meta-formats.rst +++ b/Documentation/media/uapi/v4l/meta-formats.rst -@@ -13,3 +13,4 @@ These formats are used for the :ref:`metadata` interface only. +@@ -13,3 +13,4 @@ These formats are used for the :ref:`met :maxdepth: 1 pixfmt-meta-vsp1-hgo + pixfmt-meta-vsp1-hgt -diff --git a/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst -new file mode 100644 -index 000000000000..fb9f79466319 --- /dev/null +++ b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgt.rst @@ -0,0 +1,120 @@ @@ -160,11 +155,9 @@ index 000000000000..fb9f79466319 + - :cspan:`4` ... + * - 772 + - :cspan:`4` Histogram bucket (m=5, n=31) [31:0] -diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 9f51ae56e4c3..89567468f4e8 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1266,6 +1266,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1266,6 +1266,7 @@ static void v4l_fill_fmtdesc(struct v4l2 case V4L2_TCH_FMT_TU16: descr = "16-bit unsigned touch data"; break; case V4L2_TCH_FMT_TU08: descr = "8-bit unsigned touch data"; break; case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; @@ -172,8 +165,6 @@ index 9f51ae56e4c3..89567468f4e8 100644 default: /* Compressed formats */ -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index b4dc1bea942c..0a875bab5c54 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -673,7 +673,8 @@ struct v4l2_pix_format { @@ -186,6 +177,3 @@ index b4dc1bea942c..0a875bab5c54 100644 /* priv field value to indicates that subsequent fields are valid. */ #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe --- -2.13.3 - diff --git a/patches.renesas/0214-media-v4l-vsp1-Add-HGT-support.patch b/patches.renesas/0214-media-v4l-vsp1-Add-HGT-support.patch index 7fb6aef488a9f2..d7c385fca8f1ce 100644 --- a/patches.renesas/0214-media-v4l-vsp1-Add-HGT-support.patch +++ b/patches.renesas/0214-media-v4l-vsp1-Add-HGT-support.patch @@ -18,25 +18,23 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 0ac702d5b903d441ef64e61f453de7c0ce1322fa) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/Makefile | 2 +- - drivers/media/platform/vsp1/vsp1.h | 3 + - drivers/media/platform/vsp1/vsp1_drv.c | 32 ++++- - drivers/media/platform/vsp1/vsp1_entity.c | 14 ++ - drivers/media/platform/vsp1/vsp1_hgt.c | 222 ++++++++++++++++++++++++++++++ - drivers/media/platform/vsp1/vsp1_hgt.h | 42 ++++++ - drivers/media/platform/vsp1/vsp1_pipe.c | 16 +++ - drivers/media/platform/vsp1/vsp1_pipe.h | 2 + - drivers/media/platform/vsp1/vsp1_regs.h | 9 ++ - drivers/media/platform/vsp1/vsp1_video.c | 6 + + drivers/media/platform/vsp1/Makefile | 2 + drivers/media/platform/vsp1/vsp1.h | 3 + drivers/media/platform/vsp1/vsp1_drv.c | 32 +++- + drivers/media/platform/vsp1/vsp1_entity.c | 14 + + drivers/media/platform/vsp1/vsp1_hgt.c | 222 ++++++++++++++++++++++++++++++ + drivers/media/platform/vsp1/vsp1_hgt.h | 42 +++++ + drivers/media/platform/vsp1/vsp1_pipe.c | 16 ++ + drivers/media/platform/vsp1/vsp1_pipe.h | 2 + drivers/media/platform/vsp1/vsp1_regs.h | 9 + + drivers/media/platform/vsp1/vsp1_video.c | 6 10 files changed, 343 insertions(+), 5 deletions(-) create mode 100644 drivers/media/platform/vsp1/vsp1_hgt.c create mode 100644 drivers/media/platform/vsp1/vsp1_hgt.h -diff --git a/drivers/media/platform/vsp1/Makefile b/drivers/media/platform/vsp1/Makefile -index 8ab6a063569e..a33afc385a48 100644 --- a/drivers/media/platform/vsp1/Makefile +++ b/drivers/media/platform/vsp1/Makefile -@@ -3,7 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_video.o +@@ -3,7 +3,7 @@ vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_ vsp1-y += vsp1_rpf.o vsp1_rwpf.o vsp1_wpf.o vsp1-y += vsp1_clu.o vsp1_hsit.o vsp1_lut.o vsp1-y += vsp1_bru.o vsp1_sru.o vsp1_uds.o @@ -45,8 +43,6 @@ index 8ab6a063569e..a33afc385a48 100644 vsp1-y += vsp1_lif.o obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1.o -diff --git a/drivers/media/platform/vsp1/vsp1.h b/drivers/media/platform/vsp1/vsp1.h -index 0ba7521c01b4..85387a64179a 100644 --- a/drivers/media/platform/vsp1/vsp1.h +++ b/drivers/media/platform/vsp1/vsp1.h @@ -33,6 +33,7 @@ struct vsp1_platform_data; @@ -73,8 +69,6 @@ index 0ba7521c01b4..85387a64179a 100644 struct vsp1_hsit *hsi; struct vsp1_hsit *hst; struct vsp1_lif *lif; -diff --git a/drivers/media/platform/vsp1/vsp1_drv.c b/drivers/media/platform/vsp1/vsp1_drv.c -index 0acc8ed6ac59..048446af5ae7 100644 --- a/drivers/media/platform/vsp1/vsp1_drv.c +++ b/drivers/media/platform/vsp1/vsp1_drv.c @@ -31,6 +31,7 @@ @@ -85,7 +79,7 @@ index 0acc8ed6ac59..048446af5ae7 100644 #include "vsp1_hsit.h" #include "vsp1_lif.h" #include "vsp1_lut.h" -@@ -161,6 +162,16 @@ static int vsp1_uapi_create_links(struct vsp1_device *vsp1) +@@ -161,6 +162,16 @@ static int vsp1_uapi_create_links(struct return ret; } @@ -102,7 +96,7 @@ index 0acc8ed6ac59..048446af5ae7 100644 if (vsp1->lif) { ret = media_create_pad_link(&vsp1->wpf[0]->entity.subdev.entity, RWPF_PAD_SOURCE, -@@ -305,6 +316,17 @@ static int vsp1_create_entities(struct vsp1_device *vsp1) +@@ -305,6 +316,17 @@ static int vsp1_create_entities(struct v &vsp1->entities); } @@ -120,7 +114,7 @@ index 0acc8ed6ac59..048446af5ae7 100644 /* * The LIF is only supported when used in conjunction with the DU, in * which case the userspace API is disabled. If the userspace API is -@@ -591,7 +613,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -591,7 +613,8 @@ static const struct vsp1_device_info vsp .model = "VSP1-S", .gen = 2, .features = VSP1_HAS_BRU | VSP1_HAS_CLU | VSP1_HAS_HGO @@ -130,7 +124,7 @@ index 0acc8ed6ac59..048446af5ae7 100644 .rpf_count = 5, .uds_count = 3, .wpf_count = 4, -@@ -623,7 +646,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -623,7 +646,8 @@ static const struct vsp1_device_info vsp .model = "VSP1-S", .gen = 2, .features = VSP1_HAS_BRU | VSP1_HAS_CLU | VSP1_HAS_HGO @@ -140,7 +134,7 @@ index 0acc8ed6ac59..048446af5ae7 100644 .rpf_count = 5, .uds_count = 1, .wpf_count = 4, -@@ -655,8 +679,8 @@ static const struct vsp1_device_info vsp1_device_infos[] = { +@@ -655,8 +679,8 @@ static const struct vsp1_device_info vsp .version = VI6_IP_VERSION_MODEL_VSPI_GEN3, .model = "VSP2-I", .gen = 3, @@ -151,11 +145,9 @@ index 0acc8ed6ac59..048446af5ae7 100644 | VSP1_HAS_WPF_VFLIP, .rpf_count = 1, .uds_count = 1, -diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c -index c1587e3f01cb..4bdb3b141611 100644 --- a/drivers/media/platform/vsp1/vsp1_entity.c +++ b/drivers/media/platform/vsp1/vsp1_entity.c -@@ -50,6 +50,19 @@ void vsp1_entity_route_setup(struct vsp1_entity *entity, +@@ -50,6 +50,19 @@ void vsp1_entity_route_setup(struct vsp1 vsp1_dl_list_write(dl, VI6_DPR_HGO_SMPPT, smppt); return; @@ -175,7 +167,7 @@ index c1587e3f01cb..4bdb3b141611 100644 } source = entity; -@@ -443,6 +456,7 @@ static const struct vsp1_route vsp1_routes[] = { +@@ -443,6 +456,7 @@ static const struct vsp1_route vsp1_rout VI6_DPR_NODE_BRU_IN(4) }, VI6_DPR_NODE_BRU_OUT }, VSP1_ENTITY_ROUTE(CLU), { VSP1_ENTITY_HGO, 0, 0, { 0, }, 0 }, @@ -183,9 +175,6 @@ index c1587e3f01cb..4bdb3b141611 100644 VSP1_ENTITY_ROUTE(HSI), VSP1_ENTITY_ROUTE(HST), { VSP1_ENTITY_LIF, 0, 0, { VI6_DPR_NODE_LIF, }, VI6_DPR_NODE_LIF }, -diff --git a/drivers/media/platform/vsp1/vsp1_hgt.c b/drivers/media/platform/vsp1/vsp1_hgt.c -new file mode 100644 -index 000000000000..b5ce305e3e6f --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_hgt.c @@ -0,0 +1,222 @@ @@ -411,9 +400,6 @@ index 000000000000..b5ce305e3e6f + + return hgt; +} -diff --git a/drivers/media/platform/vsp1/vsp1_hgt.h b/drivers/media/platform/vsp1/vsp1_hgt.h -new file mode 100644 -index 000000000000..83f2e130942a --- /dev/null +++ b/drivers/media/platform/vsp1/vsp1_hgt.h @@ -0,0 +1,42 @@ @@ -459,8 +445,6 @@ index 000000000000..83f2e130942a +void vsp1_hgt_frame_end(struct vsp1_entity *hgt); + +#endif /* __VSP1_HGT_H__ */ -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c -index bc0460c24397..edebf3fa926f 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.c +++ b/drivers/media/platform/vsp1/vsp1_pipe.c @@ -24,6 +24,7 @@ @@ -471,7 +455,7 @@ index bc0460c24397..edebf3fa926f 100644 #include "vsp1_pipe.h" #include "vsp1_rwpf.h" #include "vsp1_uds.h" -@@ -211,12 +212,19 @@ void vsp1_pipeline_reset(struct vsp1_pipeline *pipe) +@@ -211,12 +212,19 @@ void vsp1_pipeline_reset(struct vsp1_pip hgo->histo.pipe = NULL; } @@ -491,7 +475,7 @@ index bc0460c24397..edebf3fa926f 100644 pipe->lif = NULL; pipe->uds = NULL; } -@@ -299,6 +307,11 @@ int vsp1_pipeline_stop(struct vsp1_pipeline *pipe) +@@ -299,6 +307,11 @@ int vsp1_pipeline_stop(struct vsp1_pipel (7 << VI6_DPR_SMPPT_TGW_SHIFT) | (VI6_DPR_NODE_UNUSED << VI6_DPR_SMPPT_PT_SHIFT)); @@ -503,7 +487,7 @@ index bc0460c24397..edebf3fa926f 100644 v4l2_subdev_call(&pipe->output->entity.subdev, video, s_stream, 0); return ret; -@@ -325,6 +338,9 @@ void vsp1_pipeline_frame_end(struct vsp1_pipeline *pipe) +@@ -325,6 +338,9 @@ void vsp1_pipeline_frame_end(struct vsp1 if (pipe->hgo) vsp1_hgo_frame_end(pipe->hgo); @@ -513,8 +497,6 @@ index bc0460c24397..edebf3fa926f 100644 if (pipe->frame_end) pipe->frame_end(pipe); -diff --git a/drivers/media/platform/vsp1/vsp1_pipe.h b/drivers/media/platform/vsp1/vsp1_pipe.h -index 4d91088c386b..91a784a13422 100644 --- a/drivers/media/platform/vsp1/vsp1_pipe.h +++ b/drivers/media/platform/vsp1/vsp1_pipe.h @@ -74,6 +74,7 @@ enum vsp1_pipeline_state { @@ -533,8 +515,6 @@ index 4d91088c386b..91a784a13422 100644 struct vsp1_entity *lif; struct vsp1_entity *uds; struct vsp1_entity *uds_input; -diff --git a/drivers/media/platform/vsp1/vsp1_regs.h b/drivers/media/platform/vsp1/vsp1_regs.h -index 5414e519f7d8..cd3e32af6e3b 100644 --- a/drivers/media/platform/vsp1/vsp1_regs.h +++ b/drivers/media/platform/vsp1/vsp1_regs.h @@ -628,9 +628,17 @@ @@ -563,8 +543,6 @@ index 5414e519f7d8..cd3e32af6e3b 100644 /* ----------------------------------------------------------------------------- * LIF Control Registers -diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c -index d47b93f2af79..58593f13d246 100644 --- a/drivers/media/platform/vsp1/vsp1_video.c +++ b/drivers/media/platform/vsp1/vsp1_video.c @@ -32,6 +32,7 @@ @@ -575,7 +553,7 @@ index d47b93f2af79..58593f13d246 100644 #include "vsp1_pipe.h" #include "vsp1_rwpf.h" #include "vsp1_uds.h" -@@ -607,6 +608,11 @@ static int vsp1_video_pipeline_build(struct vsp1_pipeline *pipe, +@@ -607,6 +608,11 @@ static int vsp1_video_pipeline_build(str pipe->hgo = e; hgo->histo.pipe = pipe; @@ -587,6 +565,3 @@ index d47b93f2af79..58593f13d246 100644 } } --- -2.13.3 - diff --git a/patches.renesas/0215-media-videodev.h-add-V4L2_CTRL_FLAG_MODIFY_LAYOUT.patch b/patches.renesas/0215-media-videodev.h-add-V4L2_CTRL_FLAG_MODIFY_LAYOUT.patch index 15daae101e730d..53cb195cd2395e 100644 --- a/patches.renesas/0215-media-videodev.h-add-V4L2_CTRL_FLAG_MODIFY_LAYOUT.patch +++ b/patches.renesas/0215-media-videodev.h-add-V4L2_CTRL_FLAG_MODIFY_LAYOUT.patch @@ -12,11 +12,9 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 6df8be763115a0ce6b486ea304742e5646f74287) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - include/uapi/linux/videodev2.h | 1 + + include/uapi/linux/videodev2.h | 1 + 1 file changed, 1 insertion(+) -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 0a875bab5c54..dd3778256d0d 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -1622,6 +1622,7 @@ struct v4l2_querymenu { @@ -27,6 +25,3 @@ index 0a875bab5c54..dd3778256d0d 100644 /* Query flags, to be ORed with the control ID */ #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 --- -2.13.3 - diff --git a/patches.renesas/0216-media-vsp1-set-V4L2_CTRL_FLAG_MODIFY_LAYOUT-for-hist.patch b/patches.renesas/0216-media-vsp1-set-V4L2_CTRL_FLAG_MODIFY_LAYOUT-for-hist.patch index ab2de7a4cbe257..42ca18eb21f8dd 100644 --- a/patches.renesas/0216-media-vsp1-set-V4L2_CTRL_FLAG_MODIFY_LAYOUT-for-hist.patch +++ b/patches.renesas/0216-media-vsp1-set-V4L2_CTRL_FLAG_MODIFY_LAYOUT-for-hist.patch @@ -13,14 +13,12 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 6c1c0afd19317a15d6f2ae4965a73be7240aba18) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/media/platform/vsp1/vsp1_hgo.c | 2 ++ + drivers/media/platform/vsp1/vsp1_hgo.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/media/platform/vsp1/vsp1_hgo.c b/drivers/media/platform/vsp1/vsp1_hgo.c -index a138c6b7fb05..50309c053b78 100644 --- a/drivers/media/platform/vsp1/vsp1_hgo.c +++ b/drivers/media/platform/vsp1/vsp1_hgo.c -@@ -111,6 +111,7 @@ static const struct v4l2_ctrl_config hgo_max_rgb_control = { +@@ -111,6 +111,7 @@ static const struct v4l2_ctrl_config hgo .max = 1, .def = 0, .step = 1, @@ -28,7 +26,7 @@ index a138c6b7fb05..50309c053b78 100644 }; static const s64 hgo_num_bins[] = { -@@ -125,6 +126,7 @@ static const struct v4l2_ctrl_config hgo_num_bins_control = { +@@ -125,6 +126,7 @@ static const struct v4l2_ctrl_config hgo .max = 1, .def = 0, .qmenu_int = hgo_num_bins, @@ -36,6 +34,3 @@ index a138c6b7fb05..50309c053b78 100644 }; /* ----------------------------------------------------------------------------- --- -2.13.3 - diff --git a/patches.renesas/0217-media-pixfmt-meta-vsp1-hgo.rst-remove-spurious.patch b/patches.renesas/0217-media-pixfmt-meta-vsp1-hgo.rst-remove-spurious.patch index 920fa28004b098..ad77623d21f55b 100644 --- a/patches.renesas/0217-media-pixfmt-meta-vsp1-hgo.rst-remove-spurious.patch +++ b/patches.renesas/0217-media-pixfmt-meta-vsp1-hgo.rst-remove-spurious.patch @@ -17,11 +17,9 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> (cherry picked from commit 242b0c4cc96f97d0a3b96343acd21613b63fa4a6) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - .../media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst | 24 +++++++++++----------- + Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst | 24 +++++++++--------- 1 file changed, 12 insertions(+), 12 deletions(-) -diff --git a/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst -index 8d37bb313493..67796594fd48 100644 --- a/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst +++ b/Documentation/media/uapi/v4l/pixfmt-meta-vsp1-hgo.rst @@ -53,19 +53,19 @@ contains one byte. @@ -86,6 +84,3 @@ index 8d37bb313493..67796594fd48 100644 - max(R,G,B) min [7:0] * - 4 - :cspan:`4` max(R,G,B) sum [31:0] --- -2.13.3 - diff --git a/patches.renesas/0218-USB-host-xhci-use-max-port-define.patch b/patches.renesas/0218-USB-host-xhci-use-max-port-define.patch index d6664e82f4e70e..76ea11cb071645 100644 --- a/patches.renesas/0218-USB-host-xhci-use-max-port-define.patch +++ b/patches.renesas/0218-USB-host-xhci-use-max-port-define.patch @@ -11,14 +11,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 5120a266928a07231d198bb518f6fe73148786a3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-mem.c | 7 ++++--- + drivers/usb/host/xhci-mem.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index ea1308a7b814..66e67355d84d 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -2310,10 +2310,11 @@ static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags) +@@ -2310,10 +2310,11 @@ static int xhci_setup_port_arrays(struct /* Place limits on the number of roothub ports so that the hub * descriptors aren't longer than the USB core will allocate. */ @@ -33,6 +31,3 @@ index ea1308a7b814..66e67355d84d 100644 } if (xhci->num_usb2_ports > USB_MAXCHILDREN) { xhci_dbg_trace(xhci, trace_xhci_dbg_init, --- -2.13.3 - diff --git a/patches.renesas/0219-usb-xhci-trace-URB-before-giving-it-back-instead-of-.patch b/patches.renesas/0219-usb-xhci-trace-URB-before-giving-it-back-instead-of-.patch index 5545e441638707..e274449e8886e7 100644 --- a/patches.renesas/0219-usb-xhci-trace-URB-before-giving-it-back-instead-of-.patch +++ b/patches.renesas/0219-usb-xhci-trace-URB-before-giving-it-back-instead-of-.patch @@ -12,14 +12,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 7bc5d5aff356f3ba16c4d1e9eaf95cc99b7574ab) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-ring.c | 2 +- + drivers/usb/host/xhci-ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 74bf5c60a260..507ba7734b94 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -641,8 +641,8 @@ static void xhci_giveback_urb_in_irq(struct xhci_hcd *xhci, +@@ -641,8 +641,8 @@ static void xhci_giveback_urb_in_irq(str xhci_urb_free_priv(urb_priv); usb_hcd_unlink_urb_from_ep(hcd, urb); spin_unlock(&xhci->lock); @@ -29,6 +27,3 @@ index 74bf5c60a260..507ba7734b94 100644 spin_lock(&xhci->lock); } --- -2.13.3 - diff --git a/patches.renesas/0220-usb-host-xhci-ring-don-t-need-to-clear-interrupt-pen.patch b/patches.renesas/0220-usb-host-xhci-ring-don-t-need-to-clear-interrupt-pen.patch index 1c31e960b60345..a41bb1d80958e8 100644 --- a/patches.renesas/0220-usb-host-xhci-ring-don-t-need-to-clear-interrupt-pen.patch +++ b/patches.renesas/0220-usb-host-xhci-ring-don-t-need-to-clear-interrupt-pen.patch @@ -23,16 +23,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 6a29beef9d1b16c762e469d77e28c3de3f5c3dbb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-ring.c | 5 +---- - drivers/usb/host/xhci.c | 5 +++-- - include/linux/usb/hcd.h | 1 + + drivers/usb/host/xhci-ring.c | 5 +---- + drivers/usb/host/xhci.c | 5 +++-- + include/linux/usb/hcd.h | 1 + 3 files changed, 5 insertions(+), 6 deletions(-) -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 507ba7734b94..0830b25f9499 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2707,12 +2707,9 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) +@@ -2710,12 +2710,9 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd */ status |= STS_EINT; writel(status, &xhci->op_regs->status); @@ -46,11 +44,9 @@ index 507ba7734b94..0830b25f9499 100644 irq_pending = readl(&xhci->ir_set->irq_pending); irq_pending |= IMAN_IP; writel(irq_pending, &xhci->ir_set->irq_pending); -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index dd2b42f52d99..716bd2e7e674 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -398,9 +398,10 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) +@@ -401,9 +401,10 @@ static int xhci_try_enable_msi(struct us /* fall back to msi*/ ret = xhci_setup_msi(xhci); @@ -63,8 +59,6 @@ index dd2b42f52d99..716bd2e7e674 100644 if (!pdev->irq) { xhci_err(xhci, "No msi-x/msi found and no IRQ in BIOS\n"); -diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h -index 66fc13705ab7..287cb491a887 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h @@ -148,6 +148,7 @@ struct usb_hcd { @@ -75,6 +69,3 @@ index 66fc13705ab7..287cb491a887 100644 unsigned remove_phy:1; /* auto-remove USB phy */ /* The next flag is a stopgap, to be removed when all the HCDs --- -2.13.3 - diff --git a/patches.renesas/0221-USB-xhci-fix-lock-inversion-problem.patch b/patches.renesas/0221-USB-xhci-fix-lock-inversion-problem.patch index 34a8b71b24c199..9eeacf558829de 100644 --- a/patches.renesas/0221-USB-xhci-fix-lock-inversion-problem.patch +++ b/patches.renesas/0221-USB-xhci-fix-lock-inversion-problem.patch @@ -60,14 +60,12 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 63aea0dbab90a2461faaae357cbc8cfd6c8de9fe) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-ring.c | 5 +++-- + drivers/usb/host/xhci-ring.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 0830b25f9499..6d2492c1c643 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2677,11 +2677,12 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) +@@ -2680,11 +2680,12 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd struct xhci_hcd *xhci = hcd_to_xhci(hcd); union xhci_trb *event_ring_deq; irqreturn_t ret = IRQ_NONE; @@ -81,7 +79,7 @@ index 0830b25f9499..6d2492c1c643 100644 /* Check if the xHC generated the interrupt, or the irq is shared */ status = readl(&xhci->op_regs->status); if (status == ~(u32)0) { -@@ -2754,7 +2755,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) +@@ -2757,7 +2758,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd ret = IRQ_HANDLED; out: @@ -90,6 +88,3 @@ index 0830b25f9499..6d2492c1c643 100644 return ret; } --- -2.13.3 - diff --git a/patches.renesas/0222-xhci-Fix-command-ring-stop-regression-in-4.11.patch b/patches.renesas/0222-xhci-Fix-command-ring-stop-regression-in-4.11.patch index 4c1b718890e31c..daf00bdd903449 100644 --- a/patches.renesas/0222-xhci-Fix-command-ring-stop-regression-in-4.11.patch +++ b/patches.renesas/0222-xhci-Fix-command-ring-stop-regression-in-4.11.patch @@ -17,16 +17,14 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 604d02a2a66ab7f93fd3b2bde3698c29ef057b65) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/usb/host/xhci-hub.c | 2 +- - drivers/usb/host/xhci-ring.c | 8 ++++---- - drivers/usb/host/xhci.c | 8 ++++---- + drivers/usb/host/xhci-hub.c | 2 +- + drivers/usb/host/xhci-ring.c | 8 ++++---- + drivers/usb/host/xhci.c | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index 5e3e9d4c6956..0dde49c35dd2 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -419,7 +419,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend) +@@ -419,7 +419,7 @@ static int xhci_stop_device(struct xhci_ wait_for_completion(cmd->completion); if (cmd->status == COMP_COMMAND_ABORTED || @@ -35,11 +33,9 @@ index 5e3e9d4c6956..0dde49c35dd2 100644 xhci_warn(xhci, "Timeout while waiting for stop endpoint command\n"); ret = -ETIME; } -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 6d2492c1c643..03f63f50afb6 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -323,7 +323,7 @@ static void xhci_handle_stopped_cmd_ring(struct xhci_hcd *xhci, +@@ -323,7 +323,7 @@ static void xhci_handle_stopped_cmd_ring if (i_cmd->status != COMP_COMMAND_ABORTED) continue; @@ -48,7 +44,7 @@ index 6d2492c1c643..03f63f50afb6 100644 xhci_dbg(xhci, "Turn aborted command %p to no-op\n", i_cmd->command_trb); -@@ -1380,7 +1380,7 @@ static void handle_cmd_completion(struct xhci_hcd *xhci, +@@ -1383,7 +1383,7 @@ static void handle_cmd_completion(struct cmd_comp_code = GET_COMP_CODE(le32_to_cpu(event->status)); /* If CMD ring stopped we own the trbs between enqueue and dequeue */ @@ -57,7 +53,7 @@ index 6d2492c1c643..03f63f50afb6 100644 complete_all(&xhci->cmd_ring_stop_completion); return; } -@@ -1436,8 +1436,8 @@ static void handle_cmd_completion(struct xhci_hcd *xhci, +@@ -1439,8 +1439,8 @@ static void handle_cmd_completion(struct break; case TRB_CMD_NOOP: /* Is this an aborted command turned to NO-OP? */ @@ -68,11 +64,9 @@ index 6d2492c1c643..03f63f50afb6 100644 break; case TRB_RESET_EP: WARN_ON(slot_id != TRB_TO_SLOT_ID( -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 716bd2e7e674..5c9e69cb8ea6 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1803,7 +1803,7 @@ static int xhci_configure_endpoint_result(struct xhci_hcd *xhci, +@@ -1809,7 +1809,7 @@ static int xhci_configure_endpoint_resul switch (*cmd_status) { case COMP_COMMAND_ABORTED: @@ -81,7 +75,7 @@ index 716bd2e7e674..5c9e69cb8ea6 100644 xhci_warn(xhci, "Timeout while waiting for configure endpoint command\n"); ret = -ETIME; break; -@@ -1853,7 +1853,7 @@ static int xhci_evaluate_context_result(struct xhci_hcd *xhci, +@@ -1859,7 +1859,7 @@ static int xhci_evaluate_context_result( switch (*cmd_status) { case COMP_COMMAND_ABORTED: @@ -90,7 +84,7 @@ index 716bd2e7e674..5c9e69cb8ea6 100644 xhci_warn(xhci, "Timeout while waiting for evaluate context command\n"); ret = -ETIME; break; -@@ -3472,7 +3472,7 @@ static int xhci_discover_or_reset_device(struct usb_hcd *hcd, +@@ -3478,7 +3478,7 @@ static int xhci_discover_or_reset_device ret = reset_device_cmd->status; switch (ret) { case COMP_COMMAND_ABORTED: @@ -99,7 +93,7 @@ index 716bd2e7e674..5c9e69cb8ea6 100644 xhci_warn(xhci, "Timeout waiting for reset device command\n"); ret = -ETIME; goto command_cleanup; -@@ -3857,7 +3857,7 @@ static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, +@@ -3863,7 +3863,7 @@ static int xhci_setup_device(struct usb_ */ switch (command->status) { case COMP_COMMAND_ABORTED: @@ -108,6 +102,3 @@ index 716bd2e7e674..5c9e69cb8ea6 100644 xhci_warn(xhci, "Timeout while waiting for setup device command\n"); ret = -ETIME; break; --- -2.13.3 - diff --git a/patches.renesas/0223-dt-bindings-net-sms911x-Add-missing-optional-VDD-reg.patch b/patches.renesas/0223-dt-bindings-net-sms911x-Add-missing-optional-VDD-reg.patch index ec77dd5d40d8a9..f26f1b2296101b 100644 --- a/patches.renesas/0223-dt-bindings-net-sms911x-Add-missing-optional-VDD-reg.patch +++ b/patches.renesas/0223-dt-bindings-net-sms911x-Add-missing-optional-VDD-reg.patch @@ -15,11 +15,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 7e113321eccba2b52c0e9d11129d370c9511e4db) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/net/smsc911x.txt | 1 + + Documentation/devicetree/bindings/net/smsc911x.txt | 1 + 1 file changed, 1 insertion(+) -diff --git a/Documentation/devicetree/bindings/net/smsc911x.txt b/Documentation/devicetree/bindings/net/smsc911x.txt -index 16c3a9501f5d..acfafc8e143c 100644 --- a/Documentation/devicetree/bindings/net/smsc911x.txt +++ b/Documentation/devicetree/bindings/net/smsc911x.txt @@ -27,6 +27,7 @@ Optional properties: @@ -30,6 +28,3 @@ index 16c3a9501f5d..acfafc8e143c 100644 Examples: --- -2.13.3 - diff --git a/patches.renesas/0224-net-phy-micrel-configure-intterupts-after-autoneg-wo.patch b/patches.renesas/0224-net-phy-micrel-configure-intterupts-after-autoneg-wo.patch deleted file mode 100644 index a6f1e5788cfb7f..00000000000000 --- a/patches.renesas/0224-net-phy-micrel-configure-intterupts-after-autoneg-wo.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 042ca95f3db3b29670607a3afe3e360a60ad6300 Mon Sep 17 00:00:00 2001 -From: Zach Brown <zach.brown@ni.com> -Date: Tue, 20 Jun 2017 12:48:11 -0500 -Subject: [PATCH 224/286] net/phy: micrel: configure intterupts after autoneg - workaround - -The commit ("net/phy: micrel: Add workaround for bad autoneg") fixes an -autoneg failure case by resetting the hardware. This turns off -intterupts. Things will work themselves out if the phy polls, as it will -figure out it's state during a poll. However if the phy uses only -intterupts, the phy will stall, since interrupts are off. This patch -fixes the issue by calling config_intr after resetting the phy. - -Fixes: d2fd719bcb0e ("net/phy: micrel: Add workaround for bad autoneg ") -Signed-off-by: Zach Brown <zach.brown@ni.com> -Reviewed-by: Andrew Lunn <andrew@lunn.ch> -Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -Signed-off-by: David S. Miller <davem@davemloft.net> -(cherry picked from commit b866203d872d5deeafcecd25ea429d6748b5bd56) -Signed-off-by: Simon Horman <horms+renesas@verge.net.au> ---- - drivers/net/phy/micrel.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c -index d18d631c9fed..a630728fa430 100644 ---- a/drivers/net/phy/micrel.c -+++ b/drivers/net/phy/micrel.c -@@ -619,6 +619,8 @@ static int ksz9031_read_status(struct phy_device *phydev) - if ((regval & 0xFF) == 0xFF) { - phy_init_hw(phydev); - phydev->link = 0; -+ if (phydev->drv->config_intr && phy_interrupt_is_valid(phydev)) -+ phydev->drv->config_intr(phydev); - } - - return 0; --- -2.13.3 - diff --git a/patches.renesas/0225-drm-bridge-dw-hdmi-Remove-unused-functions.patch b/patches.renesas/0225-drm-bridge-dw-hdmi-Remove-unused-functions.patch index 37b387876d6266..c2f3c6a910276a 100644 --- a/patches.renesas/0225-drm-bridge-dw-hdmi-Remove-unused-functions.patch +++ b/patches.renesas/0225-drm-bridge-dw-hdmi-Remove-unused-functions.patch @@ -14,14 +14,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-2-lauren (cherry picked from commit 12a3a328eeb1467ef7170b9a710c0b53ee0273eb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 26 -------------------------- + drivers/gpu/drm/bridge/dw-hdmi.c | 26 -------------------------- 1 file changed, 26 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index 9a9ec27d9e28..ce7496399ccf 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c -@@ -837,32 +837,6 @@ static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, +@@ -837,32 +837,6 @@ static inline void hdmi_phy_test_clear(s HDMI_PHY_TST0_TSTCLR_MASK, HDMI_PHY_TST0); } @@ -54,6 +52,3 @@ index 9a9ec27d9e28..ce7496399ccf 100644 static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) { u32 val; --- -2.13.3 - diff --git a/patches.renesas/0226-drm-bridge-dw-hdmi-Move-CSC-configuration-out-of-PHY.patch b/patches.renesas/0226-drm-bridge-dw-hdmi-Move-CSC-configuration-out-of-PHY.patch index 03f94d1cb3de2d..108d5c19c924e8 100644 --- a/patches.renesas/0226-drm-bridge-dw-hdmi-Move-CSC-configuration-out-of-PHY.patch +++ b/patches.renesas/0226-drm-bridge-dw-hdmi-Move-CSC-configuration-out-of-PHY.patch @@ -15,14 +15,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-3-lauren (cherry picked from commit 8b9e1c0de3d81c7b2118f8c403a84fad758c3305) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 25 ++++++++++--------------- + drivers/gpu/drm/bridge/dw-hdmi.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index ce7496399ccf..906583beb08b 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c -@@ -914,7 +914,7 @@ static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) +@@ -914,7 +914,7 @@ static void dw_hdmi_phy_sel_interface_co HDMI_PHY_CONF0_SELDIPIF_MASK); } @@ -31,7 +29,7 @@ index ce7496399ccf..906583beb08b 100644 { u8 val, msec; const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; -@@ -946,14 +946,6 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi, int cscon) +@@ -946,14 +946,6 @@ static int hdmi_phy_configure(struct dw_ return -EINVAL; } @@ -46,7 +44,7 @@ index ce7496399ccf..906583beb08b 100644 /* gen2 tx power off */ dw_hdmi_phy_gen2_txpwron(hdmi, 0); -@@ -1028,10 +1020,6 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi, int cscon) +@@ -1028,10 +1020,6 @@ static int hdmi_phy_configure(struct dw_ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi) { int i, ret; @@ -57,7 +55,7 @@ index ce7496399ccf..906583beb08b 100644 /* HDMI Phy spec says to do the phy initialization sequence twice */ for (i = 0; i < 2; i++) { -@@ -1040,8 +1028,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi) +@@ -1040,8 +1028,7 @@ static int dw_hdmi_phy_init(struct dw_hd dw_hdmi_phy_enable_tmds(hdmi, 0); dw_hdmi_phy_enable_powerdown(hdmi, true); @@ -67,7 +65,7 @@ index ce7496399ccf..906583beb08b 100644 if (ret) return ret; } -@@ -1303,6 +1290,14 @@ static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) +@@ -1303,6 +1290,14 @@ static void dw_hdmi_enable_video_path(st clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE; hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); } @@ -82,6 +80,3 @@ index ce7496399ccf..906583beb08b 100644 } static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi) --- -2.13.3 - diff --git a/patches.renesas/0227-drm-bridge-dw-hdmi-Enable-CSC-even-for-DVI.patch b/patches.renesas/0227-drm-bridge-dw-hdmi-Enable-CSC-even-for-DVI.patch index 226b39215a41e0..ba192cd8ca3ec6 100644 --- a/patches.renesas/0227-drm-bridge-dw-hdmi-Enable-CSC-even-for-DVI.patch +++ b/patches.renesas/0227-drm-bridge-dw-hdmi-Enable-CSC-even-for-DVI.patch @@ -16,14 +16,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-4-lauren (cherry picked from commit 14247d7ce769cfc2269a8b6a58157abb26813f3e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 4 ++-- + drivers/gpu/drm/bridge/dw-hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index 906583beb08b..d863b3393aee 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c -@@ -1291,8 +1291,8 @@ static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) +@@ -1291,8 +1291,8 @@ static void dw_hdmi_enable_video_path(st hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); } @@ -34,6 +32,3 @@ index 906583beb08b..d863b3393aee 100644 hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH, HDMI_MC_FLOWCTRL); else --- -2.13.3 - diff --git a/patches.renesas/0228-drm-bridge-dw-hdmi-Fix-the-PHY-power-down-sequence.patch b/patches.renesas/0228-drm-bridge-dw-hdmi-Fix-the-PHY-power-down-sequence.patch index f880fafbdc24fe..7a060438264fc2 100644 --- a/patches.renesas/0228-drm-bridge-dw-hdmi-Fix-the-PHY-power-down-sequence.patch +++ b/patches.renesas/0228-drm-bridge-dw-hdmi-Fix-the-PHY-power-down-sequence.patch @@ -29,11 +29,9 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170305233539.11898-1-lauren (cherry picked from commit b0e583e5b6b90eed40456c394410c154a5160814) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 52 +++++++++++++++++++++++++++++++++------- + drivers/gpu/drm/bridge/dw-hdmi.c | 52 ++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 9 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index d863b3393aee..3a1cd4c7ac64 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -116,6 +116,7 @@ struct dw_hdmi_i2c { @@ -44,7 +42,7 @@ index d863b3393aee..3a1cd4c7ac64 100644 bool has_svsret; }; -@@ -914,6 +915,40 @@ static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) +@@ -914,6 +915,40 @@ static void dw_hdmi_phy_sel_interface_co HDMI_PHY_CONF0_SELDIPIF_MASK); } @@ -85,7 +83,7 @@ index d863b3393aee..3a1cd4c7ac64 100644 static int hdmi_phy_configure(struct dw_hdmi *hdmi) { u8 val, msec; -@@ -946,11 +981,7 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi) +@@ -946,11 +981,7 @@ static int hdmi_phy_configure(struct dw_ return -EINVAL; } @@ -98,7 +96,7 @@ index d863b3393aee..3a1cd4c7ac64 100644 /* Leave low power consumption mode by asserting SVSRET. */ if (hdmi->phy->has_svsret) -@@ -1025,8 +1056,6 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi) +@@ -1025,8 +1056,6 @@ static int dw_hdmi_phy_init(struct dw_hd for (i = 0; i < 2; i++) { dw_hdmi_phy_sel_data_en_pol(hdmi, 1); dw_hdmi_phy_sel_interface_control(hdmi, 0); @@ -107,7 +105,7 @@ index d863b3393aee..3a1cd4c7ac64 100644 ret = hdmi_phy_configure(hdmi); if (ret) -@@ -1256,8 +1285,7 @@ static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi) +@@ -1256,8 +1285,7 @@ static void dw_hdmi_phy_disable(struct d if (!hdmi->phy_enabled) return; @@ -117,7 +115,7 @@ index d863b3393aee..3a1cd4c7ac64 100644 hdmi->phy_enabled = false; } -@@ -1827,23 +1855,29 @@ static const struct dw_hdmi_phy_data dw_hdmi_phys[] = { +@@ -1827,23 +1855,29 @@ static const struct dw_hdmi_phy_data dw_ { .type = DW_HDMI_PHY_DWC_HDMI_TX_PHY, .name = "DWC HDMI TX PHY", @@ -147,6 +145,3 @@ index d863b3393aee..3a1cd4c7ac64 100644 .has_svsret = true, } }; --- -2.13.3 - diff --git a/patches.renesas/0229-drm-bridge-dw-hdmi-Fix-the-PHY-power-up-sequence.patch b/patches.renesas/0229-drm-bridge-dw-hdmi-Fix-the-PHY-power-up-sequence.patch index 0f3ab2e5c10493..4ba2b7a37caef8 100644 --- a/patches.renesas/0229-drm-bridge-dw-hdmi-Fix-the-PHY-power-up-sequence.patch +++ b/patches.renesas/0229-drm-bridge-dw-hdmi-Fix-the-PHY-power-up-sequence.patch @@ -22,14 +22,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170305233557.11945-1-lauren (cherry picked from commit 181e0ef092a4952aa523c5b9cb21394cf43bcd46) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 65 +++++++++++++++++++++++----------------- + drivers/gpu/drm/bridge/dw-hdmi.c | 65 ++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 28 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index 3a1cd4c7ac64..c25eac8ba47b 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c -@@ -949,9 +949,44 @@ static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) +@@ -949,9 +949,44 @@ static void dw_hdmi_phy_power_off(struct dw_hdmi_phy_gen2_pddq(hdmi, 1); } @@ -75,7 +73,7 @@ index 3a1cd4c7ac64..c25eac8ba47b 100644 const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; const struct dw_hdmi_mpll_config *mpll_config = pdata->mpll_cfg; const struct dw_hdmi_curr_ctrl *curr_ctrl = pdata->cur_ctr; -@@ -1019,33 +1054,7 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi) +@@ -1019,33 +1054,7 @@ static int hdmi_phy_configure(struct dw_ hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE, HDMI_3D_TX_PHY_CKCALCTRL); @@ -110,6 +108,3 @@ index 3a1cd4c7ac64..c25eac8ba47b 100644 } static int dw_hdmi_phy_init(struct dw_hdmi *hdmi) --- -2.13.3 - diff --git a/patches.renesas/0230-drm-bridge-dw-hdmi-Create-PHY-operations.patch b/patches.renesas/0230-drm-bridge-dw-hdmi-Create-PHY-operations.patch index 79de9bb26c456a..b9571c711a302b 100644 --- a/patches.renesas/0230-drm-bridge-dw-hdmi-Create-PHY-operations.patch +++ b/patches.renesas/0230-drm-bridge-dw-hdmi-Create-PHY-operations.patch @@ -19,12 +19,10 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170305233615.11993-1-lauren (cherry picked from commit f1585f6e29f5aba34e2cd6e3db9f0dd33b046809) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 95 ++++++++++++++++++++++++++++------------ - include/drm/bridge/dw_hdmi.h | 18 +++++++- + drivers/gpu/drm/bridge/dw-hdmi.c | 95 +++++++++++++++++++++++++++------------ + include/drm/bridge/dw_hdmi.h | 18 ++++++- 2 files changed, 82 insertions(+), 31 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index c25eac8ba47b..cb2703862be2 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -141,8 +141,12 @@ struct dw_hdmi { @@ -42,7 +40,7 @@ index c25eac8ba47b..cb2703862be2 100644 struct drm_display_mode previous_mode; -@@ -831,6 +835,10 @@ static void hdmi_video_packetize(struct dw_hdmi *hdmi) +@@ -831,6 +835,10 @@ static void hdmi_video_packetize(struct HDMI_VP_CONF); } @@ -53,7 +51,7 @@ index c25eac8ba47b..cb2703862be2 100644 static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, unsigned char bit) { -@@ -917,7 +925,7 @@ static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) +@@ -917,7 +925,7 @@ static void dw_hdmi_phy_sel_interface_co static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) { @@ -62,7 +60,7 @@ index c25eac8ba47b..cb2703862be2 100644 unsigned int i; u16 val; -@@ -951,7 +959,7 @@ static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) +@@ -951,7 +959,7 @@ static void dw_hdmi_phy_power_off(struct static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) { @@ -71,7 +69,7 @@ index c25eac8ba47b..cb2703862be2 100644 unsigned int i; u8 val; -@@ -987,6 +995,7 @@ static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) +@@ -987,6 +995,7 @@ static int dw_hdmi_phy_power_on(struct d static int hdmi_phy_configure(struct dw_hdmi *hdmi) { @@ -79,7 +77,7 @@ index c25eac8ba47b..cb2703862be2 100644 const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; const struct dw_hdmi_mpll_config *mpll_config = pdata->mpll_cfg; const struct dw_hdmi_curr_ctrl *curr_ctrl = pdata->cur_ctr; -@@ -1019,7 +1028,7 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi) +@@ -1019,7 +1028,7 @@ static int hdmi_phy_configure(struct dw_ dw_hdmi_phy_power_off(hdmi); /* Leave low power consumption mode by asserting SVSRET. */ @@ -88,7 +86,7 @@ index c25eac8ba47b..cb2703862be2 100644 dw_hdmi_phy_enable_svsret(hdmi, 1); /* PHY reset. The reset signal is active high on Gen2 PHYs. */ -@@ -1057,7 +1066,8 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi) +@@ -1057,7 +1066,8 @@ static int hdmi_phy_configure(struct dw_ return dw_hdmi_phy_power_on(hdmi); } @@ -98,7 +96,7 @@ index c25eac8ba47b..cb2703862be2 100644 { int i, ret; -@@ -1071,10 +1081,31 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi) +@@ -1071,10 +1081,31 @@ static int dw_hdmi_phy_init(struct dw_hd return ret; } @@ -131,7 +129,7 @@ index c25eac8ba47b..cb2703862be2 100644 static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi) { u8 de; -@@ -1289,16 +1320,6 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, +@@ -1289,16 +1320,6 @@ static void hdmi_av_composer(struct dw_h hdmi_writeb(hdmi, vsync_len, HDMI_FC_VSYNCINWIDTH); } @@ -148,7 +146,7 @@ index c25eac8ba47b..cb2703862be2 100644 /* HDMI Initialization Step B.4 */ static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) { -@@ -1431,9 +1452,10 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1431,9 +1452,10 @@ static int dw_hdmi_setup(struct dw_hdmi hdmi_av_composer(hdmi, mode); /* HDMI Initializateion Step B.2 */ @@ -160,7 +158,7 @@ index c25eac8ba47b..cb2703862be2 100644 /* HDMI Initialization Step B.3 */ dw_hdmi_enable_video_path(hdmi); -@@ -1548,7 +1570,11 @@ static void dw_hdmi_poweron(struct dw_hdmi *hdmi) +@@ -1548,7 +1570,11 @@ static void dw_hdmi_poweron(struct dw_hd static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) { @@ -173,7 +171,7 @@ index c25eac8ba47b..cb2703862be2 100644 hdmi->bridge_is_on = false; } -@@ -1611,8 +1637,7 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force) +@@ -1611,8 +1637,7 @@ dw_hdmi_connector_detect(struct drm_conn dw_hdmi_update_phy_mask(hdmi); mutex_unlock(&hdmi->mutex); @@ -183,7 +181,7 @@ index c25eac8ba47b..cb2703862be2 100644 } static int dw_hdmi_connector_get_modes(struct drm_connector *connector) -@@ -1898,19 +1923,31 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) +@@ -1898,19 +1923,31 @@ static int dw_hdmi_detect_phy(struct dw_ phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID); @@ -222,7 +220,7 @@ index c25eac8ba47b..cb2703862be2 100644 return -ENODEV; } -@@ -2031,7 +2068,7 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2031,7 +2068,7 @@ __dw_hdmi_probe(struct platform_device * dev_info(dev, "Detected HDMI TX controller v%x.%03x %s HDCP (%s)\n", hdmi->version >> 12, hdmi->version & 0xfff, prod_id1 & HDMI_PRODUCT_ID1_HDCP ? "with" : "without", @@ -231,8 +229,6 @@ index c25eac8ba47b..cb2703862be2 100644 initialize_hdmi_ih_mutes(hdmi); -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index b080a171a23f..0f583ca7e66e 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -57,13 +57,27 @@ struct dw_hdmi_phy_config { @@ -265,6 +261,3 @@ index b080a171a23f..0f583ca7e66e 100644 }; int dw_hdmi_probe(struct platform_device *pdev, --- -2.13.3 - diff --git a/patches.renesas/0231-drm-bridge-dw-hdmi-Add-support-for-custom-PHY-config.patch b/patches.renesas/0231-drm-bridge-dw-hdmi-Add-support-for-custom-PHY-config.patch index bdd286429cb129..6cbfc5fbb75bf7 100644 --- a/patches.renesas/0231-drm-bridge-dw-hdmi-Add-support-for-custom-PHY-config.patch +++ b/patches.renesas/0231-drm-bridge-dw-hdmi-Add-support-for-custom-PHY-config.patch @@ -23,12 +23,10 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-8-lauren (cherry picked from commit 2ef9dfedefd60a12d2b02b1ee0a42be3506c43f2) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 109 ++++++++++++++++++++++++++------------- - include/drm/bridge/dw_hdmi.h | 7 +++ + drivers/gpu/drm/bridge/dw-hdmi.c | 109 ++++++++++++++++++++++++++------------- + include/drm/bridge/dw_hdmi.h | 7 ++ 2 files changed, 81 insertions(+), 35 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index cb2703862be2..b835d81bb471 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -118,6 +118,9 @@ struct dw_hdmi_phy_data { @@ -41,7 +39,7 @@ index cb2703862be2..b835d81bb471 100644 }; struct dw_hdmi { -@@ -860,8 +863,8 @@ static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) +@@ -860,8 +863,8 @@ static bool hdmi_phy_wait_i2c_done(struc return true; } @@ -52,7 +50,7 @@ index cb2703862be2..b835d81bb471 100644 { hdmi_writeb(hdmi, 0xFF, HDMI_IH_I2CMPHY_STAT0); hdmi_writeb(hdmi, addr, HDMI_PHY_I2CM_ADDRESS_ADDR); -@@ -873,6 +876,7 @@ static void hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, +@@ -873,6 +876,7 @@ static void hdmi_phy_i2c_write(struct dw HDMI_PHY_I2CM_OPERATION_ADDR); hdmi_phy_wait_i2c_done(hdmi, 1000); } @@ -60,7 +58,7 @@ index cb2703862be2..b835d81bb471 100644 static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) { -@@ -993,37 +997,67 @@ static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) +@@ -993,37 +997,67 @@ static int dw_hdmi_phy_power_on(struct d return 0; } @@ -141,7 +139,7 @@ index cb2703862be2..b835d81bb471 100644 dw_hdmi_phy_power_off(hdmi); -@@ -1042,26 +1076,16 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi) +@@ -1042,26 +1076,16 @@ static int hdmi_phy_configure(struct dw_ HDMI_PHY_I2CM_SLAVE_ADDR); hdmi_phy_test_clear(hdmi, 0); @@ -178,7 +176,7 @@ index cb2703862be2..b835d81bb471 100644 return dw_hdmi_phy_power_on(hdmi); } -@@ -1895,24 +1919,31 @@ static const struct dw_hdmi_phy_data dw_hdmi_phys[] = { +@@ -1895,24 +1919,31 @@ static const struct dw_hdmi_phy_data dw_ .name = "DWC MHL PHY + HEAC PHY", .gen = 2, .has_svsret = true, @@ -210,7 +208,7 @@ index cb2703862be2..b835d81bb471 100644 } }; -@@ -1943,6 +1974,14 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) +@@ -1943,6 +1974,14 @@ static int dw_hdmi_detect_phy(struct dw_ hdmi->phy.ops = &dw_hdmi_synopsys_phy_ops; hdmi->phy.name = dw_hdmi_phys[i].name; hdmi->phy.data = (void *)&dw_hdmi_phys[i]; @@ -225,8 +223,6 @@ index cb2703862be2..b835d81bb471 100644 return 0; } } -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index 0f583ca7e66e..dd330259a3dc 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -78,6 +78,9 @@ struct dw_hdmi_plat_data { @@ -239,7 +235,7 @@ index 0f583ca7e66e..dd330259a3dc 100644 }; int dw_hdmi_probe(struct platform_device *pdev, -@@ -91,4 +94,8 @@ void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate); +@@ -91,4 +94,8 @@ void dw_hdmi_set_sample_rate(struct dw_h void dw_hdmi_audio_enable(struct dw_hdmi *hdmi); void dw_hdmi_audio_disable(struct dw_hdmi *hdmi); @@ -248,6 +244,3 @@ index 0f583ca7e66e..dd330259a3dc 100644 + unsigned char addr); + #endif /* __IMX_HDMI_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0232-drm-bridge-dw-hdmi-Remove-device-type-from-platform-.patch b/patches.renesas/0232-drm-bridge-dw-hdmi-Remove-device-type-from-platform-.patch index 0ed18e124c15af..0fc5fb8688a4b4 100644 --- a/patches.renesas/0232-drm-bridge-dw-hdmi-Remove-device-type-from-platform-.patch +++ b/patches.renesas/0232-drm-bridge-dw-hdmi-Remove-device-type-from-platform-.patch @@ -17,14 +17,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-9-lauren (cherry picked from commit 2e6777e8d5dd883b983c8de8797ff92bcb158f7c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 2 -- - drivers/gpu/drm/imx/dw_hdmi-imx.c | 2 -- - drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 1 - - include/drm/bridge/dw_hdmi.h | 7 ------- + drivers/gpu/drm/bridge/dw-hdmi.c | 2 -- + drivers/gpu/drm/imx/dw_hdmi-imx.c | 2 -- + drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 1 - + include/drm/bridge/dw_hdmi.h | 7 ------- 4 files changed, 12 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index b835d81bb471..132c00685796 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -127,7 +127,6 @@ struct dw_hdmi { @@ -35,7 +33,7 @@ index b835d81bb471..132c00685796 100644 unsigned int version; struct platform_device *audio; -@@ -2014,7 +2013,6 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2014,7 +2013,6 @@ __dw_hdmi_probe(struct platform_device * hdmi->plat_data = plat_data; hdmi->dev = dev; @@ -43,11 +41,9 @@ index b835d81bb471..132c00685796 100644 hdmi->sample_rate = 48000; hdmi->disabled = true; hdmi->rxsense = true; -diff --git a/drivers/gpu/drm/imx/dw_hdmi-imx.c b/drivers/gpu/drm/imx/dw_hdmi-imx.c -index f645275e6e63..f039641070ac 100644 --- a/drivers/gpu/drm/imx/dw_hdmi-imx.c +++ b/drivers/gpu/drm/imx/dw_hdmi-imx.c -@@ -175,7 +175,6 @@ static struct dw_hdmi_plat_data imx6q_hdmi_drv_data = { +@@ -175,7 +175,6 @@ static struct dw_hdmi_plat_data imx6q_hd .mpll_cfg = imx_mpll_cfg, .cur_ctr = imx_cur_ctr, .phy_config = imx_phy_config, @@ -55,7 +51,7 @@ index f645275e6e63..f039641070ac 100644 .mode_valid = imx6q_hdmi_mode_valid, }; -@@ -183,7 +182,6 @@ static struct dw_hdmi_plat_data imx6dl_hdmi_drv_data = { +@@ -183,7 +182,6 @@ static struct dw_hdmi_plat_data imx6dl_h .mpll_cfg = imx_mpll_cfg, .cur_ctr = imx_cur_ctr, .phy_config = imx_phy_config, @@ -63,11 +59,9 @@ index f645275e6e63..f039641070ac 100644 .mode_valid = imx6dl_hdmi_mode_valid, }; -diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c -index a6d4a0236e8f..d53827413996 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c -@@ -237,7 +237,6 @@ static const struct dw_hdmi_plat_data rockchip_hdmi_drv_data = { +@@ -237,7 +237,6 @@ static const struct dw_hdmi_plat_data ro .mpll_cfg = rockchip_mpll_cfg, .cur_ctr = rockchip_cur_ctr, .phy_config = rockchip_phy_config, @@ -75,8 +69,6 @@ index a6d4a0236e8f..d53827413996 100644 }; static const struct of_device_id dw_hdmi_rockchip_dt_ids[] = { -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index dd330259a3dc..545f04fae3b6 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -21,12 +21,6 @@ enum { @@ -100,6 +92,3 @@ index dd330259a3dc..545f04fae3b6 100644 enum drm_mode_status (*mode_valid)(struct drm_connector *connector, struct drm_display_mode *mode); --- -2.13.3 - diff --git a/patches.renesas/0233-drm-bridge-dw-hdmi-Switch-to-regmap-for-register-acc.patch b/patches.renesas/0233-drm-bridge-dw-hdmi-Switch-to-regmap-for-register-acc.patch index 0f953fcd92c649..6bd772c936f14e 100644 --- a/patches.renesas/0233-drm-bridge-dw-hdmi-Switch-to-regmap-for-register-acc.patch +++ b/patches.renesas/0233-drm-bridge-dw-hdmi-Switch-to-regmap-for-register-acc.patch @@ -29,12 +29,10 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170303172007.26541-10-laure (cherry picked from commit 80e2f97968b537fc9c1789fce1b7f61609a5aae4) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/dw-hdmi.c | 109 +++++++++++++++++++++------------------ - include/drm/bridge/dw_hdmi.h | 1 + + drivers/gpu/drm/bridge/dw-hdmi.c | 109 ++++++++++++++++++++------------------- + include/drm/bridge/dw_hdmi.h | 1 2 files changed, 59 insertions(+), 51 deletions(-) -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c -index 132c00685796..026a0dce7661 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -19,6 +19,7 @@ @@ -106,7 +104,7 @@ index 132c00685796..026a0dce7661 100644 } static void hdmi_mask_writeb(struct dw_hdmi *hdmi, u8 data, unsigned int reg, -@@ -1989,6 +1971,20 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) +@@ -1989,6 +1971,20 @@ static int dw_hdmi_detect_phy(struct dw_ return -ENODEV; } @@ -127,7 +125,7 @@ index 132c00685796..026a0dce7661 100644 static struct dw_hdmi * __dw_hdmi_probe(struct platform_device *pdev, const struct dw_hdmi_plat_data *plat_data) -@@ -1998,7 +1994,7 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -1998,7 +1994,7 @@ __dw_hdmi_probe(struct platform_device * struct platform_device_info pdevinfo; struct device_node *ddc_node; struct dw_hdmi *hdmi; @@ -136,7 +134,7 @@ index 132c00685796..026a0dce7661 100644 int irq; int ret; u32 val = 1; -@@ -2022,22 +2018,6 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2022,22 +2018,6 @@ __dw_hdmi_probe(struct platform_device * mutex_init(&hdmi->audio_mutex); spin_lock_init(&hdmi->audio_lock); @@ -159,7 +157,7 @@ index 132c00685796..026a0dce7661 100644 ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); if (ddc_node) { hdmi->ddc = of_get_i2c_adapter_by_node(ddc_node); -@@ -2051,11 +2031,38 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2051,11 +2031,38 @@ __dw_hdmi_probe(struct platform_device * dev_dbg(hdmi->dev, "no ddc property found\n"); } @@ -203,7 +201,7 @@ index 132c00685796..026a0dce7661 100644 } hdmi->isfr_clk = devm_clk_get(hdmi->dev, "isfr"); -@@ -2165,7 +2172,7 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2165,7 +2172,7 @@ __dw_hdmi_probe(struct platform_device * config0 = hdmi_readb(hdmi, HDMI_CONFIG0_ID); config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID); @@ -212,8 +210,6 @@ index 132c00685796..026a0dce7661 100644 struct dw_hdmi_audio_data audio; audio.phys = iores->start; -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index 545f04fae3b6..bcceee8114a4 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -59,6 +59,7 @@ struct dw_hdmi_phy_ops { @@ -224,6 +220,3 @@ index 545f04fae3b6..bcceee8114a4 100644 enum drm_mode_status (*mode_valid)(struct drm_connector *connector, struct drm_display_mode *mode); --- -2.13.3 - diff --git a/patches.renesas/0234-drm-bridge-dw-hdmi-Move-the-driver-to-a-separate-dir.patch b/patches.renesas/0234-drm-bridge-dw-hdmi-Move-the-driver-to-a-separate-dir.patch index c9f773322aed38..08baa24c5d88d3 100644 --- a/patches.renesas/0234-drm-bridge-dw-hdmi-Move-the-driver-to-a-separate-dir.patch +++ b/patches.renesas/0234-drm-bridge-dw-hdmi-Move-the-driver-to-a-separate-dir.patch @@ -26,7 +26,21 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> .../drm/bridge/{ => synopsys}/dw-hdmi-i2s-audio.c | 0 drivers/gpu/drm/bridge/{ => synopsys}/dw-hdmi.c | 0 drivers/gpu/drm/bridge/{ => synopsys}/dw-hdmi.h | 0 - 9 files changed, 31 insertions(+), 26 deletions(-) + drivers/gpu/drm/bridge/Kconfig | 25 + drivers/gpu/drm/bridge/Makefile | 4 + drivers/gpu/drm/bridge/dw-hdmi-ahb-audio.c | 652 ----- + drivers/gpu/drm/bridge/dw-hdmi-audio.h | 21 + drivers/gpu/drm/bridge/dw-hdmi-i2s-audio.c | 141 - + drivers/gpu/drm/bridge/dw-hdmi.c | 2314 -------------------- + drivers/gpu/drm/bridge/dw-hdmi.h | 1153 --------- + drivers/gpu/drm/bridge/synopsys/Kconfig | 23 + drivers/gpu/drm/bridge/synopsys/Makefile | 5 + drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 652 +++++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 21 + drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 141 + + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2314 ++++++++++++++++++++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 1153 +++++++++ + 14 files changed, 4312 insertions(+), 4307 deletions(-) create mode 100644 drivers/gpu/drm/bridge/synopsys/Kconfig create mode 100644 drivers/gpu/drm/bridge/synopsys/Makefile rename drivers/gpu/drm/bridge/{ => synopsys}/dw-hdmi-ahb-audio.c (100%) @@ -35,8 +49,6 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> rename drivers/gpu/drm/bridge/{ => synopsys}/dw-hdmi.c (100%) rename drivers/gpu/drm/bridge/{ => synopsys}/dw-hdmi.h (100%) -diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig -index 3129f8d988fb..ae9bd851fc8b 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -24,29 +24,6 @@ config DRM_DUMB_VGA_DAC @@ -69,15 +81,13 @@ index 3129f8d988fb..ae9bd851fc8b 100644 config DRM_NXP_PTN3460 tristate "NXP PTN3460 DP/LVDS bridge" depends on OF -@@ -86,4 +63,6 @@ source "drivers/gpu/drm/bridge/analogix/Kconfig" +@@ -86,4 +63,6 @@ source "drivers/gpu/drm/bridge/analogix/ source "drivers/gpu/drm/bridge/adv7511/Kconfig" +source "drivers/gpu/drm/bridge/synopsys/Kconfig" + endmenu -diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile -index 9a54f2ada2c2..4df86e927416 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -2,12 +2,10 @@ ccflags-y := -Iinclude/drm @@ -94,9 +104,4302 @@ index 9a54f2ada2c2..4df86e927416 100644 obj-$(CONFIG_DRM_ANALOGIX_DP) += analogix/ obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511/ +obj-y += synopsys/ -diff --git a/drivers/gpu/drm/bridge/synopsys/Kconfig b/drivers/gpu/drm/bridge/synopsys/Kconfig -new file mode 100644 -index 000000000000..40d2827a6d19 +--- a/drivers/gpu/drm/bridge/dw-hdmi-ahb-audio.c ++++ /dev/null +@@ -1,652 +0,0 @@ +-/* +- * DesignWare HDMI audio driver +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License version 2 as +- * published by the Free Software Foundation. +- * +- * Written and tested against the Designware HDMI Tx found in iMX6. +- */ +-#include <linux/io.h> +-#include <linux/interrupt.h> +-#include <linux/module.h> +-#include <linux/platform_device.h> +-#include <drm/bridge/dw_hdmi.h> +-#include <drm/drm_edid.h> +- +-#include <sound/asoundef.h> +-#include <sound/core.h> +-#include <sound/initval.h> +-#include <sound/pcm.h> +-#include <sound/pcm_drm_eld.h> +-#include <sound/pcm_iec958.h> +- +-#include "dw-hdmi-audio.h" +- +-#define DRIVER_NAME "dw-hdmi-ahb-audio" +- +-/* Provide some bits rather than bit offsets */ +-enum { +- HDMI_AHB_DMA_CONF0_SW_FIFO_RST = BIT(7), +- HDMI_AHB_DMA_CONF0_EN_HLOCK = BIT(3), +- HDMI_AHB_DMA_START_START = BIT(0), +- HDMI_AHB_DMA_STOP_STOP = BIT(0), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR = BIT(5), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST = BIT(4), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY = BIT(3), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE = BIT(2), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL = BIT(1), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0), +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL = +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR | +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST | +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY | +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE | +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL | +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY, +- HDMI_IH_AHBDMAAUD_STAT0_ERROR = BIT(5), +- HDMI_IH_AHBDMAAUD_STAT0_LOST = BIT(4), +- HDMI_IH_AHBDMAAUD_STAT0_RETRY = BIT(3), +- HDMI_IH_AHBDMAAUD_STAT0_DONE = BIT(2), +- HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL = BIT(1), +- HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0), +- HDMI_IH_AHBDMAAUD_STAT0_ALL = +- HDMI_IH_AHBDMAAUD_STAT0_ERROR | +- HDMI_IH_AHBDMAAUD_STAT0_LOST | +- HDMI_IH_AHBDMAAUD_STAT0_RETRY | +- HDMI_IH_AHBDMAAUD_STAT0_DONE | +- HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL | +- HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY, +- HDMI_AHB_DMA_CONF0_INCR16 = 2 << 1, +- HDMI_AHB_DMA_CONF0_INCR8 = 1 << 1, +- HDMI_AHB_DMA_CONF0_INCR4 = 0, +- HDMI_AHB_DMA_CONF0_BURST_MODE = BIT(0), +- HDMI_AHB_DMA_MASK_DONE = BIT(7), +- +- HDMI_REVISION_ID = 0x0001, +- HDMI_IH_AHBDMAAUD_STAT0 = 0x0109, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0 = 0x0189, +- HDMI_FC_AUDICONF2 = 0x1027, +- HDMI_FC_AUDSCONF = 0x1063, +- HDMI_FC_AUDSCONF_LAYOUT1 = 1 << 0, +- HDMI_FC_AUDSCONF_LAYOUT0 = 0 << 0, +- HDMI_AHB_DMA_CONF0 = 0x3600, +- HDMI_AHB_DMA_START = 0x3601, +- HDMI_AHB_DMA_STOP = 0x3602, +- HDMI_AHB_DMA_THRSLD = 0x3603, +- HDMI_AHB_DMA_STRADDR0 = 0x3604, +- HDMI_AHB_DMA_STPADDR0 = 0x3608, +- HDMI_AHB_DMA_MASK = 0x3614, +- HDMI_AHB_DMA_POL = 0x3615, +- HDMI_AHB_DMA_CONF1 = 0x3616, +- HDMI_AHB_DMA_BUFFPOL = 0x361a, +-}; +- +-struct dw_hdmi_channel_conf { +- u8 conf1; +- u8 ca; +-}; +- +-/* +- * The default mapping of ALSA channels to HDMI channels and speaker +- * allocation bits. Note that we can't do channel remapping here - +- * channels must be in the same order. +- * +- * Mappings for alsa-lib pcm/surround*.conf files: +- * +- * Front Sur4.0 Sur4.1 Sur5.0 Sur5.1 Sur7.1 +- * Channels 2 4 6 6 6 8 +- * +- * Our mapping from ALSA channel to CEA686D speaker name and HDMI channel: +- * +- * Number of ALSA channels +- * ALSA Channel 2 3 4 5 6 7 8 +- * 0 FL:0 = = = = = = +- * 1 FR:1 = = = = = = +- * 2 FC:3 RL:4 LFE:2 = = = +- * 3 RR:5 RL:4 FC:3 = = +- * 4 RR:5 RL:4 = = +- * 5 RR:5 = = +- * 6 RC:6 = +- * 7 RLC/FRC RLC/FRC +- */ +-static struct dw_hdmi_channel_conf default_hdmi_channel_config[7] = { +- { 0x03, 0x00 }, /* FL,FR */ +- { 0x0b, 0x02 }, /* FL,FR,FC */ +- { 0x33, 0x08 }, /* FL,FR,RL,RR */ +- { 0x37, 0x09 }, /* FL,FR,LFE,RL,RR */ +- { 0x3f, 0x0b }, /* FL,FR,LFE,FC,RL,RR */ +- { 0x7f, 0x0f }, /* FL,FR,LFE,FC,RL,RR,RC */ +- { 0xff, 0x13 }, /* FL,FR,LFE,FC,RL,RR,[FR]RC,[FR]LC */ +-}; +- +-struct snd_dw_hdmi { +- struct snd_card *card; +- struct snd_pcm *pcm; +- spinlock_t lock; +- struct dw_hdmi_audio_data data; +- struct snd_pcm_substream *substream; +- void (*reformat)(struct snd_dw_hdmi *, size_t, size_t); +- void *buf_src; +- void *buf_dst; +- dma_addr_t buf_addr; +- unsigned buf_offset; +- unsigned buf_period; +- unsigned buf_size; +- unsigned channels; +- u8 revision; +- u8 iec_offset; +- u8 cs[192][8]; +-}; +- +-static void dw_hdmi_writel(u32 val, void __iomem *ptr) +-{ +- writeb_relaxed(val, ptr); +- writeb_relaxed(val >> 8, ptr + 1); +- writeb_relaxed(val >> 16, ptr + 2); +- writeb_relaxed(val >> 24, ptr + 3); +-} +- +-/* +- * Convert to hardware format: The userspace buffer contains IEC958 samples, +- * with the PCUV bits in bits 31..28 and audio samples in bits 27..4. We +- * need these to be in bits 27..24, with the IEC B bit in bit 28, and audio +- * samples in 23..0. +- * +- * Default preamble in bits 3..0: 8 = block start, 4 = even 2 = odd +- * +- * Ideally, we could do with having the data properly formatted in userspace. +- */ +-static void dw_hdmi_reformat_iec958(struct snd_dw_hdmi *dw, +- size_t offset, size_t bytes) +-{ +- u32 *src = dw->buf_src + offset; +- u32 *dst = dw->buf_dst + offset; +- u32 *end = dw->buf_src + offset + bytes; +- +- do { +- u32 b, sample = *src++; +- +- b = (sample & 8) << (28 - 3); +- +- sample >>= 4; +- +- *dst++ = sample | b; +- } while (src < end); +-} +- +-static u32 parity(u32 sample) +-{ +- sample ^= sample >> 16; +- sample ^= sample >> 8; +- sample ^= sample >> 4; +- sample ^= sample >> 2; +- sample ^= sample >> 1; +- return (sample & 1) << 27; +-} +- +-static void dw_hdmi_reformat_s24(struct snd_dw_hdmi *dw, +- size_t offset, size_t bytes) +-{ +- u32 *src = dw->buf_src + offset; +- u32 *dst = dw->buf_dst + offset; +- u32 *end = dw->buf_src + offset + bytes; +- +- do { +- unsigned i; +- u8 *cs; +- +- cs = dw->cs[dw->iec_offset++]; +- if (dw->iec_offset >= 192) +- dw->iec_offset = 0; +- +- i = dw->channels; +- do { +- u32 sample = *src++; +- +- sample &= ~0xff000000; +- sample |= *cs++ << 24; +- sample |= parity(sample & ~0xf8000000); +- +- *dst++ = sample; +- } while (--i); +- } while (src < end); +-} +- +-static void dw_hdmi_create_cs(struct snd_dw_hdmi *dw, +- struct snd_pcm_runtime *runtime) +-{ +- u8 cs[4]; +- unsigned ch, i, j; +- +- snd_pcm_create_iec958_consumer(runtime, cs, sizeof(cs)); +- +- memset(dw->cs, 0, sizeof(dw->cs)); +- +- for (ch = 0; ch < 8; ch++) { +- cs[2] &= ~IEC958_AES2_CON_CHANNEL; +- cs[2] |= (ch + 1) << 4; +- +- for (i = 0; i < ARRAY_SIZE(cs); i++) { +- unsigned c = cs[i]; +- +- for (j = 0; j < 8; j++, c >>= 1) +- dw->cs[i * 8 + j][ch] = (c & 1) << 2; +- } +- } +- dw->cs[0][0] |= BIT(4); +-} +- +-static void dw_hdmi_start_dma(struct snd_dw_hdmi *dw) +-{ +- void __iomem *base = dw->data.base; +- unsigned offset = dw->buf_offset; +- unsigned period = dw->buf_period; +- u32 start, stop; +- +- dw->reformat(dw, offset, period); +- +- /* Clear all irqs before enabling irqs and starting DMA */ +- writeb_relaxed(HDMI_IH_AHBDMAAUD_STAT0_ALL, +- base + HDMI_IH_AHBDMAAUD_STAT0); +- +- start = dw->buf_addr + offset; +- stop = start + period - 1; +- +- /* Setup the hardware start/stop addresses */ +- dw_hdmi_writel(start, base + HDMI_AHB_DMA_STRADDR0); +- dw_hdmi_writel(stop, base + HDMI_AHB_DMA_STPADDR0); +- +- writeb_relaxed((u8)~HDMI_AHB_DMA_MASK_DONE, base + HDMI_AHB_DMA_MASK); +- writeb(HDMI_AHB_DMA_START_START, base + HDMI_AHB_DMA_START); +- +- offset += period; +- if (offset >= dw->buf_size) +- offset = 0; +- dw->buf_offset = offset; +-} +- +-static void dw_hdmi_stop_dma(struct snd_dw_hdmi *dw) +-{ +- /* Disable interrupts before disabling DMA */ +- writeb_relaxed(~0, dw->data.base + HDMI_AHB_DMA_MASK); +- writeb_relaxed(HDMI_AHB_DMA_STOP_STOP, dw->data.base + HDMI_AHB_DMA_STOP); +-} +- +-static irqreturn_t snd_dw_hdmi_irq(int irq, void *data) +-{ +- struct snd_dw_hdmi *dw = data; +- struct snd_pcm_substream *substream; +- unsigned stat; +- +- stat = readb_relaxed(dw->data.base + HDMI_IH_AHBDMAAUD_STAT0); +- if (!stat) +- return IRQ_NONE; +- +- writeb_relaxed(stat, dw->data.base + HDMI_IH_AHBDMAAUD_STAT0); +- +- substream = dw->substream; +- if (stat & HDMI_IH_AHBDMAAUD_STAT0_DONE && substream) { +- snd_pcm_period_elapsed(substream); +- +- spin_lock(&dw->lock); +- if (dw->substream) +- dw_hdmi_start_dma(dw); +- spin_unlock(&dw->lock); +- } +- +- return IRQ_HANDLED; +-} +- +-static struct snd_pcm_hardware dw_hdmi_hw = { +- .info = SNDRV_PCM_INFO_INTERLEAVED | +- SNDRV_PCM_INFO_BLOCK_TRANSFER | +- SNDRV_PCM_INFO_MMAP | +- SNDRV_PCM_INFO_MMAP_VALID, +- .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE | +- SNDRV_PCM_FMTBIT_S24_LE, +- .rates = SNDRV_PCM_RATE_32000 | +- SNDRV_PCM_RATE_44100 | +- SNDRV_PCM_RATE_48000 | +- SNDRV_PCM_RATE_88200 | +- SNDRV_PCM_RATE_96000 | +- SNDRV_PCM_RATE_176400 | +- SNDRV_PCM_RATE_192000, +- .channels_min = 2, +- .channels_max = 8, +- .buffer_bytes_max = 1024 * 1024, +- .period_bytes_min = 256, +- .period_bytes_max = 8192, /* ERR004323: must limit to 8k */ +- .periods_min = 2, +- .periods_max = 16, +- .fifo_size = 0, +-}; +- +-static int dw_hdmi_open(struct snd_pcm_substream *substream) +-{ +- struct snd_pcm_runtime *runtime = substream->runtime; +- struct snd_dw_hdmi *dw = substream->private_data; +- void __iomem *base = dw->data.base; +- int ret; +- +- runtime->hw = dw_hdmi_hw; +- +- ret = snd_pcm_hw_constraint_eld(runtime, dw->data.eld); +- if (ret < 0) +- return ret; +- +- ret = snd_pcm_limit_hw_rates(runtime); +- if (ret < 0) +- return ret; +- +- ret = snd_pcm_hw_constraint_integer(runtime, +- SNDRV_PCM_HW_PARAM_PERIODS); +- if (ret < 0) +- return ret; +- +- /* Limit the buffer size to the size of the preallocated buffer */ +- ret = snd_pcm_hw_constraint_minmax(runtime, +- SNDRV_PCM_HW_PARAM_BUFFER_SIZE, +- 0, substream->dma_buffer.bytes); +- if (ret < 0) +- return ret; +- +- /* Clear FIFO */ +- writeb_relaxed(HDMI_AHB_DMA_CONF0_SW_FIFO_RST, +- base + HDMI_AHB_DMA_CONF0); +- +- /* Configure interrupt polarities */ +- writeb_relaxed(~0, base + HDMI_AHB_DMA_POL); +- writeb_relaxed(~0, base + HDMI_AHB_DMA_BUFFPOL); +- +- /* Keep interrupts masked, and clear any pending */ +- writeb_relaxed(~0, base + HDMI_AHB_DMA_MASK); +- writeb_relaxed(~0, base + HDMI_IH_AHBDMAAUD_STAT0); +- +- ret = request_irq(dw->data.irq, snd_dw_hdmi_irq, IRQF_SHARED, +- "dw-hdmi-audio", dw); +- if (ret) +- return ret; +- +- /* Un-mute done interrupt */ +- writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL & +- ~HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE, +- base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); +- +- return 0; +-} +- +-static int dw_hdmi_close(struct snd_pcm_substream *substream) +-{ +- struct snd_dw_hdmi *dw = substream->private_data; +- +- /* Mute all interrupts */ +- writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL, +- dw->data.base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); +- +- free_irq(dw->data.irq, dw); +- +- return 0; +-} +- +-static int dw_hdmi_hw_free(struct snd_pcm_substream *substream) +-{ +- return snd_pcm_lib_free_vmalloc_buffer(substream); +-} +- +-static int dw_hdmi_hw_params(struct snd_pcm_substream *substream, +- struct snd_pcm_hw_params *params) +-{ +- /* Allocate the PCM runtime buffer, which is exposed to userspace. */ +- return snd_pcm_lib_alloc_vmalloc_buffer(substream, +- params_buffer_bytes(params)); +-} +- +-static int dw_hdmi_prepare(struct snd_pcm_substream *substream) +-{ +- struct snd_pcm_runtime *runtime = substream->runtime; +- struct snd_dw_hdmi *dw = substream->private_data; +- u8 threshold, conf0, conf1, layout, ca; +- +- /* Setup as per 3.0.5 FSL 4.1.0 BSP */ +- switch (dw->revision) { +- case 0x0a: +- conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE | +- HDMI_AHB_DMA_CONF0_INCR4; +- if (runtime->channels == 2) +- threshold = 126; +- else +- threshold = 124; +- break; +- case 0x1a: +- conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE | +- HDMI_AHB_DMA_CONF0_INCR8; +- threshold = 128; +- break; +- default: +- /* NOTREACHED */ +- return -EINVAL; +- } +- +- dw_hdmi_set_sample_rate(dw->data.hdmi, runtime->rate); +- +- /* Minimum number of bytes in the fifo. */ +- runtime->hw.fifo_size = threshold * 32; +- +- conf0 |= HDMI_AHB_DMA_CONF0_EN_HLOCK; +- conf1 = default_hdmi_channel_config[runtime->channels - 2].conf1; +- ca = default_hdmi_channel_config[runtime->channels - 2].ca; +- +- /* +- * For >2 channel PCM audio, we need to select layout 1 +- * and set an appropriate channel map. +- */ +- if (runtime->channels > 2) +- layout = HDMI_FC_AUDSCONF_LAYOUT1; +- else +- layout = HDMI_FC_AUDSCONF_LAYOUT0; +- +- writeb_relaxed(threshold, dw->data.base + HDMI_AHB_DMA_THRSLD); +- writeb_relaxed(conf0, dw->data.base + HDMI_AHB_DMA_CONF0); +- writeb_relaxed(conf1, dw->data.base + HDMI_AHB_DMA_CONF1); +- writeb_relaxed(layout, dw->data.base + HDMI_FC_AUDSCONF); +- writeb_relaxed(ca, dw->data.base + HDMI_FC_AUDICONF2); +- +- switch (runtime->format) { +- case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE: +- dw->reformat = dw_hdmi_reformat_iec958; +- break; +- case SNDRV_PCM_FORMAT_S24_LE: +- dw_hdmi_create_cs(dw, runtime); +- dw->reformat = dw_hdmi_reformat_s24; +- break; +- } +- dw->iec_offset = 0; +- dw->channels = runtime->channels; +- dw->buf_src = runtime->dma_area; +- dw->buf_dst = substream->dma_buffer.area; +- dw->buf_addr = substream->dma_buffer.addr; +- dw->buf_period = snd_pcm_lib_period_bytes(substream); +- dw->buf_size = snd_pcm_lib_buffer_bytes(substream); +- +- return 0; +-} +- +-static int dw_hdmi_trigger(struct snd_pcm_substream *substream, int cmd) +-{ +- struct snd_dw_hdmi *dw = substream->private_data; +- unsigned long flags; +- int ret = 0; +- +- switch (cmd) { +- case SNDRV_PCM_TRIGGER_START: +- spin_lock_irqsave(&dw->lock, flags); +- dw->buf_offset = 0; +- dw->substream = substream; +- dw_hdmi_start_dma(dw); +- dw_hdmi_audio_enable(dw->data.hdmi); +- spin_unlock_irqrestore(&dw->lock, flags); +- substream->runtime->delay = substream->runtime->period_size; +- break; +- +- case SNDRV_PCM_TRIGGER_STOP: +- spin_lock_irqsave(&dw->lock, flags); +- dw->substream = NULL; +- dw_hdmi_stop_dma(dw); +- dw_hdmi_audio_disable(dw->data.hdmi); +- spin_unlock_irqrestore(&dw->lock, flags); +- break; +- +- default: +- ret = -EINVAL; +- break; +- } +- +- return ret; +-} +- +-static snd_pcm_uframes_t dw_hdmi_pointer(struct snd_pcm_substream *substream) +-{ +- struct snd_pcm_runtime *runtime = substream->runtime; +- struct snd_dw_hdmi *dw = substream->private_data; +- +- /* +- * We are unable to report the exact hardware position as +- * reading the 32-bit DMA position using 8-bit reads is racy. +- */ +- return bytes_to_frames(runtime, dw->buf_offset); +-} +- +-static struct snd_pcm_ops snd_dw_hdmi_ops = { +- .open = dw_hdmi_open, +- .close = dw_hdmi_close, +- .ioctl = snd_pcm_lib_ioctl, +- .hw_params = dw_hdmi_hw_params, +- .hw_free = dw_hdmi_hw_free, +- .prepare = dw_hdmi_prepare, +- .trigger = dw_hdmi_trigger, +- .pointer = dw_hdmi_pointer, +- .page = snd_pcm_lib_get_vmalloc_page, +-}; +- +-static int snd_dw_hdmi_probe(struct platform_device *pdev) +-{ +- const struct dw_hdmi_audio_data *data = pdev->dev.platform_data; +- struct device *dev = pdev->dev.parent; +- struct snd_dw_hdmi *dw; +- struct snd_card *card; +- struct snd_pcm *pcm; +- unsigned revision; +- int ret; +- +- writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL, +- data->base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); +- revision = readb_relaxed(data->base + HDMI_REVISION_ID); +- if (revision != 0x0a && revision != 0x1a) { +- dev_err(dev, "dw-hdmi-audio: unknown revision 0x%02x\n", +- revision); +- return -ENXIO; +- } +- +- ret = snd_card_new(dev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, +- THIS_MODULE, sizeof(struct snd_dw_hdmi), &card); +- if (ret < 0) +- return ret; +- +- strlcpy(card->driver, DRIVER_NAME, sizeof(card->driver)); +- strlcpy(card->shortname, "DW-HDMI", sizeof(card->shortname)); +- snprintf(card->longname, sizeof(card->longname), +- "%s rev 0x%02x, irq %d", card->shortname, revision, +- data->irq); +- +- dw = card->private_data; +- dw->card = card; +- dw->data = *data; +- dw->revision = revision; +- +- spin_lock_init(&dw->lock); +- +- ret = snd_pcm_new(card, "DW HDMI", 0, 1, 0, &pcm); +- if (ret < 0) +- goto err; +- +- dw->pcm = pcm; +- pcm->private_data = dw; +- strlcpy(pcm->name, DRIVER_NAME, sizeof(pcm->name)); +- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_dw_hdmi_ops); +- +- /* +- * To support 8-channel 96kHz audio reliably, we need 512k +- * to satisfy alsa with our restricted period (ERR004323). +- */ +- snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, +- dev, 128 * 1024, 1024 * 1024); +- +- ret = snd_card_register(card); +- if (ret < 0) +- goto err; +- +- platform_set_drvdata(pdev, dw); +- +- return 0; +- +-err: +- snd_card_free(card); +- return ret; +-} +- +-static int snd_dw_hdmi_remove(struct platform_device *pdev) +-{ +- struct snd_dw_hdmi *dw = platform_get_drvdata(pdev); +- +- snd_card_free(dw->card); +- +- return 0; +-} +- +-#if defined(CONFIG_PM_SLEEP) && defined(IS_NOT_BROKEN) +-/* +- * This code is fine, but requires implementation in the dw_hdmi_trigger() +- * method which is currently missing as I have no way to test this. +- */ +-static int snd_dw_hdmi_suspend(struct device *dev) +-{ +- struct snd_dw_hdmi *dw = dev_get_drvdata(dev); +- +- snd_power_change_state(dw->card, SNDRV_CTL_POWER_D3cold); +- snd_pcm_suspend_all(dw->pcm); +- +- return 0; +-} +- +-static int snd_dw_hdmi_resume(struct device *dev) +-{ +- struct snd_dw_hdmi *dw = dev_get_drvdata(dev); +- +- snd_power_change_state(dw->card, SNDRV_CTL_POWER_D0); +- +- return 0; +-} +- +-static SIMPLE_DEV_PM_OPS(snd_dw_hdmi_pm, snd_dw_hdmi_suspend, +- snd_dw_hdmi_resume); +-#define PM_OPS &snd_dw_hdmi_pm +-#else +-#define PM_OPS NULL +-#endif +- +-static struct platform_driver snd_dw_hdmi_driver = { +- .probe = snd_dw_hdmi_probe, +- .remove = snd_dw_hdmi_remove, +- .driver = { +- .name = DRIVER_NAME, +- .pm = PM_OPS, +- }, +-}; +- +-module_platform_driver(snd_dw_hdmi_driver); +- +-MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>"); +-MODULE_DESCRIPTION("Synopsis Designware HDMI AHB ALSA interface"); +-MODULE_LICENSE("GPL v2"); +-MODULE_ALIAS("platform:" DRIVER_NAME); +--- a/drivers/gpu/drm/bridge/dw-hdmi-audio.h ++++ /dev/null +@@ -1,21 +0,0 @@ +-#ifndef DW_HDMI_AUDIO_H +-#define DW_HDMI_AUDIO_H +- +-struct dw_hdmi; +- +-struct dw_hdmi_audio_data { +- phys_addr_t phys; +- void __iomem *base; +- int irq; +- struct dw_hdmi *hdmi; +- u8 *eld; +-}; +- +-struct dw_hdmi_i2s_audio_data { +- struct dw_hdmi *hdmi; +- +- void (*write)(struct dw_hdmi *hdmi, u8 val, int offset); +- u8 (*read)(struct dw_hdmi *hdmi, int offset); +-}; +- +-#endif +--- a/drivers/gpu/drm/bridge/dw-hdmi-i2s-audio.c ++++ /dev/null +@@ -1,141 +0,0 @@ +-/* +- * dw-hdmi-i2s-audio.c +- * +- * Copyright (c) 2016 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License version 2 as +- * published by the Free Software Foundation. +- */ +-#include <drm/bridge/dw_hdmi.h> +- +-#include <sound/hdmi-codec.h> +- +-#include "dw-hdmi.h" +-#include "dw-hdmi-audio.h" +- +-#define DRIVER_NAME "dw-hdmi-i2s-audio" +- +-static inline void hdmi_write(struct dw_hdmi_i2s_audio_data *audio, +- u8 val, int offset) +-{ +- struct dw_hdmi *hdmi = audio->hdmi; +- +- audio->write(hdmi, val, offset); +-} +- +-static inline u8 hdmi_read(struct dw_hdmi_i2s_audio_data *audio, int offset) +-{ +- struct dw_hdmi *hdmi = audio->hdmi; +- +- return audio->read(hdmi, offset); +-} +- +-static int dw_hdmi_i2s_hw_params(struct device *dev, void *data, +- struct hdmi_codec_daifmt *fmt, +- struct hdmi_codec_params *hparms) +-{ +- struct dw_hdmi_i2s_audio_data *audio = data; +- struct dw_hdmi *hdmi = audio->hdmi; +- u8 conf0 = 0; +- u8 conf1 = 0; +- u8 inputclkfs = 0; +- +- /* it cares I2S only */ +- if ((fmt->fmt != HDMI_I2S) || +- (fmt->bit_clk_master | fmt->frame_clk_master)) { +- dev_err(dev, "unsupported format/settings\n"); +- return -EINVAL; +- } +- +- inputclkfs = HDMI_AUD_INPUTCLKFS_64FS; +- conf0 = HDMI_AUD_CONF0_I2S_ALL_ENABLE; +- +- switch (hparms->sample_width) { +- case 16: +- conf1 = HDMI_AUD_CONF1_WIDTH_16; +- break; +- case 24: +- case 32: +- conf1 = HDMI_AUD_CONF1_WIDTH_24; +- break; +- } +- +- dw_hdmi_set_sample_rate(hdmi, hparms->sample_rate); +- +- hdmi_write(audio, inputclkfs, HDMI_AUD_INPUTCLKFS); +- hdmi_write(audio, conf0, HDMI_AUD_CONF0); +- hdmi_write(audio, conf1, HDMI_AUD_CONF1); +- +- dw_hdmi_audio_enable(hdmi); +- +- return 0; +-} +- +-static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data) +-{ +- struct dw_hdmi_i2s_audio_data *audio = data; +- struct dw_hdmi *hdmi = audio->hdmi; +- +- dw_hdmi_audio_disable(hdmi); +- +- hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); +-} +- +-static struct hdmi_codec_ops dw_hdmi_i2s_ops = { +- .hw_params = dw_hdmi_i2s_hw_params, +- .audio_shutdown = dw_hdmi_i2s_audio_shutdown, +-}; +- +-static int snd_dw_hdmi_probe(struct platform_device *pdev) +-{ +- struct dw_hdmi_i2s_audio_data *audio = pdev->dev.platform_data; +- struct platform_device_info pdevinfo; +- struct hdmi_codec_pdata pdata; +- struct platform_device *platform; +- +- pdata.ops = &dw_hdmi_i2s_ops; +- pdata.i2s = 1; +- pdata.max_i2s_channels = 6; +- pdata.data = audio; +- +- memset(&pdevinfo, 0, sizeof(pdevinfo)); +- pdevinfo.parent = pdev->dev.parent; +- pdevinfo.id = PLATFORM_DEVID_AUTO; +- pdevinfo.name = HDMI_CODEC_DRV_NAME; +- pdevinfo.data = &pdata; +- pdevinfo.size_data = sizeof(pdata); +- pdevinfo.dma_mask = DMA_BIT_MASK(32); +- +- platform = platform_device_register_full(&pdevinfo); +- if (IS_ERR(platform)) +- return PTR_ERR(platform); +- +- dev_set_drvdata(&pdev->dev, platform); +- +- return 0; +-} +- +-static int snd_dw_hdmi_remove(struct platform_device *pdev) +-{ +- struct platform_device *platform = dev_get_drvdata(&pdev->dev); +- +- platform_device_unregister(platform); +- +- return 0; +-} +- +-static struct platform_driver snd_dw_hdmi_driver = { +- .probe = snd_dw_hdmi_probe, +- .remove = snd_dw_hdmi_remove, +- .driver = { +- .name = DRIVER_NAME, +- .owner = THIS_MODULE, +- }, +-}; +-module_platform_driver(snd_dw_hdmi_driver); +- +-MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>"); +-MODULE_DESCRIPTION("Synopsis Designware HDMI I2S ALSA SoC interface"); +-MODULE_LICENSE("GPL v2"); +-MODULE_ALIAS("platform:" DRIVER_NAME); +--- a/drivers/gpu/drm/bridge/dw-hdmi.c ++++ /dev/null +@@ -1,2314 +0,0 @@ +-/* +- * DesignWare High-Definition Multimedia Interface (HDMI) driver +- * +- * Copyright (C) 2013-2015 Mentor Graphics Inc. +- * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. +- * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- */ +-#include <linux/module.h> +-#include <linux/irq.h> +-#include <linux/delay.h> +-#include <linux/err.h> +-#include <linux/clk.h> +-#include <linux/hdmi.h> +-#include <linux/mutex.h> +-#include <linux/of_device.h> +-#include <linux/regmap.h> +-#include <linux/spinlock.h> +- +-#include <drm/drm_of.h> +-#include <drm/drmP.h> +-#include <drm/drm_atomic_helper.h> +-#include <drm/drm_crtc_helper.h> +-#include <drm/drm_edid.h> +-#include <drm/drm_encoder_slave.h> +-#include <drm/bridge/dw_hdmi.h> +- +-#include "dw-hdmi.h" +-#include "dw-hdmi-audio.h" +- +-#define HDMI_EDID_LEN 512 +- +-#define RGB 0 +-#define YCBCR444 1 +-#define YCBCR422_16BITS 2 +-#define YCBCR422_8BITS 3 +-#define XVYCC444 4 +- +-enum hdmi_datamap { +- RGB444_8B = 0x01, +- RGB444_10B = 0x03, +- RGB444_12B = 0x05, +- RGB444_16B = 0x07, +- YCbCr444_8B = 0x09, +- YCbCr444_10B = 0x0B, +- YCbCr444_12B = 0x0D, +- YCbCr444_16B = 0x0F, +- YCbCr422_8B = 0x16, +- YCbCr422_10B = 0x14, +- YCbCr422_12B = 0x12, +-}; +- +-static const u16 csc_coeff_default[3][4] = { +- { 0x2000, 0x0000, 0x0000, 0x0000 }, +- { 0x0000, 0x2000, 0x0000, 0x0000 }, +- { 0x0000, 0x0000, 0x2000, 0x0000 } +-}; +- +-static const u16 csc_coeff_rgb_out_eitu601[3][4] = { +- { 0x2000, 0x6926, 0x74fd, 0x010e }, +- { 0x2000, 0x2cdd, 0x0000, 0x7e9a }, +- { 0x2000, 0x0000, 0x38b4, 0x7e3b } +-}; +- +-static const u16 csc_coeff_rgb_out_eitu709[3][4] = { +- { 0x2000, 0x7106, 0x7a02, 0x00a7 }, +- { 0x2000, 0x3264, 0x0000, 0x7e6d }, +- { 0x2000, 0x0000, 0x3b61, 0x7e25 } +-}; +- +-static const u16 csc_coeff_rgb_in_eitu601[3][4] = { +- { 0x2591, 0x1322, 0x074b, 0x0000 }, +- { 0x6535, 0x2000, 0x7acc, 0x0200 }, +- { 0x6acd, 0x7534, 0x2000, 0x0200 } +-}; +- +-static const u16 csc_coeff_rgb_in_eitu709[3][4] = { +- { 0x2dc5, 0x0d9b, 0x049e, 0x0000 }, +- { 0x62f0, 0x2000, 0x7d11, 0x0200 }, +- { 0x6756, 0x78ab, 0x2000, 0x0200 } +-}; +- +-struct hdmi_vmode { +- bool mdataenablepolarity; +- +- unsigned int mpixelclock; +- unsigned int mpixelrepetitioninput; +- unsigned int mpixelrepetitionoutput; +-}; +- +-struct hdmi_data_info { +- unsigned int enc_in_format; +- unsigned int enc_out_format; +- unsigned int enc_color_depth; +- unsigned int colorimetry; +- unsigned int pix_repet_factor; +- unsigned int hdcp_enable; +- struct hdmi_vmode video_mode; +-}; +- +-struct dw_hdmi_i2c { +- struct i2c_adapter adap; +- +- struct mutex lock; /* used to serialize data transfers */ +- struct completion cmp; +- u8 stat; +- +- u8 slave_reg; +- bool is_regaddr; +-}; +- +-struct dw_hdmi_phy_data { +- enum dw_hdmi_phy_type type; +- const char *name; +- unsigned int gen; +- bool has_svsret; +- int (*configure)(struct dw_hdmi *hdmi, +- const struct dw_hdmi_plat_data *pdata, +- unsigned long mpixelclock); +-}; +- +-struct dw_hdmi { +- struct drm_connector connector; +- struct drm_bridge bridge; +- +- unsigned int version; +- +- struct platform_device *audio; +- struct device *dev; +- struct clk *isfr_clk; +- struct clk *iahb_clk; +- struct dw_hdmi_i2c *i2c; +- +- struct hdmi_data_info hdmi_data; +- const struct dw_hdmi_plat_data *plat_data; +- +- int vic; +- +- u8 edid[HDMI_EDID_LEN]; +- bool cable_plugin; +- +- struct { +- const struct dw_hdmi_phy_ops *ops; +- const char *name; +- void *data; +- bool enabled; +- } phy; +- +- struct drm_display_mode previous_mode; +- +- struct i2c_adapter *ddc; +- void __iomem *regs; +- bool sink_is_hdmi; +- bool sink_has_audio; +- +- struct mutex mutex; /* for state below and previous_mode */ +- enum drm_connector_force force; /* mutex-protected force state */ +- bool disabled; /* DRM has disabled our bridge */ +- bool bridge_is_on; /* indicates the bridge is on */ +- bool rxsense; /* rxsense state */ +- u8 phy_mask; /* desired phy int mask settings */ +- +- spinlock_t audio_lock; +- struct mutex audio_mutex; +- unsigned int sample_rate; +- unsigned int audio_cts; +- unsigned int audio_n; +- bool audio_enable; +- +- unsigned int reg_shift; +- struct regmap *regm; +-}; +- +-#define HDMI_IH_PHY_STAT0_RX_SENSE \ +- (HDMI_IH_PHY_STAT0_RX_SENSE0 | HDMI_IH_PHY_STAT0_RX_SENSE1 | \ +- HDMI_IH_PHY_STAT0_RX_SENSE2 | HDMI_IH_PHY_STAT0_RX_SENSE3) +- +-#define HDMI_PHY_RX_SENSE \ +- (HDMI_PHY_RX_SENSE0 | HDMI_PHY_RX_SENSE1 | \ +- HDMI_PHY_RX_SENSE2 | HDMI_PHY_RX_SENSE3) +- +-static inline void hdmi_writeb(struct dw_hdmi *hdmi, u8 val, int offset) +-{ +- regmap_write(hdmi->regm, offset << hdmi->reg_shift, val); +-} +- +-static inline u8 hdmi_readb(struct dw_hdmi *hdmi, int offset) +-{ +- unsigned int val = 0; +- +- regmap_read(hdmi->regm, offset << hdmi->reg_shift, &val); +- +- return val; +-} +- +-static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) +-{ +- regmap_update_bits(hdmi->regm, reg << hdmi->reg_shift, mask, data); +-} +- +-static void hdmi_mask_writeb(struct dw_hdmi *hdmi, u8 data, unsigned int reg, +- u8 shift, u8 mask) +-{ +- hdmi_modb(hdmi, data << shift, mask, reg); +-} +- +-static void dw_hdmi_i2c_init(struct dw_hdmi *hdmi) +-{ +- /* Software reset */ +- hdmi_writeb(hdmi, 0x00, HDMI_I2CM_SOFTRSTZ); +- +- /* Set Standard Mode speed (determined to be 100KHz on iMX6) */ +- hdmi_writeb(hdmi, 0x00, HDMI_I2CM_DIV); +- +- /* Set done, not acknowledged and arbitration interrupt polarities */ +- hdmi_writeb(hdmi, HDMI_I2CM_INT_DONE_POL, HDMI_I2CM_INT); +- hdmi_writeb(hdmi, HDMI_I2CM_CTLINT_NAC_POL | HDMI_I2CM_CTLINT_ARB_POL, +- HDMI_I2CM_CTLINT); +- +- /* Clear DONE and ERROR interrupts */ +- hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, +- HDMI_IH_I2CM_STAT0); +- +- /* Mute DONE and ERROR interrupts */ +- hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, +- HDMI_IH_MUTE_I2CM_STAT0); +-} +- +-static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, +- unsigned char *buf, unsigned int length) +-{ +- struct dw_hdmi_i2c *i2c = hdmi->i2c; +- int stat; +- +- if (!i2c->is_regaddr) { +- dev_dbg(hdmi->dev, "set read register address to 0\n"); +- i2c->slave_reg = 0x00; +- i2c->is_regaddr = true; +- } +- +- while (length--) { +- reinit_completion(&i2c->cmp); +- +- hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); +- hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_READ, +- HDMI_I2CM_OPERATION); +- +- stat = wait_for_completion_timeout(&i2c->cmp, HZ / 10); +- if (!stat) +- return -EAGAIN; +- +- /* Check for error condition on the bus */ +- if (i2c->stat & HDMI_IH_I2CM_STAT0_ERROR) +- return -EIO; +- +- *buf++ = hdmi_readb(hdmi, HDMI_I2CM_DATAI); +- } +- +- return 0; +-} +- +-static int dw_hdmi_i2c_write(struct dw_hdmi *hdmi, +- unsigned char *buf, unsigned int length) +-{ +- struct dw_hdmi_i2c *i2c = hdmi->i2c; +- int stat; +- +- if (!i2c->is_regaddr) { +- /* Use the first write byte as register address */ +- i2c->slave_reg = buf[0]; +- length--; +- buf++; +- i2c->is_regaddr = true; +- } +- +- while (length--) { +- reinit_completion(&i2c->cmp); +- +- hdmi_writeb(hdmi, *buf++, HDMI_I2CM_DATAO); +- hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); +- hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_WRITE, +- HDMI_I2CM_OPERATION); +- +- stat = wait_for_completion_timeout(&i2c->cmp, HZ / 10); +- if (!stat) +- return -EAGAIN; +- +- /* Check for error condition on the bus */ +- if (i2c->stat & HDMI_IH_I2CM_STAT0_ERROR) +- return -EIO; +- } +- +- return 0; +-} +- +-static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, +- struct i2c_msg *msgs, int num) +-{ +- struct dw_hdmi *hdmi = i2c_get_adapdata(adap); +- struct dw_hdmi_i2c *i2c = hdmi->i2c; +- u8 addr = msgs[0].addr; +- int i, ret = 0; +- +- dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr); +- +- for (i = 0; i < num; i++) { +- if (msgs[i].addr != addr) { +- dev_warn(hdmi->dev, +- "unsupported transfer, changed slave address\n"); +- return -EOPNOTSUPP; +- } +- +- if (msgs[i].len == 0) { +- dev_dbg(hdmi->dev, +- "unsupported transfer %d/%d, no data\n", +- i + 1, num); +- return -EOPNOTSUPP; +- } +- } +- +- mutex_lock(&i2c->lock); +- +- /* Unmute DONE and ERROR interrupts */ +- hdmi_writeb(hdmi, 0x00, HDMI_IH_MUTE_I2CM_STAT0); +- +- /* Set slave device address taken from the first I2C message */ +- hdmi_writeb(hdmi, addr, HDMI_I2CM_SLAVE); +- +- /* Set slave device register address on transfer */ +- i2c->is_regaddr = false; +- +- for (i = 0; i < num; i++) { +- dev_dbg(hdmi->dev, "xfer: num: %d/%d, len: %d, flags: %#x\n", +- i + 1, num, msgs[i].len, msgs[i].flags); +- +- if (msgs[i].flags & I2C_M_RD) +- ret = dw_hdmi_i2c_read(hdmi, msgs[i].buf, msgs[i].len); +- else +- ret = dw_hdmi_i2c_write(hdmi, msgs[i].buf, msgs[i].len); +- +- if (ret < 0) +- break; +- } +- +- if (!ret) +- ret = num; +- +- /* Mute DONE and ERROR interrupts */ +- hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, +- HDMI_IH_MUTE_I2CM_STAT0); +- +- mutex_unlock(&i2c->lock); +- +- return ret; +-} +- +-static u32 dw_hdmi_i2c_func(struct i2c_adapter *adapter) +-{ +- return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; +-} +- +-static const struct i2c_algorithm dw_hdmi_algorithm = { +- .master_xfer = dw_hdmi_i2c_xfer, +- .functionality = dw_hdmi_i2c_func, +-}; +- +-static struct i2c_adapter *dw_hdmi_i2c_adapter(struct dw_hdmi *hdmi) +-{ +- struct i2c_adapter *adap; +- struct dw_hdmi_i2c *i2c; +- int ret; +- +- i2c = devm_kzalloc(hdmi->dev, sizeof(*i2c), GFP_KERNEL); +- if (!i2c) +- return ERR_PTR(-ENOMEM); +- +- mutex_init(&i2c->lock); +- init_completion(&i2c->cmp); +- +- adap = &i2c->adap; +- adap->class = I2C_CLASS_DDC; +- adap->owner = THIS_MODULE; +- adap->dev.parent = hdmi->dev; +- adap->algo = &dw_hdmi_algorithm; +- strlcpy(adap->name, "DesignWare HDMI", sizeof(adap->name)); +- i2c_set_adapdata(adap, hdmi); +- +- ret = i2c_add_adapter(adap); +- if (ret) { +- dev_warn(hdmi->dev, "cannot add %s I2C adapter\n", adap->name); +- devm_kfree(hdmi->dev, i2c); +- return ERR_PTR(ret); +- } +- +- hdmi->i2c = i2c; +- +- dev_info(hdmi->dev, "registered %s I2C bus driver\n", adap->name); +- +- return adap; +-} +- +-static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts, +- unsigned int n) +-{ +- /* Must be set/cleared first */ +- hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); +- +- /* nshift factor = 0 */ +- hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_N_SHIFT_MASK, HDMI_AUD_CTS3); +- +- hdmi_writeb(hdmi, ((cts >> 16) & HDMI_AUD_CTS3_AUDCTS19_16_MASK) | +- HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); +- hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2); +- hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1); +- +- hdmi_writeb(hdmi, (n >> 16) & 0x0f, HDMI_AUD_N3); +- hdmi_writeb(hdmi, (n >> 8) & 0xff, HDMI_AUD_N2); +- hdmi_writeb(hdmi, n & 0xff, HDMI_AUD_N1); +-} +- +-static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk) +-{ +- unsigned int n = (128 * freq) / 1000; +- unsigned int mult = 1; +- +- while (freq > 48000) { +- mult *= 2; +- freq /= 2; +- } +- +- switch (freq) { +- case 32000: +- if (pixel_clk == 25175000) +- n = 4576; +- else if (pixel_clk == 27027000) +- n = 4096; +- else if (pixel_clk == 74176000 || pixel_clk == 148352000) +- n = 11648; +- else +- n = 4096; +- n *= mult; +- break; +- +- case 44100: +- if (pixel_clk == 25175000) +- n = 7007; +- else if (pixel_clk == 74176000) +- n = 17836; +- else if (pixel_clk == 148352000) +- n = 8918; +- else +- n = 6272; +- n *= mult; +- break; +- +- case 48000: +- if (pixel_clk == 25175000) +- n = 6864; +- else if (pixel_clk == 27027000) +- n = 6144; +- else if (pixel_clk == 74176000) +- n = 11648; +- else if (pixel_clk == 148352000) +- n = 5824; +- else +- n = 6144; +- n *= mult; +- break; +- +- default: +- break; +- } +- +- return n; +-} +- +-static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi, +- unsigned long pixel_clk, unsigned int sample_rate) +-{ +- unsigned long ftdms = pixel_clk; +- unsigned int n, cts; +- u64 tmp; +- +- n = hdmi_compute_n(sample_rate, pixel_clk); +- +- /* +- * Compute the CTS value from the N value. Note that CTS and N +- * can be up to 20 bits in total, so we need 64-bit math. Also +- * note that our TDMS clock is not fully accurate; it is accurate +- * to kHz. This can introduce an unnecessary remainder in the +- * calculation below, so we don't try to warn about that. +- */ +- tmp = (u64)ftdms * n; +- do_div(tmp, 128 * sample_rate); +- cts = tmp; +- +- dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n", +- __func__, sample_rate, ftdms / 1000000, (ftdms / 1000) % 1000, +- n, cts); +- +- spin_lock_irq(&hdmi->audio_lock); +- hdmi->audio_n = n; +- hdmi->audio_cts = cts; +- hdmi_set_cts_n(hdmi, cts, hdmi->audio_enable ? n : 0); +- spin_unlock_irq(&hdmi->audio_lock); +-} +- +-static void hdmi_init_clk_regenerator(struct dw_hdmi *hdmi) +-{ +- mutex_lock(&hdmi->audio_mutex); +- hdmi_set_clk_regenerator(hdmi, 74250000, hdmi->sample_rate); +- mutex_unlock(&hdmi->audio_mutex); +-} +- +-static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) +-{ +- mutex_lock(&hdmi->audio_mutex); +- hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock, +- hdmi->sample_rate); +- mutex_unlock(&hdmi->audio_mutex); +-} +- +-void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate) +-{ +- mutex_lock(&hdmi->audio_mutex); +- hdmi->sample_rate = rate; +- hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock, +- hdmi->sample_rate); +- mutex_unlock(&hdmi->audio_mutex); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_set_sample_rate); +- +-void dw_hdmi_audio_enable(struct dw_hdmi *hdmi) +-{ +- unsigned long flags; +- +- spin_lock_irqsave(&hdmi->audio_lock, flags); +- hdmi->audio_enable = true; +- hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n); +- spin_unlock_irqrestore(&hdmi->audio_lock, flags); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_audio_enable); +- +-void dw_hdmi_audio_disable(struct dw_hdmi *hdmi) +-{ +- unsigned long flags; +- +- spin_lock_irqsave(&hdmi->audio_lock, flags); +- hdmi->audio_enable = false; +- hdmi_set_cts_n(hdmi, hdmi->audio_cts, 0); +- spin_unlock_irqrestore(&hdmi->audio_lock, flags); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_audio_disable); +- +-/* +- * this submodule is responsible for the video data synchronization. +- * for example, for RGB 4:4:4 input, the data map is defined as +- * pin{47~40} <==> R[7:0] +- * pin{31~24} <==> G[7:0] +- * pin{15~8} <==> B[7:0] +- */ +-static void hdmi_video_sample(struct dw_hdmi *hdmi) +-{ +- int color_format = 0; +- u8 val; +- +- if (hdmi->hdmi_data.enc_in_format == RGB) { +- if (hdmi->hdmi_data.enc_color_depth == 8) +- color_format = 0x01; +- else if (hdmi->hdmi_data.enc_color_depth == 10) +- color_format = 0x03; +- else if (hdmi->hdmi_data.enc_color_depth == 12) +- color_format = 0x05; +- else if (hdmi->hdmi_data.enc_color_depth == 16) +- color_format = 0x07; +- else +- return; +- } else if (hdmi->hdmi_data.enc_in_format == YCBCR444) { +- if (hdmi->hdmi_data.enc_color_depth == 8) +- color_format = 0x09; +- else if (hdmi->hdmi_data.enc_color_depth == 10) +- color_format = 0x0B; +- else if (hdmi->hdmi_data.enc_color_depth == 12) +- color_format = 0x0D; +- else if (hdmi->hdmi_data.enc_color_depth == 16) +- color_format = 0x0F; +- else +- return; +- } else if (hdmi->hdmi_data.enc_in_format == YCBCR422_8BITS) { +- if (hdmi->hdmi_data.enc_color_depth == 8) +- color_format = 0x16; +- else if (hdmi->hdmi_data.enc_color_depth == 10) +- color_format = 0x14; +- else if (hdmi->hdmi_data.enc_color_depth == 12) +- color_format = 0x12; +- else +- return; +- } +- +- val = HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE | +- ((color_format << HDMI_TX_INVID0_VIDEO_MAPPING_OFFSET) & +- HDMI_TX_INVID0_VIDEO_MAPPING_MASK); +- hdmi_writeb(hdmi, val, HDMI_TX_INVID0); +- +- /* Enable TX stuffing: When DE is inactive, fix the output data to 0 */ +- val = HDMI_TX_INSTUFFING_BDBDATA_STUFFING_ENABLE | +- HDMI_TX_INSTUFFING_RCRDATA_STUFFING_ENABLE | +- HDMI_TX_INSTUFFING_GYDATA_STUFFING_ENABLE; +- hdmi_writeb(hdmi, val, HDMI_TX_INSTUFFING); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA0); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA1); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA0); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA1); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA0); +- hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA1); +-} +- +-static int is_color_space_conversion(struct dw_hdmi *hdmi) +-{ +- return hdmi->hdmi_data.enc_in_format != hdmi->hdmi_data.enc_out_format; +-} +- +-static int is_color_space_decimation(struct dw_hdmi *hdmi) +-{ +- if (hdmi->hdmi_data.enc_out_format != YCBCR422_8BITS) +- return 0; +- if (hdmi->hdmi_data.enc_in_format == RGB || +- hdmi->hdmi_data.enc_in_format == YCBCR444) +- return 1; +- return 0; +-} +- +-static int is_color_space_interpolation(struct dw_hdmi *hdmi) +-{ +- if (hdmi->hdmi_data.enc_in_format != YCBCR422_8BITS) +- return 0; +- if (hdmi->hdmi_data.enc_out_format == RGB || +- hdmi->hdmi_data.enc_out_format == YCBCR444) +- return 1; +- return 0; +-} +- +-static void dw_hdmi_update_csc_coeffs(struct dw_hdmi *hdmi) +-{ +- const u16 (*csc_coeff)[3][4] = &csc_coeff_default; +- unsigned i; +- u32 csc_scale = 1; +- +- if (is_color_space_conversion(hdmi)) { +- if (hdmi->hdmi_data.enc_out_format == RGB) { +- if (hdmi->hdmi_data.colorimetry == +- HDMI_COLORIMETRY_ITU_601) +- csc_coeff = &csc_coeff_rgb_out_eitu601; +- else +- csc_coeff = &csc_coeff_rgb_out_eitu709; +- } else if (hdmi->hdmi_data.enc_in_format == RGB) { +- if (hdmi->hdmi_data.colorimetry == +- HDMI_COLORIMETRY_ITU_601) +- csc_coeff = &csc_coeff_rgb_in_eitu601; +- else +- csc_coeff = &csc_coeff_rgb_in_eitu709; +- csc_scale = 0; +- } +- } +- +- /* The CSC registers are sequential, alternating MSB then LSB */ +- for (i = 0; i < ARRAY_SIZE(csc_coeff_default[0]); i++) { +- u16 coeff_a = (*csc_coeff)[0][i]; +- u16 coeff_b = (*csc_coeff)[1][i]; +- u16 coeff_c = (*csc_coeff)[2][i]; +- +- hdmi_writeb(hdmi, coeff_a & 0xff, HDMI_CSC_COEF_A1_LSB + i * 2); +- hdmi_writeb(hdmi, coeff_a >> 8, HDMI_CSC_COEF_A1_MSB + i * 2); +- hdmi_writeb(hdmi, coeff_b & 0xff, HDMI_CSC_COEF_B1_LSB + i * 2); +- hdmi_writeb(hdmi, coeff_b >> 8, HDMI_CSC_COEF_B1_MSB + i * 2); +- hdmi_writeb(hdmi, coeff_c & 0xff, HDMI_CSC_COEF_C1_LSB + i * 2); +- hdmi_writeb(hdmi, coeff_c >> 8, HDMI_CSC_COEF_C1_MSB + i * 2); +- } +- +- hdmi_modb(hdmi, csc_scale, HDMI_CSC_SCALE_CSCSCALE_MASK, +- HDMI_CSC_SCALE); +-} +- +-static void hdmi_video_csc(struct dw_hdmi *hdmi) +-{ +- int color_depth = 0; +- int interpolation = HDMI_CSC_CFG_INTMODE_DISABLE; +- int decimation = 0; +- +- /* YCC422 interpolation to 444 mode */ +- if (is_color_space_interpolation(hdmi)) +- interpolation = HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA1; +- else if (is_color_space_decimation(hdmi)) +- decimation = HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA3; +- +- if (hdmi->hdmi_data.enc_color_depth == 8) +- color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP; +- else if (hdmi->hdmi_data.enc_color_depth == 10) +- color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_30BPP; +- else if (hdmi->hdmi_data.enc_color_depth == 12) +- color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_36BPP; +- else if (hdmi->hdmi_data.enc_color_depth == 16) +- color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_48BPP; +- else +- return; +- +- /* Configure the CSC registers */ +- hdmi_writeb(hdmi, interpolation | decimation, HDMI_CSC_CFG); +- hdmi_modb(hdmi, color_depth, HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK, +- HDMI_CSC_SCALE); +- +- dw_hdmi_update_csc_coeffs(hdmi); +-} +- +-/* +- * HDMI video packetizer is used to packetize the data. +- * for example, if input is YCC422 mode or repeater is used, +- * data should be repacked this module can be bypassed. +- */ +-static void hdmi_video_packetize(struct dw_hdmi *hdmi) +-{ +- unsigned int color_depth = 0; +- unsigned int remap_size = HDMI_VP_REMAP_YCC422_16bit; +- unsigned int output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_PP; +- struct hdmi_data_info *hdmi_data = &hdmi->hdmi_data; +- u8 val, vp_conf; +- +- if (hdmi_data->enc_out_format == RGB || +- hdmi_data->enc_out_format == YCBCR444) { +- if (!hdmi_data->enc_color_depth) { +- output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS; +- } else if (hdmi_data->enc_color_depth == 8) { +- color_depth = 4; +- output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS; +- } else if (hdmi_data->enc_color_depth == 10) { +- color_depth = 5; +- } else if (hdmi_data->enc_color_depth == 12) { +- color_depth = 6; +- } else if (hdmi_data->enc_color_depth == 16) { +- color_depth = 7; +- } else { +- return; +- } +- } else if (hdmi_data->enc_out_format == YCBCR422_8BITS) { +- if (!hdmi_data->enc_color_depth || +- hdmi_data->enc_color_depth == 8) +- remap_size = HDMI_VP_REMAP_YCC422_16bit; +- else if (hdmi_data->enc_color_depth == 10) +- remap_size = HDMI_VP_REMAP_YCC422_20bit; +- else if (hdmi_data->enc_color_depth == 12) +- remap_size = HDMI_VP_REMAP_YCC422_24bit; +- else +- return; +- output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422; +- } else { +- return; +- } +- +- /* set the packetizer registers */ +- val = ((color_depth << HDMI_VP_PR_CD_COLOR_DEPTH_OFFSET) & +- HDMI_VP_PR_CD_COLOR_DEPTH_MASK) | +- ((hdmi_data->pix_repet_factor << +- HDMI_VP_PR_CD_DESIRED_PR_FACTOR_OFFSET) & +- HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK); +- hdmi_writeb(hdmi, val, HDMI_VP_PR_CD); +- +- hdmi_modb(hdmi, HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE, +- HDMI_VP_STUFF_PR_STUFFING_MASK, HDMI_VP_STUFF); +- +- /* Data from pixel repeater block */ +- if (hdmi_data->pix_repet_factor > 1) { +- vp_conf = HDMI_VP_CONF_PR_EN_ENABLE | +- HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER; +- } else { /* data from packetizer block */ +- vp_conf = HDMI_VP_CONF_PR_EN_DISABLE | +- HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER; +- } +- +- hdmi_modb(hdmi, vp_conf, +- HDMI_VP_CONF_PR_EN_MASK | +- HDMI_VP_CONF_BYPASS_SELECT_MASK, HDMI_VP_CONF); +- +- hdmi_modb(hdmi, 1 << HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET, +- HDMI_VP_STUFF_IDEFAULT_PHASE_MASK, HDMI_VP_STUFF); +- +- hdmi_writeb(hdmi, remap_size, HDMI_VP_REMAP); +- +- if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_PP) { +- vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE | +- HDMI_VP_CONF_PP_EN_ENABLE | +- HDMI_VP_CONF_YCC422_EN_DISABLE; +- } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422) { +- vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE | +- HDMI_VP_CONF_PP_EN_DISABLE | +- HDMI_VP_CONF_YCC422_EN_ENABLE; +- } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS) { +- vp_conf = HDMI_VP_CONF_BYPASS_EN_ENABLE | +- HDMI_VP_CONF_PP_EN_DISABLE | +- HDMI_VP_CONF_YCC422_EN_DISABLE; +- } else { +- return; +- } +- +- hdmi_modb(hdmi, vp_conf, +- HDMI_VP_CONF_BYPASS_EN_MASK | HDMI_VP_CONF_PP_EN_ENMASK | +- HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF); +- +- hdmi_modb(hdmi, HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE | +- HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE, +- HDMI_VP_STUFF_PP_STUFFING_MASK | +- HDMI_VP_STUFF_YCC422_STUFFING_MASK, HDMI_VP_STUFF); +- +- hdmi_modb(hdmi, output_select, HDMI_VP_CONF_OUTPUT_SELECTOR_MASK, +- HDMI_VP_CONF); +-} +- +-/* ----------------------------------------------------------------------------- +- * Synopsys PHY Handling +- */ +- +-static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, +- unsigned char bit) +-{ +- hdmi_modb(hdmi, bit << HDMI_PHY_TST0_TSTCLR_OFFSET, +- HDMI_PHY_TST0_TSTCLR_MASK, HDMI_PHY_TST0); +-} +- +-static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) +-{ +- u32 val; +- +- while ((val = hdmi_readb(hdmi, HDMI_IH_I2CMPHY_STAT0) & 0x3) == 0) { +- if (msec-- == 0) +- return false; +- udelay(1000); +- } +- hdmi_writeb(hdmi, val, HDMI_IH_I2CMPHY_STAT0); +- +- return true; +-} +- +-void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, +- unsigned char addr) +-{ +- hdmi_writeb(hdmi, 0xFF, HDMI_IH_I2CMPHY_STAT0); +- hdmi_writeb(hdmi, addr, HDMI_PHY_I2CM_ADDRESS_ADDR); +- hdmi_writeb(hdmi, (unsigned char)(data >> 8), +- HDMI_PHY_I2CM_DATAO_1_ADDR); +- hdmi_writeb(hdmi, (unsigned char)(data >> 0), +- HDMI_PHY_I2CM_DATAO_0_ADDR); +- hdmi_writeb(hdmi, HDMI_PHY_I2CM_OPERATION_ADDR_WRITE, +- HDMI_PHY_I2CM_OPERATION_ADDR); +- hdmi_phy_wait_i2c_done(hdmi, 1000); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_phy_i2c_write); +- +-static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) +-{ +- hdmi_mask_writeb(hdmi, !enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_PDZ_OFFSET, +- HDMI_PHY_CONF0_PDZ_MASK); +-} +- +-static void dw_hdmi_phy_enable_tmds(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_ENTMDS_OFFSET, +- HDMI_PHY_CONF0_ENTMDS_MASK); +-} +- +-static void dw_hdmi_phy_enable_svsret(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_SVSRET_OFFSET, +- HDMI_PHY_CONF0_SVSRET_MASK); +-} +- +-static void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_GEN2_PDDQ_OFFSET, +- HDMI_PHY_CONF0_GEN2_PDDQ_MASK); +-} +- +-static void dw_hdmi_phy_gen2_txpwron(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_GEN2_TXPWRON_OFFSET, +- HDMI_PHY_CONF0_GEN2_TXPWRON_MASK); +-} +- +-static void dw_hdmi_phy_sel_data_en_pol(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_SELDATAENPOL_OFFSET, +- HDMI_PHY_CONF0_SELDATAENPOL_MASK); +-} +- +-static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) +-{ +- hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, +- HDMI_PHY_CONF0_SELDIPIF_OFFSET, +- HDMI_PHY_CONF0_SELDIPIF_MASK); +-} +- +-static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) +-{ +- const struct dw_hdmi_phy_data *phy = hdmi->phy.data; +- unsigned int i; +- u16 val; +- +- if (phy->gen == 1) { +- dw_hdmi_phy_enable_tmds(hdmi, 0); +- dw_hdmi_phy_enable_powerdown(hdmi, true); +- return; +- } +- +- dw_hdmi_phy_gen2_txpwron(hdmi, 0); +- +- /* +- * Wait for TX_PHY_LOCK to be deasserted to indicate that the PHY went +- * to low power mode. +- */ +- for (i = 0; i < 5; ++i) { +- val = hdmi_readb(hdmi, HDMI_PHY_STAT0); +- if (!(val & HDMI_PHY_TX_PHY_LOCK)) +- break; +- +- usleep_range(1000, 2000); +- } +- +- if (val & HDMI_PHY_TX_PHY_LOCK) +- dev_warn(hdmi->dev, "PHY failed to power down\n"); +- else +- dev_dbg(hdmi->dev, "PHY powered down in %u iterations\n", i); +- +- dw_hdmi_phy_gen2_pddq(hdmi, 1); +-} +- +-static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) +-{ +- const struct dw_hdmi_phy_data *phy = hdmi->phy.data; +- unsigned int i; +- u8 val; +- +- if (phy->gen == 1) { +- dw_hdmi_phy_enable_powerdown(hdmi, false); +- +- /* Toggle TMDS enable. */ +- dw_hdmi_phy_enable_tmds(hdmi, 0); +- dw_hdmi_phy_enable_tmds(hdmi, 1); +- return 0; +- } +- +- dw_hdmi_phy_gen2_txpwron(hdmi, 1); +- dw_hdmi_phy_gen2_pddq(hdmi, 0); +- +- /* Wait for PHY PLL lock */ +- for (i = 0; i < 5; ++i) { +- val = hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_TX_PHY_LOCK; +- if (val) +- break; +- +- usleep_range(1000, 2000); +- } +- +- if (!val) { +- dev_err(hdmi->dev, "PHY PLL failed to lock\n"); +- return -ETIMEDOUT; +- } +- +- dev_dbg(hdmi->dev, "PHY PLL locked %u iterations\n", i); +- return 0; +-} +- +-/* +- * PHY configuration function for the DWC HDMI 3D TX PHY. Based on the available +- * information the DWC MHL PHY has the same register layout and is thus also +- * supported by this function. +- */ +-static int hdmi_phy_configure_dwc_hdmi_3d_tx(struct dw_hdmi *hdmi, +- const struct dw_hdmi_plat_data *pdata, +- unsigned long mpixelclock) +-{ +- const struct dw_hdmi_mpll_config *mpll_config = pdata->mpll_cfg; +- const struct dw_hdmi_curr_ctrl *curr_ctrl = pdata->cur_ctr; +- const struct dw_hdmi_phy_config *phy_config = pdata->phy_config; +- +- /* PLL/MPLL Cfg - always match on final entry */ +- for (; mpll_config->mpixelclock != ~0UL; mpll_config++) +- if (mpixelclock <= mpll_config->mpixelclock) +- break; +- +- for (; curr_ctrl->mpixelclock != ~0UL; curr_ctrl++) +- if (mpixelclock <= curr_ctrl->mpixelclock) +- break; +- +- for (; phy_config->mpixelclock != ~0UL; phy_config++) +- if (mpixelclock <= phy_config->mpixelclock) +- break; +- +- if (mpll_config->mpixelclock == ~0UL || +- curr_ctrl->mpixelclock == ~0UL || +- phy_config->mpixelclock == ~0UL) +- return -EINVAL; +- +- dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].cpce, +- HDMI_3D_TX_PHY_CPCE_CTRL); +- dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].gmp, +- HDMI_3D_TX_PHY_GMPCTRL); +- dw_hdmi_phy_i2c_write(hdmi, curr_ctrl->curr[0], +- HDMI_3D_TX_PHY_CURRCTRL); +- +- dw_hdmi_phy_i2c_write(hdmi, 0, HDMI_3D_TX_PHY_PLLPHBYCTRL); +- dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_FB_CLK, +- HDMI_3D_TX_PHY_MSM_CTRL); +- +- dw_hdmi_phy_i2c_write(hdmi, phy_config->term, HDMI_3D_TX_PHY_TXTERM); +- dw_hdmi_phy_i2c_write(hdmi, phy_config->sym_ctr, +- HDMI_3D_TX_PHY_CKSYMTXCTRL); +- dw_hdmi_phy_i2c_write(hdmi, phy_config->vlev_ctr, +- HDMI_3D_TX_PHY_VLEVCTRL); +- +- /* Override and disable clock termination. */ +- dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE, +- HDMI_3D_TX_PHY_CKCALCTRL); +- +- return 0; +-} +- +-static int hdmi_phy_configure(struct dw_hdmi *hdmi) +-{ +- const struct dw_hdmi_phy_data *phy = hdmi->phy.data; +- const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; +- unsigned long mpixelclock = hdmi->hdmi_data.video_mode.mpixelclock; +- int ret; +- +- dw_hdmi_phy_power_off(hdmi); +- +- /* Leave low power consumption mode by asserting SVSRET. */ +- if (phy->has_svsret) +- dw_hdmi_phy_enable_svsret(hdmi, 1); +- +- /* PHY reset. The reset signal is active high on Gen2 PHYs. */ +- hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ); +- hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ); +- +- hdmi_writeb(hdmi, HDMI_MC_HEACPHY_RST_ASSERT, HDMI_MC_HEACPHY_RST); +- +- hdmi_phy_test_clear(hdmi, 1); +- hdmi_writeb(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2, +- HDMI_PHY_I2CM_SLAVE_ADDR); +- hdmi_phy_test_clear(hdmi, 0); +- +- /* Write to the PHY as configured by the platform */ +- if (pdata->configure_phy) +- ret = pdata->configure_phy(hdmi, pdata, mpixelclock); +- else +- ret = phy->configure(hdmi, pdata, mpixelclock); +- if (ret) { +- dev_err(hdmi->dev, "PHY configuration failed (clock %lu)\n", +- mpixelclock); +- return ret; +- } +- +- return dw_hdmi_phy_power_on(hdmi); +-} +- +-static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, +- struct drm_display_mode *mode) +-{ +- int i, ret; +- +- /* HDMI Phy spec says to do the phy initialization sequence twice */ +- for (i = 0; i < 2; i++) { +- dw_hdmi_phy_sel_data_en_pol(hdmi, 1); +- dw_hdmi_phy_sel_interface_control(hdmi, 0); +- +- ret = hdmi_phy_configure(hdmi); +- if (ret) +- return ret; +- } +- +- return 0; +-} +- +-static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) +-{ +- dw_hdmi_phy_power_off(hdmi); +-} +- +-static enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, +- void *data) +-{ +- return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ? +- connector_status_connected : connector_status_disconnected; +-} +- +-static const struct dw_hdmi_phy_ops dw_hdmi_synopsys_phy_ops = { +- .init = dw_hdmi_phy_init, +- .disable = dw_hdmi_phy_disable, +- .read_hpd = dw_hdmi_phy_read_hpd, +-}; +- +-/* ----------------------------------------------------------------------------- +- * HDMI TX Setup +- */ +- +-static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi) +-{ +- u8 de; +- +- if (hdmi->hdmi_data.video_mode.mdataenablepolarity) +- de = HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_HIGH; +- else +- de = HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_LOW; +- +- /* disable rx detect */ +- hdmi_modb(hdmi, HDMI_A_HDCPCFG0_RXDETECT_DISABLE, +- HDMI_A_HDCPCFG0_RXDETECT_MASK, HDMI_A_HDCPCFG0); +- +- hdmi_modb(hdmi, de, HDMI_A_VIDPOLCFG_DATAENPOL_MASK, HDMI_A_VIDPOLCFG); +- +- hdmi_modb(hdmi, HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_DISABLE, +- HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_MASK, HDMI_A_HDCPCFG1); +-} +- +-static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +-{ +- struct hdmi_avi_infoframe frame; +- u8 val; +- +- /* Initialise info frame from DRM mode */ +- drm_hdmi_avi_infoframe_from_display_mode(&frame, mode); +- +- if (hdmi->hdmi_data.enc_out_format == YCBCR444) +- frame.colorspace = HDMI_COLORSPACE_YUV444; +- else if (hdmi->hdmi_data.enc_out_format == YCBCR422_8BITS) +- frame.colorspace = HDMI_COLORSPACE_YUV422; +- else +- frame.colorspace = HDMI_COLORSPACE_RGB; +- +- /* Set up colorimetry */ +- if (hdmi->hdmi_data.enc_out_format == XVYCC444) { +- frame.colorimetry = HDMI_COLORIMETRY_EXTENDED; +- if (hdmi->hdmi_data.colorimetry == HDMI_COLORIMETRY_ITU_601) +- frame.extended_colorimetry = +- HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; +- else /*hdmi->hdmi_data.colorimetry == HDMI_COLORIMETRY_ITU_709*/ +- frame.extended_colorimetry = +- HDMI_EXTENDED_COLORIMETRY_XV_YCC_709; +- } else if (hdmi->hdmi_data.enc_out_format != RGB) { +- frame.colorimetry = hdmi->hdmi_data.colorimetry; +- frame.extended_colorimetry = HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; +- } else { /* Carries no data */ +- frame.colorimetry = HDMI_COLORIMETRY_NONE; +- frame.extended_colorimetry = HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; +- } +- +- frame.scan_mode = HDMI_SCAN_MODE_NONE; +- +- /* +- * The Designware IP uses a different byte format from standard +- * AVI info frames, though generally the bits are in the correct +- * bytes. +- */ +- +- /* +- * AVI data byte 1 differences: Colorspace in bits 0,1 rather than 5,6, +- * scan info in bits 4,5 rather than 0,1 and active aspect present in +- * bit 6 rather than 4. +- */ +- val = (frame.scan_mode & 3) << 4 | (frame.colorspace & 3); +- if (frame.active_aspect & 15) +- val |= HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT; +- if (frame.top_bar || frame.bottom_bar) +- val |= HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR; +- if (frame.left_bar || frame.right_bar) +- val |= HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR; +- hdmi_writeb(hdmi, val, HDMI_FC_AVICONF0); +- +- /* AVI data byte 2 differences: none */ +- val = ((frame.colorimetry & 0x3) << 6) | +- ((frame.picture_aspect & 0x3) << 4) | +- (frame.active_aspect & 0xf); +- hdmi_writeb(hdmi, val, HDMI_FC_AVICONF1); +- +- /* AVI data byte 3 differences: none */ +- val = ((frame.extended_colorimetry & 0x7) << 4) | +- ((frame.quantization_range & 0x3) << 2) | +- (frame.nups & 0x3); +- if (frame.itc) +- val |= HDMI_FC_AVICONF2_IT_CONTENT_VALID; +- hdmi_writeb(hdmi, val, HDMI_FC_AVICONF2); +- +- /* AVI data byte 4 differences: none */ +- val = frame.video_code & 0x7f; +- hdmi_writeb(hdmi, val, HDMI_FC_AVIVID); +- +- /* AVI Data Byte 5- set up input and output pixel repetition */ +- val = (((hdmi->hdmi_data.video_mode.mpixelrepetitioninput + 1) << +- HDMI_FC_PRCONF_INCOMING_PR_FACTOR_OFFSET) & +- HDMI_FC_PRCONF_INCOMING_PR_FACTOR_MASK) | +- ((hdmi->hdmi_data.video_mode.mpixelrepetitionoutput << +- HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_OFFSET) & +- HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_MASK); +- hdmi_writeb(hdmi, val, HDMI_FC_PRCONF); +- +- /* +- * AVI data byte 5 differences: content type in 0,1 rather than 4,5, +- * ycc range in bits 2,3 rather than 6,7 +- */ +- val = ((frame.ycc_quantization_range & 0x3) << 2) | +- (frame.content_type & 0x3); +- hdmi_writeb(hdmi, val, HDMI_FC_AVICONF3); +- +- /* AVI Data Bytes 6-13 */ +- hdmi_writeb(hdmi, frame.top_bar & 0xff, HDMI_FC_AVIETB0); +- hdmi_writeb(hdmi, (frame.top_bar >> 8) & 0xff, HDMI_FC_AVIETB1); +- hdmi_writeb(hdmi, frame.bottom_bar & 0xff, HDMI_FC_AVISBB0); +- hdmi_writeb(hdmi, (frame.bottom_bar >> 8) & 0xff, HDMI_FC_AVISBB1); +- hdmi_writeb(hdmi, frame.left_bar & 0xff, HDMI_FC_AVIELB0); +- hdmi_writeb(hdmi, (frame.left_bar >> 8) & 0xff, HDMI_FC_AVIELB1); +- hdmi_writeb(hdmi, frame.right_bar & 0xff, HDMI_FC_AVISRB0); +- hdmi_writeb(hdmi, (frame.right_bar >> 8) & 0xff, HDMI_FC_AVISRB1); +-} +- +-static void hdmi_av_composer(struct dw_hdmi *hdmi, +- const struct drm_display_mode *mode) +-{ +- u8 inv_val; +- struct hdmi_vmode *vmode = &hdmi->hdmi_data.video_mode; +- int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len; +- unsigned int vdisplay; +- +- vmode->mpixelclock = mode->clock * 1000; +- +- dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock); +- +- /* Set up HDMI_FC_INVIDCONF */ +- inv_val = (hdmi->hdmi_data.hdcp_enable ? +- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE : +- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE); +- +- inv_val |= mode->flags & DRM_MODE_FLAG_PVSYNC ? +- HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH : +- HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW; +- +- inv_val |= mode->flags & DRM_MODE_FLAG_PHSYNC ? +- HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH : +- HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW; +- +- inv_val |= (vmode->mdataenablepolarity ? +- HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_HIGH : +- HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_LOW); +- +- if (hdmi->vic == 39) +- inv_val |= HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH; +- else +- inv_val |= mode->flags & DRM_MODE_FLAG_INTERLACE ? +- HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH : +- HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_LOW; +- +- inv_val |= mode->flags & DRM_MODE_FLAG_INTERLACE ? +- HDMI_FC_INVIDCONF_IN_I_P_INTERLACED : +- HDMI_FC_INVIDCONF_IN_I_P_PROGRESSIVE; +- +- inv_val |= hdmi->sink_is_hdmi ? +- HDMI_FC_INVIDCONF_DVI_MODEZ_HDMI_MODE : +- HDMI_FC_INVIDCONF_DVI_MODEZ_DVI_MODE; +- +- hdmi_writeb(hdmi, inv_val, HDMI_FC_INVIDCONF); +- +- vdisplay = mode->vdisplay; +- vblank = mode->vtotal - mode->vdisplay; +- v_de_vs = mode->vsync_start - mode->vdisplay; +- vsync_len = mode->vsync_end - mode->vsync_start; +- +- /* +- * When we're setting an interlaced mode, we need +- * to adjust the vertical timing to suit. +- */ +- if (mode->flags & DRM_MODE_FLAG_INTERLACE) { +- vdisplay /= 2; +- vblank /= 2; +- v_de_vs /= 2; +- vsync_len /= 2; +- } +- +- /* Set up horizontal active pixel width */ +- hdmi_writeb(hdmi, mode->hdisplay >> 8, HDMI_FC_INHACTV1); +- hdmi_writeb(hdmi, mode->hdisplay, HDMI_FC_INHACTV0); +- +- /* Set up vertical active lines */ +- hdmi_writeb(hdmi, vdisplay >> 8, HDMI_FC_INVACTV1); +- hdmi_writeb(hdmi, vdisplay, HDMI_FC_INVACTV0); +- +- /* Set up horizontal blanking pixel region width */ +- hblank = mode->htotal - mode->hdisplay; +- hdmi_writeb(hdmi, hblank >> 8, HDMI_FC_INHBLANK1); +- hdmi_writeb(hdmi, hblank, HDMI_FC_INHBLANK0); +- +- /* Set up vertical blanking pixel region width */ +- hdmi_writeb(hdmi, vblank, HDMI_FC_INVBLANK); +- +- /* Set up HSYNC active edge delay width (in pixel clks) */ +- h_de_hs = mode->hsync_start - mode->hdisplay; +- hdmi_writeb(hdmi, h_de_hs >> 8, HDMI_FC_HSYNCINDELAY1); +- hdmi_writeb(hdmi, h_de_hs, HDMI_FC_HSYNCINDELAY0); +- +- /* Set up VSYNC active edge delay (in lines) */ +- hdmi_writeb(hdmi, v_de_vs, HDMI_FC_VSYNCINDELAY); +- +- /* Set up HSYNC active pulse width (in pixel clks) */ +- hsync_len = mode->hsync_end - mode->hsync_start; +- hdmi_writeb(hdmi, hsync_len >> 8, HDMI_FC_HSYNCINWIDTH1); +- hdmi_writeb(hdmi, hsync_len, HDMI_FC_HSYNCINWIDTH0); +- +- /* Set up VSYNC active edge delay (in lines) */ +- hdmi_writeb(hdmi, vsync_len, HDMI_FC_VSYNCINWIDTH); +-} +- +-/* HDMI Initialization Step B.4 */ +-static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) +-{ +- u8 clkdis; +- +- /* control period minimum duration */ +- hdmi_writeb(hdmi, 12, HDMI_FC_CTRLDUR); +- hdmi_writeb(hdmi, 32, HDMI_FC_EXCTRLDUR); +- hdmi_writeb(hdmi, 1, HDMI_FC_EXCTRLSPAC); +- +- /* Set to fill TMDS data channels */ +- hdmi_writeb(hdmi, 0x0B, HDMI_FC_CH0PREAM); +- hdmi_writeb(hdmi, 0x16, HDMI_FC_CH1PREAM); +- hdmi_writeb(hdmi, 0x21, HDMI_FC_CH2PREAM); +- +- /* Enable pixel clock and tmds data path */ +- clkdis = 0x7F; +- clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE; +- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); +- +- clkdis &= ~HDMI_MC_CLKDIS_TMDSCLK_DISABLE; +- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); +- +- /* Enable csc path */ +- if (is_color_space_conversion(hdmi)) { +- clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE; +- hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); +- } +- +- /* Enable color space conversion if needed */ +- if (is_color_space_conversion(hdmi)) +- hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH, +- HDMI_MC_FLOWCTRL); +- else +- hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS, +- HDMI_MC_FLOWCTRL); +-} +- +-static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi) +-{ +- hdmi_modb(hdmi, 0, HDMI_MC_CLKDIS_AUDCLK_DISABLE, HDMI_MC_CLKDIS); +-} +- +-/* Workaround to clear the overflow condition */ +-static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi) +-{ +- unsigned int count; +- unsigned int i; +- u8 val; +- +- /* +- * Under some circumstances the Frame Composer arithmetic unit can miss +- * an FC register write due to being busy processing the previous one. +- * The issue can be worked around by issuing a TMDS software reset and +- * then write one of the FC registers several times. +- * +- * The number of iterations matters and depends on the HDMI TX revision +- * (and possibly on the platform). So far only i.MX6Q (v1.30a) and +- * i.MX6DL (v1.31a) have been identified as needing the workaround, with +- * 4 and 1 iterations respectively. +- */ +- +- switch (hdmi->version) { +- case 0x130a: +- count = 4; +- break; +- case 0x131a: +- count = 1; +- break; +- default: +- return; +- } +- +- /* TMDS software reset */ +- hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, HDMI_MC_SWRSTZ); +- +- val = hdmi_readb(hdmi, HDMI_FC_INVIDCONF); +- for (i = 0; i < count; i++) +- hdmi_writeb(hdmi, val, HDMI_FC_INVIDCONF); +-} +- +-static void hdmi_enable_overflow_interrupts(struct dw_hdmi *hdmi) +-{ +- hdmi_writeb(hdmi, 0, HDMI_FC_MASK2); +- hdmi_writeb(hdmi, 0, HDMI_IH_MUTE_FC_STAT2); +-} +- +-static void hdmi_disable_overflow_interrupts(struct dw_hdmi *hdmi) +-{ +- hdmi_writeb(hdmi, HDMI_IH_MUTE_FC_STAT2_OVERFLOW_MASK, +- HDMI_IH_MUTE_FC_STAT2); +-} +- +-static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +-{ +- int ret; +- +- hdmi_disable_overflow_interrupts(hdmi); +- +- hdmi->vic = drm_match_cea_mode(mode); +- +- if (!hdmi->vic) { +- dev_dbg(hdmi->dev, "Non-CEA mode used in HDMI\n"); +- } else { +- dev_dbg(hdmi->dev, "CEA mode used vic=%d\n", hdmi->vic); +- } +- +- if ((hdmi->vic == 6) || (hdmi->vic == 7) || +- (hdmi->vic == 21) || (hdmi->vic == 22) || +- (hdmi->vic == 2) || (hdmi->vic == 3) || +- (hdmi->vic == 17) || (hdmi->vic == 18)) +- hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_601; +- else +- hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_709; +- +- hdmi->hdmi_data.video_mode.mpixelrepetitionoutput = 0; +- hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0; +- +- /* TODO: Get input format from IPU (via FB driver interface) */ +- hdmi->hdmi_data.enc_in_format = RGB; +- +- hdmi->hdmi_data.enc_out_format = RGB; +- +- hdmi->hdmi_data.enc_color_depth = 8; +- hdmi->hdmi_data.pix_repet_factor = 0; +- hdmi->hdmi_data.hdcp_enable = 0; +- hdmi->hdmi_data.video_mode.mdataenablepolarity = true; +- +- /* HDMI Initialization Step B.1 */ +- hdmi_av_composer(hdmi, mode); +- +- /* HDMI Initializateion Step B.2 */ +- ret = hdmi->phy.ops->init(hdmi, hdmi->phy.data, &hdmi->previous_mode); +- if (ret) +- return ret; +- hdmi->phy.enabled = true; +- +- /* HDMI Initialization Step B.3 */ +- dw_hdmi_enable_video_path(hdmi); +- +- if (hdmi->sink_has_audio) { +- dev_dbg(hdmi->dev, "sink has audio support\n"); +- +- /* HDMI Initialization Step E - Configure audio */ +- hdmi_clk_regenerator_update_pixel_clock(hdmi); +- hdmi_enable_audio_clk(hdmi); +- } +- +- /* not for DVI mode */ +- if (hdmi->sink_is_hdmi) { +- dev_dbg(hdmi->dev, "%s HDMI mode\n", __func__); +- +- /* HDMI Initialization Step F - Configure AVI InfoFrame */ +- hdmi_config_AVI(hdmi, mode); +- } else { +- dev_dbg(hdmi->dev, "%s DVI mode\n", __func__); +- } +- +- hdmi_video_packetize(hdmi); +- hdmi_video_csc(hdmi); +- hdmi_video_sample(hdmi); +- hdmi_tx_hdcp_config(hdmi); +- +- dw_hdmi_clear_overflow(hdmi); +- if (hdmi->cable_plugin && hdmi->sink_is_hdmi) +- hdmi_enable_overflow_interrupts(hdmi); +- +- return 0; +-} +- +-/* Wait until we are registered to enable interrupts */ +-static int dw_hdmi_fb_registered(struct dw_hdmi *hdmi) +-{ +- hdmi_writeb(hdmi, HDMI_PHY_I2CM_INT_ADDR_DONE_POL, +- HDMI_PHY_I2CM_INT_ADDR); +- +- hdmi_writeb(hdmi, HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL | +- HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL, +- HDMI_PHY_I2CM_CTLINT_ADDR); +- +- /* enable cable hot plug irq */ +- hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); +- +- /* Clear Hotplug interrupts */ +- hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, +- HDMI_IH_PHY_STAT0); +- +- return 0; +-} +- +-static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) +-{ +- u8 ih_mute; +- +- /* +- * Boot up defaults are: +- * HDMI_IH_MUTE = 0x03 (disabled) +- * HDMI_IH_MUTE_* = 0x00 (enabled) +- * +- * Disable top level interrupt bits in HDMI block +- */ +- ih_mute = hdmi_readb(hdmi, HDMI_IH_MUTE) | +- HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT | +- HDMI_IH_MUTE_MUTE_ALL_INTERRUPT; +- +- hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); +- +- /* by default mask all interrupts */ +- hdmi_writeb(hdmi, 0xff, HDMI_VP_MASK); +- hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK0); +- hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK1); +- hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK2); +- hdmi_writeb(hdmi, 0xff, HDMI_PHY_MASK0); +- hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_INT_ADDR); +- hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_CTLINT_ADDR); +- hdmi_writeb(hdmi, 0xff, HDMI_AUD_INT); +- hdmi_writeb(hdmi, 0xff, HDMI_AUD_SPDIFINT); +- hdmi_writeb(hdmi, 0xff, HDMI_AUD_HBR_MASK); +- hdmi_writeb(hdmi, 0xff, HDMI_GP_MASK); +- hdmi_writeb(hdmi, 0xff, HDMI_A_APIINTMSK); +- hdmi_writeb(hdmi, 0xff, HDMI_CEC_MASK); +- hdmi_writeb(hdmi, 0xff, HDMI_I2CM_INT); +- hdmi_writeb(hdmi, 0xff, HDMI_I2CM_CTLINT); +- +- /* Disable interrupts in the IH_MUTE_* registers */ +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT1); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT2); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AS_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_PHY_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CM_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_CEC_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_VP_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CMPHY_STAT0); +- hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AHBDMAAUD_STAT0); +- +- /* Enable top level interrupt bits in HDMI block */ +- ih_mute &= ~(HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT | +- HDMI_IH_MUTE_MUTE_ALL_INTERRUPT); +- hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); +-} +- +-static void dw_hdmi_poweron(struct dw_hdmi *hdmi) +-{ +- hdmi->bridge_is_on = true; +- dw_hdmi_setup(hdmi, &hdmi->previous_mode); +-} +- +-static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) +-{ +- if (hdmi->phy.enabled) { +- hdmi->phy.ops->disable(hdmi, hdmi->phy.data); +- hdmi->phy.enabled = false; +- } +- +- hdmi->bridge_is_on = false; +-} +- +-static void dw_hdmi_update_power(struct dw_hdmi *hdmi) +-{ +- int force = hdmi->force; +- +- if (hdmi->disabled) { +- force = DRM_FORCE_OFF; +- } else if (force == DRM_FORCE_UNSPECIFIED) { +- if (hdmi->rxsense) +- force = DRM_FORCE_ON; +- else +- force = DRM_FORCE_OFF; +- } +- +- if (force == DRM_FORCE_OFF) { +- if (hdmi->bridge_is_on) +- dw_hdmi_poweroff(hdmi); +- } else { +- if (!hdmi->bridge_is_on) +- dw_hdmi_poweron(hdmi); +- } +-} +- +-/* +- * Adjust the detection of RXSENSE according to whether we have a forced +- * connection mode enabled, or whether we have been disabled. There is +- * no point processing RXSENSE interrupts if we have a forced connection +- * state, or DRM has us disabled. +- * +- * We also disable rxsense interrupts when we think we're disconnected +- * to avoid floating TDMS signals giving false rxsense interrupts. +- * +- * Note: we still need to listen for HPD interrupts even when DRM has us +- * disabled so that we can detect a connect event. +- */ +-static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) +-{ +- u8 old_mask = hdmi->phy_mask; +- +- if (hdmi->force || hdmi->disabled || !hdmi->rxsense) +- hdmi->phy_mask |= HDMI_PHY_RX_SENSE; +- else +- hdmi->phy_mask &= ~HDMI_PHY_RX_SENSE; +- +- if (old_mask != hdmi->phy_mask) +- hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); +-} +- +-static enum drm_connector_status +-dw_hdmi_connector_detect(struct drm_connector *connector, bool force) +-{ +- struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, +- connector); +- +- mutex_lock(&hdmi->mutex); +- hdmi->force = DRM_FORCE_UNSPECIFIED; +- dw_hdmi_update_power(hdmi); +- dw_hdmi_update_phy_mask(hdmi); +- mutex_unlock(&hdmi->mutex); +- +- return hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data); +-} +- +-static int dw_hdmi_connector_get_modes(struct drm_connector *connector) +-{ +- struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, +- connector); +- struct edid *edid; +- int ret = 0; +- +- if (!hdmi->ddc) +- return 0; +- +- edid = drm_get_edid(connector, hdmi->ddc); +- if (edid) { +- dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n", +- edid->width_cm, edid->height_cm); +- +- hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid); +- hdmi->sink_has_audio = drm_detect_monitor_audio(edid); +- drm_mode_connector_update_edid_property(connector, edid); +- ret = drm_add_edid_modes(connector, edid); +- /* Store the ELD */ +- drm_edid_to_eld(connector, edid); +- kfree(edid); +- } else { +- dev_dbg(hdmi->dev, "failed to get edid\n"); +- } +- +- return ret; +-} +- +-static enum drm_mode_status +-dw_hdmi_connector_mode_valid(struct drm_connector *connector, +- struct drm_display_mode *mode) +-{ +- struct dw_hdmi *hdmi = container_of(connector, +- struct dw_hdmi, connector); +- enum drm_mode_status mode_status = MODE_OK; +- +- /* We don't support double-clocked modes */ +- if (mode->flags & DRM_MODE_FLAG_DBLCLK) +- return MODE_BAD; +- +- if (hdmi->plat_data->mode_valid) +- mode_status = hdmi->plat_data->mode_valid(connector, mode); +- +- return mode_status; +-} +- +-static void dw_hdmi_connector_force(struct drm_connector *connector) +-{ +- struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, +- connector); +- +- mutex_lock(&hdmi->mutex); +- hdmi->force = connector->force; +- dw_hdmi_update_power(hdmi); +- dw_hdmi_update_phy_mask(hdmi); +- mutex_unlock(&hdmi->mutex); +-} +- +-static const struct drm_connector_funcs dw_hdmi_connector_funcs = { +- .dpms = drm_atomic_helper_connector_dpms, +- .fill_modes = drm_helper_probe_single_connector_modes, +- .detect = dw_hdmi_connector_detect, +- .destroy = drm_connector_cleanup, +- .force = dw_hdmi_connector_force, +- .reset = drm_atomic_helper_connector_reset, +- .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, +- .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, +-}; +- +-static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs = { +- .get_modes = dw_hdmi_connector_get_modes, +- .mode_valid = dw_hdmi_connector_mode_valid, +- .best_encoder = drm_atomic_helper_best_encoder, +-}; +- +-static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) +-{ +- struct dw_hdmi *hdmi = bridge->driver_private; +- struct drm_encoder *encoder = bridge->encoder; +- struct drm_connector *connector = &hdmi->connector; +- +- connector->interlace_allowed = 1; +- connector->polled = DRM_CONNECTOR_POLL_HPD; +- +- drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); +- +- drm_connector_init(bridge->dev, connector, &dw_hdmi_connector_funcs, +- DRM_MODE_CONNECTOR_HDMIA); +- +- drm_mode_connector_attach_encoder(connector, encoder); +- +- return 0; +-} +- +-static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge, +- struct drm_display_mode *orig_mode, +- struct drm_display_mode *mode) +-{ +- struct dw_hdmi *hdmi = bridge->driver_private; +- +- mutex_lock(&hdmi->mutex); +- +- /* Store the display mode for plugin/DKMS poweron events */ +- memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode)); +- +- mutex_unlock(&hdmi->mutex); +-} +- +-static void dw_hdmi_bridge_disable(struct drm_bridge *bridge) +-{ +- struct dw_hdmi *hdmi = bridge->driver_private; +- +- mutex_lock(&hdmi->mutex); +- hdmi->disabled = true; +- dw_hdmi_update_power(hdmi); +- dw_hdmi_update_phy_mask(hdmi); +- mutex_unlock(&hdmi->mutex); +-} +- +-static void dw_hdmi_bridge_enable(struct drm_bridge *bridge) +-{ +- struct dw_hdmi *hdmi = bridge->driver_private; +- +- mutex_lock(&hdmi->mutex); +- hdmi->disabled = false; +- dw_hdmi_update_power(hdmi); +- dw_hdmi_update_phy_mask(hdmi); +- mutex_unlock(&hdmi->mutex); +-} +- +-static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { +- .attach = dw_hdmi_bridge_attach, +- .enable = dw_hdmi_bridge_enable, +- .disable = dw_hdmi_bridge_disable, +- .mode_set = dw_hdmi_bridge_mode_set, +-}; +- +-static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi) +-{ +- struct dw_hdmi_i2c *i2c = hdmi->i2c; +- unsigned int stat; +- +- stat = hdmi_readb(hdmi, HDMI_IH_I2CM_STAT0); +- if (!stat) +- return IRQ_NONE; +- +- hdmi_writeb(hdmi, stat, HDMI_IH_I2CM_STAT0); +- +- i2c->stat = stat; +- +- complete(&i2c->cmp); +- +- return IRQ_HANDLED; +-} +- +-static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id) +-{ +- struct dw_hdmi *hdmi = dev_id; +- u8 intr_stat; +- irqreturn_t ret = IRQ_NONE; +- +- if (hdmi->i2c) +- ret = dw_hdmi_i2c_irq(hdmi); +- +- intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); +- if (intr_stat) { +- hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); +- return IRQ_WAKE_THREAD; +- } +- +- return ret; +-} +- +-static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) +-{ +- struct dw_hdmi *hdmi = dev_id; +- u8 intr_stat, phy_int_pol, phy_pol_mask, phy_stat; +- +- intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); +- phy_int_pol = hdmi_readb(hdmi, HDMI_PHY_POL0); +- phy_stat = hdmi_readb(hdmi, HDMI_PHY_STAT0); +- +- phy_pol_mask = 0; +- if (intr_stat & HDMI_IH_PHY_STAT0_HPD) +- phy_pol_mask |= HDMI_PHY_HPD; +- if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE0) +- phy_pol_mask |= HDMI_PHY_RX_SENSE0; +- if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE1) +- phy_pol_mask |= HDMI_PHY_RX_SENSE1; +- if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE2) +- phy_pol_mask |= HDMI_PHY_RX_SENSE2; +- if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE3) +- phy_pol_mask |= HDMI_PHY_RX_SENSE3; +- +- if (phy_pol_mask) +- hdmi_modb(hdmi, ~phy_int_pol, phy_pol_mask, HDMI_PHY_POL0); +- +- /* +- * RX sense tells us whether the TDMS transmitters are detecting +- * load - in other words, there's something listening on the +- * other end of the link. Use this to decide whether we should +- * power on the phy as HPD may be toggled by the sink to merely +- * ask the source to re-read the EDID. +- */ +- if (intr_stat & +- (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) { +- mutex_lock(&hdmi->mutex); +- if (!hdmi->disabled && !hdmi->force) { +- /* +- * If the RX sense status indicates we're disconnected, +- * clear the software rxsense status. +- */ +- if (!(phy_stat & HDMI_PHY_RX_SENSE)) +- hdmi->rxsense = false; +- +- /* +- * Only set the software rxsense status when both +- * rxsense and hpd indicates we're connected. +- * This avoids what seems to be bad behaviour in +- * at least iMX6S versions of the phy. +- */ +- if (phy_stat & HDMI_PHY_HPD) +- hdmi->rxsense = true; +- +- dw_hdmi_update_power(hdmi); +- dw_hdmi_update_phy_mask(hdmi); +- } +- mutex_unlock(&hdmi->mutex); +- } +- +- if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { +- dev_dbg(hdmi->dev, "EVENT=%s\n", +- phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); +- if (hdmi->bridge.dev) +- drm_helper_hpd_irq_event(hdmi->bridge.dev); +- } +- +- hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); +- hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), +- HDMI_IH_MUTE_PHY_STAT0); +- +- return IRQ_HANDLED; +-} +- +-static const struct dw_hdmi_phy_data dw_hdmi_phys[] = { +- { +- .type = DW_HDMI_PHY_DWC_HDMI_TX_PHY, +- .name = "DWC HDMI TX PHY", +- .gen = 1, +- }, { +- .type = DW_HDMI_PHY_DWC_MHL_PHY_HEAC, +- .name = "DWC MHL PHY + HEAC PHY", +- .gen = 2, +- .has_svsret = true, +- .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, +- }, { +- .type = DW_HDMI_PHY_DWC_MHL_PHY, +- .name = "DWC MHL PHY", +- .gen = 2, +- .has_svsret = true, +- .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, +- }, { +- .type = DW_HDMI_PHY_DWC_HDMI_3D_TX_PHY_HEAC, +- .name = "DWC HDMI 3D TX PHY + HEAC PHY", +- .gen = 2, +- .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, +- }, { +- .type = DW_HDMI_PHY_DWC_HDMI_3D_TX_PHY, +- .name = "DWC HDMI 3D TX PHY", +- .gen = 2, +- .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, +- }, { +- .type = DW_HDMI_PHY_DWC_HDMI20_TX_PHY, +- .name = "DWC HDMI 2.0 TX PHY", +- .gen = 2, +- .has_svsret = true, +- }, { +- .type = DW_HDMI_PHY_VENDOR_PHY, +- .name = "Vendor PHY", +- } +-}; +- +-static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) +-{ +- unsigned int i; +- u8 phy_type; +- +- phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID); +- +- if (phy_type == DW_HDMI_PHY_VENDOR_PHY) { +- /* Vendor PHYs require support from the glue layer. */ +- if (!hdmi->plat_data->phy_ops || !hdmi->plat_data->phy_name) { +- dev_err(hdmi->dev, +- "Vendor HDMI PHY not supported by glue layer\n"); +- return -ENODEV; +- } +- +- hdmi->phy.ops = hdmi->plat_data->phy_ops; +- hdmi->phy.data = hdmi->plat_data->phy_data; +- hdmi->phy.name = hdmi->plat_data->phy_name; +- return 0; +- } +- +- /* Synopsys PHYs are handled internally. */ +- for (i = 0; i < ARRAY_SIZE(dw_hdmi_phys); ++i) { +- if (dw_hdmi_phys[i].type == phy_type) { +- hdmi->phy.ops = &dw_hdmi_synopsys_phy_ops; +- hdmi->phy.name = dw_hdmi_phys[i].name; +- hdmi->phy.data = (void *)&dw_hdmi_phys[i]; +- +- if (!dw_hdmi_phys[i].configure && +- !hdmi->plat_data->configure_phy) { +- dev_err(hdmi->dev, "%s requires platform support\n", +- hdmi->phy.name); +- return -ENODEV; +- } +- +- return 0; +- } +- } +- +- dev_err(hdmi->dev, "Unsupported HDMI PHY type (%02x)\n", phy_type); +- return -ENODEV; +-} +- +-static const struct regmap_config hdmi_regmap_8bit_config = { +- .reg_bits = 32, +- .val_bits = 8, +- .reg_stride = 1, +- .max_register = HDMI_I2CM_FS_SCL_LCNT_0_ADDR, +-}; +- +-static const struct regmap_config hdmi_regmap_32bit_config = { +- .reg_bits = 32, +- .val_bits = 32, +- .reg_stride = 4, +- .max_register = HDMI_I2CM_FS_SCL_LCNT_0_ADDR << 2, +-}; +- +-static struct dw_hdmi * +-__dw_hdmi_probe(struct platform_device *pdev, +- const struct dw_hdmi_plat_data *plat_data) +-{ +- struct device *dev = &pdev->dev; +- struct device_node *np = dev->of_node; +- struct platform_device_info pdevinfo; +- struct device_node *ddc_node; +- struct dw_hdmi *hdmi; +- struct resource *iores = NULL; +- int irq; +- int ret; +- u32 val = 1; +- u8 prod_id0; +- u8 prod_id1; +- u8 config0; +- u8 config3; +- +- hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); +- if (!hdmi) +- return ERR_PTR(-ENOMEM); +- +- hdmi->plat_data = plat_data; +- hdmi->dev = dev; +- hdmi->sample_rate = 48000; +- hdmi->disabled = true; +- hdmi->rxsense = true; +- hdmi->phy_mask = (u8)~(HDMI_PHY_HPD | HDMI_PHY_RX_SENSE); +- +- mutex_init(&hdmi->mutex); +- mutex_init(&hdmi->audio_mutex); +- spin_lock_init(&hdmi->audio_lock); +- +- ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); +- if (ddc_node) { +- hdmi->ddc = of_get_i2c_adapter_by_node(ddc_node); +- of_node_put(ddc_node); +- if (!hdmi->ddc) { +- dev_dbg(hdmi->dev, "failed to read ddc node\n"); +- return ERR_PTR(-EPROBE_DEFER); +- } +- +- } else { +- dev_dbg(hdmi->dev, "no ddc property found\n"); +- } +- +- if (!plat_data->regm) { +- const struct regmap_config *reg_config; +- +- of_property_read_u32(np, "reg-io-width", &val); +- switch (val) { +- case 4: +- reg_config = &hdmi_regmap_32bit_config; +- hdmi->reg_shift = 2; +- break; +- case 1: +- reg_config = &hdmi_regmap_8bit_config; +- break; +- default: +- dev_err(dev, "reg-io-width must be 1 or 4\n"); +- return ERR_PTR(-EINVAL); +- } +- +- iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- hdmi->regs = devm_ioremap_resource(dev, iores); +- if (IS_ERR(hdmi->regs)) { +- ret = PTR_ERR(hdmi->regs); +- goto err_res; +- } +- +- hdmi->regm = devm_regmap_init_mmio(dev, hdmi->regs, reg_config); +- if (IS_ERR(hdmi->regm)) { +- dev_err(dev, "Failed to configure regmap\n"); +- ret = PTR_ERR(hdmi->regm); +- goto err_res; +- } +- } else { +- hdmi->regm = plat_data->regm; +- } +- +- hdmi->isfr_clk = devm_clk_get(hdmi->dev, "isfr"); +- if (IS_ERR(hdmi->isfr_clk)) { +- ret = PTR_ERR(hdmi->isfr_clk); +- dev_err(hdmi->dev, "Unable to get HDMI isfr clk: %d\n", ret); +- goto err_res; +- } +- +- ret = clk_prepare_enable(hdmi->isfr_clk); +- if (ret) { +- dev_err(hdmi->dev, "Cannot enable HDMI isfr clock: %d\n", ret); +- goto err_res; +- } +- +- hdmi->iahb_clk = devm_clk_get(hdmi->dev, "iahb"); +- if (IS_ERR(hdmi->iahb_clk)) { +- ret = PTR_ERR(hdmi->iahb_clk); +- dev_err(hdmi->dev, "Unable to get HDMI iahb clk: %d\n", ret); +- goto err_isfr; +- } +- +- ret = clk_prepare_enable(hdmi->iahb_clk); +- if (ret) { +- dev_err(hdmi->dev, "Cannot enable HDMI iahb clock: %d\n", ret); +- goto err_isfr; +- } +- +- /* Product and revision IDs */ +- hdmi->version = (hdmi_readb(hdmi, HDMI_DESIGN_ID) << 8) +- | (hdmi_readb(hdmi, HDMI_REVISION_ID) << 0); +- prod_id0 = hdmi_readb(hdmi, HDMI_PRODUCT_ID0); +- prod_id1 = hdmi_readb(hdmi, HDMI_PRODUCT_ID1); +- +- if (prod_id0 != HDMI_PRODUCT_ID0_HDMI_TX || +- (prod_id1 & ~HDMI_PRODUCT_ID1_HDCP) != HDMI_PRODUCT_ID1_HDMI_TX) { +- dev_err(dev, "Unsupported HDMI controller (%04x:%02x:%02x)\n", +- hdmi->version, prod_id0, prod_id1); +- ret = -ENODEV; +- goto err_iahb; +- } +- +- ret = dw_hdmi_detect_phy(hdmi); +- if (ret < 0) +- goto err_iahb; +- +- dev_info(dev, "Detected HDMI TX controller v%x.%03x %s HDCP (%s)\n", +- hdmi->version >> 12, hdmi->version & 0xfff, +- prod_id1 & HDMI_PRODUCT_ID1_HDCP ? "with" : "without", +- hdmi->phy.name); +- +- initialize_hdmi_ih_mutes(hdmi); +- +- irq = platform_get_irq(pdev, 0); +- if (irq < 0) { +- ret = irq; +- goto err_iahb; +- } +- +- ret = devm_request_threaded_irq(dev, irq, dw_hdmi_hardirq, +- dw_hdmi_irq, IRQF_SHARED, +- dev_name(dev), hdmi); +- if (ret) +- goto err_iahb; +- +- /* +- * To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator +- * N and cts values before enabling phy +- */ +- hdmi_init_clk_regenerator(hdmi); +- +- /* If DDC bus is not specified, try to register HDMI I2C bus */ +- if (!hdmi->ddc) { +- hdmi->ddc = dw_hdmi_i2c_adapter(hdmi); +- if (IS_ERR(hdmi->ddc)) +- hdmi->ddc = NULL; +- } +- +- /* +- * Configure registers related to HDMI interrupt +- * generation before registering IRQ. +- */ +- hdmi_writeb(hdmi, HDMI_PHY_HPD | HDMI_PHY_RX_SENSE, HDMI_PHY_POL0); +- +- /* Clear Hotplug interrupts */ +- hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, +- HDMI_IH_PHY_STAT0); +- +- hdmi->bridge.driver_private = hdmi; +- hdmi->bridge.funcs = &dw_hdmi_bridge_funcs; +-#ifdef CONFIG_OF +- hdmi->bridge.of_node = pdev->dev.of_node; +-#endif +- +- ret = dw_hdmi_fb_registered(hdmi); +- if (ret) +- goto err_iahb; +- +- /* Unmute interrupts */ +- hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), +- HDMI_IH_MUTE_PHY_STAT0); +- +- memset(&pdevinfo, 0, sizeof(pdevinfo)); +- pdevinfo.parent = dev; +- pdevinfo.id = PLATFORM_DEVID_AUTO; +- +- config0 = hdmi_readb(hdmi, HDMI_CONFIG0_ID); +- config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID); +- +- if (iores && config3 & HDMI_CONFIG3_AHBAUDDMA) { +- struct dw_hdmi_audio_data audio; +- +- audio.phys = iores->start; +- audio.base = hdmi->regs; +- audio.irq = irq; +- audio.hdmi = hdmi; +- audio.eld = hdmi->connector.eld; +- +- pdevinfo.name = "dw-hdmi-ahb-audio"; +- pdevinfo.data = &audio; +- pdevinfo.size_data = sizeof(audio); +- pdevinfo.dma_mask = DMA_BIT_MASK(32); +- hdmi->audio = platform_device_register_full(&pdevinfo); +- } else if (config0 & HDMI_CONFIG0_I2S) { +- struct dw_hdmi_i2s_audio_data audio; +- +- audio.hdmi = hdmi; +- audio.write = hdmi_writeb; +- audio.read = hdmi_readb; +- +- pdevinfo.name = "dw-hdmi-i2s-audio"; +- pdevinfo.data = &audio; +- pdevinfo.size_data = sizeof(audio); +- pdevinfo.dma_mask = DMA_BIT_MASK(32); +- hdmi->audio = platform_device_register_full(&pdevinfo); +- } +- +- /* Reset HDMI DDC I2C master controller and mute I2CM interrupts */ +- if (hdmi->i2c) +- dw_hdmi_i2c_init(hdmi); +- +- platform_set_drvdata(pdev, hdmi); +- +- return hdmi; +- +-err_iahb: +- if (hdmi->i2c) { +- i2c_del_adapter(&hdmi->i2c->adap); +- hdmi->ddc = NULL; +- } +- +- clk_disable_unprepare(hdmi->iahb_clk); +-err_isfr: +- clk_disable_unprepare(hdmi->isfr_clk); +-err_res: +- i2c_put_adapter(hdmi->ddc); +- +- return ERR_PTR(ret); +-} +- +-static void __dw_hdmi_remove(struct dw_hdmi *hdmi) +-{ +- if (hdmi->audio && !IS_ERR(hdmi->audio)) +- platform_device_unregister(hdmi->audio); +- +- /* Disable all interrupts */ +- hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); +- +- clk_disable_unprepare(hdmi->iahb_clk); +- clk_disable_unprepare(hdmi->isfr_clk); +- +- if (hdmi->i2c) +- i2c_del_adapter(&hdmi->i2c->adap); +- else +- i2c_put_adapter(hdmi->ddc); +-} +- +-/* ----------------------------------------------------------------------------- +- * Probe/remove API, used from platforms based on the DRM bridge API. +- */ +-int dw_hdmi_probe(struct platform_device *pdev, +- const struct dw_hdmi_plat_data *plat_data) +-{ +- struct dw_hdmi *hdmi; +- int ret; +- +- hdmi = __dw_hdmi_probe(pdev, plat_data); +- if (IS_ERR(hdmi)) +- return PTR_ERR(hdmi); +- +- ret = drm_bridge_add(&hdmi->bridge); +- if (ret < 0) { +- __dw_hdmi_remove(hdmi); +- return ret; +- } +- +- return 0; +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_probe); +- +-void dw_hdmi_remove(struct platform_device *pdev) +-{ +- struct dw_hdmi *hdmi = platform_get_drvdata(pdev); +- +- drm_bridge_remove(&hdmi->bridge); +- +- __dw_hdmi_remove(hdmi); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_remove); +- +-/* ----------------------------------------------------------------------------- +- * Bind/unbind API, used from platforms based on the component framework. +- */ +-int dw_hdmi_bind(struct platform_device *pdev, struct drm_encoder *encoder, +- const struct dw_hdmi_plat_data *plat_data) +-{ +- struct dw_hdmi *hdmi; +- int ret; +- +- hdmi = __dw_hdmi_probe(pdev, plat_data); +- if (IS_ERR(hdmi)) +- return PTR_ERR(hdmi); +- +- ret = drm_bridge_attach(encoder, &hdmi->bridge, NULL); +- if (ret) { +- dw_hdmi_remove(pdev); +- DRM_ERROR("Failed to initialize bridge with drm\n"); +- return ret; +- } +- +- return 0; +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_bind); +- +-void dw_hdmi_unbind(struct device *dev) +-{ +- struct dw_hdmi *hdmi = dev_get_drvdata(dev); +- +- __dw_hdmi_remove(hdmi); +-} +-EXPORT_SYMBOL_GPL(dw_hdmi_unbind); +- +-MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); +-MODULE_AUTHOR("Andy Yan <andy.yan@rock-chips.com>"); +-MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); +-MODULE_AUTHOR("Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>"); +-MODULE_DESCRIPTION("DW HDMI transmitter driver"); +-MODULE_LICENSE("GPL"); +-MODULE_ALIAS("platform:dw-hdmi"); +--- a/drivers/gpu/drm/bridge/dw-hdmi.h ++++ /dev/null +@@ -1,1153 +0,0 @@ +-/* +- * Copyright (C) 2011 Freescale Semiconductor, Inc. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- */ +- +-#ifndef __DW_HDMI_H__ +-#define __DW_HDMI_H__ +- +-/* Identification Registers */ +-#define HDMI_DESIGN_ID 0x0000 +-#define HDMI_REVISION_ID 0x0001 +-#define HDMI_PRODUCT_ID0 0x0002 +-#define HDMI_PRODUCT_ID1 0x0003 +-#define HDMI_CONFIG0_ID 0x0004 +-#define HDMI_CONFIG1_ID 0x0005 +-#define HDMI_CONFIG2_ID 0x0006 +-#define HDMI_CONFIG3_ID 0x0007 +- +-/* Interrupt Registers */ +-#define HDMI_IH_FC_STAT0 0x0100 +-#define HDMI_IH_FC_STAT1 0x0101 +-#define HDMI_IH_FC_STAT2 0x0102 +-#define HDMI_IH_AS_STAT0 0x0103 +-#define HDMI_IH_PHY_STAT0 0x0104 +-#define HDMI_IH_I2CM_STAT0 0x0105 +-#define HDMI_IH_CEC_STAT0 0x0106 +-#define HDMI_IH_VP_STAT0 0x0107 +-#define HDMI_IH_I2CMPHY_STAT0 0x0108 +-#define HDMI_IH_AHBDMAAUD_STAT0 0x0109 +- +-#define HDMI_IH_MUTE_FC_STAT0 0x0180 +-#define HDMI_IH_MUTE_FC_STAT1 0x0181 +-#define HDMI_IH_MUTE_FC_STAT2 0x0182 +-#define HDMI_IH_MUTE_AS_STAT0 0x0183 +-#define HDMI_IH_MUTE_PHY_STAT0 0x0184 +-#define HDMI_IH_MUTE_I2CM_STAT0 0x0185 +-#define HDMI_IH_MUTE_CEC_STAT0 0x0186 +-#define HDMI_IH_MUTE_VP_STAT0 0x0187 +-#define HDMI_IH_MUTE_I2CMPHY_STAT0 0x0188 +-#define HDMI_IH_MUTE_AHBDMAAUD_STAT0 0x0189 +-#define HDMI_IH_MUTE 0x01FF +- +-/* Video Sample Registers */ +-#define HDMI_TX_INVID0 0x0200 +-#define HDMI_TX_INSTUFFING 0x0201 +-#define HDMI_TX_GYDATA0 0x0202 +-#define HDMI_TX_GYDATA1 0x0203 +-#define HDMI_TX_RCRDATA0 0x0204 +-#define HDMI_TX_RCRDATA1 0x0205 +-#define HDMI_TX_BCBDATA0 0x0206 +-#define HDMI_TX_BCBDATA1 0x0207 +- +-/* Video Packetizer Registers */ +-#define HDMI_VP_STATUS 0x0800 +-#define HDMI_VP_PR_CD 0x0801 +-#define HDMI_VP_STUFF 0x0802 +-#define HDMI_VP_REMAP 0x0803 +-#define HDMI_VP_CONF 0x0804 +-#define HDMI_VP_STAT 0x0805 +-#define HDMI_VP_INT 0x0806 +-#define HDMI_VP_MASK 0x0807 +-#define HDMI_VP_POL 0x0808 +- +-/* Frame Composer Registers */ +-#define HDMI_FC_INVIDCONF 0x1000 +-#define HDMI_FC_INHACTV0 0x1001 +-#define HDMI_FC_INHACTV1 0x1002 +-#define HDMI_FC_INHBLANK0 0x1003 +-#define HDMI_FC_INHBLANK1 0x1004 +-#define HDMI_FC_INVACTV0 0x1005 +-#define HDMI_FC_INVACTV1 0x1006 +-#define HDMI_FC_INVBLANK 0x1007 +-#define HDMI_FC_HSYNCINDELAY0 0x1008 +-#define HDMI_FC_HSYNCINDELAY1 0x1009 +-#define HDMI_FC_HSYNCINWIDTH0 0x100A +-#define HDMI_FC_HSYNCINWIDTH1 0x100B +-#define HDMI_FC_VSYNCINDELAY 0x100C +-#define HDMI_FC_VSYNCINWIDTH 0x100D +-#define HDMI_FC_INFREQ0 0x100E +-#define HDMI_FC_INFREQ1 0x100F +-#define HDMI_FC_INFREQ2 0x1010 +-#define HDMI_FC_CTRLDUR 0x1011 +-#define HDMI_FC_EXCTRLDUR 0x1012 +-#define HDMI_FC_EXCTRLSPAC 0x1013 +-#define HDMI_FC_CH0PREAM 0x1014 +-#define HDMI_FC_CH1PREAM 0x1015 +-#define HDMI_FC_CH2PREAM 0x1016 +-#define HDMI_FC_AVICONF3 0x1017 +-#define HDMI_FC_GCP 0x1018 +-#define HDMI_FC_AVICONF0 0x1019 +-#define HDMI_FC_AVICONF1 0x101A +-#define HDMI_FC_AVICONF2 0x101B +-#define HDMI_FC_AVIVID 0x101C +-#define HDMI_FC_AVIETB0 0x101D +-#define HDMI_FC_AVIETB1 0x101E +-#define HDMI_FC_AVISBB0 0x101F +-#define HDMI_FC_AVISBB1 0x1020 +-#define HDMI_FC_AVIELB0 0x1021 +-#define HDMI_FC_AVIELB1 0x1022 +-#define HDMI_FC_AVISRB0 0x1023 +-#define HDMI_FC_AVISRB1 0x1024 +-#define HDMI_FC_AUDICONF0 0x1025 +-#define HDMI_FC_AUDICONF1 0x1026 +-#define HDMI_FC_AUDICONF2 0x1027 +-#define HDMI_FC_AUDICONF3 0x1028 +-#define HDMI_FC_VSDIEEEID0 0x1029 +-#define HDMI_FC_VSDSIZE 0x102A +-#define HDMI_FC_VSDIEEEID1 0x1030 +-#define HDMI_FC_VSDIEEEID2 0x1031 +-#define HDMI_FC_VSDPAYLOAD0 0x1032 +-#define HDMI_FC_VSDPAYLOAD1 0x1033 +-#define HDMI_FC_VSDPAYLOAD2 0x1034 +-#define HDMI_FC_VSDPAYLOAD3 0x1035 +-#define HDMI_FC_VSDPAYLOAD4 0x1036 +-#define HDMI_FC_VSDPAYLOAD5 0x1037 +-#define HDMI_FC_VSDPAYLOAD6 0x1038 +-#define HDMI_FC_VSDPAYLOAD7 0x1039 +-#define HDMI_FC_VSDPAYLOAD8 0x103A +-#define HDMI_FC_VSDPAYLOAD9 0x103B +-#define HDMI_FC_VSDPAYLOAD10 0x103C +-#define HDMI_FC_VSDPAYLOAD11 0x103D +-#define HDMI_FC_VSDPAYLOAD12 0x103E +-#define HDMI_FC_VSDPAYLOAD13 0x103F +-#define HDMI_FC_VSDPAYLOAD14 0x1040 +-#define HDMI_FC_VSDPAYLOAD15 0x1041 +-#define HDMI_FC_VSDPAYLOAD16 0x1042 +-#define HDMI_FC_VSDPAYLOAD17 0x1043 +-#define HDMI_FC_VSDPAYLOAD18 0x1044 +-#define HDMI_FC_VSDPAYLOAD19 0x1045 +-#define HDMI_FC_VSDPAYLOAD20 0x1046 +-#define HDMI_FC_VSDPAYLOAD21 0x1047 +-#define HDMI_FC_VSDPAYLOAD22 0x1048 +-#define HDMI_FC_VSDPAYLOAD23 0x1049 +-#define HDMI_FC_SPDVENDORNAME0 0x104A +-#define HDMI_FC_SPDVENDORNAME1 0x104B +-#define HDMI_FC_SPDVENDORNAME2 0x104C +-#define HDMI_FC_SPDVENDORNAME3 0x104D +-#define HDMI_FC_SPDVENDORNAME4 0x104E +-#define HDMI_FC_SPDVENDORNAME5 0x104F +-#define HDMI_FC_SPDVENDORNAME6 0x1050 +-#define HDMI_FC_SPDVENDORNAME7 0x1051 +-#define HDMI_FC_SDPPRODUCTNAME0 0x1052 +-#define HDMI_FC_SDPPRODUCTNAME1 0x1053 +-#define HDMI_FC_SDPPRODUCTNAME2 0x1054 +-#define HDMI_FC_SDPPRODUCTNAME3 0x1055 +-#define HDMI_FC_SDPPRODUCTNAME4 0x1056 +-#define HDMI_FC_SDPPRODUCTNAME5 0x1057 +-#define HDMI_FC_SDPPRODUCTNAME6 0x1058 +-#define HDMI_FC_SDPPRODUCTNAME7 0x1059 +-#define HDMI_FC_SDPPRODUCTNAME8 0x105A +-#define HDMI_FC_SDPPRODUCTNAME9 0x105B +-#define HDMI_FC_SDPPRODUCTNAME10 0x105C +-#define HDMI_FC_SDPPRODUCTNAME11 0x105D +-#define HDMI_FC_SDPPRODUCTNAME12 0x105E +-#define HDMI_FC_SDPPRODUCTNAME13 0x105F +-#define HDMI_FC_SDPPRODUCTNAME14 0x1060 +-#define HDMI_FC_SPDPRODUCTNAME15 0x1061 +-#define HDMI_FC_SPDDEVICEINF 0x1062 +-#define HDMI_FC_AUDSCONF 0x1063 +-#define HDMI_FC_AUDSSTAT 0x1064 +-#define HDMI_FC_DATACH0FILL 0x1070 +-#define HDMI_FC_DATACH1FILL 0x1071 +-#define HDMI_FC_DATACH2FILL 0x1072 +-#define HDMI_FC_CTRLQHIGH 0x1073 +-#define HDMI_FC_CTRLQLOW 0x1074 +-#define HDMI_FC_ACP0 0x1075 +-#define HDMI_FC_ACP28 0x1076 +-#define HDMI_FC_ACP27 0x1077 +-#define HDMI_FC_ACP26 0x1078 +-#define HDMI_FC_ACP25 0x1079 +-#define HDMI_FC_ACP24 0x107A +-#define HDMI_FC_ACP23 0x107B +-#define HDMI_FC_ACP22 0x107C +-#define HDMI_FC_ACP21 0x107D +-#define HDMI_FC_ACP20 0x107E +-#define HDMI_FC_ACP19 0x107F +-#define HDMI_FC_ACP18 0x1080 +-#define HDMI_FC_ACP17 0x1081 +-#define HDMI_FC_ACP16 0x1082 +-#define HDMI_FC_ACP15 0x1083 +-#define HDMI_FC_ACP14 0x1084 +-#define HDMI_FC_ACP13 0x1085 +-#define HDMI_FC_ACP12 0x1086 +-#define HDMI_FC_ACP11 0x1087 +-#define HDMI_FC_ACP10 0x1088 +-#define HDMI_FC_ACP9 0x1089 +-#define HDMI_FC_ACP8 0x108A +-#define HDMI_FC_ACP7 0x108B +-#define HDMI_FC_ACP6 0x108C +-#define HDMI_FC_ACP5 0x108D +-#define HDMI_FC_ACP4 0x108E +-#define HDMI_FC_ACP3 0x108F +-#define HDMI_FC_ACP2 0x1090 +-#define HDMI_FC_ACP1 0x1091 +-#define HDMI_FC_ISCR1_0 0x1092 +-#define HDMI_FC_ISCR1_16 0x1093 +-#define HDMI_FC_ISCR1_15 0x1094 +-#define HDMI_FC_ISCR1_14 0x1095 +-#define HDMI_FC_ISCR1_13 0x1096 +-#define HDMI_FC_ISCR1_12 0x1097 +-#define HDMI_FC_ISCR1_11 0x1098 +-#define HDMI_FC_ISCR1_10 0x1099 +-#define HDMI_FC_ISCR1_9 0x109A +-#define HDMI_FC_ISCR1_8 0x109B +-#define HDMI_FC_ISCR1_7 0x109C +-#define HDMI_FC_ISCR1_6 0x109D +-#define HDMI_FC_ISCR1_5 0x109E +-#define HDMI_FC_ISCR1_4 0x109F +-#define HDMI_FC_ISCR1_3 0x10A0 +-#define HDMI_FC_ISCR1_2 0x10A1 +-#define HDMI_FC_ISCR1_1 0x10A2 +-#define HDMI_FC_ISCR2_15 0x10A3 +-#define HDMI_FC_ISCR2_14 0x10A4 +-#define HDMI_FC_ISCR2_13 0x10A5 +-#define HDMI_FC_ISCR2_12 0x10A6 +-#define HDMI_FC_ISCR2_11 0x10A7 +-#define HDMI_FC_ISCR2_10 0x10A8 +-#define HDMI_FC_ISCR2_9 0x10A9 +-#define HDMI_FC_ISCR2_8 0x10AA +-#define HDMI_FC_ISCR2_7 0x10AB +-#define HDMI_FC_ISCR2_6 0x10AC +-#define HDMI_FC_ISCR2_5 0x10AD +-#define HDMI_FC_ISCR2_4 0x10AE +-#define HDMI_FC_ISCR2_3 0x10AF +-#define HDMI_FC_ISCR2_2 0x10B0 +-#define HDMI_FC_ISCR2_1 0x10B1 +-#define HDMI_FC_ISCR2_0 0x10B2 +-#define HDMI_FC_DATAUTO0 0x10B3 +-#define HDMI_FC_DATAUTO1 0x10B4 +-#define HDMI_FC_DATAUTO2 0x10B5 +-#define HDMI_FC_DATMAN 0x10B6 +-#define HDMI_FC_DATAUTO3 0x10B7 +-#define HDMI_FC_RDRB0 0x10B8 +-#define HDMI_FC_RDRB1 0x10B9 +-#define HDMI_FC_RDRB2 0x10BA +-#define HDMI_FC_RDRB3 0x10BB +-#define HDMI_FC_RDRB4 0x10BC +-#define HDMI_FC_RDRB5 0x10BD +-#define HDMI_FC_RDRB6 0x10BE +-#define HDMI_FC_RDRB7 0x10BF +-#define HDMI_FC_STAT0 0x10D0 +-#define HDMI_FC_INT0 0x10D1 +-#define HDMI_FC_MASK0 0x10D2 +-#define HDMI_FC_POL0 0x10D3 +-#define HDMI_FC_STAT1 0x10D4 +-#define HDMI_FC_INT1 0x10D5 +-#define HDMI_FC_MASK1 0x10D6 +-#define HDMI_FC_POL1 0x10D7 +-#define HDMI_FC_STAT2 0x10D8 +-#define HDMI_FC_INT2 0x10D9 +-#define HDMI_FC_MASK2 0x10DA +-#define HDMI_FC_POL2 0x10DB +-#define HDMI_FC_PRCONF 0x10E0 +- +-#define HDMI_FC_GMD_STAT 0x1100 +-#define HDMI_FC_GMD_EN 0x1101 +-#define HDMI_FC_GMD_UP 0x1102 +-#define HDMI_FC_GMD_CONF 0x1103 +-#define HDMI_FC_GMD_HB 0x1104 +-#define HDMI_FC_GMD_PB0 0x1105 +-#define HDMI_FC_GMD_PB1 0x1106 +-#define HDMI_FC_GMD_PB2 0x1107 +-#define HDMI_FC_GMD_PB3 0x1108 +-#define HDMI_FC_GMD_PB4 0x1109 +-#define HDMI_FC_GMD_PB5 0x110A +-#define HDMI_FC_GMD_PB6 0x110B +-#define HDMI_FC_GMD_PB7 0x110C +-#define HDMI_FC_GMD_PB8 0x110D +-#define HDMI_FC_GMD_PB9 0x110E +-#define HDMI_FC_GMD_PB10 0x110F +-#define HDMI_FC_GMD_PB11 0x1110 +-#define HDMI_FC_GMD_PB12 0x1111 +-#define HDMI_FC_GMD_PB13 0x1112 +-#define HDMI_FC_GMD_PB14 0x1113 +-#define HDMI_FC_GMD_PB15 0x1114 +-#define HDMI_FC_GMD_PB16 0x1115 +-#define HDMI_FC_GMD_PB17 0x1116 +-#define HDMI_FC_GMD_PB18 0x1117 +-#define HDMI_FC_GMD_PB19 0x1118 +-#define HDMI_FC_GMD_PB20 0x1119 +-#define HDMI_FC_GMD_PB21 0x111A +-#define HDMI_FC_GMD_PB22 0x111B +-#define HDMI_FC_GMD_PB23 0x111C +-#define HDMI_FC_GMD_PB24 0x111D +-#define HDMI_FC_GMD_PB25 0x111E +-#define HDMI_FC_GMD_PB26 0x111F +-#define HDMI_FC_GMD_PB27 0x1120 +- +-#define HDMI_FC_DBGFORCE 0x1200 +-#define HDMI_FC_DBGAUD0CH0 0x1201 +-#define HDMI_FC_DBGAUD1CH0 0x1202 +-#define HDMI_FC_DBGAUD2CH0 0x1203 +-#define HDMI_FC_DBGAUD0CH1 0x1204 +-#define HDMI_FC_DBGAUD1CH1 0x1205 +-#define HDMI_FC_DBGAUD2CH1 0x1206 +-#define HDMI_FC_DBGAUD0CH2 0x1207 +-#define HDMI_FC_DBGAUD1CH2 0x1208 +-#define HDMI_FC_DBGAUD2CH2 0x1209 +-#define HDMI_FC_DBGAUD0CH3 0x120A +-#define HDMI_FC_DBGAUD1CH3 0x120B +-#define HDMI_FC_DBGAUD2CH3 0x120C +-#define HDMI_FC_DBGAUD0CH4 0x120D +-#define HDMI_FC_DBGAUD1CH4 0x120E +-#define HDMI_FC_DBGAUD2CH4 0x120F +-#define HDMI_FC_DBGAUD0CH5 0x1210 +-#define HDMI_FC_DBGAUD1CH5 0x1211 +-#define HDMI_FC_DBGAUD2CH5 0x1212 +-#define HDMI_FC_DBGAUD0CH6 0x1213 +-#define HDMI_FC_DBGAUD1CH6 0x1214 +-#define HDMI_FC_DBGAUD2CH6 0x1215 +-#define HDMI_FC_DBGAUD0CH7 0x1216 +-#define HDMI_FC_DBGAUD1CH7 0x1217 +-#define HDMI_FC_DBGAUD2CH7 0x1218 +-#define HDMI_FC_DBGTMDS0 0x1219 +-#define HDMI_FC_DBGTMDS1 0x121A +-#define HDMI_FC_DBGTMDS2 0x121B +- +-/* HDMI Source PHY Registers */ +-#define HDMI_PHY_CONF0 0x3000 +-#define HDMI_PHY_TST0 0x3001 +-#define HDMI_PHY_TST1 0x3002 +-#define HDMI_PHY_TST2 0x3003 +-#define HDMI_PHY_STAT0 0x3004 +-#define HDMI_PHY_INT0 0x3005 +-#define HDMI_PHY_MASK0 0x3006 +-#define HDMI_PHY_POL0 0x3007 +- +-/* HDMI Master PHY Registers */ +-#define HDMI_PHY_I2CM_SLAVE_ADDR 0x3020 +-#define HDMI_PHY_I2CM_ADDRESS_ADDR 0x3021 +-#define HDMI_PHY_I2CM_DATAO_1_ADDR 0x3022 +-#define HDMI_PHY_I2CM_DATAO_0_ADDR 0x3023 +-#define HDMI_PHY_I2CM_DATAI_1_ADDR 0x3024 +-#define HDMI_PHY_I2CM_DATAI_0_ADDR 0x3025 +-#define HDMI_PHY_I2CM_OPERATION_ADDR 0x3026 +-#define HDMI_PHY_I2CM_INT_ADDR 0x3027 +-#define HDMI_PHY_I2CM_CTLINT_ADDR 0x3028 +-#define HDMI_PHY_I2CM_DIV_ADDR 0x3029 +-#define HDMI_PHY_I2CM_SOFTRSTZ_ADDR 0x302a +-#define HDMI_PHY_I2CM_SS_SCL_HCNT_1_ADDR 0x302b +-#define HDMI_PHY_I2CM_SS_SCL_HCNT_0_ADDR 0x302c +-#define HDMI_PHY_I2CM_SS_SCL_LCNT_1_ADDR 0x302d +-#define HDMI_PHY_I2CM_SS_SCL_LCNT_0_ADDR 0x302e +-#define HDMI_PHY_I2CM_FS_SCL_HCNT_1_ADDR 0x302f +-#define HDMI_PHY_I2CM_FS_SCL_HCNT_0_ADDR 0x3030 +-#define HDMI_PHY_I2CM_FS_SCL_LCNT_1_ADDR 0x3031 +-#define HDMI_PHY_I2CM_FS_SCL_LCNT_0_ADDR 0x3032 +- +-/* Audio Sampler Registers */ +-#define HDMI_AUD_CONF0 0x3100 +-#define HDMI_AUD_CONF1 0x3101 +-#define HDMI_AUD_INT 0x3102 +-#define HDMI_AUD_CONF2 0x3103 +-#define HDMI_AUD_N1 0x3200 +-#define HDMI_AUD_N2 0x3201 +-#define HDMI_AUD_N3 0x3202 +-#define HDMI_AUD_CTS1 0x3203 +-#define HDMI_AUD_CTS2 0x3204 +-#define HDMI_AUD_CTS3 0x3205 +-#define HDMI_AUD_INPUTCLKFS 0x3206 +-#define HDMI_AUD_SPDIFINT 0x3302 +-#define HDMI_AUD_CONF0_HBR 0x3400 +-#define HDMI_AUD_HBR_STATUS 0x3401 +-#define HDMI_AUD_HBR_INT 0x3402 +-#define HDMI_AUD_HBR_POL 0x3403 +-#define HDMI_AUD_HBR_MASK 0x3404 +- +-/* +- * Generic Parallel Audio Interface Registers +- * Not used as GPAUD interface is not enabled in hw +- */ +-#define HDMI_GP_CONF0 0x3500 +-#define HDMI_GP_CONF1 0x3501 +-#define HDMI_GP_CONF2 0x3502 +-#define HDMI_GP_STAT 0x3503 +-#define HDMI_GP_INT 0x3504 +-#define HDMI_GP_MASK 0x3505 +-#define HDMI_GP_POL 0x3506 +- +-/* Audio DMA Registers */ +-#define HDMI_AHB_DMA_CONF0 0x3600 +-#define HDMI_AHB_DMA_START 0x3601 +-#define HDMI_AHB_DMA_STOP 0x3602 +-#define HDMI_AHB_DMA_THRSLD 0x3603 +-#define HDMI_AHB_DMA_STRADDR0 0x3604 +-#define HDMI_AHB_DMA_STRADDR1 0x3605 +-#define HDMI_AHB_DMA_STRADDR2 0x3606 +-#define HDMI_AHB_DMA_STRADDR3 0x3607 +-#define HDMI_AHB_DMA_STPADDR0 0x3608 +-#define HDMI_AHB_DMA_STPADDR1 0x3609 +-#define HDMI_AHB_DMA_STPADDR2 0x360a +-#define HDMI_AHB_DMA_STPADDR3 0x360b +-#define HDMI_AHB_DMA_BSTADDR0 0x360c +-#define HDMI_AHB_DMA_BSTADDR1 0x360d +-#define HDMI_AHB_DMA_BSTADDR2 0x360e +-#define HDMI_AHB_DMA_BSTADDR3 0x360f +-#define HDMI_AHB_DMA_MBLENGTH0 0x3610 +-#define HDMI_AHB_DMA_MBLENGTH1 0x3611 +-#define HDMI_AHB_DMA_STAT 0x3612 +-#define HDMI_AHB_DMA_INT 0x3613 +-#define HDMI_AHB_DMA_MASK 0x3614 +-#define HDMI_AHB_DMA_POL 0x3615 +-#define HDMI_AHB_DMA_CONF1 0x3616 +-#define HDMI_AHB_DMA_BUFFSTAT 0x3617 +-#define HDMI_AHB_DMA_BUFFINT 0x3618 +-#define HDMI_AHB_DMA_BUFFMASK 0x3619 +-#define HDMI_AHB_DMA_BUFFPOL 0x361a +- +-/* Main Controller Registers */ +-#define HDMI_MC_SFRDIV 0x4000 +-#define HDMI_MC_CLKDIS 0x4001 +-#define HDMI_MC_SWRSTZ 0x4002 +-#define HDMI_MC_OPCTRL 0x4003 +-#define HDMI_MC_FLOWCTRL 0x4004 +-#define HDMI_MC_PHYRSTZ 0x4005 +-#define HDMI_MC_LOCKONCLOCK 0x4006 +-#define HDMI_MC_HEACPHY_RST 0x4007 +- +-/* Color Space Converter Registers */ +-#define HDMI_CSC_CFG 0x4100 +-#define HDMI_CSC_SCALE 0x4101 +-#define HDMI_CSC_COEF_A1_MSB 0x4102 +-#define HDMI_CSC_COEF_A1_LSB 0x4103 +-#define HDMI_CSC_COEF_A2_MSB 0x4104 +-#define HDMI_CSC_COEF_A2_LSB 0x4105 +-#define HDMI_CSC_COEF_A3_MSB 0x4106 +-#define HDMI_CSC_COEF_A3_LSB 0x4107 +-#define HDMI_CSC_COEF_A4_MSB 0x4108 +-#define HDMI_CSC_COEF_A4_LSB 0x4109 +-#define HDMI_CSC_COEF_B1_MSB 0x410A +-#define HDMI_CSC_COEF_B1_LSB 0x410B +-#define HDMI_CSC_COEF_B2_MSB 0x410C +-#define HDMI_CSC_COEF_B2_LSB 0x410D +-#define HDMI_CSC_COEF_B3_MSB 0x410E +-#define HDMI_CSC_COEF_B3_LSB 0x410F +-#define HDMI_CSC_COEF_B4_MSB 0x4110 +-#define HDMI_CSC_COEF_B4_LSB 0x4111 +-#define HDMI_CSC_COEF_C1_MSB 0x4112 +-#define HDMI_CSC_COEF_C1_LSB 0x4113 +-#define HDMI_CSC_COEF_C2_MSB 0x4114 +-#define HDMI_CSC_COEF_C2_LSB 0x4115 +-#define HDMI_CSC_COEF_C3_MSB 0x4116 +-#define HDMI_CSC_COEF_C3_LSB 0x4117 +-#define HDMI_CSC_COEF_C4_MSB 0x4118 +-#define HDMI_CSC_COEF_C4_LSB 0x4119 +- +-/* HDCP Encryption Engine Registers */ +-#define HDMI_A_HDCPCFG0 0x5000 +-#define HDMI_A_HDCPCFG1 0x5001 +-#define HDMI_A_HDCPOBS0 0x5002 +-#define HDMI_A_HDCPOBS1 0x5003 +-#define HDMI_A_HDCPOBS2 0x5004 +-#define HDMI_A_HDCPOBS3 0x5005 +-#define HDMI_A_APIINTCLR 0x5006 +-#define HDMI_A_APIINTSTAT 0x5007 +-#define HDMI_A_APIINTMSK 0x5008 +-#define HDMI_A_VIDPOLCFG 0x5009 +-#define HDMI_A_OESSWCFG 0x500A +-#define HDMI_A_TIMER1SETUP0 0x500B +-#define HDMI_A_TIMER1SETUP1 0x500C +-#define HDMI_A_TIMER2SETUP0 0x500D +-#define HDMI_A_TIMER2SETUP1 0x500E +-#define HDMI_A_100MSCFG 0x500F +-#define HDMI_A_2SCFG0 0x5010 +-#define HDMI_A_2SCFG1 0x5011 +-#define HDMI_A_5SCFG0 0x5012 +-#define HDMI_A_5SCFG1 0x5013 +-#define HDMI_A_SRMVERLSB 0x5014 +-#define HDMI_A_SRMVERMSB 0x5015 +-#define HDMI_A_SRMCTRL 0x5016 +-#define HDMI_A_SFRSETUP 0x5017 +-#define HDMI_A_I2CHSETUP 0x5018 +-#define HDMI_A_INTSETUP 0x5019 +-#define HDMI_A_PRESETUP 0x501A +-#define HDMI_A_SRM_BASE 0x5020 +- +-/* CEC Engine Registers */ +-#define HDMI_CEC_CTRL 0x7D00 +-#define HDMI_CEC_STAT 0x7D01 +-#define HDMI_CEC_MASK 0x7D02 +-#define HDMI_CEC_POLARITY 0x7D03 +-#define HDMI_CEC_INT 0x7D04 +-#define HDMI_CEC_ADDR_L 0x7D05 +-#define HDMI_CEC_ADDR_H 0x7D06 +-#define HDMI_CEC_TX_CNT 0x7D07 +-#define HDMI_CEC_RX_CNT 0x7D08 +-#define HDMI_CEC_TX_DATA0 0x7D10 +-#define HDMI_CEC_TX_DATA1 0x7D11 +-#define HDMI_CEC_TX_DATA2 0x7D12 +-#define HDMI_CEC_TX_DATA3 0x7D13 +-#define HDMI_CEC_TX_DATA4 0x7D14 +-#define HDMI_CEC_TX_DATA5 0x7D15 +-#define HDMI_CEC_TX_DATA6 0x7D16 +-#define HDMI_CEC_TX_DATA7 0x7D17 +-#define HDMI_CEC_TX_DATA8 0x7D18 +-#define HDMI_CEC_TX_DATA9 0x7D19 +-#define HDMI_CEC_TX_DATA10 0x7D1a +-#define HDMI_CEC_TX_DATA11 0x7D1b +-#define HDMI_CEC_TX_DATA12 0x7D1c +-#define HDMI_CEC_TX_DATA13 0x7D1d +-#define HDMI_CEC_TX_DATA14 0x7D1e +-#define HDMI_CEC_TX_DATA15 0x7D1f +-#define HDMI_CEC_RX_DATA0 0x7D20 +-#define HDMI_CEC_RX_DATA1 0x7D21 +-#define HDMI_CEC_RX_DATA2 0x7D22 +-#define HDMI_CEC_RX_DATA3 0x7D23 +-#define HDMI_CEC_RX_DATA4 0x7D24 +-#define HDMI_CEC_RX_DATA5 0x7D25 +-#define HDMI_CEC_RX_DATA6 0x7D26 +-#define HDMI_CEC_RX_DATA7 0x7D27 +-#define HDMI_CEC_RX_DATA8 0x7D28 +-#define HDMI_CEC_RX_DATA9 0x7D29 +-#define HDMI_CEC_RX_DATA10 0x7D2a +-#define HDMI_CEC_RX_DATA11 0x7D2b +-#define HDMI_CEC_RX_DATA12 0x7D2c +-#define HDMI_CEC_RX_DATA13 0x7D2d +-#define HDMI_CEC_RX_DATA14 0x7D2e +-#define HDMI_CEC_RX_DATA15 0x7D2f +-#define HDMI_CEC_LOCK 0x7D30 +-#define HDMI_CEC_WKUPCTRL 0x7D31 +- +-/* I2C Master Registers (E-DDC) */ +-#define HDMI_I2CM_SLAVE 0x7E00 +-#define HDMI_I2CM_ADDRESS 0x7E01 +-#define HDMI_I2CM_DATAO 0x7E02 +-#define HDMI_I2CM_DATAI 0x7E03 +-#define HDMI_I2CM_OPERATION 0x7E04 +-#define HDMI_I2CM_INT 0x7E05 +-#define HDMI_I2CM_CTLINT 0x7E06 +-#define HDMI_I2CM_DIV 0x7E07 +-#define HDMI_I2CM_SEGADDR 0x7E08 +-#define HDMI_I2CM_SOFTRSTZ 0x7E09 +-#define HDMI_I2CM_SEGPTR 0x7E0A +-#define HDMI_I2CM_SS_SCL_HCNT_1_ADDR 0x7E0B +-#define HDMI_I2CM_SS_SCL_HCNT_0_ADDR 0x7E0C +-#define HDMI_I2CM_SS_SCL_LCNT_1_ADDR 0x7E0D +-#define HDMI_I2CM_SS_SCL_LCNT_0_ADDR 0x7E0E +-#define HDMI_I2CM_FS_SCL_HCNT_1_ADDR 0x7E0F +-#define HDMI_I2CM_FS_SCL_HCNT_0_ADDR 0x7E10 +-#define HDMI_I2CM_FS_SCL_LCNT_1_ADDR 0x7E11 +-#define HDMI_I2CM_FS_SCL_LCNT_0_ADDR 0x7E12 +- +-enum { +-/* PRODUCT_ID0 field values */ +- HDMI_PRODUCT_ID0_HDMI_TX = 0xa0, +- +-/* PRODUCT_ID1 field values */ +- HDMI_PRODUCT_ID1_HDCP = 0xc0, +- HDMI_PRODUCT_ID1_HDMI_RX = 0x02, +- HDMI_PRODUCT_ID1_HDMI_TX = 0x01, +- +-/* CONFIG0_ID field values */ +- HDMI_CONFIG0_I2S = 0x10, +- +-/* CONFIG1_ID field values */ +- HDMI_CONFIG1_AHB = 0x01, +- +-/* CONFIG3_ID field values */ +- HDMI_CONFIG3_AHBAUDDMA = 0x02, +- HDMI_CONFIG3_GPAUD = 0x01, +- +-/* IH_FC_INT2 field values */ +- HDMI_IH_FC_INT2_OVERFLOW_MASK = 0x03, +- HDMI_IH_FC_INT2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_IH_FC_INT2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* IH_FC_STAT2 field values */ +- HDMI_IH_FC_STAT2_OVERFLOW_MASK = 0x03, +- HDMI_IH_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_IH_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* IH_PHY_STAT0 field values */ +- HDMI_IH_PHY_STAT0_RX_SENSE3 = 0x20, +- HDMI_IH_PHY_STAT0_RX_SENSE2 = 0x10, +- HDMI_IH_PHY_STAT0_RX_SENSE1 = 0x8, +- HDMI_IH_PHY_STAT0_RX_SENSE0 = 0x4, +- HDMI_IH_PHY_STAT0_TX_PHY_LOCK = 0x2, +- HDMI_IH_PHY_STAT0_HPD = 0x1, +- +-/* IH_I2CM_STAT0 and IH_MUTE_I2CM_STAT0 field values */ +- HDMI_IH_I2CM_STAT0_DONE = 0x2, +- HDMI_IH_I2CM_STAT0_ERROR = 0x1, +- +-/* IH_MUTE_I2CMPHY_STAT0 field values */ +- HDMI_IH_MUTE_I2CMPHY_STAT0_I2CMPHYDONE = 0x2, +- HDMI_IH_MUTE_I2CMPHY_STAT0_I2CMPHYERROR = 0x1, +- +-/* IH_AHBDMAAUD_STAT0 field values */ +- HDMI_IH_AHBDMAAUD_STAT0_ERROR = 0x20, +- HDMI_IH_AHBDMAAUD_STAT0_LOST = 0x10, +- HDMI_IH_AHBDMAAUD_STAT0_RETRY = 0x08, +- HDMI_IH_AHBDMAAUD_STAT0_DONE = 0x04, +- HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL = 0x02, +- HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY = 0x01, +- +-/* IH_MUTE_FC_STAT2 field values */ +- HDMI_IH_MUTE_FC_STAT2_OVERFLOW_MASK = 0x03, +- HDMI_IH_MUTE_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_IH_MUTE_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* IH_MUTE_AHBDMAAUD_STAT0 field values */ +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR = 0x20, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST = 0x10, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY = 0x08, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE = 0x04, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL = 0x02, +- HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY = 0x01, +- +-/* IH_MUTE field values */ +- HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT = 0x2, +- HDMI_IH_MUTE_MUTE_ALL_INTERRUPT = 0x1, +- +-/* TX_INVID0 field values */ +- HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_MASK = 0x80, +- HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_ENABLE = 0x80, +- HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE = 0x00, +- HDMI_TX_INVID0_VIDEO_MAPPING_MASK = 0x1F, +- HDMI_TX_INVID0_VIDEO_MAPPING_OFFSET = 0, +- +-/* TX_INSTUFFING field values */ +- HDMI_TX_INSTUFFING_BDBDATA_STUFFING_MASK = 0x4, +- HDMI_TX_INSTUFFING_BDBDATA_STUFFING_ENABLE = 0x4, +- HDMI_TX_INSTUFFING_BDBDATA_STUFFING_DISABLE = 0x0, +- HDMI_TX_INSTUFFING_RCRDATA_STUFFING_MASK = 0x2, +- HDMI_TX_INSTUFFING_RCRDATA_STUFFING_ENABLE = 0x2, +- HDMI_TX_INSTUFFING_RCRDATA_STUFFING_DISABLE = 0x0, +- HDMI_TX_INSTUFFING_GYDATA_STUFFING_MASK = 0x1, +- HDMI_TX_INSTUFFING_GYDATA_STUFFING_ENABLE = 0x1, +- HDMI_TX_INSTUFFING_GYDATA_STUFFING_DISABLE = 0x0, +- +-/* VP_PR_CD field values */ +- HDMI_VP_PR_CD_COLOR_DEPTH_MASK = 0xF0, +- HDMI_VP_PR_CD_COLOR_DEPTH_OFFSET = 4, +- HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK = 0x0F, +- HDMI_VP_PR_CD_DESIRED_PR_FACTOR_OFFSET = 0, +- +-/* VP_STUFF field values */ +- HDMI_VP_STUFF_IDEFAULT_PHASE_MASK = 0x20, +- HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET = 5, +- HDMI_VP_STUFF_IFIX_PP_TO_LAST_MASK = 0x10, +- HDMI_VP_STUFF_IFIX_PP_TO_LAST_OFFSET = 4, +- HDMI_VP_STUFF_ICX_GOTO_P0_ST_MASK = 0x8, +- HDMI_VP_STUFF_ICX_GOTO_P0_ST_OFFSET = 3, +- HDMI_VP_STUFF_YCC422_STUFFING_MASK = 0x4, +- HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE = 0x4, +- HDMI_VP_STUFF_YCC422_STUFFING_DIRECT_MODE = 0x0, +- HDMI_VP_STUFF_PP_STUFFING_MASK = 0x2, +- HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE = 0x2, +- HDMI_VP_STUFF_PP_STUFFING_DIRECT_MODE = 0x0, +- HDMI_VP_STUFF_PR_STUFFING_MASK = 0x1, +- HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE = 0x1, +- HDMI_VP_STUFF_PR_STUFFING_DIRECT_MODE = 0x0, +- +-/* VP_CONF field values */ +- HDMI_VP_CONF_BYPASS_EN_MASK = 0x40, +- HDMI_VP_CONF_BYPASS_EN_ENABLE = 0x40, +- HDMI_VP_CONF_BYPASS_EN_DISABLE = 0x00, +- HDMI_VP_CONF_PP_EN_ENMASK = 0x20, +- HDMI_VP_CONF_PP_EN_ENABLE = 0x20, +- HDMI_VP_CONF_PP_EN_DISABLE = 0x00, +- HDMI_VP_CONF_PR_EN_MASK = 0x10, +- HDMI_VP_CONF_PR_EN_ENABLE = 0x10, +- HDMI_VP_CONF_PR_EN_DISABLE = 0x00, +- HDMI_VP_CONF_YCC422_EN_MASK = 0x8, +- HDMI_VP_CONF_YCC422_EN_ENABLE = 0x8, +- HDMI_VP_CONF_YCC422_EN_DISABLE = 0x0, +- HDMI_VP_CONF_BYPASS_SELECT_MASK = 0x4, +- HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER = 0x4, +- HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER = 0x0, +- HDMI_VP_CONF_OUTPUT_SELECTOR_MASK = 0x3, +- HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS = 0x3, +- HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422 = 0x1, +- HDMI_VP_CONF_OUTPUT_SELECTOR_PP = 0x0, +- +-/* VP_REMAP field values */ +- HDMI_VP_REMAP_MASK = 0x3, +- HDMI_VP_REMAP_YCC422_24bit = 0x2, +- HDMI_VP_REMAP_YCC422_20bit = 0x1, +- HDMI_VP_REMAP_YCC422_16bit = 0x0, +- +-/* FC_INVIDCONF field values */ +- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_MASK = 0x80, +- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE = 0x80, +- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE = 0x00, +- HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_MASK = 0x40, +- HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH = 0x40, +- HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW = 0x00, +- HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_MASK = 0x20, +- HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH = 0x20, +- HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW = 0x00, +- HDMI_FC_INVIDCONF_DE_IN_POLARITY_MASK = 0x10, +- HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_HIGH = 0x10, +- HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_LOW = 0x00, +- HDMI_FC_INVIDCONF_DVI_MODEZ_MASK = 0x8, +- HDMI_FC_INVIDCONF_DVI_MODEZ_HDMI_MODE = 0x8, +- HDMI_FC_INVIDCONF_DVI_MODEZ_DVI_MODE = 0x0, +- HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_MASK = 0x2, +- HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH = 0x2, +- HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_LOW = 0x0, +- HDMI_FC_INVIDCONF_IN_I_P_MASK = 0x1, +- HDMI_FC_INVIDCONF_IN_I_P_INTERLACED = 0x1, +- HDMI_FC_INVIDCONF_IN_I_P_PROGRESSIVE = 0x0, +- +-/* FC_AUDICONF0 field values */ +- HDMI_FC_AUDICONF0_CC_OFFSET = 4, +- HDMI_FC_AUDICONF0_CC_MASK = 0x70, +- HDMI_FC_AUDICONF0_CT_OFFSET = 0, +- HDMI_FC_AUDICONF0_CT_MASK = 0xF, +- +-/* FC_AUDICONF1 field values */ +- HDMI_FC_AUDICONF1_SS_OFFSET = 3, +- HDMI_FC_AUDICONF1_SS_MASK = 0x18, +- HDMI_FC_AUDICONF1_SF_OFFSET = 0, +- HDMI_FC_AUDICONF1_SF_MASK = 0x7, +- +-/* FC_AUDICONF3 field values */ +- HDMI_FC_AUDICONF3_LFEPBL_OFFSET = 5, +- HDMI_FC_AUDICONF3_LFEPBL_MASK = 0x60, +- HDMI_FC_AUDICONF3_DM_INH_OFFSET = 4, +- HDMI_FC_AUDICONF3_DM_INH_MASK = 0x10, +- HDMI_FC_AUDICONF3_LSV_OFFSET = 0, +- HDMI_FC_AUDICONF3_LSV_MASK = 0xF, +- +-/* FC_AUDSCHNLS0 field values */ +- HDMI_FC_AUDSCHNLS0_CGMSA_OFFSET = 4, +- HDMI_FC_AUDSCHNLS0_CGMSA_MASK = 0x30, +- HDMI_FC_AUDSCHNLS0_COPYRIGHT_OFFSET = 0, +- HDMI_FC_AUDSCHNLS0_COPYRIGHT_MASK = 0x01, +- +-/* FC_AUDSCHNLS3-6 field values */ +- HDMI_FC_AUDSCHNLS3_OIEC_CH0_OFFSET = 0, +- HDMI_FC_AUDSCHNLS3_OIEC_CH0_MASK = 0x0f, +- HDMI_FC_AUDSCHNLS3_OIEC_CH1_OFFSET = 4, +- HDMI_FC_AUDSCHNLS3_OIEC_CH1_MASK = 0xf0, +- HDMI_FC_AUDSCHNLS4_OIEC_CH2_OFFSET = 0, +- HDMI_FC_AUDSCHNLS4_OIEC_CH2_MASK = 0x0f, +- HDMI_FC_AUDSCHNLS4_OIEC_CH3_OFFSET = 4, +- HDMI_FC_AUDSCHNLS4_OIEC_CH3_MASK = 0xf0, +- +- HDMI_FC_AUDSCHNLS5_OIEC_CH0_OFFSET = 0, +- HDMI_FC_AUDSCHNLS5_OIEC_CH0_MASK = 0x0f, +- HDMI_FC_AUDSCHNLS5_OIEC_CH1_OFFSET = 4, +- HDMI_FC_AUDSCHNLS5_OIEC_CH1_MASK = 0xf0, +- HDMI_FC_AUDSCHNLS6_OIEC_CH2_OFFSET = 0, +- HDMI_FC_AUDSCHNLS6_OIEC_CH2_MASK = 0x0f, +- HDMI_FC_AUDSCHNLS6_OIEC_CH3_OFFSET = 4, +- HDMI_FC_AUDSCHNLS6_OIEC_CH3_MASK = 0xf0, +- +-/* HDMI_FC_AUDSCHNLS7 field values */ +- HDMI_FC_AUDSCHNLS7_ACCURACY_OFFSET = 4, +- HDMI_FC_AUDSCHNLS7_ACCURACY_MASK = 0x30, +- +-/* HDMI_FC_AUDSCHNLS8 field values */ +- HDMI_FC_AUDSCHNLS8_ORIGSAMPFREQ_MASK = 0xf0, +- HDMI_FC_AUDSCHNLS8_ORIGSAMPFREQ_OFFSET = 4, +- HDMI_FC_AUDSCHNLS8_WORDLEGNTH_MASK = 0x0f, +- HDMI_FC_AUDSCHNLS8_WORDLEGNTH_OFFSET = 0, +- +-/* FC_AUDSCONF field values */ +- HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_MASK = 0xF0, +- HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_OFFSET = 4, +- HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_MASK = 0x1, +- HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_OFFSET = 0, +- HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_LAYOUT1 = 0x1, +- HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_LAYOUT0 = 0x0, +- +-/* FC_STAT2 field values */ +- HDMI_FC_STAT2_OVERFLOW_MASK = 0x03, +- HDMI_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* FC_INT2 field values */ +- HDMI_FC_INT2_OVERFLOW_MASK = 0x03, +- HDMI_FC_INT2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_FC_INT2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* FC_MASK2 field values */ +- HDMI_FC_MASK2_OVERFLOW_MASK = 0x03, +- HDMI_FC_MASK2_LOW_PRIORITY_OVERFLOW = 0x02, +- HDMI_FC_MASK2_HIGH_PRIORITY_OVERFLOW = 0x01, +- +-/* FC_PRCONF field values */ +- HDMI_FC_PRCONF_INCOMING_PR_FACTOR_MASK = 0xF0, +- HDMI_FC_PRCONF_INCOMING_PR_FACTOR_OFFSET = 4, +- HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_MASK = 0x0F, +- HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_OFFSET = 0, +- +-/* FC_AVICONF0-FC_AVICONF3 field values */ +- HDMI_FC_AVICONF0_PIX_FMT_MASK = 0x03, +- HDMI_FC_AVICONF0_PIX_FMT_RGB = 0x00, +- HDMI_FC_AVICONF0_PIX_FMT_YCBCR422 = 0x01, +- HDMI_FC_AVICONF0_PIX_FMT_YCBCR444 = 0x02, +- HDMI_FC_AVICONF0_ACTIVE_FMT_MASK = 0x40, +- HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT = 0x40, +- HDMI_FC_AVICONF0_ACTIVE_FMT_NO_INFO = 0x00, +- HDMI_FC_AVICONF0_BAR_DATA_MASK = 0x0C, +- HDMI_FC_AVICONF0_BAR_DATA_NO_DATA = 0x00, +- HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR = 0x04, +- HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR = 0x08, +- HDMI_FC_AVICONF0_BAR_DATA_VERT_HORIZ_BAR = 0x0C, +- HDMI_FC_AVICONF0_SCAN_INFO_MASK = 0x30, +- HDMI_FC_AVICONF0_SCAN_INFO_OVERSCAN = 0x10, +- HDMI_FC_AVICONF0_SCAN_INFO_UNDERSCAN = 0x20, +- HDMI_FC_AVICONF0_SCAN_INFO_NODATA = 0x00, +- +- HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_MASK = 0x0F, +- HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_USE_CODED = 0x08, +- HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_4_3 = 0x09, +- HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_16_9 = 0x0A, +- HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_14_9 = 0x0B, +- HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_MASK = 0x30, +- HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_NO_DATA = 0x00, +- HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_4_3 = 0x10, +- HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_16_9 = 0x20, +- HDMI_FC_AVICONF1_COLORIMETRY_MASK = 0xC0, +- HDMI_FC_AVICONF1_COLORIMETRY_NO_DATA = 0x00, +- HDMI_FC_AVICONF1_COLORIMETRY_SMPTE = 0x40, +- HDMI_FC_AVICONF1_COLORIMETRY_ITUR = 0x80, +- HDMI_FC_AVICONF1_COLORIMETRY_EXTENDED_INFO = 0xC0, +- +- HDMI_FC_AVICONF2_SCALING_MASK = 0x03, +- HDMI_FC_AVICONF2_SCALING_NONE = 0x00, +- HDMI_FC_AVICONF2_SCALING_HORIZ = 0x01, +- HDMI_FC_AVICONF2_SCALING_VERT = 0x02, +- HDMI_FC_AVICONF2_SCALING_HORIZ_VERT = 0x03, +- HDMI_FC_AVICONF2_RGB_QUANT_MASK = 0x0C, +- HDMI_FC_AVICONF2_RGB_QUANT_DEFAULT = 0x00, +- HDMI_FC_AVICONF2_RGB_QUANT_LIMITED_RANGE = 0x04, +- HDMI_FC_AVICONF2_RGB_QUANT_FULL_RANGE = 0x08, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_MASK = 0x70, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC601 = 0x00, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC709 = 0x10, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_SYCC601 = 0x20, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_YCC601 = 0x30, +- HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_RGB = 0x40, +- HDMI_FC_AVICONF2_IT_CONTENT_MASK = 0x80, +- HDMI_FC_AVICONF2_IT_CONTENT_NO_DATA = 0x00, +- HDMI_FC_AVICONF2_IT_CONTENT_VALID = 0x80, +- +- HDMI_FC_AVICONF3_IT_CONTENT_TYPE_MASK = 0x03, +- HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GRAPHICS = 0x00, +- HDMI_FC_AVICONF3_IT_CONTENT_TYPE_PHOTO = 0x01, +- HDMI_FC_AVICONF3_IT_CONTENT_TYPE_CINEMA = 0x02, +- HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GAME = 0x03, +- HDMI_FC_AVICONF3_QUANT_RANGE_MASK = 0x0C, +- HDMI_FC_AVICONF3_QUANT_RANGE_LIMITED = 0x00, +- HDMI_FC_AVICONF3_QUANT_RANGE_FULL = 0x04, +- +-/* FC_DBGFORCE field values */ +- HDMI_FC_DBGFORCE_FORCEAUDIO = 0x10, +- HDMI_FC_DBGFORCE_FORCEVIDEO = 0x1, +- +-/* PHY_CONF0 field values */ +- HDMI_PHY_CONF0_PDZ_MASK = 0x80, +- HDMI_PHY_CONF0_PDZ_OFFSET = 7, +- HDMI_PHY_CONF0_ENTMDS_MASK = 0x40, +- HDMI_PHY_CONF0_ENTMDS_OFFSET = 6, +- HDMI_PHY_CONF0_SVSRET_MASK = 0x20, +- HDMI_PHY_CONF0_SVSRET_OFFSET = 5, +- HDMI_PHY_CONF0_GEN2_PDDQ_MASK = 0x10, +- HDMI_PHY_CONF0_GEN2_PDDQ_OFFSET = 4, +- HDMI_PHY_CONF0_GEN2_TXPWRON_MASK = 0x8, +- HDMI_PHY_CONF0_GEN2_TXPWRON_OFFSET = 3, +- HDMI_PHY_CONF0_GEN2_ENHPDRXSENSE_MASK = 0x4, +- HDMI_PHY_CONF0_GEN2_ENHPDRXSENSE_OFFSET = 2, +- HDMI_PHY_CONF0_SELDATAENPOL_MASK = 0x2, +- HDMI_PHY_CONF0_SELDATAENPOL_OFFSET = 1, +- HDMI_PHY_CONF0_SELDIPIF_MASK = 0x1, +- HDMI_PHY_CONF0_SELDIPIF_OFFSET = 0, +- +-/* PHY_TST0 field values */ +- HDMI_PHY_TST0_TSTCLR_MASK = 0x20, +- HDMI_PHY_TST0_TSTCLR_OFFSET = 5, +- HDMI_PHY_TST0_TSTEN_MASK = 0x10, +- HDMI_PHY_TST0_TSTEN_OFFSET = 4, +- HDMI_PHY_TST0_TSTCLK_MASK = 0x1, +- HDMI_PHY_TST0_TSTCLK_OFFSET = 0, +- +-/* PHY_STAT0 field values */ +- HDMI_PHY_RX_SENSE3 = 0x80, +- HDMI_PHY_RX_SENSE2 = 0x40, +- HDMI_PHY_RX_SENSE1 = 0x20, +- HDMI_PHY_RX_SENSE0 = 0x10, +- HDMI_PHY_HPD = 0x02, +- HDMI_PHY_TX_PHY_LOCK = 0x01, +- +-/* PHY_I2CM_SLAVE_ADDR field values */ +- HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69, +- HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49, +- +-/* PHY_I2CM_OPERATION_ADDR field values */ +- HDMI_PHY_I2CM_OPERATION_ADDR_WRITE = 0x10, +- HDMI_PHY_I2CM_OPERATION_ADDR_READ = 0x1, +- +-/* HDMI_PHY_I2CM_INT_ADDR */ +- HDMI_PHY_I2CM_INT_ADDR_DONE_POL = 0x08, +- HDMI_PHY_I2CM_INT_ADDR_DONE_MASK = 0x04, +- +-/* HDMI_PHY_I2CM_CTLINT_ADDR */ +- HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL = 0x80, +- HDMI_PHY_I2CM_CTLINT_ADDR_NAC_MASK = 0x40, +- HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL = 0x08, +- HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_MASK = 0x04, +- +-/* AUD_CONF0 field values */ +- HDMI_AUD_CONF0_SW_RESET = 0x80, +- HDMI_AUD_CONF0_I2S_ALL_ENABLE = 0x2F, +- +-/* AUD_CONF1 field values */ +- HDMI_AUD_CONF1_MODE_I2S = 0x00, +- HDMI_AUD_CONF1_MODE_RIGHT_J = 0x02, +- HDMI_AUD_CONF1_MODE_LEFT_J = 0x04, +- HDMI_AUD_CONF1_WIDTH_16 = 0x10, +- HDMI_AUD_CONF1_WIDTH_24 = 0x18, +- +-/* AUD_CTS3 field values */ +- HDMI_AUD_CTS3_N_SHIFT_OFFSET = 5, +- HDMI_AUD_CTS3_N_SHIFT_MASK = 0xe0, +- HDMI_AUD_CTS3_N_SHIFT_1 = 0, +- HDMI_AUD_CTS3_N_SHIFT_16 = 0x20, +- HDMI_AUD_CTS3_N_SHIFT_32 = 0x40, +- HDMI_AUD_CTS3_N_SHIFT_64 = 0x60, +- HDMI_AUD_CTS3_N_SHIFT_128 = 0x80, +- HDMI_AUD_CTS3_N_SHIFT_256 = 0xa0, +- /* note that the CTS3 MANUAL bit has been removed +- from our part. Can't set it, will read as 0. */ +- HDMI_AUD_CTS3_CTS_MANUAL = 0x10, +- HDMI_AUD_CTS3_AUDCTS19_16_MASK = 0x0f, +- +-/* HDMI_AUD_INPUTCLKFS field values */ +- HDMI_AUD_INPUTCLKFS_128FS = 0, +- HDMI_AUD_INPUTCLKFS_256FS = 1, +- HDMI_AUD_INPUTCLKFS_512FS = 2, +- HDMI_AUD_INPUTCLKFS_64FS = 4, +- +-/* AHB_DMA_CONF0 field values */ +- HDMI_AHB_DMA_CONF0_SW_FIFO_RST_OFFSET = 7, +- HDMI_AHB_DMA_CONF0_SW_FIFO_RST_MASK = 0x80, +- HDMI_AHB_DMA_CONF0_HBR = 0x10, +- HDMI_AHB_DMA_CONF0_EN_HLOCK_OFFSET = 3, +- HDMI_AHB_DMA_CONF0_EN_HLOCK_MASK = 0x08, +- HDMI_AHB_DMA_CONF0_INCR_TYPE_OFFSET = 1, +- HDMI_AHB_DMA_CONF0_INCR_TYPE_MASK = 0x06, +- HDMI_AHB_DMA_CONF0_INCR4 = 0x0, +- HDMI_AHB_DMA_CONF0_INCR8 = 0x2, +- HDMI_AHB_DMA_CONF0_INCR16 = 0x4, +- HDMI_AHB_DMA_CONF0_BURST_MODE = 0x1, +- +-/* HDMI_AHB_DMA_START field values */ +- HDMI_AHB_DMA_START_START_OFFSET = 0, +- HDMI_AHB_DMA_START_START_MASK = 0x01, +- +-/* HDMI_AHB_DMA_STOP field values */ +- HDMI_AHB_DMA_STOP_STOP_OFFSET = 0, +- HDMI_AHB_DMA_STOP_STOP_MASK = 0x01, +- +-/* AHB_DMA_STAT, AHB_DMA_INT, AHB_DMA_MASK, AHB_DMA_POL field values */ +- HDMI_AHB_DMA_DONE = 0x80, +- HDMI_AHB_DMA_RETRY_SPLIT = 0x40, +- HDMI_AHB_DMA_LOSTOWNERSHIP = 0x20, +- HDMI_AHB_DMA_ERROR = 0x10, +- HDMI_AHB_DMA_FIFO_THREMPTY = 0x04, +- HDMI_AHB_DMA_FIFO_FULL = 0x02, +- HDMI_AHB_DMA_FIFO_EMPTY = 0x01, +- +-/* AHB_DMA_BUFFSTAT, AHB_DMA_BUFFINT,AHB_DMA_BUFFMASK,AHB_DMA_BUFFPOL values */ +- HDMI_AHB_DMA_BUFFSTAT_FULL = 0x02, +- HDMI_AHB_DMA_BUFFSTAT_EMPTY = 0x01, +- +-/* MC_CLKDIS field values */ +- HDMI_MC_CLKDIS_HDCPCLK_DISABLE = 0x40, +- HDMI_MC_CLKDIS_CECCLK_DISABLE = 0x20, +- HDMI_MC_CLKDIS_CSCCLK_DISABLE = 0x10, +- HDMI_MC_CLKDIS_AUDCLK_DISABLE = 0x8, +- HDMI_MC_CLKDIS_PREPCLK_DISABLE = 0x4, +- HDMI_MC_CLKDIS_TMDSCLK_DISABLE = 0x2, +- HDMI_MC_CLKDIS_PIXELCLK_DISABLE = 0x1, +- +-/* MC_SWRSTZ field values */ +- HDMI_MC_SWRSTZ_TMDSSWRST_REQ = 0x02, +- +-/* MC_FLOWCTRL field values */ +- HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_MASK = 0x1, +- HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH = 0x1, +- HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS = 0x0, +- +-/* MC_PHYRSTZ field values */ +- HDMI_MC_PHYRSTZ_PHYRSTZ = 0x01, +- +-/* MC_HEACPHY_RST field values */ +- HDMI_MC_HEACPHY_RST_ASSERT = 0x1, +- HDMI_MC_HEACPHY_RST_DEASSERT = 0x0, +- +-/* CSC_CFG field values */ +- HDMI_CSC_CFG_INTMODE_MASK = 0x30, +- HDMI_CSC_CFG_INTMODE_OFFSET = 4, +- HDMI_CSC_CFG_INTMODE_DISABLE = 0x00, +- HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA1 = 0x10, +- HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA2 = 0x20, +- HDMI_CSC_CFG_DECMODE_MASK = 0x3, +- HDMI_CSC_CFG_DECMODE_OFFSET = 0, +- HDMI_CSC_CFG_DECMODE_DISABLE = 0x0, +- HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA1 = 0x1, +- HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA2 = 0x2, +- HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA3 = 0x3, +- +-/* CSC_SCALE field values */ +- HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK = 0xF0, +- HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP = 0x00, +- HDMI_CSC_SCALE_CSC_COLORDE_PTH_30BPP = 0x50, +- HDMI_CSC_SCALE_CSC_COLORDE_PTH_36BPP = 0x60, +- HDMI_CSC_SCALE_CSC_COLORDE_PTH_48BPP = 0x70, +- HDMI_CSC_SCALE_CSCSCALE_MASK = 0x03, +- +-/* A_HDCPCFG0 field values */ +- HDMI_A_HDCPCFG0_ELVENA_MASK = 0x80, +- HDMI_A_HDCPCFG0_ELVENA_ENABLE = 0x80, +- HDMI_A_HDCPCFG0_ELVENA_DISABLE = 0x00, +- HDMI_A_HDCPCFG0_I2CFASTMODE_MASK = 0x40, +- HDMI_A_HDCPCFG0_I2CFASTMODE_ENABLE = 0x40, +- HDMI_A_HDCPCFG0_I2CFASTMODE_DISABLE = 0x00, +- HDMI_A_HDCPCFG0_BYPENCRYPTION_MASK = 0x20, +- HDMI_A_HDCPCFG0_BYPENCRYPTION_ENABLE = 0x20, +- HDMI_A_HDCPCFG0_BYPENCRYPTION_DISABLE = 0x00, +- HDMI_A_HDCPCFG0_SYNCRICHECK_MASK = 0x10, +- HDMI_A_HDCPCFG0_SYNCRICHECK_ENABLE = 0x10, +- HDMI_A_HDCPCFG0_SYNCRICHECK_DISABLE = 0x00, +- HDMI_A_HDCPCFG0_AVMUTE_MASK = 0x8, +- HDMI_A_HDCPCFG0_AVMUTE_ENABLE = 0x8, +- HDMI_A_HDCPCFG0_AVMUTE_DISABLE = 0x0, +- HDMI_A_HDCPCFG0_RXDETECT_MASK = 0x4, +- HDMI_A_HDCPCFG0_RXDETECT_ENABLE = 0x4, +- HDMI_A_HDCPCFG0_RXDETECT_DISABLE = 0x0, +- HDMI_A_HDCPCFG0_EN11FEATURE_MASK = 0x2, +- HDMI_A_HDCPCFG0_EN11FEATURE_ENABLE = 0x2, +- HDMI_A_HDCPCFG0_EN11FEATURE_DISABLE = 0x0, +- HDMI_A_HDCPCFG0_HDMIDVI_MASK = 0x1, +- HDMI_A_HDCPCFG0_HDMIDVI_HDMI = 0x1, +- HDMI_A_HDCPCFG0_HDMIDVI_DVI = 0x0, +- +-/* A_HDCPCFG1 field values */ +- HDMI_A_HDCPCFG1_DISSHA1CHECK_MASK = 0x8, +- HDMI_A_HDCPCFG1_DISSHA1CHECK_DISABLE = 0x8, +- HDMI_A_HDCPCFG1_DISSHA1CHECK_ENABLE = 0x0, +- HDMI_A_HDCPCFG1_PH2UPSHFTENC_MASK = 0x4, +- HDMI_A_HDCPCFG1_PH2UPSHFTENC_ENABLE = 0x4, +- HDMI_A_HDCPCFG1_PH2UPSHFTENC_DISABLE = 0x0, +- HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_MASK = 0x2, +- HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_DISABLE = 0x2, +- HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_ENABLE = 0x0, +- HDMI_A_HDCPCFG1_SWRESET_MASK = 0x1, +- HDMI_A_HDCPCFG1_SWRESET_ASSERT = 0x0, +- +-/* A_VIDPOLCFG field values */ +- HDMI_A_VIDPOLCFG_UNENCRYPTCONF_MASK = 0x60, +- HDMI_A_VIDPOLCFG_UNENCRYPTCONF_OFFSET = 5, +- HDMI_A_VIDPOLCFG_DATAENPOL_MASK = 0x10, +- HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_HIGH = 0x10, +- HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_LOW = 0x0, +- HDMI_A_VIDPOLCFG_VSYNCPOL_MASK = 0x8, +- HDMI_A_VIDPOLCFG_VSYNCPOL_ACTIVE_HIGH = 0x8, +- HDMI_A_VIDPOLCFG_VSYNCPOL_ACTIVE_LOW = 0x0, +- HDMI_A_VIDPOLCFG_HSYNCPOL_MASK = 0x2, +- HDMI_A_VIDPOLCFG_HSYNCPOL_ACTIVE_HIGH = 0x2, +- HDMI_A_VIDPOLCFG_HSYNCPOL_ACTIVE_LOW = 0x0, +- +-/* I2CM_OPERATION field values */ +- HDMI_I2CM_OPERATION_WRITE = 0x10, +- HDMI_I2CM_OPERATION_READ_EXT = 0x2, +- HDMI_I2CM_OPERATION_READ = 0x1, +- +-/* I2CM_INT field values */ +- HDMI_I2CM_INT_DONE_POL = 0x8, +- HDMI_I2CM_INT_DONE_MASK = 0x4, +- +-/* I2CM_CTLINT field values */ +- HDMI_I2CM_CTLINT_NAC_POL = 0x80, +- HDMI_I2CM_CTLINT_NAC_MASK = 0x40, +- HDMI_I2CM_CTLINT_ARB_POL = 0x8, +- HDMI_I2CM_CTLINT_ARB_MASK = 0x4, +-}; +- +-/* +- * HDMI 3D TX PHY registers +- */ +-#define HDMI_3D_TX_PHY_PWRCTRL 0x00 +-#define HDMI_3D_TX_PHY_SERDIVCTRL 0x01 +-#define HDMI_3D_TX_PHY_SERCKCTRL 0x02 +-#define HDMI_3D_TX_PHY_SERCKKILLCTRL 0x03 +-#define HDMI_3D_TX_PHY_TXRESCTRL 0x04 +-#define HDMI_3D_TX_PHY_CKCALCTRL 0x05 +-#define HDMI_3D_TX_PHY_CPCE_CTRL 0x06 +-#define HDMI_3D_TX_PHY_TXCLKMEASCTRL 0x07 +-#define HDMI_3D_TX_PHY_TXMEASCTRL 0x08 +-#define HDMI_3D_TX_PHY_CKSYMTXCTRL 0x09 +-#define HDMI_3D_TX_PHY_CMPSEQCTRL 0x0a +-#define HDMI_3D_TX_PHY_CMPPWRCTRL 0x0b +-#define HDMI_3D_TX_PHY_CMPMODECTRL 0x0c +-#define HDMI_3D_TX_PHY_MEASCTRL 0x0d +-#define HDMI_3D_TX_PHY_VLEVCTRL 0x0e +-#define HDMI_3D_TX_PHY_D2ACTRL 0x0f +-#define HDMI_3D_TX_PHY_CURRCTRL 0x10 +-#define HDMI_3D_TX_PHY_DRVANACTRL 0x11 +-#define HDMI_3D_TX_PHY_PLLMEASCTRL 0x12 +-#define HDMI_3D_TX_PHY_PLLPHBYCTRL 0x13 +-#define HDMI_3D_TX_PHY_GRP_CTRL 0x14 +-#define HDMI_3D_TX_PHY_GMPCTRL 0x15 +-#define HDMI_3D_TX_PHY_MPLLMEASCTRL 0x16 +-#define HDMI_3D_TX_PHY_MSM_CTRL 0x17 +-#define HDMI_3D_TX_PHY_SCRPB_STATUS 0x18 +-#define HDMI_3D_TX_PHY_TXTERM 0x19 +-#define HDMI_3D_TX_PHY_PTRPT_ENBL 0x1a +-#define HDMI_3D_TX_PHY_PATTERNGEN 0x1b +-#define HDMI_3D_TX_PHY_SDCAP_MODE 0x1c +-#define HDMI_3D_TX_PHY_SCOPEMODE 0x1d +-#define HDMI_3D_TX_PHY_DIGTXMODE 0x1e +-#define HDMI_3D_TX_PHY_STR_STATUS 0x1f +-#define HDMI_3D_TX_PHY_SCOPECNT0 0x20 +-#define HDMI_3D_TX_PHY_SCOPECNT1 0x21 +-#define HDMI_3D_TX_PHY_SCOPECNT2 0x22 +-#define HDMI_3D_TX_PHY_SCOPECNTCLK 0x23 +-#define HDMI_3D_TX_PHY_SCOPESAMPLE 0x24 +-#define HDMI_3D_TX_PHY_SCOPECNTMSB01 0x25 +-#define HDMI_3D_TX_PHY_SCOPECNTMSB2CK 0x26 +- +-/* HDMI_3D_TX_PHY_CKCALCTRL values */ +-#define HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE BIT(15) +- +-/* HDMI_3D_TX_PHY_MSM_CTRL values */ +-#define HDMI_3D_TX_PHY_MSM_CTRL_MPLL_PH_SEL_CK BIT(13) +-#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_CLK_REF_MPLL (0 << 1) +-#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_OFF (1 << 1) +-#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_PCLK (2 << 1) +-#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_FB_CLK (3 << 1) +-#define HDMI_3D_TX_PHY_MSM_CTRL_SCOPE_CK_SEL BIT(0) +- +-/* HDMI_3D_TX_PHY_PTRPT_ENBL values */ +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_OVERRIDE BIT(15) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT2 BIT(8) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT1 BIT(7) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT0 BIT(6) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_CK_REF_ENB BIT(5) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_RCAL_ENB BIT(4) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_TX_CLK_ALIGN_ENB BIT(3) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_TX_READY BIT(2) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_CKO_WORD_ENB BIT(1) +-#define HDMI_3D_TX_PHY_PTRPT_ENBL_REFCLK_ENB BIT(0) +- +-#endif /* __DW_HDMI_H__ */ --- /dev/null +++ b/drivers/gpu/drm/bridge/synopsys/Kconfig @@ -0,0 +1,23 @@ @@ -123,9 +4426,6 @@ index 000000000000..40d2827a6d19 + help + Support the I2S Audio interface which is part of the Synopsys + Designware HDMI block. -diff --git a/drivers/gpu/drm/bridge/synopsys/Makefile b/drivers/gpu/drm/bridge/synopsys/Makefile -new file mode 100644 -index 000000000000..17aa7a65b57e --- /dev/null +++ b/drivers/gpu/drm/bridge/synopsys/Makefile @@ -0,0 +1,5 @@ @@ -134,26 +4434,4299 @@ index 000000000000..17aa7a65b57e +obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o +obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o +obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o -diff --git a/drivers/gpu/drm/bridge/dw-hdmi-ahb-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c -similarity index 100% -rename from drivers/gpu/drm/bridge/dw-hdmi-ahb-audio.c -rename to drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c -diff --git a/drivers/gpu/drm/bridge/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h -similarity index 100% -rename from drivers/gpu/drm/bridge/dw-hdmi-audio.h -rename to drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h -diff --git a/drivers/gpu/drm/bridge/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c -similarity index 100% -rename from drivers/gpu/drm/bridge/dw-hdmi-i2s-audio.c -rename to drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -similarity index 100% -rename from drivers/gpu/drm/bridge/dw-hdmi.c -rename to drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -diff --git a/drivers/gpu/drm/bridge/dw-hdmi.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h -similarity index 100% -rename from drivers/gpu/drm/bridge/dw-hdmi.h -rename to drivers/gpu/drm/bridge/synopsys/dw-hdmi.h --- -2.13.3 - +--- /dev/null ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c +@@ -0,0 +1,652 @@ ++/* ++ * DesignWare HDMI audio driver ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Written and tested against the Designware HDMI Tx found in iMX6. ++ */ ++#include <linux/io.h> ++#include <linux/interrupt.h> ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <drm/bridge/dw_hdmi.h> ++#include <drm/drm_edid.h> ++ ++#include <sound/asoundef.h> ++#include <sound/core.h> ++#include <sound/initval.h> ++#include <sound/pcm.h> ++#include <sound/pcm_drm_eld.h> ++#include <sound/pcm_iec958.h> ++ ++#include "dw-hdmi-audio.h" ++ ++#define DRIVER_NAME "dw-hdmi-ahb-audio" ++ ++/* Provide some bits rather than bit offsets */ ++enum { ++ HDMI_AHB_DMA_CONF0_SW_FIFO_RST = BIT(7), ++ HDMI_AHB_DMA_CONF0_EN_HLOCK = BIT(3), ++ HDMI_AHB_DMA_START_START = BIT(0), ++ HDMI_AHB_DMA_STOP_STOP = BIT(0), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR = BIT(5), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST = BIT(4), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY = BIT(3), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE = BIT(2), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL = BIT(1), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0), ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL = ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR | ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST | ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY | ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE | ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL | ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY, ++ HDMI_IH_AHBDMAAUD_STAT0_ERROR = BIT(5), ++ HDMI_IH_AHBDMAAUD_STAT0_LOST = BIT(4), ++ HDMI_IH_AHBDMAAUD_STAT0_RETRY = BIT(3), ++ HDMI_IH_AHBDMAAUD_STAT0_DONE = BIT(2), ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL = BIT(1), ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY = BIT(0), ++ HDMI_IH_AHBDMAAUD_STAT0_ALL = ++ HDMI_IH_AHBDMAAUD_STAT0_ERROR | ++ HDMI_IH_AHBDMAAUD_STAT0_LOST | ++ HDMI_IH_AHBDMAAUD_STAT0_RETRY | ++ HDMI_IH_AHBDMAAUD_STAT0_DONE | ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL | ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY, ++ HDMI_AHB_DMA_CONF0_INCR16 = 2 << 1, ++ HDMI_AHB_DMA_CONF0_INCR8 = 1 << 1, ++ HDMI_AHB_DMA_CONF0_INCR4 = 0, ++ HDMI_AHB_DMA_CONF0_BURST_MODE = BIT(0), ++ HDMI_AHB_DMA_MASK_DONE = BIT(7), ++ ++ HDMI_REVISION_ID = 0x0001, ++ HDMI_IH_AHBDMAAUD_STAT0 = 0x0109, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0 = 0x0189, ++ HDMI_FC_AUDICONF2 = 0x1027, ++ HDMI_FC_AUDSCONF = 0x1063, ++ HDMI_FC_AUDSCONF_LAYOUT1 = 1 << 0, ++ HDMI_FC_AUDSCONF_LAYOUT0 = 0 << 0, ++ HDMI_AHB_DMA_CONF0 = 0x3600, ++ HDMI_AHB_DMA_START = 0x3601, ++ HDMI_AHB_DMA_STOP = 0x3602, ++ HDMI_AHB_DMA_THRSLD = 0x3603, ++ HDMI_AHB_DMA_STRADDR0 = 0x3604, ++ HDMI_AHB_DMA_STPADDR0 = 0x3608, ++ HDMI_AHB_DMA_MASK = 0x3614, ++ HDMI_AHB_DMA_POL = 0x3615, ++ HDMI_AHB_DMA_CONF1 = 0x3616, ++ HDMI_AHB_DMA_BUFFPOL = 0x361a, ++}; ++ ++struct dw_hdmi_channel_conf { ++ u8 conf1; ++ u8 ca; ++}; ++ ++/* ++ * The default mapping of ALSA channels to HDMI channels and speaker ++ * allocation bits. Note that we can't do channel remapping here - ++ * channels must be in the same order. ++ * ++ * Mappings for alsa-lib pcm/surround*.conf files: ++ * ++ * Front Sur4.0 Sur4.1 Sur5.0 Sur5.1 Sur7.1 ++ * Channels 2 4 6 6 6 8 ++ * ++ * Our mapping from ALSA channel to CEA686D speaker name and HDMI channel: ++ * ++ * Number of ALSA channels ++ * ALSA Channel 2 3 4 5 6 7 8 ++ * 0 FL:0 = = = = = = ++ * 1 FR:1 = = = = = = ++ * 2 FC:3 RL:4 LFE:2 = = = ++ * 3 RR:5 RL:4 FC:3 = = ++ * 4 RR:5 RL:4 = = ++ * 5 RR:5 = = ++ * 6 RC:6 = ++ * 7 RLC/FRC RLC/FRC ++ */ ++static struct dw_hdmi_channel_conf default_hdmi_channel_config[7] = { ++ { 0x03, 0x00 }, /* FL,FR */ ++ { 0x0b, 0x02 }, /* FL,FR,FC */ ++ { 0x33, 0x08 }, /* FL,FR,RL,RR */ ++ { 0x37, 0x09 }, /* FL,FR,LFE,RL,RR */ ++ { 0x3f, 0x0b }, /* FL,FR,LFE,FC,RL,RR */ ++ { 0x7f, 0x0f }, /* FL,FR,LFE,FC,RL,RR,RC */ ++ { 0xff, 0x13 }, /* FL,FR,LFE,FC,RL,RR,[FR]RC,[FR]LC */ ++}; ++ ++struct snd_dw_hdmi { ++ struct snd_card *card; ++ struct snd_pcm *pcm; ++ spinlock_t lock; ++ struct dw_hdmi_audio_data data; ++ struct snd_pcm_substream *substream; ++ void (*reformat)(struct snd_dw_hdmi *, size_t, size_t); ++ void *buf_src; ++ void *buf_dst; ++ dma_addr_t buf_addr; ++ unsigned buf_offset; ++ unsigned buf_period; ++ unsigned buf_size; ++ unsigned channels; ++ u8 revision; ++ u8 iec_offset; ++ u8 cs[192][8]; ++}; ++ ++static void dw_hdmi_writel(u32 val, void __iomem *ptr) ++{ ++ writeb_relaxed(val, ptr); ++ writeb_relaxed(val >> 8, ptr + 1); ++ writeb_relaxed(val >> 16, ptr + 2); ++ writeb_relaxed(val >> 24, ptr + 3); ++} ++ ++/* ++ * Convert to hardware format: The userspace buffer contains IEC958 samples, ++ * with the PCUV bits in bits 31..28 and audio samples in bits 27..4. We ++ * need these to be in bits 27..24, with the IEC B bit in bit 28, and audio ++ * samples in 23..0. ++ * ++ * Default preamble in bits 3..0: 8 = block start, 4 = even 2 = odd ++ * ++ * Ideally, we could do with having the data properly formatted in userspace. ++ */ ++static void dw_hdmi_reformat_iec958(struct snd_dw_hdmi *dw, ++ size_t offset, size_t bytes) ++{ ++ u32 *src = dw->buf_src + offset; ++ u32 *dst = dw->buf_dst + offset; ++ u32 *end = dw->buf_src + offset + bytes; ++ ++ do { ++ u32 b, sample = *src++; ++ ++ b = (sample & 8) << (28 - 3); ++ ++ sample >>= 4; ++ ++ *dst++ = sample | b; ++ } while (src < end); ++} ++ ++static u32 parity(u32 sample) ++{ ++ sample ^= sample >> 16; ++ sample ^= sample >> 8; ++ sample ^= sample >> 4; ++ sample ^= sample >> 2; ++ sample ^= sample >> 1; ++ return (sample & 1) << 27; ++} ++ ++static void dw_hdmi_reformat_s24(struct snd_dw_hdmi *dw, ++ size_t offset, size_t bytes) ++{ ++ u32 *src = dw->buf_src + offset; ++ u32 *dst = dw->buf_dst + offset; ++ u32 *end = dw->buf_src + offset + bytes; ++ ++ do { ++ unsigned i; ++ u8 *cs; ++ ++ cs = dw->cs[dw->iec_offset++]; ++ if (dw->iec_offset >= 192) ++ dw->iec_offset = 0; ++ ++ i = dw->channels; ++ do { ++ u32 sample = *src++; ++ ++ sample &= ~0xff000000; ++ sample |= *cs++ << 24; ++ sample |= parity(sample & ~0xf8000000); ++ ++ *dst++ = sample; ++ } while (--i); ++ } while (src < end); ++} ++ ++static void dw_hdmi_create_cs(struct snd_dw_hdmi *dw, ++ struct snd_pcm_runtime *runtime) ++{ ++ u8 cs[4]; ++ unsigned ch, i, j; ++ ++ snd_pcm_create_iec958_consumer(runtime, cs, sizeof(cs)); ++ ++ memset(dw->cs, 0, sizeof(dw->cs)); ++ ++ for (ch = 0; ch < 8; ch++) { ++ cs[2] &= ~IEC958_AES2_CON_CHANNEL; ++ cs[2] |= (ch + 1) << 4; ++ ++ for (i = 0; i < ARRAY_SIZE(cs); i++) { ++ unsigned c = cs[i]; ++ ++ for (j = 0; j < 8; j++, c >>= 1) ++ dw->cs[i * 8 + j][ch] = (c & 1) << 2; ++ } ++ } ++ dw->cs[0][0] |= BIT(4); ++} ++ ++static void dw_hdmi_start_dma(struct snd_dw_hdmi *dw) ++{ ++ void __iomem *base = dw->data.base; ++ unsigned offset = dw->buf_offset; ++ unsigned period = dw->buf_period; ++ u32 start, stop; ++ ++ dw->reformat(dw, offset, period); ++ ++ /* Clear all irqs before enabling irqs and starting DMA */ ++ writeb_relaxed(HDMI_IH_AHBDMAAUD_STAT0_ALL, ++ base + HDMI_IH_AHBDMAAUD_STAT0); ++ ++ start = dw->buf_addr + offset; ++ stop = start + period - 1; ++ ++ /* Setup the hardware start/stop addresses */ ++ dw_hdmi_writel(start, base + HDMI_AHB_DMA_STRADDR0); ++ dw_hdmi_writel(stop, base + HDMI_AHB_DMA_STPADDR0); ++ ++ writeb_relaxed((u8)~HDMI_AHB_DMA_MASK_DONE, base + HDMI_AHB_DMA_MASK); ++ writeb(HDMI_AHB_DMA_START_START, base + HDMI_AHB_DMA_START); ++ ++ offset += period; ++ if (offset >= dw->buf_size) ++ offset = 0; ++ dw->buf_offset = offset; ++} ++ ++static void dw_hdmi_stop_dma(struct snd_dw_hdmi *dw) ++{ ++ /* Disable interrupts before disabling DMA */ ++ writeb_relaxed(~0, dw->data.base + HDMI_AHB_DMA_MASK); ++ writeb_relaxed(HDMI_AHB_DMA_STOP_STOP, dw->data.base + HDMI_AHB_DMA_STOP); ++} ++ ++static irqreturn_t snd_dw_hdmi_irq(int irq, void *data) ++{ ++ struct snd_dw_hdmi *dw = data; ++ struct snd_pcm_substream *substream; ++ unsigned stat; ++ ++ stat = readb_relaxed(dw->data.base + HDMI_IH_AHBDMAAUD_STAT0); ++ if (!stat) ++ return IRQ_NONE; ++ ++ writeb_relaxed(stat, dw->data.base + HDMI_IH_AHBDMAAUD_STAT0); ++ ++ substream = dw->substream; ++ if (stat & HDMI_IH_AHBDMAAUD_STAT0_DONE && substream) { ++ snd_pcm_period_elapsed(substream); ++ ++ spin_lock(&dw->lock); ++ if (dw->substream) ++ dw_hdmi_start_dma(dw); ++ spin_unlock(&dw->lock); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static struct snd_pcm_hardware dw_hdmi_hw = { ++ .info = SNDRV_PCM_INFO_INTERLEAVED | ++ SNDRV_PCM_INFO_BLOCK_TRANSFER | ++ SNDRV_PCM_INFO_MMAP | ++ SNDRV_PCM_INFO_MMAP_VALID, ++ .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE | ++ SNDRV_PCM_FMTBIT_S24_LE, ++ .rates = SNDRV_PCM_RATE_32000 | ++ SNDRV_PCM_RATE_44100 | ++ SNDRV_PCM_RATE_48000 | ++ SNDRV_PCM_RATE_88200 | ++ SNDRV_PCM_RATE_96000 | ++ SNDRV_PCM_RATE_176400 | ++ SNDRV_PCM_RATE_192000, ++ .channels_min = 2, ++ .channels_max = 8, ++ .buffer_bytes_max = 1024 * 1024, ++ .period_bytes_min = 256, ++ .period_bytes_max = 8192, /* ERR004323: must limit to 8k */ ++ .periods_min = 2, ++ .periods_max = 16, ++ .fifo_size = 0, ++}; ++ ++static int dw_hdmi_open(struct snd_pcm_substream *substream) ++{ ++ struct snd_pcm_runtime *runtime = substream->runtime; ++ struct snd_dw_hdmi *dw = substream->private_data; ++ void __iomem *base = dw->data.base; ++ int ret; ++ ++ runtime->hw = dw_hdmi_hw; ++ ++ ret = snd_pcm_hw_constraint_eld(runtime, dw->data.eld); ++ if (ret < 0) ++ return ret; ++ ++ ret = snd_pcm_limit_hw_rates(runtime); ++ if (ret < 0) ++ return ret; ++ ++ ret = snd_pcm_hw_constraint_integer(runtime, ++ SNDRV_PCM_HW_PARAM_PERIODS); ++ if (ret < 0) ++ return ret; ++ ++ /* Limit the buffer size to the size of the preallocated buffer */ ++ ret = snd_pcm_hw_constraint_minmax(runtime, ++ SNDRV_PCM_HW_PARAM_BUFFER_SIZE, ++ 0, substream->dma_buffer.bytes); ++ if (ret < 0) ++ return ret; ++ ++ /* Clear FIFO */ ++ writeb_relaxed(HDMI_AHB_DMA_CONF0_SW_FIFO_RST, ++ base + HDMI_AHB_DMA_CONF0); ++ ++ /* Configure interrupt polarities */ ++ writeb_relaxed(~0, base + HDMI_AHB_DMA_POL); ++ writeb_relaxed(~0, base + HDMI_AHB_DMA_BUFFPOL); ++ ++ /* Keep interrupts masked, and clear any pending */ ++ writeb_relaxed(~0, base + HDMI_AHB_DMA_MASK); ++ writeb_relaxed(~0, base + HDMI_IH_AHBDMAAUD_STAT0); ++ ++ ret = request_irq(dw->data.irq, snd_dw_hdmi_irq, IRQF_SHARED, ++ "dw-hdmi-audio", dw); ++ if (ret) ++ return ret; ++ ++ /* Un-mute done interrupt */ ++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL & ++ ~HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE, ++ base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); ++ ++ return 0; ++} ++ ++static int dw_hdmi_close(struct snd_pcm_substream *substream) ++{ ++ struct snd_dw_hdmi *dw = substream->private_data; ++ ++ /* Mute all interrupts */ ++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL, ++ dw->data.base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); ++ ++ free_irq(dw->data.irq, dw); ++ ++ return 0; ++} ++ ++static int dw_hdmi_hw_free(struct snd_pcm_substream *substream) ++{ ++ return snd_pcm_lib_free_vmalloc_buffer(substream); ++} ++ ++static int dw_hdmi_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ /* Allocate the PCM runtime buffer, which is exposed to userspace. */ ++ return snd_pcm_lib_alloc_vmalloc_buffer(substream, ++ params_buffer_bytes(params)); ++} ++ ++static int dw_hdmi_prepare(struct snd_pcm_substream *substream) ++{ ++ struct snd_pcm_runtime *runtime = substream->runtime; ++ struct snd_dw_hdmi *dw = substream->private_data; ++ u8 threshold, conf0, conf1, layout, ca; ++ ++ /* Setup as per 3.0.5 FSL 4.1.0 BSP */ ++ switch (dw->revision) { ++ case 0x0a: ++ conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE | ++ HDMI_AHB_DMA_CONF0_INCR4; ++ if (runtime->channels == 2) ++ threshold = 126; ++ else ++ threshold = 124; ++ break; ++ case 0x1a: ++ conf0 = HDMI_AHB_DMA_CONF0_BURST_MODE | ++ HDMI_AHB_DMA_CONF0_INCR8; ++ threshold = 128; ++ break; ++ default: ++ /* NOTREACHED */ ++ return -EINVAL; ++ } ++ ++ dw_hdmi_set_sample_rate(dw->data.hdmi, runtime->rate); ++ ++ /* Minimum number of bytes in the fifo. */ ++ runtime->hw.fifo_size = threshold * 32; ++ ++ conf0 |= HDMI_AHB_DMA_CONF0_EN_HLOCK; ++ conf1 = default_hdmi_channel_config[runtime->channels - 2].conf1; ++ ca = default_hdmi_channel_config[runtime->channels - 2].ca; ++ ++ /* ++ * For >2 channel PCM audio, we need to select layout 1 ++ * and set an appropriate channel map. ++ */ ++ if (runtime->channels > 2) ++ layout = HDMI_FC_AUDSCONF_LAYOUT1; ++ else ++ layout = HDMI_FC_AUDSCONF_LAYOUT0; ++ ++ writeb_relaxed(threshold, dw->data.base + HDMI_AHB_DMA_THRSLD); ++ writeb_relaxed(conf0, dw->data.base + HDMI_AHB_DMA_CONF0); ++ writeb_relaxed(conf1, dw->data.base + HDMI_AHB_DMA_CONF1); ++ writeb_relaxed(layout, dw->data.base + HDMI_FC_AUDSCONF); ++ writeb_relaxed(ca, dw->data.base + HDMI_FC_AUDICONF2); ++ ++ switch (runtime->format) { ++ case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE: ++ dw->reformat = dw_hdmi_reformat_iec958; ++ break; ++ case SNDRV_PCM_FORMAT_S24_LE: ++ dw_hdmi_create_cs(dw, runtime); ++ dw->reformat = dw_hdmi_reformat_s24; ++ break; ++ } ++ dw->iec_offset = 0; ++ dw->channels = runtime->channels; ++ dw->buf_src = runtime->dma_area; ++ dw->buf_dst = substream->dma_buffer.area; ++ dw->buf_addr = substream->dma_buffer.addr; ++ dw->buf_period = snd_pcm_lib_period_bytes(substream); ++ dw->buf_size = snd_pcm_lib_buffer_bytes(substream); ++ ++ return 0; ++} ++ ++static int dw_hdmi_trigger(struct snd_pcm_substream *substream, int cmd) ++{ ++ struct snd_dw_hdmi *dw = substream->private_data; ++ unsigned long flags; ++ int ret = 0; ++ ++ switch (cmd) { ++ case SNDRV_PCM_TRIGGER_START: ++ spin_lock_irqsave(&dw->lock, flags); ++ dw->buf_offset = 0; ++ dw->substream = substream; ++ dw_hdmi_start_dma(dw); ++ dw_hdmi_audio_enable(dw->data.hdmi); ++ spin_unlock_irqrestore(&dw->lock, flags); ++ substream->runtime->delay = substream->runtime->period_size; ++ break; ++ ++ case SNDRV_PCM_TRIGGER_STOP: ++ spin_lock_irqsave(&dw->lock, flags); ++ dw->substream = NULL; ++ dw_hdmi_stop_dma(dw); ++ dw_hdmi_audio_disable(dw->data.hdmi); ++ spin_unlock_irqrestore(&dw->lock, flags); ++ break; ++ ++ default: ++ ret = -EINVAL; ++ break; ++ } ++ ++ return ret; ++} ++ ++static snd_pcm_uframes_t dw_hdmi_pointer(struct snd_pcm_substream *substream) ++{ ++ struct snd_pcm_runtime *runtime = substream->runtime; ++ struct snd_dw_hdmi *dw = substream->private_data; ++ ++ /* ++ * We are unable to report the exact hardware position as ++ * reading the 32-bit DMA position using 8-bit reads is racy. ++ */ ++ return bytes_to_frames(runtime, dw->buf_offset); ++} ++ ++static struct snd_pcm_ops snd_dw_hdmi_ops = { ++ .open = dw_hdmi_open, ++ .close = dw_hdmi_close, ++ .ioctl = snd_pcm_lib_ioctl, ++ .hw_params = dw_hdmi_hw_params, ++ .hw_free = dw_hdmi_hw_free, ++ .prepare = dw_hdmi_prepare, ++ .trigger = dw_hdmi_trigger, ++ .pointer = dw_hdmi_pointer, ++ .page = snd_pcm_lib_get_vmalloc_page, ++}; ++ ++static int snd_dw_hdmi_probe(struct platform_device *pdev) ++{ ++ const struct dw_hdmi_audio_data *data = pdev->dev.platform_data; ++ struct device *dev = pdev->dev.parent; ++ struct snd_dw_hdmi *dw; ++ struct snd_card *card; ++ struct snd_pcm *pcm; ++ unsigned revision; ++ int ret; ++ ++ writeb_relaxed(HDMI_IH_MUTE_AHBDMAAUD_STAT0_ALL, ++ data->base + HDMI_IH_MUTE_AHBDMAAUD_STAT0); ++ revision = readb_relaxed(data->base + HDMI_REVISION_ID); ++ if (revision != 0x0a && revision != 0x1a) { ++ dev_err(dev, "dw-hdmi-audio: unknown revision 0x%02x\n", ++ revision); ++ return -ENXIO; ++ } ++ ++ ret = snd_card_new(dev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, ++ THIS_MODULE, sizeof(struct snd_dw_hdmi), &card); ++ if (ret < 0) ++ return ret; ++ ++ strlcpy(card->driver, DRIVER_NAME, sizeof(card->driver)); ++ strlcpy(card->shortname, "DW-HDMI", sizeof(card->shortname)); ++ snprintf(card->longname, sizeof(card->longname), ++ "%s rev 0x%02x, irq %d", card->shortname, revision, ++ data->irq); ++ ++ dw = card->private_data; ++ dw->card = card; ++ dw->data = *data; ++ dw->revision = revision; ++ ++ spin_lock_init(&dw->lock); ++ ++ ret = snd_pcm_new(card, "DW HDMI", 0, 1, 0, &pcm); ++ if (ret < 0) ++ goto err; ++ ++ dw->pcm = pcm; ++ pcm->private_data = dw; ++ strlcpy(pcm->name, DRIVER_NAME, sizeof(pcm->name)); ++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_dw_hdmi_ops); ++ ++ /* ++ * To support 8-channel 96kHz audio reliably, we need 512k ++ * to satisfy alsa with our restricted period (ERR004323). ++ */ ++ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, ++ dev, 128 * 1024, 1024 * 1024); ++ ++ ret = snd_card_register(card); ++ if (ret < 0) ++ goto err; ++ ++ platform_set_drvdata(pdev, dw); ++ ++ return 0; ++ ++err: ++ snd_card_free(card); ++ return ret; ++} ++ ++static int snd_dw_hdmi_remove(struct platform_device *pdev) ++{ ++ struct snd_dw_hdmi *dw = platform_get_drvdata(pdev); ++ ++ snd_card_free(dw->card); ++ ++ return 0; ++} ++ ++#if defined(CONFIG_PM_SLEEP) && defined(IS_NOT_BROKEN) ++/* ++ * This code is fine, but requires implementation in the dw_hdmi_trigger() ++ * method which is currently missing as I have no way to test this. ++ */ ++static int snd_dw_hdmi_suspend(struct device *dev) ++{ ++ struct snd_dw_hdmi *dw = dev_get_drvdata(dev); ++ ++ snd_power_change_state(dw->card, SNDRV_CTL_POWER_D3cold); ++ snd_pcm_suspend_all(dw->pcm); ++ ++ return 0; ++} ++ ++static int snd_dw_hdmi_resume(struct device *dev) ++{ ++ struct snd_dw_hdmi *dw = dev_get_drvdata(dev); ++ ++ snd_power_change_state(dw->card, SNDRV_CTL_POWER_D0); ++ ++ return 0; ++} ++ ++static SIMPLE_DEV_PM_OPS(snd_dw_hdmi_pm, snd_dw_hdmi_suspend, ++ snd_dw_hdmi_resume); ++#define PM_OPS &snd_dw_hdmi_pm ++#else ++#define PM_OPS NULL ++#endif ++ ++static struct platform_driver snd_dw_hdmi_driver = { ++ .probe = snd_dw_hdmi_probe, ++ .remove = snd_dw_hdmi_remove, ++ .driver = { ++ .name = DRIVER_NAME, ++ .pm = PM_OPS, ++ }, ++}; ++ ++module_platform_driver(snd_dw_hdmi_driver); ++ ++MODULE_AUTHOR("Russell King <rmk+kernel@arm.linux.org.uk>"); ++MODULE_DESCRIPTION("Synopsis Designware HDMI AHB ALSA interface"); ++MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:" DRIVER_NAME); +--- /dev/null ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h +@@ -0,0 +1,21 @@ ++#ifndef DW_HDMI_AUDIO_H ++#define DW_HDMI_AUDIO_H ++ ++struct dw_hdmi; ++ ++struct dw_hdmi_audio_data { ++ phys_addr_t phys; ++ void __iomem *base; ++ int irq; ++ struct dw_hdmi *hdmi; ++ u8 *eld; ++}; ++ ++struct dw_hdmi_i2s_audio_data { ++ struct dw_hdmi *hdmi; ++ ++ void (*write)(struct dw_hdmi *hdmi, u8 val, int offset); ++ u8 (*read)(struct dw_hdmi *hdmi, int offset); ++}; ++ ++#endif +--- /dev/null ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +@@ -0,0 +1,141 @@ ++/* ++ * dw-hdmi-i2s-audio.c ++ * ++ * Copyright (c) 2016 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++#include <drm/bridge/dw_hdmi.h> ++ ++#include <sound/hdmi-codec.h> ++ ++#include "dw-hdmi.h" ++#include "dw-hdmi-audio.h" ++ ++#define DRIVER_NAME "dw-hdmi-i2s-audio" ++ ++static inline void hdmi_write(struct dw_hdmi_i2s_audio_data *audio, ++ u8 val, int offset) ++{ ++ struct dw_hdmi *hdmi = audio->hdmi; ++ ++ audio->write(hdmi, val, offset); ++} ++ ++static inline u8 hdmi_read(struct dw_hdmi_i2s_audio_data *audio, int offset) ++{ ++ struct dw_hdmi *hdmi = audio->hdmi; ++ ++ return audio->read(hdmi, offset); ++} ++ ++static int dw_hdmi_i2s_hw_params(struct device *dev, void *data, ++ struct hdmi_codec_daifmt *fmt, ++ struct hdmi_codec_params *hparms) ++{ ++ struct dw_hdmi_i2s_audio_data *audio = data; ++ struct dw_hdmi *hdmi = audio->hdmi; ++ u8 conf0 = 0; ++ u8 conf1 = 0; ++ u8 inputclkfs = 0; ++ ++ /* it cares I2S only */ ++ if ((fmt->fmt != HDMI_I2S) || ++ (fmt->bit_clk_master | fmt->frame_clk_master)) { ++ dev_err(dev, "unsupported format/settings\n"); ++ return -EINVAL; ++ } ++ ++ inputclkfs = HDMI_AUD_INPUTCLKFS_64FS; ++ conf0 = HDMI_AUD_CONF0_I2S_ALL_ENABLE; ++ ++ switch (hparms->sample_width) { ++ case 16: ++ conf1 = HDMI_AUD_CONF1_WIDTH_16; ++ break; ++ case 24: ++ case 32: ++ conf1 = HDMI_AUD_CONF1_WIDTH_24; ++ break; ++ } ++ ++ dw_hdmi_set_sample_rate(hdmi, hparms->sample_rate); ++ ++ hdmi_write(audio, inputclkfs, HDMI_AUD_INPUTCLKFS); ++ hdmi_write(audio, conf0, HDMI_AUD_CONF0); ++ hdmi_write(audio, conf1, HDMI_AUD_CONF1); ++ ++ dw_hdmi_audio_enable(hdmi); ++ ++ return 0; ++} ++ ++static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data) ++{ ++ struct dw_hdmi_i2s_audio_data *audio = data; ++ struct dw_hdmi *hdmi = audio->hdmi; ++ ++ dw_hdmi_audio_disable(hdmi); ++ ++ hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); ++} ++ ++static struct hdmi_codec_ops dw_hdmi_i2s_ops = { ++ .hw_params = dw_hdmi_i2s_hw_params, ++ .audio_shutdown = dw_hdmi_i2s_audio_shutdown, ++}; ++ ++static int snd_dw_hdmi_probe(struct platform_device *pdev) ++{ ++ struct dw_hdmi_i2s_audio_data *audio = pdev->dev.platform_data; ++ struct platform_device_info pdevinfo; ++ struct hdmi_codec_pdata pdata; ++ struct platform_device *platform; ++ ++ pdata.ops = &dw_hdmi_i2s_ops; ++ pdata.i2s = 1; ++ pdata.max_i2s_channels = 6; ++ pdata.data = audio; ++ ++ memset(&pdevinfo, 0, sizeof(pdevinfo)); ++ pdevinfo.parent = pdev->dev.parent; ++ pdevinfo.id = PLATFORM_DEVID_AUTO; ++ pdevinfo.name = HDMI_CODEC_DRV_NAME; ++ pdevinfo.data = &pdata; ++ pdevinfo.size_data = sizeof(pdata); ++ pdevinfo.dma_mask = DMA_BIT_MASK(32); ++ ++ platform = platform_device_register_full(&pdevinfo); ++ if (IS_ERR(platform)) ++ return PTR_ERR(platform); ++ ++ dev_set_drvdata(&pdev->dev, platform); ++ ++ return 0; ++} ++ ++static int snd_dw_hdmi_remove(struct platform_device *pdev) ++{ ++ struct platform_device *platform = dev_get_drvdata(&pdev->dev); ++ ++ platform_device_unregister(platform); ++ ++ return 0; ++} ++ ++static struct platform_driver snd_dw_hdmi_driver = { ++ .probe = snd_dw_hdmi_probe, ++ .remove = snd_dw_hdmi_remove, ++ .driver = { ++ .name = DRIVER_NAME, ++ .owner = THIS_MODULE, ++ }, ++}; ++module_platform_driver(snd_dw_hdmi_driver); ++ ++MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>"); ++MODULE_DESCRIPTION("Synopsis Designware HDMI I2S ALSA SoC interface"); ++MODULE_LICENSE("GPL v2"); ++MODULE_ALIAS("platform:" DRIVER_NAME); +--- /dev/null ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +@@ -0,0 +1,2314 @@ ++/* ++ * DesignWare High-Definition Multimedia Interface (HDMI) driver ++ * ++ * Copyright (C) 2013-2015 Mentor Graphics Inc. ++ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. ++ * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ */ ++#include <linux/module.h> ++#include <linux/irq.h> ++#include <linux/delay.h> ++#include <linux/err.h> ++#include <linux/clk.h> ++#include <linux/hdmi.h> ++#include <linux/mutex.h> ++#include <linux/of_device.h> ++#include <linux/regmap.h> ++#include <linux/spinlock.h> ++ ++#include <drm/drm_of.h> ++#include <drm/drmP.h> ++#include <drm/drm_atomic_helper.h> ++#include <drm/drm_crtc_helper.h> ++#include <drm/drm_edid.h> ++#include <drm/drm_encoder_slave.h> ++#include <drm/bridge/dw_hdmi.h> ++ ++#include "dw-hdmi.h" ++#include "dw-hdmi-audio.h" ++ ++#define HDMI_EDID_LEN 512 ++ ++#define RGB 0 ++#define YCBCR444 1 ++#define YCBCR422_16BITS 2 ++#define YCBCR422_8BITS 3 ++#define XVYCC444 4 ++ ++enum hdmi_datamap { ++ RGB444_8B = 0x01, ++ RGB444_10B = 0x03, ++ RGB444_12B = 0x05, ++ RGB444_16B = 0x07, ++ YCbCr444_8B = 0x09, ++ YCbCr444_10B = 0x0B, ++ YCbCr444_12B = 0x0D, ++ YCbCr444_16B = 0x0F, ++ YCbCr422_8B = 0x16, ++ YCbCr422_10B = 0x14, ++ YCbCr422_12B = 0x12, ++}; ++ ++static const u16 csc_coeff_default[3][4] = { ++ { 0x2000, 0x0000, 0x0000, 0x0000 }, ++ { 0x0000, 0x2000, 0x0000, 0x0000 }, ++ { 0x0000, 0x0000, 0x2000, 0x0000 } ++}; ++ ++static const u16 csc_coeff_rgb_out_eitu601[3][4] = { ++ { 0x2000, 0x6926, 0x74fd, 0x010e }, ++ { 0x2000, 0x2cdd, 0x0000, 0x7e9a }, ++ { 0x2000, 0x0000, 0x38b4, 0x7e3b } ++}; ++ ++static const u16 csc_coeff_rgb_out_eitu709[3][4] = { ++ { 0x2000, 0x7106, 0x7a02, 0x00a7 }, ++ { 0x2000, 0x3264, 0x0000, 0x7e6d }, ++ { 0x2000, 0x0000, 0x3b61, 0x7e25 } ++}; ++ ++static const u16 csc_coeff_rgb_in_eitu601[3][4] = { ++ { 0x2591, 0x1322, 0x074b, 0x0000 }, ++ { 0x6535, 0x2000, 0x7acc, 0x0200 }, ++ { 0x6acd, 0x7534, 0x2000, 0x0200 } ++}; ++ ++static const u16 csc_coeff_rgb_in_eitu709[3][4] = { ++ { 0x2dc5, 0x0d9b, 0x049e, 0x0000 }, ++ { 0x62f0, 0x2000, 0x7d11, 0x0200 }, ++ { 0x6756, 0x78ab, 0x2000, 0x0200 } ++}; ++ ++struct hdmi_vmode { ++ bool mdataenablepolarity; ++ ++ unsigned int mpixelclock; ++ unsigned int mpixelrepetitioninput; ++ unsigned int mpixelrepetitionoutput; ++}; ++ ++struct hdmi_data_info { ++ unsigned int enc_in_format; ++ unsigned int enc_out_format; ++ unsigned int enc_color_depth; ++ unsigned int colorimetry; ++ unsigned int pix_repet_factor; ++ unsigned int hdcp_enable; ++ struct hdmi_vmode video_mode; ++}; ++ ++struct dw_hdmi_i2c { ++ struct i2c_adapter adap; ++ ++ struct mutex lock; /* used to serialize data transfers */ ++ struct completion cmp; ++ u8 stat; ++ ++ u8 slave_reg; ++ bool is_regaddr; ++}; ++ ++struct dw_hdmi_phy_data { ++ enum dw_hdmi_phy_type type; ++ const char *name; ++ unsigned int gen; ++ bool has_svsret; ++ int (*configure)(struct dw_hdmi *hdmi, ++ const struct dw_hdmi_plat_data *pdata, ++ unsigned long mpixelclock); ++}; ++ ++struct dw_hdmi { ++ struct drm_connector connector; ++ struct drm_bridge bridge; ++ ++ unsigned int version; ++ ++ struct platform_device *audio; ++ struct device *dev; ++ struct clk *isfr_clk; ++ struct clk *iahb_clk; ++ struct dw_hdmi_i2c *i2c; ++ ++ struct hdmi_data_info hdmi_data; ++ const struct dw_hdmi_plat_data *plat_data; ++ ++ int vic; ++ ++ u8 edid[HDMI_EDID_LEN]; ++ bool cable_plugin; ++ ++ struct { ++ const struct dw_hdmi_phy_ops *ops; ++ const char *name; ++ void *data; ++ bool enabled; ++ } phy; ++ ++ struct drm_display_mode previous_mode; ++ ++ struct i2c_adapter *ddc; ++ void __iomem *regs; ++ bool sink_is_hdmi; ++ bool sink_has_audio; ++ ++ struct mutex mutex; /* for state below and previous_mode */ ++ enum drm_connector_force force; /* mutex-protected force state */ ++ bool disabled; /* DRM has disabled our bridge */ ++ bool bridge_is_on; /* indicates the bridge is on */ ++ bool rxsense; /* rxsense state */ ++ u8 phy_mask; /* desired phy int mask settings */ ++ ++ spinlock_t audio_lock; ++ struct mutex audio_mutex; ++ unsigned int sample_rate; ++ unsigned int audio_cts; ++ unsigned int audio_n; ++ bool audio_enable; ++ ++ unsigned int reg_shift; ++ struct regmap *regm; ++}; ++ ++#define HDMI_IH_PHY_STAT0_RX_SENSE \ ++ (HDMI_IH_PHY_STAT0_RX_SENSE0 | HDMI_IH_PHY_STAT0_RX_SENSE1 | \ ++ HDMI_IH_PHY_STAT0_RX_SENSE2 | HDMI_IH_PHY_STAT0_RX_SENSE3) ++ ++#define HDMI_PHY_RX_SENSE \ ++ (HDMI_PHY_RX_SENSE0 | HDMI_PHY_RX_SENSE1 | \ ++ HDMI_PHY_RX_SENSE2 | HDMI_PHY_RX_SENSE3) ++ ++static inline void hdmi_writeb(struct dw_hdmi *hdmi, u8 val, int offset) ++{ ++ regmap_write(hdmi->regm, offset << hdmi->reg_shift, val); ++} ++ ++static inline u8 hdmi_readb(struct dw_hdmi *hdmi, int offset) ++{ ++ unsigned int val = 0; ++ ++ regmap_read(hdmi->regm, offset << hdmi->reg_shift, &val); ++ ++ return val; ++} ++ ++static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) ++{ ++ regmap_update_bits(hdmi->regm, reg << hdmi->reg_shift, mask, data); ++} ++ ++static void hdmi_mask_writeb(struct dw_hdmi *hdmi, u8 data, unsigned int reg, ++ u8 shift, u8 mask) ++{ ++ hdmi_modb(hdmi, data << shift, mask, reg); ++} ++ ++static void dw_hdmi_i2c_init(struct dw_hdmi *hdmi) ++{ ++ /* Software reset */ ++ hdmi_writeb(hdmi, 0x00, HDMI_I2CM_SOFTRSTZ); ++ ++ /* Set Standard Mode speed (determined to be 100KHz on iMX6) */ ++ hdmi_writeb(hdmi, 0x00, HDMI_I2CM_DIV); ++ ++ /* Set done, not acknowledged and arbitration interrupt polarities */ ++ hdmi_writeb(hdmi, HDMI_I2CM_INT_DONE_POL, HDMI_I2CM_INT); ++ hdmi_writeb(hdmi, HDMI_I2CM_CTLINT_NAC_POL | HDMI_I2CM_CTLINT_ARB_POL, ++ HDMI_I2CM_CTLINT); ++ ++ /* Clear DONE and ERROR interrupts */ ++ hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, ++ HDMI_IH_I2CM_STAT0); ++ ++ /* Mute DONE and ERROR interrupts */ ++ hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, ++ HDMI_IH_MUTE_I2CM_STAT0); ++} ++ ++static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, ++ unsigned char *buf, unsigned int length) ++{ ++ struct dw_hdmi_i2c *i2c = hdmi->i2c; ++ int stat; ++ ++ if (!i2c->is_regaddr) { ++ dev_dbg(hdmi->dev, "set read register address to 0\n"); ++ i2c->slave_reg = 0x00; ++ i2c->is_regaddr = true; ++ } ++ ++ while (length--) { ++ reinit_completion(&i2c->cmp); ++ ++ hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); ++ hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_READ, ++ HDMI_I2CM_OPERATION); ++ ++ stat = wait_for_completion_timeout(&i2c->cmp, HZ / 10); ++ if (!stat) ++ return -EAGAIN; ++ ++ /* Check for error condition on the bus */ ++ if (i2c->stat & HDMI_IH_I2CM_STAT0_ERROR) ++ return -EIO; ++ ++ *buf++ = hdmi_readb(hdmi, HDMI_I2CM_DATAI); ++ } ++ ++ return 0; ++} ++ ++static int dw_hdmi_i2c_write(struct dw_hdmi *hdmi, ++ unsigned char *buf, unsigned int length) ++{ ++ struct dw_hdmi_i2c *i2c = hdmi->i2c; ++ int stat; ++ ++ if (!i2c->is_regaddr) { ++ /* Use the first write byte as register address */ ++ i2c->slave_reg = buf[0]; ++ length--; ++ buf++; ++ i2c->is_regaddr = true; ++ } ++ ++ while (length--) { ++ reinit_completion(&i2c->cmp); ++ ++ hdmi_writeb(hdmi, *buf++, HDMI_I2CM_DATAO); ++ hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); ++ hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_WRITE, ++ HDMI_I2CM_OPERATION); ++ ++ stat = wait_for_completion_timeout(&i2c->cmp, HZ / 10); ++ if (!stat) ++ return -EAGAIN; ++ ++ /* Check for error condition on the bus */ ++ if (i2c->stat & HDMI_IH_I2CM_STAT0_ERROR) ++ return -EIO; ++ } ++ ++ return 0; ++} ++ ++static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, ++ struct i2c_msg *msgs, int num) ++{ ++ struct dw_hdmi *hdmi = i2c_get_adapdata(adap); ++ struct dw_hdmi_i2c *i2c = hdmi->i2c; ++ u8 addr = msgs[0].addr; ++ int i, ret = 0; ++ ++ dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr); ++ ++ for (i = 0; i < num; i++) { ++ if (msgs[i].addr != addr) { ++ dev_warn(hdmi->dev, ++ "unsupported transfer, changed slave address\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ if (msgs[i].len == 0) { ++ dev_dbg(hdmi->dev, ++ "unsupported transfer %d/%d, no data\n", ++ i + 1, num); ++ return -EOPNOTSUPP; ++ } ++ } ++ ++ mutex_lock(&i2c->lock); ++ ++ /* Unmute DONE and ERROR interrupts */ ++ hdmi_writeb(hdmi, 0x00, HDMI_IH_MUTE_I2CM_STAT0); ++ ++ /* Set slave device address taken from the first I2C message */ ++ hdmi_writeb(hdmi, addr, HDMI_I2CM_SLAVE); ++ ++ /* Set slave device register address on transfer */ ++ i2c->is_regaddr = false; ++ ++ for (i = 0; i < num; i++) { ++ dev_dbg(hdmi->dev, "xfer: num: %d/%d, len: %d, flags: %#x\n", ++ i + 1, num, msgs[i].len, msgs[i].flags); ++ ++ if (msgs[i].flags & I2C_M_RD) ++ ret = dw_hdmi_i2c_read(hdmi, msgs[i].buf, msgs[i].len); ++ else ++ ret = dw_hdmi_i2c_write(hdmi, msgs[i].buf, msgs[i].len); ++ ++ if (ret < 0) ++ break; ++ } ++ ++ if (!ret) ++ ret = num; ++ ++ /* Mute DONE and ERROR interrupts */ ++ hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, ++ HDMI_IH_MUTE_I2CM_STAT0); ++ ++ mutex_unlock(&i2c->lock); ++ ++ return ret; ++} ++ ++static u32 dw_hdmi_i2c_func(struct i2c_adapter *adapter) ++{ ++ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; ++} ++ ++static const struct i2c_algorithm dw_hdmi_algorithm = { ++ .master_xfer = dw_hdmi_i2c_xfer, ++ .functionality = dw_hdmi_i2c_func, ++}; ++ ++static struct i2c_adapter *dw_hdmi_i2c_adapter(struct dw_hdmi *hdmi) ++{ ++ struct i2c_adapter *adap; ++ struct dw_hdmi_i2c *i2c; ++ int ret; ++ ++ i2c = devm_kzalloc(hdmi->dev, sizeof(*i2c), GFP_KERNEL); ++ if (!i2c) ++ return ERR_PTR(-ENOMEM); ++ ++ mutex_init(&i2c->lock); ++ init_completion(&i2c->cmp); ++ ++ adap = &i2c->adap; ++ adap->class = I2C_CLASS_DDC; ++ adap->owner = THIS_MODULE; ++ adap->dev.parent = hdmi->dev; ++ adap->algo = &dw_hdmi_algorithm; ++ strlcpy(adap->name, "DesignWare HDMI", sizeof(adap->name)); ++ i2c_set_adapdata(adap, hdmi); ++ ++ ret = i2c_add_adapter(adap); ++ if (ret) { ++ dev_warn(hdmi->dev, "cannot add %s I2C adapter\n", adap->name); ++ devm_kfree(hdmi->dev, i2c); ++ return ERR_PTR(ret); ++ } ++ ++ hdmi->i2c = i2c; ++ ++ dev_info(hdmi->dev, "registered %s I2C bus driver\n", adap->name); ++ ++ return adap; ++} ++ ++static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts, ++ unsigned int n) ++{ ++ /* Must be set/cleared first */ ++ hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); ++ ++ /* nshift factor = 0 */ ++ hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_N_SHIFT_MASK, HDMI_AUD_CTS3); ++ ++ hdmi_writeb(hdmi, ((cts >> 16) & HDMI_AUD_CTS3_AUDCTS19_16_MASK) | ++ HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); ++ hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2); ++ hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1); ++ ++ hdmi_writeb(hdmi, (n >> 16) & 0x0f, HDMI_AUD_N3); ++ hdmi_writeb(hdmi, (n >> 8) & 0xff, HDMI_AUD_N2); ++ hdmi_writeb(hdmi, n & 0xff, HDMI_AUD_N1); ++} ++ ++static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk) ++{ ++ unsigned int n = (128 * freq) / 1000; ++ unsigned int mult = 1; ++ ++ while (freq > 48000) { ++ mult *= 2; ++ freq /= 2; ++ } ++ ++ switch (freq) { ++ case 32000: ++ if (pixel_clk == 25175000) ++ n = 4576; ++ else if (pixel_clk == 27027000) ++ n = 4096; ++ else if (pixel_clk == 74176000 || pixel_clk == 148352000) ++ n = 11648; ++ else ++ n = 4096; ++ n *= mult; ++ break; ++ ++ case 44100: ++ if (pixel_clk == 25175000) ++ n = 7007; ++ else if (pixel_clk == 74176000) ++ n = 17836; ++ else if (pixel_clk == 148352000) ++ n = 8918; ++ else ++ n = 6272; ++ n *= mult; ++ break; ++ ++ case 48000: ++ if (pixel_clk == 25175000) ++ n = 6864; ++ else if (pixel_clk == 27027000) ++ n = 6144; ++ else if (pixel_clk == 74176000) ++ n = 11648; ++ else if (pixel_clk == 148352000) ++ n = 5824; ++ else ++ n = 6144; ++ n *= mult; ++ break; ++ ++ default: ++ break; ++ } ++ ++ return n; ++} ++ ++static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi, ++ unsigned long pixel_clk, unsigned int sample_rate) ++{ ++ unsigned long ftdms = pixel_clk; ++ unsigned int n, cts; ++ u64 tmp; ++ ++ n = hdmi_compute_n(sample_rate, pixel_clk); ++ ++ /* ++ * Compute the CTS value from the N value. Note that CTS and N ++ * can be up to 20 bits in total, so we need 64-bit math. Also ++ * note that our TDMS clock is not fully accurate; it is accurate ++ * to kHz. This can introduce an unnecessary remainder in the ++ * calculation below, so we don't try to warn about that. ++ */ ++ tmp = (u64)ftdms * n; ++ do_div(tmp, 128 * sample_rate); ++ cts = tmp; ++ ++ dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n", ++ __func__, sample_rate, ftdms / 1000000, (ftdms / 1000) % 1000, ++ n, cts); ++ ++ spin_lock_irq(&hdmi->audio_lock); ++ hdmi->audio_n = n; ++ hdmi->audio_cts = cts; ++ hdmi_set_cts_n(hdmi, cts, hdmi->audio_enable ? n : 0); ++ spin_unlock_irq(&hdmi->audio_lock); ++} ++ ++static void hdmi_init_clk_regenerator(struct dw_hdmi *hdmi) ++{ ++ mutex_lock(&hdmi->audio_mutex); ++ hdmi_set_clk_regenerator(hdmi, 74250000, hdmi->sample_rate); ++ mutex_unlock(&hdmi->audio_mutex); ++} ++ ++static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) ++{ ++ mutex_lock(&hdmi->audio_mutex); ++ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock, ++ hdmi->sample_rate); ++ mutex_unlock(&hdmi->audio_mutex); ++} ++ ++void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate) ++{ ++ mutex_lock(&hdmi->audio_mutex); ++ hdmi->sample_rate = rate; ++ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock, ++ hdmi->sample_rate); ++ mutex_unlock(&hdmi->audio_mutex); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_set_sample_rate); ++ ++void dw_hdmi_audio_enable(struct dw_hdmi *hdmi) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&hdmi->audio_lock, flags); ++ hdmi->audio_enable = true; ++ hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n); ++ spin_unlock_irqrestore(&hdmi->audio_lock, flags); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_audio_enable); ++ ++void dw_hdmi_audio_disable(struct dw_hdmi *hdmi) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&hdmi->audio_lock, flags); ++ hdmi->audio_enable = false; ++ hdmi_set_cts_n(hdmi, hdmi->audio_cts, 0); ++ spin_unlock_irqrestore(&hdmi->audio_lock, flags); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_audio_disable); ++ ++/* ++ * this submodule is responsible for the video data synchronization. ++ * for example, for RGB 4:4:4 input, the data map is defined as ++ * pin{47~40} <==> R[7:0] ++ * pin{31~24} <==> G[7:0] ++ * pin{15~8} <==> B[7:0] ++ */ ++static void hdmi_video_sample(struct dw_hdmi *hdmi) ++{ ++ int color_format = 0; ++ u8 val; ++ ++ if (hdmi->hdmi_data.enc_in_format == RGB) { ++ if (hdmi->hdmi_data.enc_color_depth == 8) ++ color_format = 0x01; ++ else if (hdmi->hdmi_data.enc_color_depth == 10) ++ color_format = 0x03; ++ else if (hdmi->hdmi_data.enc_color_depth == 12) ++ color_format = 0x05; ++ else if (hdmi->hdmi_data.enc_color_depth == 16) ++ color_format = 0x07; ++ else ++ return; ++ } else if (hdmi->hdmi_data.enc_in_format == YCBCR444) { ++ if (hdmi->hdmi_data.enc_color_depth == 8) ++ color_format = 0x09; ++ else if (hdmi->hdmi_data.enc_color_depth == 10) ++ color_format = 0x0B; ++ else if (hdmi->hdmi_data.enc_color_depth == 12) ++ color_format = 0x0D; ++ else if (hdmi->hdmi_data.enc_color_depth == 16) ++ color_format = 0x0F; ++ else ++ return; ++ } else if (hdmi->hdmi_data.enc_in_format == YCBCR422_8BITS) { ++ if (hdmi->hdmi_data.enc_color_depth == 8) ++ color_format = 0x16; ++ else if (hdmi->hdmi_data.enc_color_depth == 10) ++ color_format = 0x14; ++ else if (hdmi->hdmi_data.enc_color_depth == 12) ++ color_format = 0x12; ++ else ++ return; ++ } ++ ++ val = HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE | ++ ((color_format << HDMI_TX_INVID0_VIDEO_MAPPING_OFFSET) & ++ HDMI_TX_INVID0_VIDEO_MAPPING_MASK); ++ hdmi_writeb(hdmi, val, HDMI_TX_INVID0); ++ ++ /* Enable TX stuffing: When DE is inactive, fix the output data to 0 */ ++ val = HDMI_TX_INSTUFFING_BDBDATA_STUFFING_ENABLE | ++ HDMI_TX_INSTUFFING_RCRDATA_STUFFING_ENABLE | ++ HDMI_TX_INSTUFFING_GYDATA_STUFFING_ENABLE; ++ hdmi_writeb(hdmi, val, HDMI_TX_INSTUFFING); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA0); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA1); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA0); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA1); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA0); ++ hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA1); ++} ++ ++static int is_color_space_conversion(struct dw_hdmi *hdmi) ++{ ++ return hdmi->hdmi_data.enc_in_format != hdmi->hdmi_data.enc_out_format; ++} ++ ++static int is_color_space_decimation(struct dw_hdmi *hdmi) ++{ ++ if (hdmi->hdmi_data.enc_out_format != YCBCR422_8BITS) ++ return 0; ++ if (hdmi->hdmi_data.enc_in_format == RGB || ++ hdmi->hdmi_data.enc_in_format == YCBCR444) ++ return 1; ++ return 0; ++} ++ ++static int is_color_space_interpolation(struct dw_hdmi *hdmi) ++{ ++ if (hdmi->hdmi_data.enc_in_format != YCBCR422_8BITS) ++ return 0; ++ if (hdmi->hdmi_data.enc_out_format == RGB || ++ hdmi->hdmi_data.enc_out_format == YCBCR444) ++ return 1; ++ return 0; ++} ++ ++static void dw_hdmi_update_csc_coeffs(struct dw_hdmi *hdmi) ++{ ++ const u16 (*csc_coeff)[3][4] = &csc_coeff_default; ++ unsigned i; ++ u32 csc_scale = 1; ++ ++ if (is_color_space_conversion(hdmi)) { ++ if (hdmi->hdmi_data.enc_out_format == RGB) { ++ if (hdmi->hdmi_data.colorimetry == ++ HDMI_COLORIMETRY_ITU_601) ++ csc_coeff = &csc_coeff_rgb_out_eitu601; ++ else ++ csc_coeff = &csc_coeff_rgb_out_eitu709; ++ } else if (hdmi->hdmi_data.enc_in_format == RGB) { ++ if (hdmi->hdmi_data.colorimetry == ++ HDMI_COLORIMETRY_ITU_601) ++ csc_coeff = &csc_coeff_rgb_in_eitu601; ++ else ++ csc_coeff = &csc_coeff_rgb_in_eitu709; ++ csc_scale = 0; ++ } ++ } ++ ++ /* The CSC registers are sequential, alternating MSB then LSB */ ++ for (i = 0; i < ARRAY_SIZE(csc_coeff_default[0]); i++) { ++ u16 coeff_a = (*csc_coeff)[0][i]; ++ u16 coeff_b = (*csc_coeff)[1][i]; ++ u16 coeff_c = (*csc_coeff)[2][i]; ++ ++ hdmi_writeb(hdmi, coeff_a & 0xff, HDMI_CSC_COEF_A1_LSB + i * 2); ++ hdmi_writeb(hdmi, coeff_a >> 8, HDMI_CSC_COEF_A1_MSB + i * 2); ++ hdmi_writeb(hdmi, coeff_b & 0xff, HDMI_CSC_COEF_B1_LSB + i * 2); ++ hdmi_writeb(hdmi, coeff_b >> 8, HDMI_CSC_COEF_B1_MSB + i * 2); ++ hdmi_writeb(hdmi, coeff_c & 0xff, HDMI_CSC_COEF_C1_LSB + i * 2); ++ hdmi_writeb(hdmi, coeff_c >> 8, HDMI_CSC_COEF_C1_MSB + i * 2); ++ } ++ ++ hdmi_modb(hdmi, csc_scale, HDMI_CSC_SCALE_CSCSCALE_MASK, ++ HDMI_CSC_SCALE); ++} ++ ++static void hdmi_video_csc(struct dw_hdmi *hdmi) ++{ ++ int color_depth = 0; ++ int interpolation = HDMI_CSC_CFG_INTMODE_DISABLE; ++ int decimation = 0; ++ ++ /* YCC422 interpolation to 444 mode */ ++ if (is_color_space_interpolation(hdmi)) ++ interpolation = HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA1; ++ else if (is_color_space_decimation(hdmi)) ++ decimation = HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA3; ++ ++ if (hdmi->hdmi_data.enc_color_depth == 8) ++ color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP; ++ else if (hdmi->hdmi_data.enc_color_depth == 10) ++ color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_30BPP; ++ else if (hdmi->hdmi_data.enc_color_depth == 12) ++ color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_36BPP; ++ else if (hdmi->hdmi_data.enc_color_depth == 16) ++ color_depth = HDMI_CSC_SCALE_CSC_COLORDE_PTH_48BPP; ++ else ++ return; ++ ++ /* Configure the CSC registers */ ++ hdmi_writeb(hdmi, interpolation | decimation, HDMI_CSC_CFG); ++ hdmi_modb(hdmi, color_depth, HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK, ++ HDMI_CSC_SCALE); ++ ++ dw_hdmi_update_csc_coeffs(hdmi); ++} ++ ++/* ++ * HDMI video packetizer is used to packetize the data. ++ * for example, if input is YCC422 mode or repeater is used, ++ * data should be repacked this module can be bypassed. ++ */ ++static void hdmi_video_packetize(struct dw_hdmi *hdmi) ++{ ++ unsigned int color_depth = 0; ++ unsigned int remap_size = HDMI_VP_REMAP_YCC422_16bit; ++ unsigned int output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_PP; ++ struct hdmi_data_info *hdmi_data = &hdmi->hdmi_data; ++ u8 val, vp_conf; ++ ++ if (hdmi_data->enc_out_format == RGB || ++ hdmi_data->enc_out_format == YCBCR444) { ++ if (!hdmi_data->enc_color_depth) { ++ output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS; ++ } else if (hdmi_data->enc_color_depth == 8) { ++ color_depth = 4; ++ output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS; ++ } else if (hdmi_data->enc_color_depth == 10) { ++ color_depth = 5; ++ } else if (hdmi_data->enc_color_depth == 12) { ++ color_depth = 6; ++ } else if (hdmi_data->enc_color_depth == 16) { ++ color_depth = 7; ++ } else { ++ return; ++ } ++ } else if (hdmi_data->enc_out_format == YCBCR422_8BITS) { ++ if (!hdmi_data->enc_color_depth || ++ hdmi_data->enc_color_depth == 8) ++ remap_size = HDMI_VP_REMAP_YCC422_16bit; ++ else if (hdmi_data->enc_color_depth == 10) ++ remap_size = HDMI_VP_REMAP_YCC422_20bit; ++ else if (hdmi_data->enc_color_depth == 12) ++ remap_size = HDMI_VP_REMAP_YCC422_24bit; ++ else ++ return; ++ output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422; ++ } else { ++ return; ++ } ++ ++ /* set the packetizer registers */ ++ val = ((color_depth << HDMI_VP_PR_CD_COLOR_DEPTH_OFFSET) & ++ HDMI_VP_PR_CD_COLOR_DEPTH_MASK) | ++ ((hdmi_data->pix_repet_factor << ++ HDMI_VP_PR_CD_DESIRED_PR_FACTOR_OFFSET) & ++ HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK); ++ hdmi_writeb(hdmi, val, HDMI_VP_PR_CD); ++ ++ hdmi_modb(hdmi, HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE, ++ HDMI_VP_STUFF_PR_STUFFING_MASK, HDMI_VP_STUFF); ++ ++ /* Data from pixel repeater block */ ++ if (hdmi_data->pix_repet_factor > 1) { ++ vp_conf = HDMI_VP_CONF_PR_EN_ENABLE | ++ HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER; ++ } else { /* data from packetizer block */ ++ vp_conf = HDMI_VP_CONF_PR_EN_DISABLE | ++ HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER; ++ } ++ ++ hdmi_modb(hdmi, vp_conf, ++ HDMI_VP_CONF_PR_EN_MASK | ++ HDMI_VP_CONF_BYPASS_SELECT_MASK, HDMI_VP_CONF); ++ ++ hdmi_modb(hdmi, 1 << HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET, ++ HDMI_VP_STUFF_IDEFAULT_PHASE_MASK, HDMI_VP_STUFF); ++ ++ hdmi_writeb(hdmi, remap_size, HDMI_VP_REMAP); ++ ++ if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_PP) { ++ vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE | ++ HDMI_VP_CONF_PP_EN_ENABLE | ++ HDMI_VP_CONF_YCC422_EN_DISABLE; ++ } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422) { ++ vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE | ++ HDMI_VP_CONF_PP_EN_DISABLE | ++ HDMI_VP_CONF_YCC422_EN_ENABLE; ++ } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS) { ++ vp_conf = HDMI_VP_CONF_BYPASS_EN_ENABLE | ++ HDMI_VP_CONF_PP_EN_DISABLE | ++ HDMI_VP_CONF_YCC422_EN_DISABLE; ++ } else { ++ return; ++ } ++ ++ hdmi_modb(hdmi, vp_conf, ++ HDMI_VP_CONF_BYPASS_EN_MASK | HDMI_VP_CONF_PP_EN_ENMASK | ++ HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF); ++ ++ hdmi_modb(hdmi, HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE | ++ HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE, ++ HDMI_VP_STUFF_PP_STUFFING_MASK | ++ HDMI_VP_STUFF_YCC422_STUFFING_MASK, HDMI_VP_STUFF); ++ ++ hdmi_modb(hdmi, output_select, HDMI_VP_CONF_OUTPUT_SELECTOR_MASK, ++ HDMI_VP_CONF); ++} ++ ++/* ----------------------------------------------------------------------------- ++ * Synopsys PHY Handling ++ */ ++ ++static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, ++ unsigned char bit) ++{ ++ hdmi_modb(hdmi, bit << HDMI_PHY_TST0_TSTCLR_OFFSET, ++ HDMI_PHY_TST0_TSTCLR_MASK, HDMI_PHY_TST0); ++} ++ ++static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) ++{ ++ u32 val; ++ ++ while ((val = hdmi_readb(hdmi, HDMI_IH_I2CMPHY_STAT0) & 0x3) == 0) { ++ if (msec-- == 0) ++ return false; ++ udelay(1000); ++ } ++ hdmi_writeb(hdmi, val, HDMI_IH_I2CMPHY_STAT0); ++ ++ return true; ++} ++ ++void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, ++ unsigned char addr) ++{ ++ hdmi_writeb(hdmi, 0xFF, HDMI_IH_I2CMPHY_STAT0); ++ hdmi_writeb(hdmi, addr, HDMI_PHY_I2CM_ADDRESS_ADDR); ++ hdmi_writeb(hdmi, (unsigned char)(data >> 8), ++ HDMI_PHY_I2CM_DATAO_1_ADDR); ++ hdmi_writeb(hdmi, (unsigned char)(data >> 0), ++ HDMI_PHY_I2CM_DATAO_0_ADDR); ++ hdmi_writeb(hdmi, HDMI_PHY_I2CM_OPERATION_ADDR_WRITE, ++ HDMI_PHY_I2CM_OPERATION_ADDR); ++ hdmi_phy_wait_i2c_done(hdmi, 1000); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_phy_i2c_write); ++ ++static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) ++{ ++ hdmi_mask_writeb(hdmi, !enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_PDZ_OFFSET, ++ HDMI_PHY_CONF0_PDZ_MASK); ++} ++ ++static void dw_hdmi_phy_enable_tmds(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_ENTMDS_OFFSET, ++ HDMI_PHY_CONF0_ENTMDS_MASK); ++} ++ ++static void dw_hdmi_phy_enable_svsret(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_SVSRET_OFFSET, ++ HDMI_PHY_CONF0_SVSRET_MASK); ++} ++ ++static void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_GEN2_PDDQ_OFFSET, ++ HDMI_PHY_CONF0_GEN2_PDDQ_MASK); ++} ++ ++static void dw_hdmi_phy_gen2_txpwron(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_GEN2_TXPWRON_OFFSET, ++ HDMI_PHY_CONF0_GEN2_TXPWRON_MASK); ++} ++ ++static void dw_hdmi_phy_sel_data_en_pol(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_SELDATAENPOL_OFFSET, ++ HDMI_PHY_CONF0_SELDATAENPOL_MASK); ++} ++ ++static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) ++{ ++ hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, ++ HDMI_PHY_CONF0_SELDIPIF_OFFSET, ++ HDMI_PHY_CONF0_SELDIPIF_MASK); ++} ++ ++static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) ++{ ++ const struct dw_hdmi_phy_data *phy = hdmi->phy.data; ++ unsigned int i; ++ u16 val; ++ ++ if (phy->gen == 1) { ++ dw_hdmi_phy_enable_tmds(hdmi, 0); ++ dw_hdmi_phy_enable_powerdown(hdmi, true); ++ return; ++ } ++ ++ dw_hdmi_phy_gen2_txpwron(hdmi, 0); ++ ++ /* ++ * Wait for TX_PHY_LOCK to be deasserted to indicate that the PHY went ++ * to low power mode. ++ */ ++ for (i = 0; i < 5; ++i) { ++ val = hdmi_readb(hdmi, HDMI_PHY_STAT0); ++ if (!(val & HDMI_PHY_TX_PHY_LOCK)) ++ break; ++ ++ usleep_range(1000, 2000); ++ } ++ ++ if (val & HDMI_PHY_TX_PHY_LOCK) ++ dev_warn(hdmi->dev, "PHY failed to power down\n"); ++ else ++ dev_dbg(hdmi->dev, "PHY powered down in %u iterations\n", i); ++ ++ dw_hdmi_phy_gen2_pddq(hdmi, 1); ++} ++ ++static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) ++{ ++ const struct dw_hdmi_phy_data *phy = hdmi->phy.data; ++ unsigned int i; ++ u8 val; ++ ++ if (phy->gen == 1) { ++ dw_hdmi_phy_enable_powerdown(hdmi, false); ++ ++ /* Toggle TMDS enable. */ ++ dw_hdmi_phy_enable_tmds(hdmi, 0); ++ dw_hdmi_phy_enable_tmds(hdmi, 1); ++ return 0; ++ } ++ ++ dw_hdmi_phy_gen2_txpwron(hdmi, 1); ++ dw_hdmi_phy_gen2_pddq(hdmi, 0); ++ ++ /* Wait for PHY PLL lock */ ++ for (i = 0; i < 5; ++i) { ++ val = hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_TX_PHY_LOCK; ++ if (val) ++ break; ++ ++ usleep_range(1000, 2000); ++ } ++ ++ if (!val) { ++ dev_err(hdmi->dev, "PHY PLL failed to lock\n"); ++ return -ETIMEDOUT; ++ } ++ ++ dev_dbg(hdmi->dev, "PHY PLL locked %u iterations\n", i); ++ return 0; ++} ++ ++/* ++ * PHY configuration function for the DWC HDMI 3D TX PHY. Based on the available ++ * information the DWC MHL PHY has the same register layout and is thus also ++ * supported by this function. ++ */ ++static int hdmi_phy_configure_dwc_hdmi_3d_tx(struct dw_hdmi *hdmi, ++ const struct dw_hdmi_plat_data *pdata, ++ unsigned long mpixelclock) ++{ ++ const struct dw_hdmi_mpll_config *mpll_config = pdata->mpll_cfg; ++ const struct dw_hdmi_curr_ctrl *curr_ctrl = pdata->cur_ctr; ++ const struct dw_hdmi_phy_config *phy_config = pdata->phy_config; ++ ++ /* PLL/MPLL Cfg - always match on final entry */ ++ for (; mpll_config->mpixelclock != ~0UL; mpll_config++) ++ if (mpixelclock <= mpll_config->mpixelclock) ++ break; ++ ++ for (; curr_ctrl->mpixelclock != ~0UL; curr_ctrl++) ++ if (mpixelclock <= curr_ctrl->mpixelclock) ++ break; ++ ++ for (; phy_config->mpixelclock != ~0UL; phy_config++) ++ if (mpixelclock <= phy_config->mpixelclock) ++ break; ++ ++ if (mpll_config->mpixelclock == ~0UL || ++ curr_ctrl->mpixelclock == ~0UL || ++ phy_config->mpixelclock == ~0UL) ++ return -EINVAL; ++ ++ dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].cpce, ++ HDMI_3D_TX_PHY_CPCE_CTRL); ++ dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].gmp, ++ HDMI_3D_TX_PHY_GMPCTRL); ++ dw_hdmi_phy_i2c_write(hdmi, curr_ctrl->curr[0], ++ HDMI_3D_TX_PHY_CURRCTRL); ++ ++ dw_hdmi_phy_i2c_write(hdmi, 0, HDMI_3D_TX_PHY_PLLPHBYCTRL); ++ dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_FB_CLK, ++ HDMI_3D_TX_PHY_MSM_CTRL); ++ ++ dw_hdmi_phy_i2c_write(hdmi, phy_config->term, HDMI_3D_TX_PHY_TXTERM); ++ dw_hdmi_phy_i2c_write(hdmi, phy_config->sym_ctr, ++ HDMI_3D_TX_PHY_CKSYMTXCTRL); ++ dw_hdmi_phy_i2c_write(hdmi, phy_config->vlev_ctr, ++ HDMI_3D_TX_PHY_VLEVCTRL); ++ ++ /* Override and disable clock termination. */ ++ dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE, ++ HDMI_3D_TX_PHY_CKCALCTRL); ++ ++ return 0; ++} ++ ++static int hdmi_phy_configure(struct dw_hdmi *hdmi) ++{ ++ const struct dw_hdmi_phy_data *phy = hdmi->phy.data; ++ const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; ++ unsigned long mpixelclock = hdmi->hdmi_data.video_mode.mpixelclock; ++ int ret; ++ ++ dw_hdmi_phy_power_off(hdmi); ++ ++ /* Leave low power consumption mode by asserting SVSRET. */ ++ if (phy->has_svsret) ++ dw_hdmi_phy_enable_svsret(hdmi, 1); ++ ++ /* PHY reset. The reset signal is active high on Gen2 PHYs. */ ++ hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ); ++ hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ); ++ ++ hdmi_writeb(hdmi, HDMI_MC_HEACPHY_RST_ASSERT, HDMI_MC_HEACPHY_RST); ++ ++ hdmi_phy_test_clear(hdmi, 1); ++ hdmi_writeb(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2, ++ HDMI_PHY_I2CM_SLAVE_ADDR); ++ hdmi_phy_test_clear(hdmi, 0); ++ ++ /* Write to the PHY as configured by the platform */ ++ if (pdata->configure_phy) ++ ret = pdata->configure_phy(hdmi, pdata, mpixelclock); ++ else ++ ret = phy->configure(hdmi, pdata, mpixelclock); ++ if (ret) { ++ dev_err(hdmi->dev, "PHY configuration failed (clock %lu)\n", ++ mpixelclock); ++ return ret; ++ } ++ ++ return dw_hdmi_phy_power_on(hdmi); ++} ++ ++static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, ++ struct drm_display_mode *mode) ++{ ++ int i, ret; ++ ++ /* HDMI Phy spec says to do the phy initialization sequence twice */ ++ for (i = 0; i < 2; i++) { ++ dw_hdmi_phy_sel_data_en_pol(hdmi, 1); ++ dw_hdmi_phy_sel_interface_control(hdmi, 0); ++ ++ ret = hdmi_phy_configure(hdmi); ++ if (ret) ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) ++{ ++ dw_hdmi_phy_power_off(hdmi); ++} ++ ++static enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, ++ void *data) ++{ ++ return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ? ++ connector_status_connected : connector_status_disconnected; ++} ++ ++static const struct dw_hdmi_phy_ops dw_hdmi_synopsys_phy_ops = { ++ .init = dw_hdmi_phy_init, ++ .disable = dw_hdmi_phy_disable, ++ .read_hpd = dw_hdmi_phy_read_hpd, ++}; ++ ++/* ----------------------------------------------------------------------------- ++ * HDMI TX Setup ++ */ ++ ++static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi) ++{ ++ u8 de; ++ ++ if (hdmi->hdmi_data.video_mode.mdataenablepolarity) ++ de = HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_HIGH; ++ else ++ de = HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_LOW; ++ ++ /* disable rx detect */ ++ hdmi_modb(hdmi, HDMI_A_HDCPCFG0_RXDETECT_DISABLE, ++ HDMI_A_HDCPCFG0_RXDETECT_MASK, HDMI_A_HDCPCFG0); ++ ++ hdmi_modb(hdmi, de, HDMI_A_VIDPOLCFG_DATAENPOL_MASK, HDMI_A_VIDPOLCFG); ++ ++ hdmi_modb(hdmi, HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_DISABLE, ++ HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_MASK, HDMI_A_HDCPCFG1); ++} ++ ++static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) ++{ ++ struct hdmi_avi_infoframe frame; ++ u8 val; ++ ++ /* Initialise info frame from DRM mode */ ++ drm_hdmi_avi_infoframe_from_display_mode(&frame, mode); ++ ++ if (hdmi->hdmi_data.enc_out_format == YCBCR444) ++ frame.colorspace = HDMI_COLORSPACE_YUV444; ++ else if (hdmi->hdmi_data.enc_out_format == YCBCR422_8BITS) ++ frame.colorspace = HDMI_COLORSPACE_YUV422; ++ else ++ frame.colorspace = HDMI_COLORSPACE_RGB; ++ ++ /* Set up colorimetry */ ++ if (hdmi->hdmi_data.enc_out_format == XVYCC444) { ++ frame.colorimetry = HDMI_COLORIMETRY_EXTENDED; ++ if (hdmi->hdmi_data.colorimetry == HDMI_COLORIMETRY_ITU_601) ++ frame.extended_colorimetry = ++ HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; ++ else /*hdmi->hdmi_data.colorimetry == HDMI_COLORIMETRY_ITU_709*/ ++ frame.extended_colorimetry = ++ HDMI_EXTENDED_COLORIMETRY_XV_YCC_709; ++ } else if (hdmi->hdmi_data.enc_out_format != RGB) { ++ frame.colorimetry = hdmi->hdmi_data.colorimetry; ++ frame.extended_colorimetry = HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; ++ } else { /* Carries no data */ ++ frame.colorimetry = HDMI_COLORIMETRY_NONE; ++ frame.extended_colorimetry = HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; ++ } ++ ++ frame.scan_mode = HDMI_SCAN_MODE_NONE; ++ ++ /* ++ * The Designware IP uses a different byte format from standard ++ * AVI info frames, though generally the bits are in the correct ++ * bytes. ++ */ ++ ++ /* ++ * AVI data byte 1 differences: Colorspace in bits 0,1 rather than 5,6, ++ * scan info in bits 4,5 rather than 0,1 and active aspect present in ++ * bit 6 rather than 4. ++ */ ++ val = (frame.scan_mode & 3) << 4 | (frame.colorspace & 3); ++ if (frame.active_aspect & 15) ++ val |= HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT; ++ if (frame.top_bar || frame.bottom_bar) ++ val |= HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR; ++ if (frame.left_bar || frame.right_bar) ++ val |= HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR; ++ hdmi_writeb(hdmi, val, HDMI_FC_AVICONF0); ++ ++ /* AVI data byte 2 differences: none */ ++ val = ((frame.colorimetry & 0x3) << 6) | ++ ((frame.picture_aspect & 0x3) << 4) | ++ (frame.active_aspect & 0xf); ++ hdmi_writeb(hdmi, val, HDMI_FC_AVICONF1); ++ ++ /* AVI data byte 3 differences: none */ ++ val = ((frame.extended_colorimetry & 0x7) << 4) | ++ ((frame.quantization_range & 0x3) << 2) | ++ (frame.nups & 0x3); ++ if (frame.itc) ++ val |= HDMI_FC_AVICONF2_IT_CONTENT_VALID; ++ hdmi_writeb(hdmi, val, HDMI_FC_AVICONF2); ++ ++ /* AVI data byte 4 differences: none */ ++ val = frame.video_code & 0x7f; ++ hdmi_writeb(hdmi, val, HDMI_FC_AVIVID); ++ ++ /* AVI Data Byte 5- set up input and output pixel repetition */ ++ val = (((hdmi->hdmi_data.video_mode.mpixelrepetitioninput + 1) << ++ HDMI_FC_PRCONF_INCOMING_PR_FACTOR_OFFSET) & ++ HDMI_FC_PRCONF_INCOMING_PR_FACTOR_MASK) | ++ ((hdmi->hdmi_data.video_mode.mpixelrepetitionoutput << ++ HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_OFFSET) & ++ HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_MASK); ++ hdmi_writeb(hdmi, val, HDMI_FC_PRCONF); ++ ++ /* ++ * AVI data byte 5 differences: content type in 0,1 rather than 4,5, ++ * ycc range in bits 2,3 rather than 6,7 ++ */ ++ val = ((frame.ycc_quantization_range & 0x3) << 2) | ++ (frame.content_type & 0x3); ++ hdmi_writeb(hdmi, val, HDMI_FC_AVICONF3); ++ ++ /* AVI Data Bytes 6-13 */ ++ hdmi_writeb(hdmi, frame.top_bar & 0xff, HDMI_FC_AVIETB0); ++ hdmi_writeb(hdmi, (frame.top_bar >> 8) & 0xff, HDMI_FC_AVIETB1); ++ hdmi_writeb(hdmi, frame.bottom_bar & 0xff, HDMI_FC_AVISBB0); ++ hdmi_writeb(hdmi, (frame.bottom_bar >> 8) & 0xff, HDMI_FC_AVISBB1); ++ hdmi_writeb(hdmi, frame.left_bar & 0xff, HDMI_FC_AVIELB0); ++ hdmi_writeb(hdmi, (frame.left_bar >> 8) & 0xff, HDMI_FC_AVIELB1); ++ hdmi_writeb(hdmi, frame.right_bar & 0xff, HDMI_FC_AVISRB0); ++ hdmi_writeb(hdmi, (frame.right_bar >> 8) & 0xff, HDMI_FC_AVISRB1); ++} ++ ++static void hdmi_av_composer(struct dw_hdmi *hdmi, ++ const struct drm_display_mode *mode) ++{ ++ u8 inv_val; ++ struct hdmi_vmode *vmode = &hdmi->hdmi_data.video_mode; ++ int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len; ++ unsigned int vdisplay; ++ ++ vmode->mpixelclock = mode->clock * 1000; ++ ++ dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock); ++ ++ /* Set up HDMI_FC_INVIDCONF */ ++ inv_val = (hdmi->hdmi_data.hdcp_enable ? ++ HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE : ++ HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE); ++ ++ inv_val |= mode->flags & DRM_MODE_FLAG_PVSYNC ? ++ HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH : ++ HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW; ++ ++ inv_val |= mode->flags & DRM_MODE_FLAG_PHSYNC ? ++ HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH : ++ HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW; ++ ++ inv_val |= (vmode->mdataenablepolarity ? ++ HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_HIGH : ++ HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_LOW); ++ ++ if (hdmi->vic == 39) ++ inv_val |= HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH; ++ else ++ inv_val |= mode->flags & DRM_MODE_FLAG_INTERLACE ? ++ HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH : ++ HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_LOW; ++ ++ inv_val |= mode->flags & DRM_MODE_FLAG_INTERLACE ? ++ HDMI_FC_INVIDCONF_IN_I_P_INTERLACED : ++ HDMI_FC_INVIDCONF_IN_I_P_PROGRESSIVE; ++ ++ inv_val |= hdmi->sink_is_hdmi ? ++ HDMI_FC_INVIDCONF_DVI_MODEZ_HDMI_MODE : ++ HDMI_FC_INVIDCONF_DVI_MODEZ_DVI_MODE; ++ ++ hdmi_writeb(hdmi, inv_val, HDMI_FC_INVIDCONF); ++ ++ vdisplay = mode->vdisplay; ++ vblank = mode->vtotal - mode->vdisplay; ++ v_de_vs = mode->vsync_start - mode->vdisplay; ++ vsync_len = mode->vsync_end - mode->vsync_start; ++ ++ /* ++ * When we're setting an interlaced mode, we need ++ * to adjust the vertical timing to suit. ++ */ ++ if (mode->flags & DRM_MODE_FLAG_INTERLACE) { ++ vdisplay /= 2; ++ vblank /= 2; ++ v_de_vs /= 2; ++ vsync_len /= 2; ++ } ++ ++ /* Set up horizontal active pixel width */ ++ hdmi_writeb(hdmi, mode->hdisplay >> 8, HDMI_FC_INHACTV1); ++ hdmi_writeb(hdmi, mode->hdisplay, HDMI_FC_INHACTV0); ++ ++ /* Set up vertical active lines */ ++ hdmi_writeb(hdmi, vdisplay >> 8, HDMI_FC_INVACTV1); ++ hdmi_writeb(hdmi, vdisplay, HDMI_FC_INVACTV0); ++ ++ /* Set up horizontal blanking pixel region width */ ++ hblank = mode->htotal - mode->hdisplay; ++ hdmi_writeb(hdmi, hblank >> 8, HDMI_FC_INHBLANK1); ++ hdmi_writeb(hdmi, hblank, HDMI_FC_INHBLANK0); ++ ++ /* Set up vertical blanking pixel region width */ ++ hdmi_writeb(hdmi, vblank, HDMI_FC_INVBLANK); ++ ++ /* Set up HSYNC active edge delay width (in pixel clks) */ ++ h_de_hs = mode->hsync_start - mode->hdisplay; ++ hdmi_writeb(hdmi, h_de_hs >> 8, HDMI_FC_HSYNCINDELAY1); ++ hdmi_writeb(hdmi, h_de_hs, HDMI_FC_HSYNCINDELAY0); ++ ++ /* Set up VSYNC active edge delay (in lines) */ ++ hdmi_writeb(hdmi, v_de_vs, HDMI_FC_VSYNCINDELAY); ++ ++ /* Set up HSYNC active pulse width (in pixel clks) */ ++ hsync_len = mode->hsync_end - mode->hsync_start; ++ hdmi_writeb(hdmi, hsync_len >> 8, HDMI_FC_HSYNCINWIDTH1); ++ hdmi_writeb(hdmi, hsync_len, HDMI_FC_HSYNCINWIDTH0); ++ ++ /* Set up VSYNC active edge delay (in lines) */ ++ hdmi_writeb(hdmi, vsync_len, HDMI_FC_VSYNCINWIDTH); ++} ++ ++/* HDMI Initialization Step B.4 */ ++static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) ++{ ++ u8 clkdis; ++ ++ /* control period minimum duration */ ++ hdmi_writeb(hdmi, 12, HDMI_FC_CTRLDUR); ++ hdmi_writeb(hdmi, 32, HDMI_FC_EXCTRLDUR); ++ hdmi_writeb(hdmi, 1, HDMI_FC_EXCTRLSPAC); ++ ++ /* Set to fill TMDS data channels */ ++ hdmi_writeb(hdmi, 0x0B, HDMI_FC_CH0PREAM); ++ hdmi_writeb(hdmi, 0x16, HDMI_FC_CH1PREAM); ++ hdmi_writeb(hdmi, 0x21, HDMI_FC_CH2PREAM); ++ ++ /* Enable pixel clock and tmds data path */ ++ clkdis = 0x7F; ++ clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE; ++ hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); ++ ++ clkdis &= ~HDMI_MC_CLKDIS_TMDSCLK_DISABLE; ++ hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); ++ ++ /* Enable csc path */ ++ if (is_color_space_conversion(hdmi)) { ++ clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE; ++ hdmi_writeb(hdmi, clkdis, HDMI_MC_CLKDIS); ++ } ++ ++ /* Enable color space conversion if needed */ ++ if (is_color_space_conversion(hdmi)) ++ hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH, ++ HDMI_MC_FLOWCTRL); ++ else ++ hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS, ++ HDMI_MC_FLOWCTRL); ++} ++ ++static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi) ++{ ++ hdmi_modb(hdmi, 0, HDMI_MC_CLKDIS_AUDCLK_DISABLE, HDMI_MC_CLKDIS); ++} ++ ++/* Workaround to clear the overflow condition */ ++static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi) ++{ ++ unsigned int count; ++ unsigned int i; ++ u8 val; ++ ++ /* ++ * Under some circumstances the Frame Composer arithmetic unit can miss ++ * an FC register write due to being busy processing the previous one. ++ * The issue can be worked around by issuing a TMDS software reset and ++ * then write one of the FC registers several times. ++ * ++ * The number of iterations matters and depends on the HDMI TX revision ++ * (and possibly on the platform). So far only i.MX6Q (v1.30a) and ++ * i.MX6DL (v1.31a) have been identified as needing the workaround, with ++ * 4 and 1 iterations respectively. ++ */ ++ ++ switch (hdmi->version) { ++ case 0x130a: ++ count = 4; ++ break; ++ case 0x131a: ++ count = 1; ++ break; ++ default: ++ return; ++ } ++ ++ /* TMDS software reset */ ++ hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, HDMI_MC_SWRSTZ); ++ ++ val = hdmi_readb(hdmi, HDMI_FC_INVIDCONF); ++ for (i = 0; i < count; i++) ++ hdmi_writeb(hdmi, val, HDMI_FC_INVIDCONF); ++} ++ ++static void hdmi_enable_overflow_interrupts(struct dw_hdmi *hdmi) ++{ ++ hdmi_writeb(hdmi, 0, HDMI_FC_MASK2); ++ hdmi_writeb(hdmi, 0, HDMI_IH_MUTE_FC_STAT2); ++} ++ ++static void hdmi_disable_overflow_interrupts(struct dw_hdmi *hdmi) ++{ ++ hdmi_writeb(hdmi, HDMI_IH_MUTE_FC_STAT2_OVERFLOW_MASK, ++ HDMI_IH_MUTE_FC_STAT2); ++} ++ ++static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) ++{ ++ int ret; ++ ++ hdmi_disable_overflow_interrupts(hdmi); ++ ++ hdmi->vic = drm_match_cea_mode(mode); ++ ++ if (!hdmi->vic) { ++ dev_dbg(hdmi->dev, "Non-CEA mode used in HDMI\n"); ++ } else { ++ dev_dbg(hdmi->dev, "CEA mode used vic=%d\n", hdmi->vic); ++ } ++ ++ if ((hdmi->vic == 6) || (hdmi->vic == 7) || ++ (hdmi->vic == 21) || (hdmi->vic == 22) || ++ (hdmi->vic == 2) || (hdmi->vic == 3) || ++ (hdmi->vic == 17) || (hdmi->vic == 18)) ++ hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_601; ++ else ++ hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_709; ++ ++ hdmi->hdmi_data.video_mode.mpixelrepetitionoutput = 0; ++ hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0; ++ ++ /* TODO: Get input format from IPU (via FB driver interface) */ ++ hdmi->hdmi_data.enc_in_format = RGB; ++ ++ hdmi->hdmi_data.enc_out_format = RGB; ++ ++ hdmi->hdmi_data.enc_color_depth = 8; ++ hdmi->hdmi_data.pix_repet_factor = 0; ++ hdmi->hdmi_data.hdcp_enable = 0; ++ hdmi->hdmi_data.video_mode.mdataenablepolarity = true; ++ ++ /* HDMI Initialization Step B.1 */ ++ hdmi_av_composer(hdmi, mode); ++ ++ /* HDMI Initializateion Step B.2 */ ++ ret = hdmi->phy.ops->init(hdmi, hdmi->phy.data, &hdmi->previous_mode); ++ if (ret) ++ return ret; ++ hdmi->phy.enabled = true; ++ ++ /* HDMI Initialization Step B.3 */ ++ dw_hdmi_enable_video_path(hdmi); ++ ++ if (hdmi->sink_has_audio) { ++ dev_dbg(hdmi->dev, "sink has audio support\n"); ++ ++ /* HDMI Initialization Step E - Configure audio */ ++ hdmi_clk_regenerator_update_pixel_clock(hdmi); ++ hdmi_enable_audio_clk(hdmi); ++ } ++ ++ /* not for DVI mode */ ++ if (hdmi->sink_is_hdmi) { ++ dev_dbg(hdmi->dev, "%s HDMI mode\n", __func__); ++ ++ /* HDMI Initialization Step F - Configure AVI InfoFrame */ ++ hdmi_config_AVI(hdmi, mode); ++ } else { ++ dev_dbg(hdmi->dev, "%s DVI mode\n", __func__); ++ } ++ ++ hdmi_video_packetize(hdmi); ++ hdmi_video_csc(hdmi); ++ hdmi_video_sample(hdmi); ++ hdmi_tx_hdcp_config(hdmi); ++ ++ dw_hdmi_clear_overflow(hdmi); ++ if (hdmi->cable_plugin && hdmi->sink_is_hdmi) ++ hdmi_enable_overflow_interrupts(hdmi); ++ ++ return 0; ++} ++ ++/* Wait until we are registered to enable interrupts */ ++static int dw_hdmi_fb_registered(struct dw_hdmi *hdmi) ++{ ++ hdmi_writeb(hdmi, HDMI_PHY_I2CM_INT_ADDR_DONE_POL, ++ HDMI_PHY_I2CM_INT_ADDR); ++ ++ hdmi_writeb(hdmi, HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL | ++ HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL, ++ HDMI_PHY_I2CM_CTLINT_ADDR); ++ ++ /* enable cable hot plug irq */ ++ hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); ++ ++ /* Clear Hotplug interrupts */ ++ hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, ++ HDMI_IH_PHY_STAT0); ++ ++ return 0; ++} ++ ++static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) ++{ ++ u8 ih_mute; ++ ++ /* ++ * Boot up defaults are: ++ * HDMI_IH_MUTE = 0x03 (disabled) ++ * HDMI_IH_MUTE_* = 0x00 (enabled) ++ * ++ * Disable top level interrupt bits in HDMI block ++ */ ++ ih_mute = hdmi_readb(hdmi, HDMI_IH_MUTE) | ++ HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT | ++ HDMI_IH_MUTE_MUTE_ALL_INTERRUPT; ++ ++ hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); ++ ++ /* by default mask all interrupts */ ++ hdmi_writeb(hdmi, 0xff, HDMI_VP_MASK); ++ hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK0); ++ hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK1); ++ hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK2); ++ hdmi_writeb(hdmi, 0xff, HDMI_PHY_MASK0); ++ hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_INT_ADDR); ++ hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_CTLINT_ADDR); ++ hdmi_writeb(hdmi, 0xff, HDMI_AUD_INT); ++ hdmi_writeb(hdmi, 0xff, HDMI_AUD_SPDIFINT); ++ hdmi_writeb(hdmi, 0xff, HDMI_AUD_HBR_MASK); ++ hdmi_writeb(hdmi, 0xff, HDMI_GP_MASK); ++ hdmi_writeb(hdmi, 0xff, HDMI_A_APIINTMSK); ++ hdmi_writeb(hdmi, 0xff, HDMI_CEC_MASK); ++ hdmi_writeb(hdmi, 0xff, HDMI_I2CM_INT); ++ hdmi_writeb(hdmi, 0xff, HDMI_I2CM_CTLINT); ++ ++ /* Disable interrupts in the IH_MUTE_* registers */ ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT1); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT2); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AS_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_PHY_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CM_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_CEC_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_VP_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CMPHY_STAT0); ++ hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AHBDMAAUD_STAT0); ++ ++ /* Enable top level interrupt bits in HDMI block */ ++ ih_mute &= ~(HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT | ++ HDMI_IH_MUTE_MUTE_ALL_INTERRUPT); ++ hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); ++} ++ ++static void dw_hdmi_poweron(struct dw_hdmi *hdmi) ++{ ++ hdmi->bridge_is_on = true; ++ dw_hdmi_setup(hdmi, &hdmi->previous_mode); ++} ++ ++static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) ++{ ++ if (hdmi->phy.enabled) { ++ hdmi->phy.ops->disable(hdmi, hdmi->phy.data); ++ hdmi->phy.enabled = false; ++ } ++ ++ hdmi->bridge_is_on = false; ++} ++ ++static void dw_hdmi_update_power(struct dw_hdmi *hdmi) ++{ ++ int force = hdmi->force; ++ ++ if (hdmi->disabled) { ++ force = DRM_FORCE_OFF; ++ } else if (force == DRM_FORCE_UNSPECIFIED) { ++ if (hdmi->rxsense) ++ force = DRM_FORCE_ON; ++ else ++ force = DRM_FORCE_OFF; ++ } ++ ++ if (force == DRM_FORCE_OFF) { ++ if (hdmi->bridge_is_on) ++ dw_hdmi_poweroff(hdmi); ++ } else { ++ if (!hdmi->bridge_is_on) ++ dw_hdmi_poweron(hdmi); ++ } ++} ++ ++/* ++ * Adjust the detection of RXSENSE according to whether we have a forced ++ * connection mode enabled, or whether we have been disabled. There is ++ * no point processing RXSENSE interrupts if we have a forced connection ++ * state, or DRM has us disabled. ++ * ++ * We also disable rxsense interrupts when we think we're disconnected ++ * to avoid floating TDMS signals giving false rxsense interrupts. ++ * ++ * Note: we still need to listen for HPD interrupts even when DRM has us ++ * disabled so that we can detect a connect event. ++ */ ++static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) ++{ ++ u8 old_mask = hdmi->phy_mask; ++ ++ if (hdmi->force || hdmi->disabled || !hdmi->rxsense) ++ hdmi->phy_mask |= HDMI_PHY_RX_SENSE; ++ else ++ hdmi->phy_mask &= ~HDMI_PHY_RX_SENSE; ++ ++ if (old_mask != hdmi->phy_mask) ++ hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); ++} ++ ++static enum drm_connector_status ++dw_hdmi_connector_detect(struct drm_connector *connector, bool force) ++{ ++ struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, ++ connector); ++ ++ mutex_lock(&hdmi->mutex); ++ hdmi->force = DRM_FORCE_UNSPECIFIED; ++ dw_hdmi_update_power(hdmi); ++ dw_hdmi_update_phy_mask(hdmi); ++ mutex_unlock(&hdmi->mutex); ++ ++ return hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data); ++} ++ ++static int dw_hdmi_connector_get_modes(struct drm_connector *connector) ++{ ++ struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, ++ connector); ++ struct edid *edid; ++ int ret = 0; ++ ++ if (!hdmi->ddc) ++ return 0; ++ ++ edid = drm_get_edid(connector, hdmi->ddc); ++ if (edid) { ++ dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n", ++ edid->width_cm, edid->height_cm); ++ ++ hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid); ++ hdmi->sink_has_audio = drm_detect_monitor_audio(edid); ++ drm_mode_connector_update_edid_property(connector, edid); ++ ret = drm_add_edid_modes(connector, edid); ++ /* Store the ELD */ ++ drm_edid_to_eld(connector, edid); ++ kfree(edid); ++ } else { ++ dev_dbg(hdmi->dev, "failed to get edid\n"); ++ } ++ ++ return ret; ++} ++ ++static enum drm_mode_status ++dw_hdmi_connector_mode_valid(struct drm_connector *connector, ++ struct drm_display_mode *mode) ++{ ++ struct dw_hdmi *hdmi = container_of(connector, ++ struct dw_hdmi, connector); ++ enum drm_mode_status mode_status = MODE_OK; ++ ++ /* We don't support double-clocked modes */ ++ if (mode->flags & DRM_MODE_FLAG_DBLCLK) ++ return MODE_BAD; ++ ++ if (hdmi->plat_data->mode_valid) ++ mode_status = hdmi->plat_data->mode_valid(connector, mode); ++ ++ return mode_status; ++} ++ ++static void dw_hdmi_connector_force(struct drm_connector *connector) ++{ ++ struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, ++ connector); ++ ++ mutex_lock(&hdmi->mutex); ++ hdmi->force = connector->force; ++ dw_hdmi_update_power(hdmi); ++ dw_hdmi_update_phy_mask(hdmi); ++ mutex_unlock(&hdmi->mutex); ++} ++ ++static const struct drm_connector_funcs dw_hdmi_connector_funcs = { ++ .dpms = drm_atomic_helper_connector_dpms, ++ .fill_modes = drm_helper_probe_single_connector_modes, ++ .detect = dw_hdmi_connector_detect, ++ .destroy = drm_connector_cleanup, ++ .force = dw_hdmi_connector_force, ++ .reset = drm_atomic_helper_connector_reset, ++ .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, ++ .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, ++}; ++ ++static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs = { ++ .get_modes = dw_hdmi_connector_get_modes, ++ .mode_valid = dw_hdmi_connector_mode_valid, ++ .best_encoder = drm_atomic_helper_best_encoder, ++}; ++ ++static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) ++{ ++ struct dw_hdmi *hdmi = bridge->driver_private; ++ struct drm_encoder *encoder = bridge->encoder; ++ struct drm_connector *connector = &hdmi->connector; ++ ++ connector->interlace_allowed = 1; ++ connector->polled = DRM_CONNECTOR_POLL_HPD; ++ ++ drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); ++ ++ drm_connector_init(bridge->dev, connector, &dw_hdmi_connector_funcs, ++ DRM_MODE_CONNECTOR_HDMIA); ++ ++ drm_mode_connector_attach_encoder(connector, encoder); ++ ++ return 0; ++} ++ ++static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge, ++ struct drm_display_mode *orig_mode, ++ struct drm_display_mode *mode) ++{ ++ struct dw_hdmi *hdmi = bridge->driver_private; ++ ++ mutex_lock(&hdmi->mutex); ++ ++ /* Store the display mode for plugin/DKMS poweron events */ ++ memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode)); ++ ++ mutex_unlock(&hdmi->mutex); ++} ++ ++static void dw_hdmi_bridge_disable(struct drm_bridge *bridge) ++{ ++ struct dw_hdmi *hdmi = bridge->driver_private; ++ ++ mutex_lock(&hdmi->mutex); ++ hdmi->disabled = true; ++ dw_hdmi_update_power(hdmi); ++ dw_hdmi_update_phy_mask(hdmi); ++ mutex_unlock(&hdmi->mutex); ++} ++ ++static void dw_hdmi_bridge_enable(struct drm_bridge *bridge) ++{ ++ struct dw_hdmi *hdmi = bridge->driver_private; ++ ++ mutex_lock(&hdmi->mutex); ++ hdmi->disabled = false; ++ dw_hdmi_update_power(hdmi); ++ dw_hdmi_update_phy_mask(hdmi); ++ mutex_unlock(&hdmi->mutex); ++} ++ ++static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { ++ .attach = dw_hdmi_bridge_attach, ++ .enable = dw_hdmi_bridge_enable, ++ .disable = dw_hdmi_bridge_disable, ++ .mode_set = dw_hdmi_bridge_mode_set, ++}; ++ ++static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi) ++{ ++ struct dw_hdmi_i2c *i2c = hdmi->i2c; ++ unsigned int stat; ++ ++ stat = hdmi_readb(hdmi, HDMI_IH_I2CM_STAT0); ++ if (!stat) ++ return IRQ_NONE; ++ ++ hdmi_writeb(hdmi, stat, HDMI_IH_I2CM_STAT0); ++ ++ i2c->stat = stat; ++ ++ complete(&i2c->cmp); ++ ++ return IRQ_HANDLED; ++} ++ ++static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id) ++{ ++ struct dw_hdmi *hdmi = dev_id; ++ u8 intr_stat; ++ irqreturn_t ret = IRQ_NONE; ++ ++ if (hdmi->i2c) ++ ret = dw_hdmi_i2c_irq(hdmi); ++ ++ intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); ++ if (intr_stat) { ++ hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); ++ return IRQ_WAKE_THREAD; ++ } ++ ++ return ret; ++} ++ ++static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) ++{ ++ struct dw_hdmi *hdmi = dev_id; ++ u8 intr_stat, phy_int_pol, phy_pol_mask, phy_stat; ++ ++ intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); ++ phy_int_pol = hdmi_readb(hdmi, HDMI_PHY_POL0); ++ phy_stat = hdmi_readb(hdmi, HDMI_PHY_STAT0); ++ ++ phy_pol_mask = 0; ++ if (intr_stat & HDMI_IH_PHY_STAT0_HPD) ++ phy_pol_mask |= HDMI_PHY_HPD; ++ if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE0) ++ phy_pol_mask |= HDMI_PHY_RX_SENSE0; ++ if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE1) ++ phy_pol_mask |= HDMI_PHY_RX_SENSE1; ++ if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE2) ++ phy_pol_mask |= HDMI_PHY_RX_SENSE2; ++ if (intr_stat & HDMI_IH_PHY_STAT0_RX_SENSE3) ++ phy_pol_mask |= HDMI_PHY_RX_SENSE3; ++ ++ if (phy_pol_mask) ++ hdmi_modb(hdmi, ~phy_int_pol, phy_pol_mask, HDMI_PHY_POL0); ++ ++ /* ++ * RX sense tells us whether the TDMS transmitters are detecting ++ * load - in other words, there's something listening on the ++ * other end of the link. Use this to decide whether we should ++ * power on the phy as HPD may be toggled by the sink to merely ++ * ask the source to re-read the EDID. ++ */ ++ if (intr_stat & ++ (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) { ++ mutex_lock(&hdmi->mutex); ++ if (!hdmi->disabled && !hdmi->force) { ++ /* ++ * If the RX sense status indicates we're disconnected, ++ * clear the software rxsense status. ++ */ ++ if (!(phy_stat & HDMI_PHY_RX_SENSE)) ++ hdmi->rxsense = false; ++ ++ /* ++ * Only set the software rxsense status when both ++ * rxsense and hpd indicates we're connected. ++ * This avoids what seems to be bad behaviour in ++ * at least iMX6S versions of the phy. ++ */ ++ if (phy_stat & HDMI_PHY_HPD) ++ hdmi->rxsense = true; ++ ++ dw_hdmi_update_power(hdmi); ++ dw_hdmi_update_phy_mask(hdmi); ++ } ++ mutex_unlock(&hdmi->mutex); ++ } ++ ++ if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { ++ dev_dbg(hdmi->dev, "EVENT=%s\n", ++ phy_int_pol & HDMI_PHY_HPD ? "plugin" : "plugout"); ++ if (hdmi->bridge.dev) ++ drm_helper_hpd_irq_event(hdmi->bridge.dev); ++ } ++ ++ hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); ++ hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), ++ HDMI_IH_MUTE_PHY_STAT0); ++ ++ return IRQ_HANDLED; ++} ++ ++static const struct dw_hdmi_phy_data dw_hdmi_phys[] = { ++ { ++ .type = DW_HDMI_PHY_DWC_HDMI_TX_PHY, ++ .name = "DWC HDMI TX PHY", ++ .gen = 1, ++ }, { ++ .type = DW_HDMI_PHY_DWC_MHL_PHY_HEAC, ++ .name = "DWC MHL PHY + HEAC PHY", ++ .gen = 2, ++ .has_svsret = true, ++ .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, ++ }, { ++ .type = DW_HDMI_PHY_DWC_MHL_PHY, ++ .name = "DWC MHL PHY", ++ .gen = 2, ++ .has_svsret = true, ++ .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, ++ }, { ++ .type = DW_HDMI_PHY_DWC_HDMI_3D_TX_PHY_HEAC, ++ .name = "DWC HDMI 3D TX PHY + HEAC PHY", ++ .gen = 2, ++ .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, ++ }, { ++ .type = DW_HDMI_PHY_DWC_HDMI_3D_TX_PHY, ++ .name = "DWC HDMI 3D TX PHY", ++ .gen = 2, ++ .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, ++ }, { ++ .type = DW_HDMI_PHY_DWC_HDMI20_TX_PHY, ++ .name = "DWC HDMI 2.0 TX PHY", ++ .gen = 2, ++ .has_svsret = true, ++ }, { ++ .type = DW_HDMI_PHY_VENDOR_PHY, ++ .name = "Vendor PHY", ++ } ++}; ++ ++static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) ++{ ++ unsigned int i; ++ u8 phy_type; ++ ++ phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID); ++ ++ if (phy_type == DW_HDMI_PHY_VENDOR_PHY) { ++ /* Vendor PHYs require support from the glue layer. */ ++ if (!hdmi->plat_data->phy_ops || !hdmi->plat_data->phy_name) { ++ dev_err(hdmi->dev, ++ "Vendor HDMI PHY not supported by glue layer\n"); ++ return -ENODEV; ++ } ++ ++ hdmi->phy.ops = hdmi->plat_data->phy_ops; ++ hdmi->phy.data = hdmi->plat_data->phy_data; ++ hdmi->phy.name = hdmi->plat_data->phy_name; ++ return 0; ++ } ++ ++ /* Synopsys PHYs are handled internally. */ ++ for (i = 0; i < ARRAY_SIZE(dw_hdmi_phys); ++i) { ++ if (dw_hdmi_phys[i].type == phy_type) { ++ hdmi->phy.ops = &dw_hdmi_synopsys_phy_ops; ++ hdmi->phy.name = dw_hdmi_phys[i].name; ++ hdmi->phy.data = (void *)&dw_hdmi_phys[i]; ++ ++ if (!dw_hdmi_phys[i].configure && ++ !hdmi->plat_data->configure_phy) { ++ dev_err(hdmi->dev, "%s requires platform support\n", ++ hdmi->phy.name); ++ return -ENODEV; ++ } ++ ++ return 0; ++ } ++ } ++ ++ dev_err(hdmi->dev, "Unsupported HDMI PHY type (%02x)\n", phy_type); ++ return -ENODEV; ++} ++ ++static const struct regmap_config hdmi_regmap_8bit_config = { ++ .reg_bits = 32, ++ .val_bits = 8, ++ .reg_stride = 1, ++ .max_register = HDMI_I2CM_FS_SCL_LCNT_0_ADDR, ++}; ++ ++static const struct regmap_config hdmi_regmap_32bit_config = { ++ .reg_bits = 32, ++ .val_bits = 32, ++ .reg_stride = 4, ++ .max_register = HDMI_I2CM_FS_SCL_LCNT_0_ADDR << 2, ++}; ++ ++static struct dw_hdmi * ++__dw_hdmi_probe(struct platform_device *pdev, ++ const struct dw_hdmi_plat_data *plat_data) ++{ ++ struct device *dev = &pdev->dev; ++ struct device_node *np = dev->of_node; ++ struct platform_device_info pdevinfo; ++ struct device_node *ddc_node; ++ struct dw_hdmi *hdmi; ++ struct resource *iores = NULL; ++ int irq; ++ int ret; ++ u32 val = 1; ++ u8 prod_id0; ++ u8 prod_id1; ++ u8 config0; ++ u8 config3; ++ ++ hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); ++ if (!hdmi) ++ return ERR_PTR(-ENOMEM); ++ ++ hdmi->plat_data = plat_data; ++ hdmi->dev = dev; ++ hdmi->sample_rate = 48000; ++ hdmi->disabled = true; ++ hdmi->rxsense = true; ++ hdmi->phy_mask = (u8)~(HDMI_PHY_HPD | HDMI_PHY_RX_SENSE); ++ ++ mutex_init(&hdmi->mutex); ++ mutex_init(&hdmi->audio_mutex); ++ spin_lock_init(&hdmi->audio_lock); ++ ++ ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); ++ if (ddc_node) { ++ hdmi->ddc = of_get_i2c_adapter_by_node(ddc_node); ++ of_node_put(ddc_node); ++ if (!hdmi->ddc) { ++ dev_dbg(hdmi->dev, "failed to read ddc node\n"); ++ return ERR_PTR(-EPROBE_DEFER); ++ } ++ ++ } else { ++ dev_dbg(hdmi->dev, "no ddc property found\n"); ++ } ++ ++ if (!plat_data->regm) { ++ const struct regmap_config *reg_config; ++ ++ of_property_read_u32(np, "reg-io-width", &val); ++ switch (val) { ++ case 4: ++ reg_config = &hdmi_regmap_32bit_config; ++ hdmi->reg_shift = 2; ++ break; ++ case 1: ++ reg_config = &hdmi_regmap_8bit_config; ++ break; ++ default: ++ dev_err(dev, "reg-io-width must be 1 or 4\n"); ++ return ERR_PTR(-EINVAL); ++ } ++ ++ iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ hdmi->regs = devm_ioremap_resource(dev, iores); ++ if (IS_ERR(hdmi->regs)) { ++ ret = PTR_ERR(hdmi->regs); ++ goto err_res; ++ } ++ ++ hdmi->regm = devm_regmap_init_mmio(dev, hdmi->regs, reg_config); ++ if (IS_ERR(hdmi->regm)) { ++ dev_err(dev, "Failed to configure regmap\n"); ++ ret = PTR_ERR(hdmi->regm); ++ goto err_res; ++ } ++ } else { ++ hdmi->regm = plat_data->regm; ++ } ++ ++ hdmi->isfr_clk = devm_clk_get(hdmi->dev, "isfr"); ++ if (IS_ERR(hdmi->isfr_clk)) { ++ ret = PTR_ERR(hdmi->isfr_clk); ++ dev_err(hdmi->dev, "Unable to get HDMI isfr clk: %d\n", ret); ++ goto err_res; ++ } ++ ++ ret = clk_prepare_enable(hdmi->isfr_clk); ++ if (ret) { ++ dev_err(hdmi->dev, "Cannot enable HDMI isfr clock: %d\n", ret); ++ goto err_res; ++ } ++ ++ hdmi->iahb_clk = devm_clk_get(hdmi->dev, "iahb"); ++ if (IS_ERR(hdmi->iahb_clk)) { ++ ret = PTR_ERR(hdmi->iahb_clk); ++ dev_err(hdmi->dev, "Unable to get HDMI iahb clk: %d\n", ret); ++ goto err_isfr; ++ } ++ ++ ret = clk_prepare_enable(hdmi->iahb_clk); ++ if (ret) { ++ dev_err(hdmi->dev, "Cannot enable HDMI iahb clock: %d\n", ret); ++ goto err_isfr; ++ } ++ ++ /* Product and revision IDs */ ++ hdmi->version = (hdmi_readb(hdmi, HDMI_DESIGN_ID) << 8) ++ | (hdmi_readb(hdmi, HDMI_REVISION_ID) << 0); ++ prod_id0 = hdmi_readb(hdmi, HDMI_PRODUCT_ID0); ++ prod_id1 = hdmi_readb(hdmi, HDMI_PRODUCT_ID1); ++ ++ if (prod_id0 != HDMI_PRODUCT_ID0_HDMI_TX || ++ (prod_id1 & ~HDMI_PRODUCT_ID1_HDCP) != HDMI_PRODUCT_ID1_HDMI_TX) { ++ dev_err(dev, "Unsupported HDMI controller (%04x:%02x:%02x)\n", ++ hdmi->version, prod_id0, prod_id1); ++ ret = -ENODEV; ++ goto err_iahb; ++ } ++ ++ ret = dw_hdmi_detect_phy(hdmi); ++ if (ret < 0) ++ goto err_iahb; ++ ++ dev_info(dev, "Detected HDMI TX controller v%x.%03x %s HDCP (%s)\n", ++ hdmi->version >> 12, hdmi->version & 0xfff, ++ prod_id1 & HDMI_PRODUCT_ID1_HDCP ? "with" : "without", ++ hdmi->phy.name); ++ ++ initialize_hdmi_ih_mutes(hdmi); ++ ++ irq = platform_get_irq(pdev, 0); ++ if (irq < 0) { ++ ret = irq; ++ goto err_iahb; ++ } ++ ++ ret = devm_request_threaded_irq(dev, irq, dw_hdmi_hardirq, ++ dw_hdmi_irq, IRQF_SHARED, ++ dev_name(dev), hdmi); ++ if (ret) ++ goto err_iahb; ++ ++ /* ++ * To prevent overflows in HDMI_IH_FC_STAT2, set the clk regenerator ++ * N and cts values before enabling phy ++ */ ++ hdmi_init_clk_regenerator(hdmi); ++ ++ /* If DDC bus is not specified, try to register HDMI I2C bus */ ++ if (!hdmi->ddc) { ++ hdmi->ddc = dw_hdmi_i2c_adapter(hdmi); ++ if (IS_ERR(hdmi->ddc)) ++ hdmi->ddc = NULL; ++ } ++ ++ /* ++ * Configure registers related to HDMI interrupt ++ * generation before registering IRQ. ++ */ ++ hdmi_writeb(hdmi, HDMI_PHY_HPD | HDMI_PHY_RX_SENSE, HDMI_PHY_POL0); ++ ++ /* Clear Hotplug interrupts */ ++ hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, ++ HDMI_IH_PHY_STAT0); ++ ++ hdmi->bridge.driver_private = hdmi; ++ hdmi->bridge.funcs = &dw_hdmi_bridge_funcs; ++#ifdef CONFIG_OF ++ hdmi->bridge.of_node = pdev->dev.of_node; ++#endif ++ ++ ret = dw_hdmi_fb_registered(hdmi); ++ if (ret) ++ goto err_iahb; ++ ++ /* Unmute interrupts */ ++ hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), ++ HDMI_IH_MUTE_PHY_STAT0); ++ ++ memset(&pdevinfo, 0, sizeof(pdevinfo)); ++ pdevinfo.parent = dev; ++ pdevinfo.id = PLATFORM_DEVID_AUTO; ++ ++ config0 = hdmi_readb(hdmi, HDMI_CONFIG0_ID); ++ config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID); ++ ++ if (iores && config3 & HDMI_CONFIG3_AHBAUDDMA) { ++ struct dw_hdmi_audio_data audio; ++ ++ audio.phys = iores->start; ++ audio.base = hdmi->regs; ++ audio.irq = irq; ++ audio.hdmi = hdmi; ++ audio.eld = hdmi->connector.eld; ++ ++ pdevinfo.name = "dw-hdmi-ahb-audio"; ++ pdevinfo.data = &audio; ++ pdevinfo.size_data = sizeof(audio); ++ pdevinfo.dma_mask = DMA_BIT_MASK(32); ++ hdmi->audio = platform_device_register_full(&pdevinfo); ++ } else if (config0 & HDMI_CONFIG0_I2S) { ++ struct dw_hdmi_i2s_audio_data audio; ++ ++ audio.hdmi = hdmi; ++ audio.write = hdmi_writeb; ++ audio.read = hdmi_readb; ++ ++ pdevinfo.name = "dw-hdmi-i2s-audio"; ++ pdevinfo.data = &audio; ++ pdevinfo.size_data = sizeof(audio); ++ pdevinfo.dma_mask = DMA_BIT_MASK(32); ++ hdmi->audio = platform_device_register_full(&pdevinfo); ++ } ++ ++ /* Reset HDMI DDC I2C master controller and mute I2CM interrupts */ ++ if (hdmi->i2c) ++ dw_hdmi_i2c_init(hdmi); ++ ++ platform_set_drvdata(pdev, hdmi); ++ ++ return hdmi; ++ ++err_iahb: ++ if (hdmi->i2c) { ++ i2c_del_adapter(&hdmi->i2c->adap); ++ hdmi->ddc = NULL; ++ } ++ ++ clk_disable_unprepare(hdmi->iahb_clk); ++err_isfr: ++ clk_disable_unprepare(hdmi->isfr_clk); ++err_res: ++ i2c_put_adapter(hdmi->ddc); ++ ++ return ERR_PTR(ret); ++} ++ ++static void __dw_hdmi_remove(struct dw_hdmi *hdmi) ++{ ++ if (hdmi->audio && !IS_ERR(hdmi->audio)) ++ platform_device_unregister(hdmi->audio); ++ ++ /* Disable all interrupts */ ++ hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); ++ ++ clk_disable_unprepare(hdmi->iahb_clk); ++ clk_disable_unprepare(hdmi->isfr_clk); ++ ++ if (hdmi->i2c) ++ i2c_del_adapter(&hdmi->i2c->adap); ++ else ++ i2c_put_adapter(hdmi->ddc); ++} ++ ++/* ----------------------------------------------------------------------------- ++ * Probe/remove API, used from platforms based on the DRM bridge API. ++ */ ++int dw_hdmi_probe(struct platform_device *pdev, ++ const struct dw_hdmi_plat_data *plat_data) ++{ ++ struct dw_hdmi *hdmi; ++ int ret; ++ ++ hdmi = __dw_hdmi_probe(pdev, plat_data); ++ if (IS_ERR(hdmi)) ++ return PTR_ERR(hdmi); ++ ++ ret = drm_bridge_add(&hdmi->bridge); ++ if (ret < 0) { ++ __dw_hdmi_remove(hdmi); ++ return ret; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_probe); ++ ++void dw_hdmi_remove(struct platform_device *pdev) ++{ ++ struct dw_hdmi *hdmi = platform_get_drvdata(pdev); ++ ++ drm_bridge_remove(&hdmi->bridge); ++ ++ __dw_hdmi_remove(hdmi); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_remove); ++ ++/* ----------------------------------------------------------------------------- ++ * Bind/unbind API, used from platforms based on the component framework. ++ */ ++int dw_hdmi_bind(struct platform_device *pdev, struct drm_encoder *encoder, ++ const struct dw_hdmi_plat_data *plat_data) ++{ ++ struct dw_hdmi *hdmi; ++ int ret; ++ ++ hdmi = __dw_hdmi_probe(pdev, plat_data); ++ if (IS_ERR(hdmi)) ++ return PTR_ERR(hdmi); ++ ++ ret = drm_bridge_attach(encoder, &hdmi->bridge, NULL); ++ if (ret) { ++ dw_hdmi_remove(pdev); ++ DRM_ERROR("Failed to initialize bridge with drm\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_bind); ++ ++void dw_hdmi_unbind(struct device *dev) ++{ ++ struct dw_hdmi *hdmi = dev_get_drvdata(dev); ++ ++ __dw_hdmi_remove(hdmi); ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_unbind); ++ ++MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); ++MODULE_AUTHOR("Andy Yan <andy.yan@rock-chips.com>"); ++MODULE_AUTHOR("Yakir Yang <ykk@rock-chips.com>"); ++MODULE_AUTHOR("Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>"); ++MODULE_DESCRIPTION("DW HDMI transmitter driver"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("platform:dw-hdmi"); +--- /dev/null ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h +@@ -0,0 +1,1153 @@ ++/* ++ * Copyright (C) 2011 Freescale Semiconductor, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#ifndef __DW_HDMI_H__ ++#define __DW_HDMI_H__ ++ ++/* Identification Registers */ ++#define HDMI_DESIGN_ID 0x0000 ++#define HDMI_REVISION_ID 0x0001 ++#define HDMI_PRODUCT_ID0 0x0002 ++#define HDMI_PRODUCT_ID1 0x0003 ++#define HDMI_CONFIG0_ID 0x0004 ++#define HDMI_CONFIG1_ID 0x0005 ++#define HDMI_CONFIG2_ID 0x0006 ++#define HDMI_CONFIG3_ID 0x0007 ++ ++/* Interrupt Registers */ ++#define HDMI_IH_FC_STAT0 0x0100 ++#define HDMI_IH_FC_STAT1 0x0101 ++#define HDMI_IH_FC_STAT2 0x0102 ++#define HDMI_IH_AS_STAT0 0x0103 ++#define HDMI_IH_PHY_STAT0 0x0104 ++#define HDMI_IH_I2CM_STAT0 0x0105 ++#define HDMI_IH_CEC_STAT0 0x0106 ++#define HDMI_IH_VP_STAT0 0x0107 ++#define HDMI_IH_I2CMPHY_STAT0 0x0108 ++#define HDMI_IH_AHBDMAAUD_STAT0 0x0109 ++ ++#define HDMI_IH_MUTE_FC_STAT0 0x0180 ++#define HDMI_IH_MUTE_FC_STAT1 0x0181 ++#define HDMI_IH_MUTE_FC_STAT2 0x0182 ++#define HDMI_IH_MUTE_AS_STAT0 0x0183 ++#define HDMI_IH_MUTE_PHY_STAT0 0x0184 ++#define HDMI_IH_MUTE_I2CM_STAT0 0x0185 ++#define HDMI_IH_MUTE_CEC_STAT0 0x0186 ++#define HDMI_IH_MUTE_VP_STAT0 0x0187 ++#define HDMI_IH_MUTE_I2CMPHY_STAT0 0x0188 ++#define HDMI_IH_MUTE_AHBDMAAUD_STAT0 0x0189 ++#define HDMI_IH_MUTE 0x01FF ++ ++/* Video Sample Registers */ ++#define HDMI_TX_INVID0 0x0200 ++#define HDMI_TX_INSTUFFING 0x0201 ++#define HDMI_TX_GYDATA0 0x0202 ++#define HDMI_TX_GYDATA1 0x0203 ++#define HDMI_TX_RCRDATA0 0x0204 ++#define HDMI_TX_RCRDATA1 0x0205 ++#define HDMI_TX_BCBDATA0 0x0206 ++#define HDMI_TX_BCBDATA1 0x0207 ++ ++/* Video Packetizer Registers */ ++#define HDMI_VP_STATUS 0x0800 ++#define HDMI_VP_PR_CD 0x0801 ++#define HDMI_VP_STUFF 0x0802 ++#define HDMI_VP_REMAP 0x0803 ++#define HDMI_VP_CONF 0x0804 ++#define HDMI_VP_STAT 0x0805 ++#define HDMI_VP_INT 0x0806 ++#define HDMI_VP_MASK 0x0807 ++#define HDMI_VP_POL 0x0808 ++ ++/* Frame Composer Registers */ ++#define HDMI_FC_INVIDCONF 0x1000 ++#define HDMI_FC_INHACTV0 0x1001 ++#define HDMI_FC_INHACTV1 0x1002 ++#define HDMI_FC_INHBLANK0 0x1003 ++#define HDMI_FC_INHBLANK1 0x1004 ++#define HDMI_FC_INVACTV0 0x1005 ++#define HDMI_FC_INVACTV1 0x1006 ++#define HDMI_FC_INVBLANK 0x1007 ++#define HDMI_FC_HSYNCINDELAY0 0x1008 ++#define HDMI_FC_HSYNCINDELAY1 0x1009 ++#define HDMI_FC_HSYNCINWIDTH0 0x100A ++#define HDMI_FC_HSYNCINWIDTH1 0x100B ++#define HDMI_FC_VSYNCINDELAY 0x100C ++#define HDMI_FC_VSYNCINWIDTH 0x100D ++#define HDMI_FC_INFREQ0 0x100E ++#define HDMI_FC_INFREQ1 0x100F ++#define HDMI_FC_INFREQ2 0x1010 ++#define HDMI_FC_CTRLDUR 0x1011 ++#define HDMI_FC_EXCTRLDUR 0x1012 ++#define HDMI_FC_EXCTRLSPAC 0x1013 ++#define HDMI_FC_CH0PREAM 0x1014 ++#define HDMI_FC_CH1PREAM 0x1015 ++#define HDMI_FC_CH2PREAM 0x1016 ++#define HDMI_FC_AVICONF3 0x1017 ++#define HDMI_FC_GCP 0x1018 ++#define HDMI_FC_AVICONF0 0x1019 ++#define HDMI_FC_AVICONF1 0x101A ++#define HDMI_FC_AVICONF2 0x101B ++#define HDMI_FC_AVIVID 0x101C ++#define HDMI_FC_AVIETB0 0x101D ++#define HDMI_FC_AVIETB1 0x101E ++#define HDMI_FC_AVISBB0 0x101F ++#define HDMI_FC_AVISBB1 0x1020 ++#define HDMI_FC_AVIELB0 0x1021 ++#define HDMI_FC_AVIELB1 0x1022 ++#define HDMI_FC_AVISRB0 0x1023 ++#define HDMI_FC_AVISRB1 0x1024 ++#define HDMI_FC_AUDICONF0 0x1025 ++#define HDMI_FC_AUDICONF1 0x1026 ++#define HDMI_FC_AUDICONF2 0x1027 ++#define HDMI_FC_AUDICONF3 0x1028 ++#define HDMI_FC_VSDIEEEID0 0x1029 ++#define HDMI_FC_VSDSIZE 0x102A ++#define HDMI_FC_VSDIEEEID1 0x1030 ++#define HDMI_FC_VSDIEEEID2 0x1031 ++#define HDMI_FC_VSDPAYLOAD0 0x1032 ++#define HDMI_FC_VSDPAYLOAD1 0x1033 ++#define HDMI_FC_VSDPAYLOAD2 0x1034 ++#define HDMI_FC_VSDPAYLOAD3 0x1035 ++#define HDMI_FC_VSDPAYLOAD4 0x1036 ++#define HDMI_FC_VSDPAYLOAD5 0x1037 ++#define HDMI_FC_VSDPAYLOAD6 0x1038 ++#define HDMI_FC_VSDPAYLOAD7 0x1039 ++#define HDMI_FC_VSDPAYLOAD8 0x103A ++#define HDMI_FC_VSDPAYLOAD9 0x103B ++#define HDMI_FC_VSDPAYLOAD10 0x103C ++#define HDMI_FC_VSDPAYLOAD11 0x103D ++#define HDMI_FC_VSDPAYLOAD12 0x103E ++#define HDMI_FC_VSDPAYLOAD13 0x103F ++#define HDMI_FC_VSDPAYLOAD14 0x1040 ++#define HDMI_FC_VSDPAYLOAD15 0x1041 ++#define HDMI_FC_VSDPAYLOAD16 0x1042 ++#define HDMI_FC_VSDPAYLOAD17 0x1043 ++#define HDMI_FC_VSDPAYLOAD18 0x1044 ++#define HDMI_FC_VSDPAYLOAD19 0x1045 ++#define HDMI_FC_VSDPAYLOAD20 0x1046 ++#define HDMI_FC_VSDPAYLOAD21 0x1047 ++#define HDMI_FC_VSDPAYLOAD22 0x1048 ++#define HDMI_FC_VSDPAYLOAD23 0x1049 ++#define HDMI_FC_SPDVENDORNAME0 0x104A ++#define HDMI_FC_SPDVENDORNAME1 0x104B ++#define HDMI_FC_SPDVENDORNAME2 0x104C ++#define HDMI_FC_SPDVENDORNAME3 0x104D ++#define HDMI_FC_SPDVENDORNAME4 0x104E ++#define HDMI_FC_SPDVENDORNAME5 0x104F ++#define HDMI_FC_SPDVENDORNAME6 0x1050 ++#define HDMI_FC_SPDVENDORNAME7 0x1051 ++#define HDMI_FC_SDPPRODUCTNAME0 0x1052 ++#define HDMI_FC_SDPPRODUCTNAME1 0x1053 ++#define HDMI_FC_SDPPRODUCTNAME2 0x1054 ++#define HDMI_FC_SDPPRODUCTNAME3 0x1055 ++#define HDMI_FC_SDPPRODUCTNAME4 0x1056 ++#define HDMI_FC_SDPPRODUCTNAME5 0x1057 ++#define HDMI_FC_SDPPRODUCTNAME6 0x1058 ++#define HDMI_FC_SDPPRODUCTNAME7 0x1059 ++#define HDMI_FC_SDPPRODUCTNAME8 0x105A ++#define HDMI_FC_SDPPRODUCTNAME9 0x105B ++#define HDMI_FC_SDPPRODUCTNAME10 0x105C ++#define HDMI_FC_SDPPRODUCTNAME11 0x105D ++#define HDMI_FC_SDPPRODUCTNAME12 0x105E ++#define HDMI_FC_SDPPRODUCTNAME13 0x105F ++#define HDMI_FC_SDPPRODUCTNAME14 0x1060 ++#define HDMI_FC_SPDPRODUCTNAME15 0x1061 ++#define HDMI_FC_SPDDEVICEINF 0x1062 ++#define HDMI_FC_AUDSCONF 0x1063 ++#define HDMI_FC_AUDSSTAT 0x1064 ++#define HDMI_FC_DATACH0FILL 0x1070 ++#define HDMI_FC_DATACH1FILL 0x1071 ++#define HDMI_FC_DATACH2FILL 0x1072 ++#define HDMI_FC_CTRLQHIGH 0x1073 ++#define HDMI_FC_CTRLQLOW 0x1074 ++#define HDMI_FC_ACP0 0x1075 ++#define HDMI_FC_ACP28 0x1076 ++#define HDMI_FC_ACP27 0x1077 ++#define HDMI_FC_ACP26 0x1078 ++#define HDMI_FC_ACP25 0x1079 ++#define HDMI_FC_ACP24 0x107A ++#define HDMI_FC_ACP23 0x107B ++#define HDMI_FC_ACP22 0x107C ++#define HDMI_FC_ACP21 0x107D ++#define HDMI_FC_ACP20 0x107E ++#define HDMI_FC_ACP19 0x107F ++#define HDMI_FC_ACP18 0x1080 ++#define HDMI_FC_ACP17 0x1081 ++#define HDMI_FC_ACP16 0x1082 ++#define HDMI_FC_ACP15 0x1083 ++#define HDMI_FC_ACP14 0x1084 ++#define HDMI_FC_ACP13 0x1085 ++#define HDMI_FC_ACP12 0x1086 ++#define HDMI_FC_ACP11 0x1087 ++#define HDMI_FC_ACP10 0x1088 ++#define HDMI_FC_ACP9 0x1089 ++#define HDMI_FC_ACP8 0x108A ++#define HDMI_FC_ACP7 0x108B ++#define HDMI_FC_ACP6 0x108C ++#define HDMI_FC_ACP5 0x108D ++#define HDMI_FC_ACP4 0x108E ++#define HDMI_FC_ACP3 0x108F ++#define HDMI_FC_ACP2 0x1090 ++#define HDMI_FC_ACP1 0x1091 ++#define HDMI_FC_ISCR1_0 0x1092 ++#define HDMI_FC_ISCR1_16 0x1093 ++#define HDMI_FC_ISCR1_15 0x1094 ++#define HDMI_FC_ISCR1_14 0x1095 ++#define HDMI_FC_ISCR1_13 0x1096 ++#define HDMI_FC_ISCR1_12 0x1097 ++#define HDMI_FC_ISCR1_11 0x1098 ++#define HDMI_FC_ISCR1_10 0x1099 ++#define HDMI_FC_ISCR1_9 0x109A ++#define HDMI_FC_ISCR1_8 0x109B ++#define HDMI_FC_ISCR1_7 0x109C ++#define HDMI_FC_ISCR1_6 0x109D ++#define HDMI_FC_ISCR1_5 0x109E ++#define HDMI_FC_ISCR1_4 0x109F ++#define HDMI_FC_ISCR1_3 0x10A0 ++#define HDMI_FC_ISCR1_2 0x10A1 ++#define HDMI_FC_ISCR1_1 0x10A2 ++#define HDMI_FC_ISCR2_15 0x10A3 ++#define HDMI_FC_ISCR2_14 0x10A4 ++#define HDMI_FC_ISCR2_13 0x10A5 ++#define HDMI_FC_ISCR2_12 0x10A6 ++#define HDMI_FC_ISCR2_11 0x10A7 ++#define HDMI_FC_ISCR2_10 0x10A8 ++#define HDMI_FC_ISCR2_9 0x10A9 ++#define HDMI_FC_ISCR2_8 0x10AA ++#define HDMI_FC_ISCR2_7 0x10AB ++#define HDMI_FC_ISCR2_6 0x10AC ++#define HDMI_FC_ISCR2_5 0x10AD ++#define HDMI_FC_ISCR2_4 0x10AE ++#define HDMI_FC_ISCR2_3 0x10AF ++#define HDMI_FC_ISCR2_2 0x10B0 ++#define HDMI_FC_ISCR2_1 0x10B1 ++#define HDMI_FC_ISCR2_0 0x10B2 ++#define HDMI_FC_DATAUTO0 0x10B3 ++#define HDMI_FC_DATAUTO1 0x10B4 ++#define HDMI_FC_DATAUTO2 0x10B5 ++#define HDMI_FC_DATMAN 0x10B6 ++#define HDMI_FC_DATAUTO3 0x10B7 ++#define HDMI_FC_RDRB0 0x10B8 ++#define HDMI_FC_RDRB1 0x10B9 ++#define HDMI_FC_RDRB2 0x10BA ++#define HDMI_FC_RDRB3 0x10BB ++#define HDMI_FC_RDRB4 0x10BC ++#define HDMI_FC_RDRB5 0x10BD ++#define HDMI_FC_RDRB6 0x10BE ++#define HDMI_FC_RDRB7 0x10BF ++#define HDMI_FC_STAT0 0x10D0 ++#define HDMI_FC_INT0 0x10D1 ++#define HDMI_FC_MASK0 0x10D2 ++#define HDMI_FC_POL0 0x10D3 ++#define HDMI_FC_STAT1 0x10D4 ++#define HDMI_FC_INT1 0x10D5 ++#define HDMI_FC_MASK1 0x10D6 ++#define HDMI_FC_POL1 0x10D7 ++#define HDMI_FC_STAT2 0x10D8 ++#define HDMI_FC_INT2 0x10D9 ++#define HDMI_FC_MASK2 0x10DA ++#define HDMI_FC_POL2 0x10DB ++#define HDMI_FC_PRCONF 0x10E0 ++ ++#define HDMI_FC_GMD_STAT 0x1100 ++#define HDMI_FC_GMD_EN 0x1101 ++#define HDMI_FC_GMD_UP 0x1102 ++#define HDMI_FC_GMD_CONF 0x1103 ++#define HDMI_FC_GMD_HB 0x1104 ++#define HDMI_FC_GMD_PB0 0x1105 ++#define HDMI_FC_GMD_PB1 0x1106 ++#define HDMI_FC_GMD_PB2 0x1107 ++#define HDMI_FC_GMD_PB3 0x1108 ++#define HDMI_FC_GMD_PB4 0x1109 ++#define HDMI_FC_GMD_PB5 0x110A ++#define HDMI_FC_GMD_PB6 0x110B ++#define HDMI_FC_GMD_PB7 0x110C ++#define HDMI_FC_GMD_PB8 0x110D ++#define HDMI_FC_GMD_PB9 0x110E ++#define HDMI_FC_GMD_PB10 0x110F ++#define HDMI_FC_GMD_PB11 0x1110 ++#define HDMI_FC_GMD_PB12 0x1111 ++#define HDMI_FC_GMD_PB13 0x1112 ++#define HDMI_FC_GMD_PB14 0x1113 ++#define HDMI_FC_GMD_PB15 0x1114 ++#define HDMI_FC_GMD_PB16 0x1115 ++#define HDMI_FC_GMD_PB17 0x1116 ++#define HDMI_FC_GMD_PB18 0x1117 ++#define HDMI_FC_GMD_PB19 0x1118 ++#define HDMI_FC_GMD_PB20 0x1119 ++#define HDMI_FC_GMD_PB21 0x111A ++#define HDMI_FC_GMD_PB22 0x111B ++#define HDMI_FC_GMD_PB23 0x111C ++#define HDMI_FC_GMD_PB24 0x111D ++#define HDMI_FC_GMD_PB25 0x111E ++#define HDMI_FC_GMD_PB26 0x111F ++#define HDMI_FC_GMD_PB27 0x1120 ++ ++#define HDMI_FC_DBGFORCE 0x1200 ++#define HDMI_FC_DBGAUD0CH0 0x1201 ++#define HDMI_FC_DBGAUD1CH0 0x1202 ++#define HDMI_FC_DBGAUD2CH0 0x1203 ++#define HDMI_FC_DBGAUD0CH1 0x1204 ++#define HDMI_FC_DBGAUD1CH1 0x1205 ++#define HDMI_FC_DBGAUD2CH1 0x1206 ++#define HDMI_FC_DBGAUD0CH2 0x1207 ++#define HDMI_FC_DBGAUD1CH2 0x1208 ++#define HDMI_FC_DBGAUD2CH2 0x1209 ++#define HDMI_FC_DBGAUD0CH3 0x120A ++#define HDMI_FC_DBGAUD1CH3 0x120B ++#define HDMI_FC_DBGAUD2CH3 0x120C ++#define HDMI_FC_DBGAUD0CH4 0x120D ++#define HDMI_FC_DBGAUD1CH4 0x120E ++#define HDMI_FC_DBGAUD2CH4 0x120F ++#define HDMI_FC_DBGAUD0CH5 0x1210 ++#define HDMI_FC_DBGAUD1CH5 0x1211 ++#define HDMI_FC_DBGAUD2CH5 0x1212 ++#define HDMI_FC_DBGAUD0CH6 0x1213 ++#define HDMI_FC_DBGAUD1CH6 0x1214 ++#define HDMI_FC_DBGAUD2CH6 0x1215 ++#define HDMI_FC_DBGAUD0CH7 0x1216 ++#define HDMI_FC_DBGAUD1CH7 0x1217 ++#define HDMI_FC_DBGAUD2CH7 0x1218 ++#define HDMI_FC_DBGTMDS0 0x1219 ++#define HDMI_FC_DBGTMDS1 0x121A ++#define HDMI_FC_DBGTMDS2 0x121B ++ ++/* HDMI Source PHY Registers */ ++#define HDMI_PHY_CONF0 0x3000 ++#define HDMI_PHY_TST0 0x3001 ++#define HDMI_PHY_TST1 0x3002 ++#define HDMI_PHY_TST2 0x3003 ++#define HDMI_PHY_STAT0 0x3004 ++#define HDMI_PHY_INT0 0x3005 ++#define HDMI_PHY_MASK0 0x3006 ++#define HDMI_PHY_POL0 0x3007 ++ ++/* HDMI Master PHY Registers */ ++#define HDMI_PHY_I2CM_SLAVE_ADDR 0x3020 ++#define HDMI_PHY_I2CM_ADDRESS_ADDR 0x3021 ++#define HDMI_PHY_I2CM_DATAO_1_ADDR 0x3022 ++#define HDMI_PHY_I2CM_DATAO_0_ADDR 0x3023 ++#define HDMI_PHY_I2CM_DATAI_1_ADDR 0x3024 ++#define HDMI_PHY_I2CM_DATAI_0_ADDR 0x3025 ++#define HDMI_PHY_I2CM_OPERATION_ADDR 0x3026 ++#define HDMI_PHY_I2CM_INT_ADDR 0x3027 ++#define HDMI_PHY_I2CM_CTLINT_ADDR 0x3028 ++#define HDMI_PHY_I2CM_DIV_ADDR 0x3029 ++#define HDMI_PHY_I2CM_SOFTRSTZ_ADDR 0x302a ++#define HDMI_PHY_I2CM_SS_SCL_HCNT_1_ADDR 0x302b ++#define HDMI_PHY_I2CM_SS_SCL_HCNT_0_ADDR 0x302c ++#define HDMI_PHY_I2CM_SS_SCL_LCNT_1_ADDR 0x302d ++#define HDMI_PHY_I2CM_SS_SCL_LCNT_0_ADDR 0x302e ++#define HDMI_PHY_I2CM_FS_SCL_HCNT_1_ADDR 0x302f ++#define HDMI_PHY_I2CM_FS_SCL_HCNT_0_ADDR 0x3030 ++#define HDMI_PHY_I2CM_FS_SCL_LCNT_1_ADDR 0x3031 ++#define HDMI_PHY_I2CM_FS_SCL_LCNT_0_ADDR 0x3032 ++ ++/* Audio Sampler Registers */ ++#define HDMI_AUD_CONF0 0x3100 ++#define HDMI_AUD_CONF1 0x3101 ++#define HDMI_AUD_INT 0x3102 ++#define HDMI_AUD_CONF2 0x3103 ++#define HDMI_AUD_N1 0x3200 ++#define HDMI_AUD_N2 0x3201 ++#define HDMI_AUD_N3 0x3202 ++#define HDMI_AUD_CTS1 0x3203 ++#define HDMI_AUD_CTS2 0x3204 ++#define HDMI_AUD_CTS3 0x3205 ++#define HDMI_AUD_INPUTCLKFS 0x3206 ++#define HDMI_AUD_SPDIFINT 0x3302 ++#define HDMI_AUD_CONF0_HBR 0x3400 ++#define HDMI_AUD_HBR_STATUS 0x3401 ++#define HDMI_AUD_HBR_INT 0x3402 ++#define HDMI_AUD_HBR_POL 0x3403 ++#define HDMI_AUD_HBR_MASK 0x3404 ++ ++/* ++ * Generic Parallel Audio Interface Registers ++ * Not used as GPAUD interface is not enabled in hw ++ */ ++#define HDMI_GP_CONF0 0x3500 ++#define HDMI_GP_CONF1 0x3501 ++#define HDMI_GP_CONF2 0x3502 ++#define HDMI_GP_STAT 0x3503 ++#define HDMI_GP_INT 0x3504 ++#define HDMI_GP_MASK 0x3505 ++#define HDMI_GP_POL 0x3506 ++ ++/* Audio DMA Registers */ ++#define HDMI_AHB_DMA_CONF0 0x3600 ++#define HDMI_AHB_DMA_START 0x3601 ++#define HDMI_AHB_DMA_STOP 0x3602 ++#define HDMI_AHB_DMA_THRSLD 0x3603 ++#define HDMI_AHB_DMA_STRADDR0 0x3604 ++#define HDMI_AHB_DMA_STRADDR1 0x3605 ++#define HDMI_AHB_DMA_STRADDR2 0x3606 ++#define HDMI_AHB_DMA_STRADDR3 0x3607 ++#define HDMI_AHB_DMA_STPADDR0 0x3608 ++#define HDMI_AHB_DMA_STPADDR1 0x3609 ++#define HDMI_AHB_DMA_STPADDR2 0x360a ++#define HDMI_AHB_DMA_STPADDR3 0x360b ++#define HDMI_AHB_DMA_BSTADDR0 0x360c ++#define HDMI_AHB_DMA_BSTADDR1 0x360d ++#define HDMI_AHB_DMA_BSTADDR2 0x360e ++#define HDMI_AHB_DMA_BSTADDR3 0x360f ++#define HDMI_AHB_DMA_MBLENGTH0 0x3610 ++#define HDMI_AHB_DMA_MBLENGTH1 0x3611 ++#define HDMI_AHB_DMA_STAT 0x3612 ++#define HDMI_AHB_DMA_INT 0x3613 ++#define HDMI_AHB_DMA_MASK 0x3614 ++#define HDMI_AHB_DMA_POL 0x3615 ++#define HDMI_AHB_DMA_CONF1 0x3616 ++#define HDMI_AHB_DMA_BUFFSTAT 0x3617 ++#define HDMI_AHB_DMA_BUFFINT 0x3618 ++#define HDMI_AHB_DMA_BUFFMASK 0x3619 ++#define HDMI_AHB_DMA_BUFFPOL 0x361a ++ ++/* Main Controller Registers */ ++#define HDMI_MC_SFRDIV 0x4000 ++#define HDMI_MC_CLKDIS 0x4001 ++#define HDMI_MC_SWRSTZ 0x4002 ++#define HDMI_MC_OPCTRL 0x4003 ++#define HDMI_MC_FLOWCTRL 0x4004 ++#define HDMI_MC_PHYRSTZ 0x4005 ++#define HDMI_MC_LOCKONCLOCK 0x4006 ++#define HDMI_MC_HEACPHY_RST 0x4007 ++ ++/* Color Space Converter Registers */ ++#define HDMI_CSC_CFG 0x4100 ++#define HDMI_CSC_SCALE 0x4101 ++#define HDMI_CSC_COEF_A1_MSB 0x4102 ++#define HDMI_CSC_COEF_A1_LSB 0x4103 ++#define HDMI_CSC_COEF_A2_MSB 0x4104 ++#define HDMI_CSC_COEF_A2_LSB 0x4105 ++#define HDMI_CSC_COEF_A3_MSB 0x4106 ++#define HDMI_CSC_COEF_A3_LSB 0x4107 ++#define HDMI_CSC_COEF_A4_MSB 0x4108 ++#define HDMI_CSC_COEF_A4_LSB 0x4109 ++#define HDMI_CSC_COEF_B1_MSB 0x410A ++#define HDMI_CSC_COEF_B1_LSB 0x410B ++#define HDMI_CSC_COEF_B2_MSB 0x410C ++#define HDMI_CSC_COEF_B2_LSB 0x410D ++#define HDMI_CSC_COEF_B3_MSB 0x410E ++#define HDMI_CSC_COEF_B3_LSB 0x410F ++#define HDMI_CSC_COEF_B4_MSB 0x4110 ++#define HDMI_CSC_COEF_B4_LSB 0x4111 ++#define HDMI_CSC_COEF_C1_MSB 0x4112 ++#define HDMI_CSC_COEF_C1_LSB 0x4113 ++#define HDMI_CSC_COEF_C2_MSB 0x4114 ++#define HDMI_CSC_COEF_C2_LSB 0x4115 ++#define HDMI_CSC_COEF_C3_MSB 0x4116 ++#define HDMI_CSC_COEF_C3_LSB 0x4117 ++#define HDMI_CSC_COEF_C4_MSB 0x4118 ++#define HDMI_CSC_COEF_C4_LSB 0x4119 ++ ++/* HDCP Encryption Engine Registers */ ++#define HDMI_A_HDCPCFG0 0x5000 ++#define HDMI_A_HDCPCFG1 0x5001 ++#define HDMI_A_HDCPOBS0 0x5002 ++#define HDMI_A_HDCPOBS1 0x5003 ++#define HDMI_A_HDCPOBS2 0x5004 ++#define HDMI_A_HDCPOBS3 0x5005 ++#define HDMI_A_APIINTCLR 0x5006 ++#define HDMI_A_APIINTSTAT 0x5007 ++#define HDMI_A_APIINTMSK 0x5008 ++#define HDMI_A_VIDPOLCFG 0x5009 ++#define HDMI_A_OESSWCFG 0x500A ++#define HDMI_A_TIMER1SETUP0 0x500B ++#define HDMI_A_TIMER1SETUP1 0x500C ++#define HDMI_A_TIMER2SETUP0 0x500D ++#define HDMI_A_TIMER2SETUP1 0x500E ++#define HDMI_A_100MSCFG 0x500F ++#define HDMI_A_2SCFG0 0x5010 ++#define HDMI_A_2SCFG1 0x5011 ++#define HDMI_A_5SCFG0 0x5012 ++#define HDMI_A_5SCFG1 0x5013 ++#define HDMI_A_SRMVERLSB 0x5014 ++#define HDMI_A_SRMVERMSB 0x5015 ++#define HDMI_A_SRMCTRL 0x5016 ++#define HDMI_A_SFRSETUP 0x5017 ++#define HDMI_A_I2CHSETUP 0x5018 ++#define HDMI_A_INTSETUP 0x5019 ++#define HDMI_A_PRESETUP 0x501A ++#define HDMI_A_SRM_BASE 0x5020 ++ ++/* CEC Engine Registers */ ++#define HDMI_CEC_CTRL 0x7D00 ++#define HDMI_CEC_STAT 0x7D01 ++#define HDMI_CEC_MASK 0x7D02 ++#define HDMI_CEC_POLARITY 0x7D03 ++#define HDMI_CEC_INT 0x7D04 ++#define HDMI_CEC_ADDR_L 0x7D05 ++#define HDMI_CEC_ADDR_H 0x7D06 ++#define HDMI_CEC_TX_CNT 0x7D07 ++#define HDMI_CEC_RX_CNT 0x7D08 ++#define HDMI_CEC_TX_DATA0 0x7D10 ++#define HDMI_CEC_TX_DATA1 0x7D11 ++#define HDMI_CEC_TX_DATA2 0x7D12 ++#define HDMI_CEC_TX_DATA3 0x7D13 ++#define HDMI_CEC_TX_DATA4 0x7D14 ++#define HDMI_CEC_TX_DATA5 0x7D15 ++#define HDMI_CEC_TX_DATA6 0x7D16 ++#define HDMI_CEC_TX_DATA7 0x7D17 ++#define HDMI_CEC_TX_DATA8 0x7D18 ++#define HDMI_CEC_TX_DATA9 0x7D19 ++#define HDMI_CEC_TX_DATA10 0x7D1a ++#define HDMI_CEC_TX_DATA11 0x7D1b ++#define HDMI_CEC_TX_DATA12 0x7D1c ++#define HDMI_CEC_TX_DATA13 0x7D1d ++#define HDMI_CEC_TX_DATA14 0x7D1e ++#define HDMI_CEC_TX_DATA15 0x7D1f ++#define HDMI_CEC_RX_DATA0 0x7D20 ++#define HDMI_CEC_RX_DATA1 0x7D21 ++#define HDMI_CEC_RX_DATA2 0x7D22 ++#define HDMI_CEC_RX_DATA3 0x7D23 ++#define HDMI_CEC_RX_DATA4 0x7D24 ++#define HDMI_CEC_RX_DATA5 0x7D25 ++#define HDMI_CEC_RX_DATA6 0x7D26 ++#define HDMI_CEC_RX_DATA7 0x7D27 ++#define HDMI_CEC_RX_DATA8 0x7D28 ++#define HDMI_CEC_RX_DATA9 0x7D29 ++#define HDMI_CEC_RX_DATA10 0x7D2a ++#define HDMI_CEC_RX_DATA11 0x7D2b ++#define HDMI_CEC_RX_DATA12 0x7D2c ++#define HDMI_CEC_RX_DATA13 0x7D2d ++#define HDMI_CEC_RX_DATA14 0x7D2e ++#define HDMI_CEC_RX_DATA15 0x7D2f ++#define HDMI_CEC_LOCK 0x7D30 ++#define HDMI_CEC_WKUPCTRL 0x7D31 ++ ++/* I2C Master Registers (E-DDC) */ ++#define HDMI_I2CM_SLAVE 0x7E00 ++#define HDMI_I2CM_ADDRESS 0x7E01 ++#define HDMI_I2CM_DATAO 0x7E02 ++#define HDMI_I2CM_DATAI 0x7E03 ++#define HDMI_I2CM_OPERATION 0x7E04 ++#define HDMI_I2CM_INT 0x7E05 ++#define HDMI_I2CM_CTLINT 0x7E06 ++#define HDMI_I2CM_DIV 0x7E07 ++#define HDMI_I2CM_SEGADDR 0x7E08 ++#define HDMI_I2CM_SOFTRSTZ 0x7E09 ++#define HDMI_I2CM_SEGPTR 0x7E0A ++#define HDMI_I2CM_SS_SCL_HCNT_1_ADDR 0x7E0B ++#define HDMI_I2CM_SS_SCL_HCNT_0_ADDR 0x7E0C ++#define HDMI_I2CM_SS_SCL_LCNT_1_ADDR 0x7E0D ++#define HDMI_I2CM_SS_SCL_LCNT_0_ADDR 0x7E0E ++#define HDMI_I2CM_FS_SCL_HCNT_1_ADDR 0x7E0F ++#define HDMI_I2CM_FS_SCL_HCNT_0_ADDR 0x7E10 ++#define HDMI_I2CM_FS_SCL_LCNT_1_ADDR 0x7E11 ++#define HDMI_I2CM_FS_SCL_LCNT_0_ADDR 0x7E12 ++ ++enum { ++/* PRODUCT_ID0 field values */ ++ HDMI_PRODUCT_ID0_HDMI_TX = 0xa0, ++ ++/* PRODUCT_ID1 field values */ ++ HDMI_PRODUCT_ID1_HDCP = 0xc0, ++ HDMI_PRODUCT_ID1_HDMI_RX = 0x02, ++ HDMI_PRODUCT_ID1_HDMI_TX = 0x01, ++ ++/* CONFIG0_ID field values */ ++ HDMI_CONFIG0_I2S = 0x10, ++ ++/* CONFIG1_ID field values */ ++ HDMI_CONFIG1_AHB = 0x01, ++ ++/* CONFIG3_ID field values */ ++ HDMI_CONFIG3_AHBAUDDMA = 0x02, ++ HDMI_CONFIG3_GPAUD = 0x01, ++ ++/* IH_FC_INT2 field values */ ++ HDMI_IH_FC_INT2_OVERFLOW_MASK = 0x03, ++ HDMI_IH_FC_INT2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_IH_FC_INT2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* IH_FC_STAT2 field values */ ++ HDMI_IH_FC_STAT2_OVERFLOW_MASK = 0x03, ++ HDMI_IH_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_IH_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* IH_PHY_STAT0 field values */ ++ HDMI_IH_PHY_STAT0_RX_SENSE3 = 0x20, ++ HDMI_IH_PHY_STAT0_RX_SENSE2 = 0x10, ++ HDMI_IH_PHY_STAT0_RX_SENSE1 = 0x8, ++ HDMI_IH_PHY_STAT0_RX_SENSE0 = 0x4, ++ HDMI_IH_PHY_STAT0_TX_PHY_LOCK = 0x2, ++ HDMI_IH_PHY_STAT0_HPD = 0x1, ++ ++/* IH_I2CM_STAT0 and IH_MUTE_I2CM_STAT0 field values */ ++ HDMI_IH_I2CM_STAT0_DONE = 0x2, ++ HDMI_IH_I2CM_STAT0_ERROR = 0x1, ++ ++/* IH_MUTE_I2CMPHY_STAT0 field values */ ++ HDMI_IH_MUTE_I2CMPHY_STAT0_I2CMPHYDONE = 0x2, ++ HDMI_IH_MUTE_I2CMPHY_STAT0_I2CMPHYERROR = 0x1, ++ ++/* IH_AHBDMAAUD_STAT0 field values */ ++ HDMI_IH_AHBDMAAUD_STAT0_ERROR = 0x20, ++ HDMI_IH_AHBDMAAUD_STAT0_LOST = 0x10, ++ HDMI_IH_AHBDMAAUD_STAT0_RETRY = 0x08, ++ HDMI_IH_AHBDMAAUD_STAT0_DONE = 0x04, ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFFULL = 0x02, ++ HDMI_IH_AHBDMAAUD_STAT0_BUFFEMPTY = 0x01, ++ ++/* IH_MUTE_FC_STAT2 field values */ ++ HDMI_IH_MUTE_FC_STAT2_OVERFLOW_MASK = 0x03, ++ HDMI_IH_MUTE_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_IH_MUTE_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* IH_MUTE_AHBDMAAUD_STAT0 field values */ ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_ERROR = 0x20, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_LOST = 0x10, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_RETRY = 0x08, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_DONE = 0x04, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFFULL = 0x02, ++ HDMI_IH_MUTE_AHBDMAAUD_STAT0_BUFFEMPTY = 0x01, ++ ++/* IH_MUTE field values */ ++ HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT = 0x2, ++ HDMI_IH_MUTE_MUTE_ALL_INTERRUPT = 0x1, ++ ++/* TX_INVID0 field values */ ++ HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_MASK = 0x80, ++ HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_ENABLE = 0x80, ++ HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE = 0x00, ++ HDMI_TX_INVID0_VIDEO_MAPPING_MASK = 0x1F, ++ HDMI_TX_INVID0_VIDEO_MAPPING_OFFSET = 0, ++ ++/* TX_INSTUFFING field values */ ++ HDMI_TX_INSTUFFING_BDBDATA_STUFFING_MASK = 0x4, ++ HDMI_TX_INSTUFFING_BDBDATA_STUFFING_ENABLE = 0x4, ++ HDMI_TX_INSTUFFING_BDBDATA_STUFFING_DISABLE = 0x0, ++ HDMI_TX_INSTUFFING_RCRDATA_STUFFING_MASK = 0x2, ++ HDMI_TX_INSTUFFING_RCRDATA_STUFFING_ENABLE = 0x2, ++ HDMI_TX_INSTUFFING_RCRDATA_STUFFING_DISABLE = 0x0, ++ HDMI_TX_INSTUFFING_GYDATA_STUFFING_MASK = 0x1, ++ HDMI_TX_INSTUFFING_GYDATA_STUFFING_ENABLE = 0x1, ++ HDMI_TX_INSTUFFING_GYDATA_STUFFING_DISABLE = 0x0, ++ ++/* VP_PR_CD field values */ ++ HDMI_VP_PR_CD_COLOR_DEPTH_MASK = 0xF0, ++ HDMI_VP_PR_CD_COLOR_DEPTH_OFFSET = 4, ++ HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK = 0x0F, ++ HDMI_VP_PR_CD_DESIRED_PR_FACTOR_OFFSET = 0, ++ ++/* VP_STUFF field values */ ++ HDMI_VP_STUFF_IDEFAULT_PHASE_MASK = 0x20, ++ HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET = 5, ++ HDMI_VP_STUFF_IFIX_PP_TO_LAST_MASK = 0x10, ++ HDMI_VP_STUFF_IFIX_PP_TO_LAST_OFFSET = 4, ++ HDMI_VP_STUFF_ICX_GOTO_P0_ST_MASK = 0x8, ++ HDMI_VP_STUFF_ICX_GOTO_P0_ST_OFFSET = 3, ++ HDMI_VP_STUFF_YCC422_STUFFING_MASK = 0x4, ++ HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE = 0x4, ++ HDMI_VP_STUFF_YCC422_STUFFING_DIRECT_MODE = 0x0, ++ HDMI_VP_STUFF_PP_STUFFING_MASK = 0x2, ++ HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE = 0x2, ++ HDMI_VP_STUFF_PP_STUFFING_DIRECT_MODE = 0x0, ++ HDMI_VP_STUFF_PR_STUFFING_MASK = 0x1, ++ HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE = 0x1, ++ HDMI_VP_STUFF_PR_STUFFING_DIRECT_MODE = 0x0, ++ ++/* VP_CONF field values */ ++ HDMI_VP_CONF_BYPASS_EN_MASK = 0x40, ++ HDMI_VP_CONF_BYPASS_EN_ENABLE = 0x40, ++ HDMI_VP_CONF_BYPASS_EN_DISABLE = 0x00, ++ HDMI_VP_CONF_PP_EN_ENMASK = 0x20, ++ HDMI_VP_CONF_PP_EN_ENABLE = 0x20, ++ HDMI_VP_CONF_PP_EN_DISABLE = 0x00, ++ HDMI_VP_CONF_PR_EN_MASK = 0x10, ++ HDMI_VP_CONF_PR_EN_ENABLE = 0x10, ++ HDMI_VP_CONF_PR_EN_DISABLE = 0x00, ++ HDMI_VP_CONF_YCC422_EN_MASK = 0x8, ++ HDMI_VP_CONF_YCC422_EN_ENABLE = 0x8, ++ HDMI_VP_CONF_YCC422_EN_DISABLE = 0x0, ++ HDMI_VP_CONF_BYPASS_SELECT_MASK = 0x4, ++ HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER = 0x4, ++ HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER = 0x0, ++ HDMI_VP_CONF_OUTPUT_SELECTOR_MASK = 0x3, ++ HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS = 0x3, ++ HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422 = 0x1, ++ HDMI_VP_CONF_OUTPUT_SELECTOR_PP = 0x0, ++ ++/* VP_REMAP field values */ ++ HDMI_VP_REMAP_MASK = 0x3, ++ HDMI_VP_REMAP_YCC422_24bit = 0x2, ++ HDMI_VP_REMAP_YCC422_20bit = 0x1, ++ HDMI_VP_REMAP_YCC422_16bit = 0x0, ++ ++/* FC_INVIDCONF field values */ ++ HDMI_FC_INVIDCONF_HDCP_KEEPOUT_MASK = 0x80, ++ HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE = 0x80, ++ HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE = 0x00, ++ HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_MASK = 0x40, ++ HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH = 0x40, ++ HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW = 0x00, ++ HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_MASK = 0x20, ++ HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH = 0x20, ++ HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW = 0x00, ++ HDMI_FC_INVIDCONF_DE_IN_POLARITY_MASK = 0x10, ++ HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_HIGH = 0x10, ++ HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_LOW = 0x00, ++ HDMI_FC_INVIDCONF_DVI_MODEZ_MASK = 0x8, ++ HDMI_FC_INVIDCONF_DVI_MODEZ_HDMI_MODE = 0x8, ++ HDMI_FC_INVIDCONF_DVI_MODEZ_DVI_MODE = 0x0, ++ HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_MASK = 0x2, ++ HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH = 0x2, ++ HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_LOW = 0x0, ++ HDMI_FC_INVIDCONF_IN_I_P_MASK = 0x1, ++ HDMI_FC_INVIDCONF_IN_I_P_INTERLACED = 0x1, ++ HDMI_FC_INVIDCONF_IN_I_P_PROGRESSIVE = 0x0, ++ ++/* FC_AUDICONF0 field values */ ++ HDMI_FC_AUDICONF0_CC_OFFSET = 4, ++ HDMI_FC_AUDICONF0_CC_MASK = 0x70, ++ HDMI_FC_AUDICONF0_CT_OFFSET = 0, ++ HDMI_FC_AUDICONF0_CT_MASK = 0xF, ++ ++/* FC_AUDICONF1 field values */ ++ HDMI_FC_AUDICONF1_SS_OFFSET = 3, ++ HDMI_FC_AUDICONF1_SS_MASK = 0x18, ++ HDMI_FC_AUDICONF1_SF_OFFSET = 0, ++ HDMI_FC_AUDICONF1_SF_MASK = 0x7, ++ ++/* FC_AUDICONF3 field values */ ++ HDMI_FC_AUDICONF3_LFEPBL_OFFSET = 5, ++ HDMI_FC_AUDICONF3_LFEPBL_MASK = 0x60, ++ HDMI_FC_AUDICONF3_DM_INH_OFFSET = 4, ++ HDMI_FC_AUDICONF3_DM_INH_MASK = 0x10, ++ HDMI_FC_AUDICONF3_LSV_OFFSET = 0, ++ HDMI_FC_AUDICONF3_LSV_MASK = 0xF, ++ ++/* FC_AUDSCHNLS0 field values */ ++ HDMI_FC_AUDSCHNLS0_CGMSA_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS0_CGMSA_MASK = 0x30, ++ HDMI_FC_AUDSCHNLS0_COPYRIGHT_OFFSET = 0, ++ HDMI_FC_AUDSCHNLS0_COPYRIGHT_MASK = 0x01, ++ ++/* FC_AUDSCHNLS3-6 field values */ ++ HDMI_FC_AUDSCHNLS3_OIEC_CH0_OFFSET = 0, ++ HDMI_FC_AUDSCHNLS3_OIEC_CH0_MASK = 0x0f, ++ HDMI_FC_AUDSCHNLS3_OIEC_CH1_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS3_OIEC_CH1_MASK = 0xf0, ++ HDMI_FC_AUDSCHNLS4_OIEC_CH2_OFFSET = 0, ++ HDMI_FC_AUDSCHNLS4_OIEC_CH2_MASK = 0x0f, ++ HDMI_FC_AUDSCHNLS4_OIEC_CH3_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS4_OIEC_CH3_MASK = 0xf0, ++ ++ HDMI_FC_AUDSCHNLS5_OIEC_CH0_OFFSET = 0, ++ HDMI_FC_AUDSCHNLS5_OIEC_CH0_MASK = 0x0f, ++ HDMI_FC_AUDSCHNLS5_OIEC_CH1_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS5_OIEC_CH1_MASK = 0xf0, ++ HDMI_FC_AUDSCHNLS6_OIEC_CH2_OFFSET = 0, ++ HDMI_FC_AUDSCHNLS6_OIEC_CH2_MASK = 0x0f, ++ HDMI_FC_AUDSCHNLS6_OIEC_CH3_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS6_OIEC_CH3_MASK = 0xf0, ++ ++/* HDMI_FC_AUDSCHNLS7 field values */ ++ HDMI_FC_AUDSCHNLS7_ACCURACY_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS7_ACCURACY_MASK = 0x30, ++ ++/* HDMI_FC_AUDSCHNLS8 field values */ ++ HDMI_FC_AUDSCHNLS8_ORIGSAMPFREQ_MASK = 0xf0, ++ HDMI_FC_AUDSCHNLS8_ORIGSAMPFREQ_OFFSET = 4, ++ HDMI_FC_AUDSCHNLS8_WORDLEGNTH_MASK = 0x0f, ++ HDMI_FC_AUDSCHNLS8_WORDLEGNTH_OFFSET = 0, ++ ++/* FC_AUDSCONF field values */ ++ HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_MASK = 0xF0, ++ HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_OFFSET = 4, ++ HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_MASK = 0x1, ++ HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_OFFSET = 0, ++ HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_LAYOUT1 = 0x1, ++ HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_LAYOUT0 = 0x0, ++ ++/* FC_STAT2 field values */ ++ HDMI_FC_STAT2_OVERFLOW_MASK = 0x03, ++ HDMI_FC_STAT2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_FC_STAT2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* FC_INT2 field values */ ++ HDMI_FC_INT2_OVERFLOW_MASK = 0x03, ++ HDMI_FC_INT2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_FC_INT2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* FC_MASK2 field values */ ++ HDMI_FC_MASK2_OVERFLOW_MASK = 0x03, ++ HDMI_FC_MASK2_LOW_PRIORITY_OVERFLOW = 0x02, ++ HDMI_FC_MASK2_HIGH_PRIORITY_OVERFLOW = 0x01, ++ ++/* FC_PRCONF field values */ ++ HDMI_FC_PRCONF_INCOMING_PR_FACTOR_MASK = 0xF0, ++ HDMI_FC_PRCONF_INCOMING_PR_FACTOR_OFFSET = 4, ++ HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_MASK = 0x0F, ++ HDMI_FC_PRCONF_OUTPUT_PR_FACTOR_OFFSET = 0, ++ ++/* FC_AVICONF0-FC_AVICONF3 field values */ ++ HDMI_FC_AVICONF0_PIX_FMT_MASK = 0x03, ++ HDMI_FC_AVICONF0_PIX_FMT_RGB = 0x00, ++ HDMI_FC_AVICONF0_PIX_FMT_YCBCR422 = 0x01, ++ HDMI_FC_AVICONF0_PIX_FMT_YCBCR444 = 0x02, ++ HDMI_FC_AVICONF0_ACTIVE_FMT_MASK = 0x40, ++ HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT = 0x40, ++ HDMI_FC_AVICONF0_ACTIVE_FMT_NO_INFO = 0x00, ++ HDMI_FC_AVICONF0_BAR_DATA_MASK = 0x0C, ++ HDMI_FC_AVICONF0_BAR_DATA_NO_DATA = 0x00, ++ HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR = 0x04, ++ HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR = 0x08, ++ HDMI_FC_AVICONF0_BAR_DATA_VERT_HORIZ_BAR = 0x0C, ++ HDMI_FC_AVICONF0_SCAN_INFO_MASK = 0x30, ++ HDMI_FC_AVICONF0_SCAN_INFO_OVERSCAN = 0x10, ++ HDMI_FC_AVICONF0_SCAN_INFO_UNDERSCAN = 0x20, ++ HDMI_FC_AVICONF0_SCAN_INFO_NODATA = 0x00, ++ ++ HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_MASK = 0x0F, ++ HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_USE_CODED = 0x08, ++ HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_4_3 = 0x09, ++ HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_16_9 = 0x0A, ++ HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_14_9 = 0x0B, ++ HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_MASK = 0x30, ++ HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_NO_DATA = 0x00, ++ HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_4_3 = 0x10, ++ HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_16_9 = 0x20, ++ HDMI_FC_AVICONF1_COLORIMETRY_MASK = 0xC0, ++ HDMI_FC_AVICONF1_COLORIMETRY_NO_DATA = 0x00, ++ HDMI_FC_AVICONF1_COLORIMETRY_SMPTE = 0x40, ++ HDMI_FC_AVICONF1_COLORIMETRY_ITUR = 0x80, ++ HDMI_FC_AVICONF1_COLORIMETRY_EXTENDED_INFO = 0xC0, ++ ++ HDMI_FC_AVICONF2_SCALING_MASK = 0x03, ++ HDMI_FC_AVICONF2_SCALING_NONE = 0x00, ++ HDMI_FC_AVICONF2_SCALING_HORIZ = 0x01, ++ HDMI_FC_AVICONF2_SCALING_VERT = 0x02, ++ HDMI_FC_AVICONF2_SCALING_HORIZ_VERT = 0x03, ++ HDMI_FC_AVICONF2_RGB_QUANT_MASK = 0x0C, ++ HDMI_FC_AVICONF2_RGB_QUANT_DEFAULT = 0x00, ++ HDMI_FC_AVICONF2_RGB_QUANT_LIMITED_RANGE = 0x04, ++ HDMI_FC_AVICONF2_RGB_QUANT_FULL_RANGE = 0x08, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_MASK = 0x70, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC601 = 0x00, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC709 = 0x10, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_SYCC601 = 0x20, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_YCC601 = 0x30, ++ HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_RGB = 0x40, ++ HDMI_FC_AVICONF2_IT_CONTENT_MASK = 0x80, ++ HDMI_FC_AVICONF2_IT_CONTENT_NO_DATA = 0x00, ++ HDMI_FC_AVICONF2_IT_CONTENT_VALID = 0x80, ++ ++ HDMI_FC_AVICONF3_IT_CONTENT_TYPE_MASK = 0x03, ++ HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GRAPHICS = 0x00, ++ HDMI_FC_AVICONF3_IT_CONTENT_TYPE_PHOTO = 0x01, ++ HDMI_FC_AVICONF3_IT_CONTENT_TYPE_CINEMA = 0x02, ++ HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GAME = 0x03, ++ HDMI_FC_AVICONF3_QUANT_RANGE_MASK = 0x0C, ++ HDMI_FC_AVICONF3_QUANT_RANGE_LIMITED = 0x00, ++ HDMI_FC_AVICONF3_QUANT_RANGE_FULL = 0x04, ++ ++/* FC_DBGFORCE field values */ ++ HDMI_FC_DBGFORCE_FORCEAUDIO = 0x10, ++ HDMI_FC_DBGFORCE_FORCEVIDEO = 0x1, ++ ++/* PHY_CONF0 field values */ ++ HDMI_PHY_CONF0_PDZ_MASK = 0x80, ++ HDMI_PHY_CONF0_PDZ_OFFSET = 7, ++ HDMI_PHY_CONF0_ENTMDS_MASK = 0x40, ++ HDMI_PHY_CONF0_ENTMDS_OFFSET = 6, ++ HDMI_PHY_CONF0_SVSRET_MASK = 0x20, ++ HDMI_PHY_CONF0_SVSRET_OFFSET = 5, ++ HDMI_PHY_CONF0_GEN2_PDDQ_MASK = 0x10, ++ HDMI_PHY_CONF0_GEN2_PDDQ_OFFSET = 4, ++ HDMI_PHY_CONF0_GEN2_TXPWRON_MASK = 0x8, ++ HDMI_PHY_CONF0_GEN2_TXPWRON_OFFSET = 3, ++ HDMI_PHY_CONF0_GEN2_ENHPDRXSENSE_MASK = 0x4, ++ HDMI_PHY_CONF0_GEN2_ENHPDRXSENSE_OFFSET = 2, ++ HDMI_PHY_CONF0_SELDATAENPOL_MASK = 0x2, ++ HDMI_PHY_CONF0_SELDATAENPOL_OFFSET = 1, ++ HDMI_PHY_CONF0_SELDIPIF_MASK = 0x1, ++ HDMI_PHY_CONF0_SELDIPIF_OFFSET = 0, ++ ++/* PHY_TST0 field values */ ++ HDMI_PHY_TST0_TSTCLR_MASK = 0x20, ++ HDMI_PHY_TST0_TSTCLR_OFFSET = 5, ++ HDMI_PHY_TST0_TSTEN_MASK = 0x10, ++ HDMI_PHY_TST0_TSTEN_OFFSET = 4, ++ HDMI_PHY_TST0_TSTCLK_MASK = 0x1, ++ HDMI_PHY_TST0_TSTCLK_OFFSET = 0, ++ ++/* PHY_STAT0 field values */ ++ HDMI_PHY_RX_SENSE3 = 0x80, ++ HDMI_PHY_RX_SENSE2 = 0x40, ++ HDMI_PHY_RX_SENSE1 = 0x20, ++ HDMI_PHY_RX_SENSE0 = 0x10, ++ HDMI_PHY_HPD = 0x02, ++ HDMI_PHY_TX_PHY_LOCK = 0x01, ++ ++/* PHY_I2CM_SLAVE_ADDR field values */ ++ HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69, ++ HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49, ++ ++/* PHY_I2CM_OPERATION_ADDR field values */ ++ HDMI_PHY_I2CM_OPERATION_ADDR_WRITE = 0x10, ++ HDMI_PHY_I2CM_OPERATION_ADDR_READ = 0x1, ++ ++/* HDMI_PHY_I2CM_INT_ADDR */ ++ HDMI_PHY_I2CM_INT_ADDR_DONE_POL = 0x08, ++ HDMI_PHY_I2CM_INT_ADDR_DONE_MASK = 0x04, ++ ++/* HDMI_PHY_I2CM_CTLINT_ADDR */ ++ HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL = 0x80, ++ HDMI_PHY_I2CM_CTLINT_ADDR_NAC_MASK = 0x40, ++ HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL = 0x08, ++ HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_MASK = 0x04, ++ ++/* AUD_CONF0 field values */ ++ HDMI_AUD_CONF0_SW_RESET = 0x80, ++ HDMI_AUD_CONF0_I2S_ALL_ENABLE = 0x2F, ++ ++/* AUD_CONF1 field values */ ++ HDMI_AUD_CONF1_MODE_I2S = 0x00, ++ HDMI_AUD_CONF1_MODE_RIGHT_J = 0x02, ++ HDMI_AUD_CONF1_MODE_LEFT_J = 0x04, ++ HDMI_AUD_CONF1_WIDTH_16 = 0x10, ++ HDMI_AUD_CONF1_WIDTH_24 = 0x18, ++ ++/* AUD_CTS3 field values */ ++ HDMI_AUD_CTS3_N_SHIFT_OFFSET = 5, ++ HDMI_AUD_CTS3_N_SHIFT_MASK = 0xe0, ++ HDMI_AUD_CTS3_N_SHIFT_1 = 0, ++ HDMI_AUD_CTS3_N_SHIFT_16 = 0x20, ++ HDMI_AUD_CTS3_N_SHIFT_32 = 0x40, ++ HDMI_AUD_CTS3_N_SHIFT_64 = 0x60, ++ HDMI_AUD_CTS3_N_SHIFT_128 = 0x80, ++ HDMI_AUD_CTS3_N_SHIFT_256 = 0xa0, ++ /* note that the CTS3 MANUAL bit has been removed ++ from our part. Can't set it, will read as 0. */ ++ HDMI_AUD_CTS3_CTS_MANUAL = 0x10, ++ HDMI_AUD_CTS3_AUDCTS19_16_MASK = 0x0f, ++ ++/* HDMI_AUD_INPUTCLKFS field values */ ++ HDMI_AUD_INPUTCLKFS_128FS = 0, ++ HDMI_AUD_INPUTCLKFS_256FS = 1, ++ HDMI_AUD_INPUTCLKFS_512FS = 2, ++ HDMI_AUD_INPUTCLKFS_64FS = 4, ++ ++/* AHB_DMA_CONF0 field values */ ++ HDMI_AHB_DMA_CONF0_SW_FIFO_RST_OFFSET = 7, ++ HDMI_AHB_DMA_CONF0_SW_FIFO_RST_MASK = 0x80, ++ HDMI_AHB_DMA_CONF0_HBR = 0x10, ++ HDMI_AHB_DMA_CONF0_EN_HLOCK_OFFSET = 3, ++ HDMI_AHB_DMA_CONF0_EN_HLOCK_MASK = 0x08, ++ HDMI_AHB_DMA_CONF0_INCR_TYPE_OFFSET = 1, ++ HDMI_AHB_DMA_CONF0_INCR_TYPE_MASK = 0x06, ++ HDMI_AHB_DMA_CONF0_INCR4 = 0x0, ++ HDMI_AHB_DMA_CONF0_INCR8 = 0x2, ++ HDMI_AHB_DMA_CONF0_INCR16 = 0x4, ++ HDMI_AHB_DMA_CONF0_BURST_MODE = 0x1, ++ ++/* HDMI_AHB_DMA_START field values */ ++ HDMI_AHB_DMA_START_START_OFFSET = 0, ++ HDMI_AHB_DMA_START_START_MASK = 0x01, ++ ++/* HDMI_AHB_DMA_STOP field values */ ++ HDMI_AHB_DMA_STOP_STOP_OFFSET = 0, ++ HDMI_AHB_DMA_STOP_STOP_MASK = 0x01, ++ ++/* AHB_DMA_STAT, AHB_DMA_INT, AHB_DMA_MASK, AHB_DMA_POL field values */ ++ HDMI_AHB_DMA_DONE = 0x80, ++ HDMI_AHB_DMA_RETRY_SPLIT = 0x40, ++ HDMI_AHB_DMA_LOSTOWNERSHIP = 0x20, ++ HDMI_AHB_DMA_ERROR = 0x10, ++ HDMI_AHB_DMA_FIFO_THREMPTY = 0x04, ++ HDMI_AHB_DMA_FIFO_FULL = 0x02, ++ HDMI_AHB_DMA_FIFO_EMPTY = 0x01, ++ ++/* AHB_DMA_BUFFSTAT, AHB_DMA_BUFFINT,AHB_DMA_BUFFMASK,AHB_DMA_BUFFPOL values */ ++ HDMI_AHB_DMA_BUFFSTAT_FULL = 0x02, ++ HDMI_AHB_DMA_BUFFSTAT_EMPTY = 0x01, ++ ++/* MC_CLKDIS field values */ ++ HDMI_MC_CLKDIS_HDCPCLK_DISABLE = 0x40, ++ HDMI_MC_CLKDIS_CECCLK_DISABLE = 0x20, ++ HDMI_MC_CLKDIS_CSCCLK_DISABLE = 0x10, ++ HDMI_MC_CLKDIS_AUDCLK_DISABLE = 0x8, ++ HDMI_MC_CLKDIS_PREPCLK_DISABLE = 0x4, ++ HDMI_MC_CLKDIS_TMDSCLK_DISABLE = 0x2, ++ HDMI_MC_CLKDIS_PIXELCLK_DISABLE = 0x1, ++ ++/* MC_SWRSTZ field values */ ++ HDMI_MC_SWRSTZ_TMDSSWRST_REQ = 0x02, ++ ++/* MC_FLOWCTRL field values */ ++ HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_MASK = 0x1, ++ HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH = 0x1, ++ HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS = 0x0, ++ ++/* MC_PHYRSTZ field values */ ++ HDMI_MC_PHYRSTZ_PHYRSTZ = 0x01, ++ ++/* MC_HEACPHY_RST field values */ ++ HDMI_MC_HEACPHY_RST_ASSERT = 0x1, ++ HDMI_MC_HEACPHY_RST_DEASSERT = 0x0, ++ ++/* CSC_CFG field values */ ++ HDMI_CSC_CFG_INTMODE_MASK = 0x30, ++ HDMI_CSC_CFG_INTMODE_OFFSET = 4, ++ HDMI_CSC_CFG_INTMODE_DISABLE = 0x00, ++ HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA1 = 0x10, ++ HDMI_CSC_CFG_INTMODE_CHROMA_INT_FORMULA2 = 0x20, ++ HDMI_CSC_CFG_DECMODE_MASK = 0x3, ++ HDMI_CSC_CFG_DECMODE_OFFSET = 0, ++ HDMI_CSC_CFG_DECMODE_DISABLE = 0x0, ++ HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA1 = 0x1, ++ HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA2 = 0x2, ++ HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA3 = 0x3, ++ ++/* CSC_SCALE field values */ ++ HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK = 0xF0, ++ HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP = 0x00, ++ HDMI_CSC_SCALE_CSC_COLORDE_PTH_30BPP = 0x50, ++ HDMI_CSC_SCALE_CSC_COLORDE_PTH_36BPP = 0x60, ++ HDMI_CSC_SCALE_CSC_COLORDE_PTH_48BPP = 0x70, ++ HDMI_CSC_SCALE_CSCSCALE_MASK = 0x03, ++ ++/* A_HDCPCFG0 field values */ ++ HDMI_A_HDCPCFG0_ELVENA_MASK = 0x80, ++ HDMI_A_HDCPCFG0_ELVENA_ENABLE = 0x80, ++ HDMI_A_HDCPCFG0_ELVENA_DISABLE = 0x00, ++ HDMI_A_HDCPCFG0_I2CFASTMODE_MASK = 0x40, ++ HDMI_A_HDCPCFG0_I2CFASTMODE_ENABLE = 0x40, ++ HDMI_A_HDCPCFG0_I2CFASTMODE_DISABLE = 0x00, ++ HDMI_A_HDCPCFG0_BYPENCRYPTION_MASK = 0x20, ++ HDMI_A_HDCPCFG0_BYPENCRYPTION_ENABLE = 0x20, ++ HDMI_A_HDCPCFG0_BYPENCRYPTION_DISABLE = 0x00, ++ HDMI_A_HDCPCFG0_SYNCRICHECK_MASK = 0x10, ++ HDMI_A_HDCPCFG0_SYNCRICHECK_ENABLE = 0x10, ++ HDMI_A_HDCPCFG0_SYNCRICHECK_DISABLE = 0x00, ++ HDMI_A_HDCPCFG0_AVMUTE_MASK = 0x8, ++ HDMI_A_HDCPCFG0_AVMUTE_ENABLE = 0x8, ++ HDMI_A_HDCPCFG0_AVMUTE_DISABLE = 0x0, ++ HDMI_A_HDCPCFG0_RXDETECT_MASK = 0x4, ++ HDMI_A_HDCPCFG0_RXDETECT_ENABLE = 0x4, ++ HDMI_A_HDCPCFG0_RXDETECT_DISABLE = 0x0, ++ HDMI_A_HDCPCFG0_EN11FEATURE_MASK = 0x2, ++ HDMI_A_HDCPCFG0_EN11FEATURE_ENABLE = 0x2, ++ HDMI_A_HDCPCFG0_EN11FEATURE_DISABLE = 0x0, ++ HDMI_A_HDCPCFG0_HDMIDVI_MASK = 0x1, ++ HDMI_A_HDCPCFG0_HDMIDVI_HDMI = 0x1, ++ HDMI_A_HDCPCFG0_HDMIDVI_DVI = 0x0, ++ ++/* A_HDCPCFG1 field values */ ++ HDMI_A_HDCPCFG1_DISSHA1CHECK_MASK = 0x8, ++ HDMI_A_HDCPCFG1_DISSHA1CHECK_DISABLE = 0x8, ++ HDMI_A_HDCPCFG1_DISSHA1CHECK_ENABLE = 0x0, ++ HDMI_A_HDCPCFG1_PH2UPSHFTENC_MASK = 0x4, ++ HDMI_A_HDCPCFG1_PH2UPSHFTENC_ENABLE = 0x4, ++ HDMI_A_HDCPCFG1_PH2UPSHFTENC_DISABLE = 0x0, ++ HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_MASK = 0x2, ++ HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_DISABLE = 0x2, ++ HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_ENABLE = 0x0, ++ HDMI_A_HDCPCFG1_SWRESET_MASK = 0x1, ++ HDMI_A_HDCPCFG1_SWRESET_ASSERT = 0x0, ++ ++/* A_VIDPOLCFG field values */ ++ HDMI_A_VIDPOLCFG_UNENCRYPTCONF_MASK = 0x60, ++ HDMI_A_VIDPOLCFG_UNENCRYPTCONF_OFFSET = 5, ++ HDMI_A_VIDPOLCFG_DATAENPOL_MASK = 0x10, ++ HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_HIGH = 0x10, ++ HDMI_A_VIDPOLCFG_DATAENPOL_ACTIVE_LOW = 0x0, ++ HDMI_A_VIDPOLCFG_VSYNCPOL_MASK = 0x8, ++ HDMI_A_VIDPOLCFG_VSYNCPOL_ACTIVE_HIGH = 0x8, ++ HDMI_A_VIDPOLCFG_VSYNCPOL_ACTIVE_LOW = 0x0, ++ HDMI_A_VIDPOLCFG_HSYNCPOL_MASK = 0x2, ++ HDMI_A_VIDPOLCFG_HSYNCPOL_ACTIVE_HIGH = 0x2, ++ HDMI_A_VIDPOLCFG_HSYNCPOL_ACTIVE_LOW = 0x0, ++ ++/* I2CM_OPERATION field values */ ++ HDMI_I2CM_OPERATION_WRITE = 0x10, ++ HDMI_I2CM_OPERATION_READ_EXT = 0x2, ++ HDMI_I2CM_OPERATION_READ = 0x1, ++ ++/* I2CM_INT field values */ ++ HDMI_I2CM_INT_DONE_POL = 0x8, ++ HDMI_I2CM_INT_DONE_MASK = 0x4, ++ ++/* I2CM_CTLINT field values */ ++ HDMI_I2CM_CTLINT_NAC_POL = 0x80, ++ HDMI_I2CM_CTLINT_NAC_MASK = 0x40, ++ HDMI_I2CM_CTLINT_ARB_POL = 0x8, ++ HDMI_I2CM_CTLINT_ARB_MASK = 0x4, ++}; ++ ++/* ++ * HDMI 3D TX PHY registers ++ */ ++#define HDMI_3D_TX_PHY_PWRCTRL 0x00 ++#define HDMI_3D_TX_PHY_SERDIVCTRL 0x01 ++#define HDMI_3D_TX_PHY_SERCKCTRL 0x02 ++#define HDMI_3D_TX_PHY_SERCKKILLCTRL 0x03 ++#define HDMI_3D_TX_PHY_TXRESCTRL 0x04 ++#define HDMI_3D_TX_PHY_CKCALCTRL 0x05 ++#define HDMI_3D_TX_PHY_CPCE_CTRL 0x06 ++#define HDMI_3D_TX_PHY_TXCLKMEASCTRL 0x07 ++#define HDMI_3D_TX_PHY_TXMEASCTRL 0x08 ++#define HDMI_3D_TX_PHY_CKSYMTXCTRL 0x09 ++#define HDMI_3D_TX_PHY_CMPSEQCTRL 0x0a ++#define HDMI_3D_TX_PHY_CMPPWRCTRL 0x0b ++#define HDMI_3D_TX_PHY_CMPMODECTRL 0x0c ++#define HDMI_3D_TX_PHY_MEASCTRL 0x0d ++#define HDMI_3D_TX_PHY_VLEVCTRL 0x0e ++#define HDMI_3D_TX_PHY_D2ACTRL 0x0f ++#define HDMI_3D_TX_PHY_CURRCTRL 0x10 ++#define HDMI_3D_TX_PHY_DRVANACTRL 0x11 ++#define HDMI_3D_TX_PHY_PLLMEASCTRL 0x12 ++#define HDMI_3D_TX_PHY_PLLPHBYCTRL 0x13 ++#define HDMI_3D_TX_PHY_GRP_CTRL 0x14 ++#define HDMI_3D_TX_PHY_GMPCTRL 0x15 ++#define HDMI_3D_TX_PHY_MPLLMEASCTRL 0x16 ++#define HDMI_3D_TX_PHY_MSM_CTRL 0x17 ++#define HDMI_3D_TX_PHY_SCRPB_STATUS 0x18 ++#define HDMI_3D_TX_PHY_TXTERM 0x19 ++#define HDMI_3D_TX_PHY_PTRPT_ENBL 0x1a ++#define HDMI_3D_TX_PHY_PATTERNGEN 0x1b ++#define HDMI_3D_TX_PHY_SDCAP_MODE 0x1c ++#define HDMI_3D_TX_PHY_SCOPEMODE 0x1d ++#define HDMI_3D_TX_PHY_DIGTXMODE 0x1e ++#define HDMI_3D_TX_PHY_STR_STATUS 0x1f ++#define HDMI_3D_TX_PHY_SCOPECNT0 0x20 ++#define HDMI_3D_TX_PHY_SCOPECNT1 0x21 ++#define HDMI_3D_TX_PHY_SCOPECNT2 0x22 ++#define HDMI_3D_TX_PHY_SCOPECNTCLK 0x23 ++#define HDMI_3D_TX_PHY_SCOPESAMPLE 0x24 ++#define HDMI_3D_TX_PHY_SCOPECNTMSB01 0x25 ++#define HDMI_3D_TX_PHY_SCOPECNTMSB2CK 0x26 ++ ++/* HDMI_3D_TX_PHY_CKCALCTRL values */ ++#define HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE BIT(15) ++ ++/* HDMI_3D_TX_PHY_MSM_CTRL values */ ++#define HDMI_3D_TX_PHY_MSM_CTRL_MPLL_PH_SEL_CK BIT(13) ++#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_CLK_REF_MPLL (0 << 1) ++#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_OFF (1 << 1) ++#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_PCLK (2 << 1) ++#define HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_FB_CLK (3 << 1) ++#define HDMI_3D_TX_PHY_MSM_CTRL_SCOPE_CK_SEL BIT(0) ++ ++/* HDMI_3D_TX_PHY_PTRPT_ENBL values */ ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_OVERRIDE BIT(15) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT2 BIT(8) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT1 BIT(7) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_PG_SKIP_BIT0 BIT(6) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_CK_REF_ENB BIT(5) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_RCAL_ENB BIT(4) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_TX_CLK_ALIGN_ENB BIT(3) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_TX_READY BIT(2) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_CKO_WORD_ENB BIT(1) ++#define HDMI_3D_TX_PHY_PTRPT_ENBL_REFCLK_ENB BIT(0) ++ ++#endif /* __DW_HDMI_H__ */ diff --git a/patches.renesas/0235-drm-bridge-dw_hdmi-support-i2c-extended-read-mode.patch b/patches.renesas/0235-drm-bridge-dw_hdmi-support-i2c-extended-read-mode.patch index 98cd149be42995..cc42c2ffe23460 100644 --- a/patches.renesas/0235-drm-bridge-dw_hdmi-support-i2c-extended-read-mode.patch +++ b/patches.renesas/0235-drm-bridge-dw_hdmi-support-i2c-extended-read-mode.patch @@ -22,11 +22,9 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1489978651-16647-1-git-send-e (cherry picked from commit 94bb4dc132ed2e3a4d16649b0096c49d13670fe8) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 38 +++++++++++++++++++------------ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 38 ++++++++++++++++++------------ 1 file changed, 24 insertions(+), 14 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 026a0dce7661..0d112cf6b969 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -33,6 +33,7 @@ @@ -45,7 +43,7 @@ index 026a0dce7661..0d112cf6b969 100644 }; struct dw_hdmi_phy_data { -@@ -247,8 +249,12 @@ static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, +@@ -247,8 +249,12 @@ static int dw_hdmi_i2c_read(struct dw_hd reinit_completion(&i2c->cmp); hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); @@ -60,7 +58,7 @@ index 026a0dce7661..0d112cf6b969 100644 stat = wait_for_completion_timeout(&i2c->cmp, HZ / 10); if (!stat) -@@ -260,6 +266,7 @@ static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, +@@ -260,6 +266,7 @@ static int dw_hdmi_i2c_read(struct dw_hd *buf++ = hdmi_readb(hdmi, HDMI_I2CM_DATAI); } @@ -68,7 +66,7 @@ index 026a0dce7661..0d112cf6b969 100644 return 0; } -@@ -309,12 +316,6 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, +@@ -309,12 +316,6 @@ static int dw_hdmi_i2c_xfer(struct i2c_a dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr); for (i = 0; i < num; i++) { @@ -81,7 +79,7 @@ index 026a0dce7661..0d112cf6b969 100644 if (msgs[i].len == 0) { dev_dbg(hdmi->dev, "unsupported transfer %d/%d, no data\n", -@@ -334,15 +335,24 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, +@@ -334,15 +335,24 @@ static int dw_hdmi_i2c_xfer(struct i2c_a /* Set slave device register address on transfer */ i2c->is_regaddr = false; @@ -112,6 +110,3 @@ index 026a0dce7661..0d112cf6b969 100644 if (ret < 0) break; } --- -2.13.3 - diff --git a/patches.renesas/0236-drm-bridge-dw-hdmi-add-HDMI-vendor-specific-infofram.patch b/patches.renesas/0236-drm-bridge-dw-hdmi-add-HDMI-vendor-specific-infofram.patch index ba70b6607d33e4..e2c84db5a6eb65 100644 --- a/patches.renesas/0236-drm-bridge-dw-hdmi-add-HDMI-vendor-specific-infofram.patch +++ b/patches.renesas/0236-drm-bridge-dw-hdmi-add-HDMI-vendor-specific-infofram.patch @@ -14,15 +14,13 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1490081777-2232-1-git-send-em (cherry picked from commit 9aa1eca095579b8a8ea84d9bbd1fbdeff49cebd4) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 53 +++++++++++++++++++++++++++++++ - drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 4 +++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 53 ++++++++++++++++++++++++++++++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 4 ++ 2 files changed, 57 insertions(+) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 0d112cf6b969..af93f7a20697 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1240,6 +1240,58 @@ static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1240,6 +1240,58 @@ static void hdmi_config_AVI(struct dw_hd hdmi_writeb(hdmi, (frame.right_bar >> 8) & 0xff, HDMI_FC_AVISRB1); } @@ -81,7 +79,7 @@ index 0d112cf6b969..af93f7a20697 100644 static void hdmi_av_composer(struct dw_hdmi *hdmi, const struct drm_display_mode *mode) { -@@ -1489,6 +1541,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1489,6 +1541,7 @@ static int dw_hdmi_setup(struct dw_hdmi /* HDMI Initialization Step F - Configure AVI InfoFrame */ hdmi_config_AVI(hdmi, mode); @@ -89,8 +87,6 @@ index 0d112cf6b969..af93f7a20697 100644 } else { dev_dbg(hdmi->dev, "%s DVI mode\n", __func__); } -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h -index 325b0b8ae639..c59f87e1483e 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h @@ -854,6 +854,10 @@ enum { @@ -104,6 +100,3 @@ index 325b0b8ae639..c59f87e1483e 100644 /* PHY_CONF0 field values */ HDMI_PHY_CONF0_PDZ_MASK = 0x80, HDMI_PHY_CONF0_PDZ_OFFSET = 7, --- -2.13.3 - diff --git a/patches.renesas/0237-drm-dw_hdmi-Don-t-rely-on-the-status-of-the-bridge-f.patch b/patches.renesas/0237-drm-dw_hdmi-Don-t-rely-on-the-status-of-the-bridge-f.patch index c1355648070ca0..1c55b49d1bdc09 100644 --- a/patches.renesas/0237-drm-dw_hdmi-Don-t-rely-on-the-status-of-the-bridge-f.patch +++ b/patches.renesas/0237-drm-dw_hdmi-Don-t-rely-on-the-status-of-the-bridge-f.patch @@ -54,14 +54,12 @@ Link: https://patchwork.freedesktop.org/patch/143602/ (cherry picked from commit 187697a4544c20d4b77193275a7e10f85506d14d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index af93f7a20697..32f02e92e0b9 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1916,7 +1916,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) +@@ -1916,7 +1916,7 @@ static irqreturn_t dw_hdmi_irq(int irq, if (intr_stat & (HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) { mutex_lock(&hdmi->mutex); @@ -70,6 +68,3 @@ index af93f7a20697..32f02e92e0b9 100644 /* * If the RX sense status indicates we're disconnected, * clear the software rxsense status. --- -2.13.3 - diff --git a/patches.renesas/0238-dt-bindings-display-renesas-Add-R-Car-Gen3-HDMI-TX-D.patch b/patches.renesas/0238-dt-bindings-display-renesas-Add-R-Car-Gen3-HDMI-TX-D.patch index 091b5a2a46f7af..8513ed318d97b3 100644 --- a/patches.renesas/0238-dt-bindings-display-renesas-Add-R-Car-Gen3-HDMI-TX-D.patch +++ b/patches.renesas/0238-dt-bindings-display-renesas-Add-R-Car-Gen3-HDMI-TX-D.patch @@ -13,14 +13,11 @@ Acked-by: Rob Herring <robh@kernel.org> (cherry picked from commit 907c1bbd513db7e9aee63b31627c325e39e7d9ba) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - .../bindings/display/bridge/renesas,dw-hdmi.txt | 75 ++++++++++++++++++++++ - MAINTAINERS | 1 + + Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt | 75 ++++++++++ + MAINTAINERS | 1 2 files changed, 76 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt -diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt -new file mode 100644 -index 000000000000..f6b3f36d422b --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt @@ -0,0 +1,75 @@ @@ -99,8 +96,6 @@ index 000000000000..f6b3f36d422b + }; + }; + }; -diff --git a/MAINTAINERS b/MAINTAINERS -index f9c1c75a6af9..2e2d94be8c54 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4207,6 +4207,7 @@ S: Supported @@ -111,6 +106,3 @@ index f9c1c75a6af9..2e2d94be8c54 100644 F: Documentation/devicetree/bindings/display/renesas,du.txt DRM DRIVER FOR QXL VIRTUAL GPU --- -2.13.3 - diff --git a/patches.renesas/0239-drm-bridge-dw-hdmi-Extract-PHY-interrupt-setup-to-a-.patch b/patches.renesas/0239-drm-bridge-dw-hdmi-Extract-PHY-interrupt-setup-to-a-.patch index a2d6db203613f4..d44b99da6ff2ac 100644 --- a/patches.renesas/0239-drm-bridge-dw-hdmi-Extract-PHY-interrupt-setup-to-a-.patch +++ b/patches.renesas/0239-drm-bridge-dw-hdmi-Extract-PHY-interrupt-setup-to-a-.patch @@ -17,14 +17,12 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> (cherry picked from commit a23d6265f033501529932db2d6b3f4bc138552ab) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 51 ++++++++++++++----------------- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 51 +++++++++++++----------------- 1 file changed, 23 insertions(+), 28 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 32f02e92e0b9..ff1fae3a31a4 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1558,8 +1558,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1558,8 +1558,7 @@ static int dw_hdmi_setup(struct dw_hdmi return 0; } @@ -34,7 +32,7 @@ index 32f02e92e0b9..ff1fae3a31a4 100644 { hdmi_writeb(hdmi, HDMI_PHY_I2CM_INT_ADDR_DONE_POL, HDMI_PHY_I2CM_INT_ADDR); -@@ -1567,15 +1566,6 @@ static int dw_hdmi_fb_registered(struct dw_hdmi *hdmi) +@@ -1567,15 +1566,6 @@ static int dw_hdmi_fb_registered(struct hdmi_writeb(hdmi, HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL | HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL, HDMI_PHY_I2CM_CTLINT_ADDR); @@ -50,7 +48,7 @@ index 32f02e92e0b9..ff1fae3a31a4 100644 } static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) -@@ -1693,6 +1683,26 @@ static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) +@@ -1693,6 +1683,26 @@ static void dw_hdmi_update_phy_mask(stru hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); } @@ -77,7 +75,7 @@ index 32f02e92e0b9..ff1fae3a31a4 100644 static enum drm_connector_status dw_hdmi_connector_detect(struct drm_connector *connector, bool force) { -@@ -2204,29 +2214,14 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2204,29 +2214,14 @@ __dw_hdmi_probe(struct platform_device * hdmi->ddc = NULL; } @@ -109,6 +107,3 @@ index 32f02e92e0b9..ff1fae3a31a4 100644 memset(&pdevinfo, 0, sizeof(pdevinfo)); pdevinfo.parent = dev; --- -2.13.3 - diff --git a/patches.renesas/0240-media-uapi-Add-RGB-and-YUV-bus-formats-for-Synopsys-.patch b/patches.renesas/0240-media-uapi-Add-RGB-and-YUV-bus-formats-for-Synopsys-.patch index 8e54646ca71318..c4225cf62a56da 100644 --- a/patches.renesas/0240-media-uapi-Add-RGB-and-YUV-bus-formats-for-Synopsys-.patch +++ b/patches.renesas/0240-media-uapi-Add-RGB-and-YUV-bus-formats-for-Synopsys-.patch @@ -20,11 +20,9 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1491230558-10804-3-git-send-e (cherry picked from commit d0353118fd589c127875290017c7fdd266937bee) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - include/uapi/linux/media-bus-format.h | 13 +++++++++++-- + include/uapi/linux/media-bus-format.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) -diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h -index 2168759c1287..ef6fb307d2ce 100644 --- a/include/uapi/linux/media-bus-format.h +++ b/include/uapi/linux/media-bus-format.h @@ -33,7 +33,7 @@ @@ -68,6 +66,3 @@ index 2168759c1287..ef6fb307d2ce 100644 /* Bayer - next is 0x3021 */ #define MEDIA_BUS_FMT_SBGGR8_1X8 0x3001 --- -2.13.3 - diff --git a/patches.renesas/0241-drm-bridge-dw-hdmi-Switch-to-V4L-bus-format-and-enco.patch b/patches.renesas/0241-drm-bridge-dw-hdmi-Switch-to-V4L-bus-format-and-enco.patch index bfb3d3b109c918..1e1e777b77db6c 100644 --- a/patches.renesas/0241-drm-bridge-dw-hdmi-Switch-to-V4L-bus-format-and-enco.patch +++ b/patches.renesas/0241-drm-bridge-dw-hdmi-Switch-to-V4L-bus-format-and-enco.patch @@ -17,12 +17,10 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> (cherry picked from commit def23aa7e9821a3dfe3fb7b139dd0229a89fdeb0) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 326 +++++++++++++++++++++--------- - include/drm/bridge/dw_hdmi.h | 63 ++++++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 326 +++++++++++++++++++++--------- + include/drm/bridge/dw_hdmi.h | 63 +++++ 2 files changed, 294 insertions(+), 95 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index ff1fae3a31a4..16d5fff3e697 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -30,18 +30,15 @@ @@ -62,7 +60,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 unsigned int pix_repet_factor; unsigned int hdcp_enable; struct hdmi_vmode video_mode; -@@ -567,6 +564,92 @@ void dw_hdmi_audio_disable(struct dw_hdmi *hdmi) +@@ -567,6 +564,92 @@ void dw_hdmi_audio_disable(struct dw_hdm } EXPORT_SYMBOL_GPL(dw_hdmi_audio_disable); @@ -155,7 +153,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 /* * this submodule is responsible for the video data synchronization. * for example, for RGB 4:4:4 input, the data map is defined as -@@ -579,37 +662,49 @@ static void hdmi_video_sample(struct dw_hdmi *hdmi) +@@ -579,37 +662,49 @@ static void hdmi_video_sample(struct dw_ int color_format = 0; u8 val; @@ -236,7 +234,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 } val = HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE | -@@ -632,26 +727,30 @@ static void hdmi_video_sample(struct dw_hdmi *hdmi) +@@ -632,26 +727,30 @@ static void hdmi_video_sample(struct dw_ static int is_color_space_conversion(struct dw_hdmi *hdmi) { @@ -274,7 +272,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 return 0; } -@@ -662,15 +761,16 @@ static void dw_hdmi_update_csc_coeffs(struct dw_hdmi *hdmi) +@@ -662,15 +761,16 @@ static void dw_hdmi_update_csc_coeffs(st u32 csc_scale = 1; if (is_color_space_conversion(hdmi)) { @@ -297,7 +295,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 csc_coeff = &csc_coeff_rgb_in_eitu601; else csc_coeff = &csc_coeff_rgb_in_eitu709; -@@ -708,16 +808,23 @@ static void hdmi_video_csc(struct dw_hdmi *hdmi) +@@ -708,16 +808,23 @@ static void hdmi_video_csc(struct dw_hdm else if (is_color_space_decimation(hdmi)) decimation = HDMI_CSC_CFG_DECMODE_CHROMA_INT_FORMULA3; @@ -326,7 +324,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 /* Configure the CSC registers */ hdmi_writeb(hdmi, interpolation | decimation, HDMI_CSC_CFG); -@@ -740,32 +847,43 @@ static void hdmi_video_packetize(struct dw_hdmi *hdmi) +@@ -740,32 +847,43 @@ static void hdmi_video_packetize(struct struct hdmi_data_info *hdmi_data = &hdmi->hdmi_data; u8 val, vp_conf; @@ -386,7 +384,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422; } else { return; -@@ -1148,28 +1266,35 @@ static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1148,28 +1266,35 @@ static void hdmi_config_AVI(struct dw_hd /* Initialise info frame from DRM mode */ drm_hdmi_avi_infoframe_from_display_mode(&frame, mode); @@ -436,7 +434,7 @@ index ff1fae3a31a4..16d5fff3e697 100644 } frame.scan_mode = HDMI_SCAN_MODE_NONE; -@@ -1498,19 +1623,30 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1498,19 +1623,30 @@ static int dw_hdmi_setup(struct dw_hdmi (hdmi->vic == 21) || (hdmi->vic == 22) || (hdmi->vic == 2) || (hdmi->vic == 3) || (hdmi->vic == 17) || (hdmi->vic == 18)) @@ -473,8 +471,6 @@ index ff1fae3a31a4..16d5fff3e697 100644 hdmi->hdmi_data.pix_repet_factor = 0; hdmi->hdmi_data.hdcp_enable = 0; hdmi->hdmi_data.video_mode.mdataenablepolarity = true; -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index bcceee8114a4..5d6b92c6c0bc 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -14,6 +14,67 @@ @@ -554,6 +550,3 @@ index bcceee8114a4..5d6b92c6c0bc 100644 /* Vendor PHY support */ const struct dw_hdmi_phy_ops *phy_ops; --- -2.13.3 - diff --git a/patches.renesas/0242-drm-bridge-dw-hdmi-Move-HPD-handling-to-PHY-operatio.patch b/patches.renesas/0242-drm-bridge-dw-hdmi-Move-HPD-handling-to-PHY-operatio.patch index 49e3a2de7674ef..b405d2bd9a4bad 100644 --- a/patches.renesas/0242-drm-bridge-dw-hdmi-Move-HPD-handling-to-PHY-operatio.patch +++ b/patches.renesas/0242-drm-bridge-dw-hdmi-Move-HPD-handling-to-PHY-operatio.patch @@ -21,15 +21,13 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1491309119-24220-2-git-send-e (cherry picked from commit 386d3299ef7298a3bc57e2ff3498ce41ac7f6184) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 135 ++++++++++++++++++------------ - include/drm/bridge/dw_hdmi.h | 5 ++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 135 ++++++++++++++++++------------ + include/drm/bridge/dw_hdmi.h | 5 + 2 files changed, 86 insertions(+), 54 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 16d5fff3e697..84cc949eae2b 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1229,10 +1229,46 @@ static enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, +@@ -1229,10 +1229,46 @@ static enum drm_connector_status dw_hdmi connector_status_connected : connector_status_disconnected; } @@ -76,7 +74,7 @@ index 16d5fff3e697..84cc949eae2b 100644 }; /* ----------------------------------------------------------------------------- -@@ -1808,35 +1844,10 @@ static void dw_hdmi_update_power(struct dw_hdmi *hdmi) +@@ -1808,35 +1844,10 @@ static void dw_hdmi_update_power(struct */ static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) { @@ -116,7 +114,7 @@ index 16d5fff3e697..84cc949eae2b 100644 } static enum drm_connector_status -@@ -2028,6 +2039,41 @@ static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id) +@@ -2028,6 +2039,41 @@ static irqreturn_t dw_hdmi_hardirq(int i return ret; } @@ -158,7 +156,7 @@ index 16d5fff3e697..84cc949eae2b 100644 static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) { struct dw_hdmi *hdmi = dev_id; -@@ -2060,30 +2106,10 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) +@@ -2060,30 +2106,10 @@ static irqreturn_t dw_hdmi_irq(int irq, * ask the source to re-read the EDID. */ if (intr_stat & @@ -193,7 +191,7 @@ index 16d5fff3e697..84cc949eae2b 100644 if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { dev_dbg(hdmi->dev, "EVENT=%s\n", -@@ -2357,7 +2383,8 @@ __dw_hdmi_probe(struct platform_device *pdev, +@@ -2357,7 +2383,8 @@ __dw_hdmi_probe(struct platform_device * #endif dw_hdmi_setup_i2c(hdmi); @@ -203,8 +201,6 @@ index 16d5fff3e697..84cc949eae2b 100644 memset(&pdevinfo, 0, sizeof(pdevinfo)); pdevinfo.parent = dev; -diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h -index 5d6b92c6c0bc..ed599bea3f6c 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -117,6 +117,9 @@ struct dw_hdmi_phy_ops { @@ -226,6 +222,3 @@ index 5d6b92c6c0bc..ed599bea3f6c 100644 void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate); void dw_hdmi_audio_enable(struct dw_hdmi *hdmi); void dw_hdmi_audio_disable(struct dw_hdmi *hdmi); --- -2.13.3 - diff --git a/patches.renesas/0243-drm-bridge-dw-hdmi-remove-unused-hdmi_bus_fmt_is_yuv.patch b/patches.renesas/0243-drm-bridge-dw-hdmi-remove-unused-hdmi_bus_fmt_is_yuv.patch index 68f7ef70032318..4db30a78b13126 100644 --- a/patches.renesas/0243-drm-bridge-dw-hdmi-remove-unused-hdmi_bus_fmt_is_yuv.patch +++ b/patches.renesas/0243-drm-bridge-dw-hdmi-remove-unused-hdmi_bus_fmt_is_yuv.patch @@ -13,14 +13,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1491377579-9353-1-git-send-em (cherry picked from commit 4c67b20c98a1a711cc010bff4927129d82a851c7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 14 -------------- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 14 -------------- 1 file changed, 14 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 84cc949eae2b..7dd669945b55 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -605,20 +605,6 @@ static bool hdmi_bus_fmt_is_yuv422(unsigned int bus_format) +@@ -605,20 +605,6 @@ static bool hdmi_bus_fmt_is_yuv422(unsig } } @@ -41,6 +39,3 @@ index 84cc949eae2b..7dd669945b55 100644 static int hdmi_bus_fmt_color_depth(unsigned int bus_format) { switch (bus_format) { --- -2.13.3 - diff --git a/patches.renesas/0244-drm-bridge-dw-hdmi-Add-a-missing-break-statement.patch b/patches.renesas/0244-drm-bridge-dw-hdmi-Add-a-missing-break-statement.patch index 8cb7de276787a7..aa7a6339729850 100644 --- a/patches.renesas/0244-drm-bridge-dw-hdmi-Add-a-missing-break-statement.patch +++ b/patches.renesas/0244-drm-bridge-dw-hdmi-Add-a-missing-break-statement.patch @@ -13,14 +13,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170406052132.GA26605@mwanda (cherry picked from commit f40d6560eba65b2a2b84805d2927fed96978669a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 + + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 7dd669945b55..5dc5a5fa44f5 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1304,6 +1304,7 @@ static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1304,6 +1304,7 @@ static void hdmi_config_AVI(struct dw_hd frame.colorimetry = HDMI_COLORIMETRY_ITU_601; frame.extended_colorimetry = HDMI_EXTENDED_COLORIMETRY_XV_YCC_601; @@ -28,6 +26,3 @@ index 7dd669945b55..5dc5a5fa44f5 100644 case V4L2_YCBCR_ENC_709: if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709) frame.colorimetry = HDMI_COLORIMETRY_EXTENDED; --- -2.13.3 - diff --git a/patches.renesas/0245-drm-bridge-dw-hdmi-fix-input-format-encoding-from-pl.patch b/patches.renesas/0245-drm-bridge-dw-hdmi-fix-input-format-encoding-from-pl.patch index 678be15f5fd3b2..b50ca021260531 100644 --- a/patches.renesas/0245-drm-bridge-dw-hdmi-fix-input-format-encoding-from-pl.patch +++ b/patches.renesas/0245-drm-bridge-dw-hdmi-fix-input-format-encoding-from-pl.patch @@ -31,14 +31,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/1491471244-24989-1-git-send-e (cherry picked from commit e20c29aa722a90f3b8092b340362eabe488dbfc4) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 5dc5a5fa44f5..3bc856cc6daa 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1654,14 +1654,14 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) +@@ -1654,14 +1654,14 @@ static int dw_hdmi_setup(struct dw_hdmi hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0; /* TOFIX: Get input format from plat data or fallback to RGB888 */ @@ -55,6 +53,3 @@ index 5dc5a5fa44f5..3bc856cc6daa 100644 hdmi->hdmi_data.enc_in_encoding = hdmi->plat_data->input_bus_encoding; else --- -2.13.3 - diff --git a/patches.renesas/0246-drm-dw-hdmi-Implement-the-mode_fixup-drm-helper.patch b/patches.renesas/0246-drm-dw-hdmi-Implement-the-mode_fixup-drm-helper.patch index f981cf91efc1df..f0f89ba27db9e8 100644 --- a/patches.renesas/0246-drm-dw-hdmi-Implement-the-mode_fixup-drm-helper.patch +++ b/patches.renesas/0246-drm-dw-hdmi-Implement-the-mode_fixup-drm-helper.patch @@ -24,14 +24,12 @@ Link: http://patchwork.freedesktop.org/patch/msgid/20170407121743.4142-1-romain. (cherry picked from commit 6ce2ca580f10d8d76cc3661a0b6b88d419725c9c) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 15 +++++++++++++++ + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 3bc856cc6daa..4e1f54a675d8 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -1947,6 +1947,20 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) +@@ -1947,6 +1947,20 @@ static int dw_hdmi_bridge_attach(struct return 0; } @@ -52,7 +50,7 @@ index 3bc856cc6daa..4e1f54a675d8 100644 static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge, struct drm_display_mode *orig_mode, struct drm_display_mode *mode) -@@ -1988,6 +2002,7 @@ static const struct drm_bridge_funcs dw_hdmi_bridge_funcs = { +@@ -1988,6 +2002,7 @@ static const struct drm_bridge_funcs dw_ .enable = dw_hdmi_bridge_enable, .disable = dw_hdmi_bridge_disable, .mode_set = dw_hdmi_bridge_mode_set, @@ -60,6 +58,3 @@ index 3bc856cc6daa..4e1f54a675d8 100644 }; static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi) --- -2.13.3 - diff --git a/patches.renesas/0247-drm-rcar-du-Switch-to-encoder-.atomic_mode_set-helpe.patch b/patches.renesas/0247-drm-rcar-du-Switch-to-encoder-.atomic_mode_set-helpe.patch index d01975ab235aca..f1320d4b7318e8 100644 --- a/patches.renesas/0247-drm-rcar-du-Switch-to-encoder-.atomic_mode_set-helpe.patch +++ b/patches.renesas/0247-drm-rcar-du-Switch-to-encoder-.atomic_mode_set-helpe.patch @@ -11,15 +11,13 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit e79a7dfafa3adedb7653f6d14fea3376db5285e2) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 8 ++++---- - drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 8 ++++---- + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 8 ++++---- + drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -index ab8645c57e2d..3974d9495f37 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -@@ -83,16 +83,16 @@ static int rcar_du_encoder_atomic_check(struct drm_encoder *encoder, +@@ -83,16 +83,16 @@ static int rcar_du_encoder_atomic_check( } static void rcar_du_encoder_mode_set(struct drm_encoder *encoder, @@ -40,11 +38,9 @@ index ab8645c57e2d..3974d9495f37 100644 .disable = rcar_du_encoder_disable, .enable = rcar_du_encoder_enable, .atomic_check = rcar_du_encoder_atomic_check, -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c -index c4c5d1abcff8..933a2547798e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c -@@ -67,16 +67,16 @@ static int rcar_du_hdmienc_atomic_check(struct drm_encoder *encoder, +@@ -67,16 +67,16 @@ static int rcar_du_hdmienc_atomic_check( static void rcar_du_hdmienc_mode_set(struct drm_encoder *encoder, @@ -65,6 +61,3 @@ index c4c5d1abcff8..933a2547798e 100644 .disable = rcar_du_hdmienc_disable, .enable = rcar_du_hdmienc_enable, .atomic_check = rcar_du_hdmienc_atomic_check, --- -2.13.3 - diff --git a/patches.renesas/0248-drm-rcar-du-Don-t-open-code-of_device_get_match_data.patch b/patches.renesas/0248-drm-rcar-du-Don-t-open-code-of_device_get_match_data.patch index 8031f31d561348..42e28004cc7f1c 100644 --- a/patches.renesas/0248-drm-rcar-du-Don-t-open-code-of_device_get_match_data.patch +++ b/patches.renesas/0248-drm-rcar-du-Don-t-open-code-of_device_get_match_data.patch @@ -15,14 +15,12 @@ Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (cherry picked from commit 9e7d80e648793d5bf263a3ec9cfb1cf29b86a6e0) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 +- + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -index c05e00872778..e09e0e6194ba 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -@@ -351,7 +351,7 @@ static int rcar_du_probe(struct platform_device *pdev) +@@ -351,7 +351,7 @@ static int rcar_du_probe(struct platform init_waitqueue_head(&rcdu->commit.wait); rcdu->dev = &pdev->dev; @@ -31,6 +29,3 @@ index c05e00872778..e09e0e6194ba 100644 platform_set_drvdata(pdev, rcdu); --- -2.13.3 - diff --git a/patches.renesas/0249-drm-rcar-du-Handle-event-when-disabling-CRTCs.patch b/patches.renesas/0249-drm-rcar-du-Handle-event-when-disabling-CRTCs.patch index 232df2063add06..24e538a35e9df1 100644 --- a/patches.renesas/0249-drm-rcar-du-Handle-event-when-disabling-CRTCs.patch +++ b/patches.renesas/0249-drm-rcar-du-Handle-event-when-disabling-CRTCs.patch @@ -12,14 +12,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 6dd47cfd03a058d08b8caffb06194aa0eb109cf1) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 7 +++++++ + drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index a2ec6d8796a0..3a81cc0fe299 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -@@ -488,6 +488,13 @@ static void rcar_du_crtc_disable(struct drm_crtc *crtc) +@@ -488,6 +488,13 @@ static void rcar_du_crtc_disable(struct rcar_du_crtc_stop(rcrtc); rcar_du_crtc_put(rcrtc); @@ -33,6 +31,3 @@ index a2ec6d8796a0..3a81cc0fe299 100644 rcrtc->outputs = 0; } --- -2.13.3 - diff --git a/patches.renesas/0250-drm-rcar-du-Clear-handled-event-pointer-in-CRTC-stat.patch b/patches.renesas/0250-drm-rcar-du-Clear-handled-event-pointer-in-CRTC-stat.patch index 0c08583098a34c..fb32bbc7220a5b 100644 --- a/patches.renesas/0250-drm-rcar-du-Clear-handled-event-pointer-in-CRTC-stat.patch +++ b/patches.renesas/0250-drm-rcar-du-Clear-handled-event-pointer-in-CRTC-stat.patch @@ -12,14 +12,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 15b181a309e9c9bff8d0bc57d7da2d5f87c14186) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 6 +++--- + drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index 3a81cc0fe299..75bcb5e19cca 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -@@ -501,16 +501,16 @@ static void rcar_du_crtc_disable(struct drm_crtc *crtc) +@@ -501,16 +501,16 @@ static void rcar_du_crtc_disable(struct static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, struct drm_crtc_state *old_crtc_state) { @@ -39,6 +37,3 @@ index 3a81cc0fe299..75bcb5e19cca 100644 spin_unlock_irqrestore(&dev->event_lock, flags); } --- -2.13.3 - diff --git a/patches.renesas/0251-drm-rcar-du-Use-DRM-core-s-atomic-commit-helper.patch b/patches.renesas/0251-drm-rcar-du-Use-DRM-core-s-atomic-commit-helper.patch index 5540bbbd29085c..f7d953974b9848 100644 --- a/patches.renesas/0251-drm-rcar-du-Use-DRM-core-s-atomic-commit-helper.patch +++ b/patches.renesas/0251-drm-rcar-du-Use-DRM-core-s-atomic-commit-helper.patch @@ -10,14 +10,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit a8fd12233e2348568893f1d0e251d8a4630a50af) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_kms.c | 99 ++++------------------------------- + drivers/gpu/drm/rcar-du/rcar_du_kms.c | 99 +++------------------------------- 1 file changed, 9 insertions(+), 90 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -index b5d3f16cfa12..e775ae5e5f06 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -@@ -249,18 +249,9 @@ static int rcar_du_atomic_check(struct drm_device *dev, +@@ -249,18 +249,9 @@ static int rcar_du_atomic_check(struct d return rcar_du_atomic_check_planes(dev, state); } @@ -38,7 +36,7 @@ index b5d3f16cfa12..e775ae5e5f06 100644 /* Apply the atomic update. */ drm_atomic_helper_commit_modeset_disables(dev, old_state); -@@ -268,98 +259,25 @@ static void rcar_du_atomic_complete(struct rcar_du_commit *commit) +@@ -268,98 +259,25 @@ static void rcar_du_atomic_complete(stru drm_atomic_helper_commit_planes(dev, old_state, DRM_PLANE_COMMIT_ACTIVE_ONLY); @@ -143,7 +141,7 @@ index b5d3f16cfa12..e775ae5e5f06 100644 }; static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, -@@ -561,6 +479,7 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu) +@@ -561,6 +479,7 @@ int rcar_du_modeset_init(struct rcar_du_ dev->mode_config.max_width = 4095; dev->mode_config.max_height = 2047; dev->mode_config.funcs = &rcar_du_mode_config_funcs; @@ -151,6 +149,3 @@ index b5d3f16cfa12..e775ae5e5f06 100644 rcdu->num_crtcs = rcdu->info->num_crtcs; --- -2.13.3 - diff --git a/patches.renesas/0252-drm-rcar-du-Make-sure-the-VSP-is-initialized-on-plat.patch b/patches.renesas/0252-drm-rcar-du-Make-sure-the-VSP-is-initialized-on-plat.patch index f182d9e91e14c4..8341fed0702cac 100644 --- a/patches.renesas/0252-drm-rcar-du-Make-sure-the-VSP-is-initialized-on-plat.patch +++ b/patches.renesas/0252-drm-rcar-du-Make-sure-the-VSP-is-initialized-on-plat.patch @@ -18,14 +18,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 3115345577d8e8c912562a1dd555787f11fcaf06) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +- + drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h -index 510dcc9c6816..f1d0f1824528 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h -@@ -68,7 +68,7 @@ void rcar_du_vsp_disable(struct rcar_du_crtc *crtc); +@@ -68,7 +68,7 @@ void rcar_du_vsp_disable(struct rcar_du_ void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc); void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc); #else @@ -34,6 +32,3 @@ index 510dcc9c6816..f1d0f1824528 100644 static inline void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) { }; static inline void rcar_du_vsp_disable(struct rcar_du_crtc *crtc) { }; static inline void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc) { }; --- -2.13.3 - diff --git a/patches.renesas/0253-drm-rcar-du-Remove-wait-field-from-rcar_du_device-st.patch b/patches.renesas/0253-drm-rcar-du-Remove-wait-field-from-rcar_du_device-st.patch index 6982c1f582fbf2..f57ac9e634a2a3 100644 --- a/patches.renesas/0253-drm-rcar-du-Remove-wait-field-from-rcar_du_device-st.patch +++ b/patches.renesas/0253-drm-rcar-du-Remove-wait-field-from-rcar_du_device-st.patch @@ -11,15 +11,13 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit eff7fd6ba5e5764318e4c2bb85a11b9d3159137d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 -- - drivers/gpu/drm/rcar-du/rcar_du_drv.h | 5 ----- + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 -- + drivers/gpu/drm/rcar-du/rcar_du_drv.h | 5 ----- 2 files changed, 7 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -index e09e0e6194ba..12af716ea57c 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -@@ -348,8 +348,6 @@ static int rcar_du_probe(struct platform_device *pdev) +@@ -348,8 +348,6 @@ static int rcar_du_probe(struct platform if (rcdu == NULL) return -ENOMEM; @@ -28,8 +26,6 @@ index e09e0e6194ba..12af716ea57c 100644 rcdu->dev = &pdev->dev; rcdu->info = of_device_get_match_data(rcdu->dev); -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/rcar-du/rcar_du_drv.h -index c843c3134498..574b3c1c21df 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h @@ -98,11 +98,6 @@ struct rcar_du_device { @@ -44,6 +40,3 @@ index c843c3134498..574b3c1c21df 100644 }; static inline bool rcar_du_has(struct rcar_du_device *rcdu, --- -2.13.3 - diff --git a/patches.renesas/0254-drm-rcar-du-Document-the-vsps-property-in-the-DT-bin.patch b/patches.renesas/0254-drm-rcar-du-Document-the-vsps-property-in-the-DT-bin.patch index fcba90d638ae42..126788b1703617 100644 --- a/patches.renesas/0254-drm-rcar-du-Document-the-vsps-property-in-the-DT-bin.patch +++ b/patches.renesas/0254-drm-rcar-du-Document-the-vsps-property-in-the-DT-bin.patch @@ -12,11 +12,9 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 06711e6385a4ab4c8f4225f6cb9382eed58625a7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - Documentation/devicetree/bindings/display/renesas,du.txt | 3 +++ + Documentation/devicetree/bindings/display/renesas,du.txt | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt b/Documentation/devicetree/bindings/display/renesas,du.txt -index 1a02f099a0ff..c6cb96a4fa93 100644 --- a/Documentation/devicetree/bindings/display/renesas,du.txt +++ b/Documentation/devicetree/bindings/display/renesas,du.txt @@ -36,6 +36,9 @@ Required Properties: @@ -29,6 +27,3 @@ index 1a02f099a0ff..c6cb96a4fa93 100644 Required nodes: The connections to the DU output video ports are modeled using the OF graph --- -2.13.3 - diff --git a/patches.renesas/0255-drm-panel-Constify-device-node-argument-to-of_drm_fi.patch b/patches.renesas/0255-drm-panel-Constify-device-node-argument-to-of_drm_fi.patch index e381050645d822..05022ad25ff43f 100644 --- a/patches.renesas/0255-drm-panel-Constify-device-node-argument-to-of_drm_fi.patch +++ b/patches.renesas/0255-drm-panel-Constify-device-node-argument-to-of_drm_fi.patch @@ -11,12 +11,10 @@ Signed-off-by: Thierry Reding <treding@nvidia.com> (cherry picked from commit 327bc443416d5aeb37e27704b2d91d2f86b8c621) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/drm_panel.c | 2 +- - include/drm/drm_panel.h | 4 ++-- + drivers/gpu/drm/drm_panel.c | 2 +- + include/drm/drm_panel.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) -diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c -index 3dfe3c886502..308d442a531b 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -137,7 +137,7 @@ EXPORT_SYMBOL(drm_panel_detach); @@ -28,11 +26,9 @@ index 3dfe3c886502..308d442a531b 100644 { struct drm_panel *panel; -diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h -index 220d1e2b3db1..4b76cf2d5a7b 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h -@@ -193,9 +193,9 @@ int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector); +@@ -193,9 +193,9 @@ int drm_panel_attach(struct drm_panel *p int drm_panel_detach(struct drm_panel *panel); #ifdef CONFIG_OF @@ -44,6 +40,3 @@ index 220d1e2b3db1..4b76cf2d5a7b 100644 { return NULL; } --- -2.13.3 - diff --git a/patches.renesas/0256-drm-rcar-du-Use-the-DRM-panel-API.patch b/patches.renesas/0256-drm-rcar-du-Use-the-DRM-panel-API.patch index 3ac9fe9d1652d6..809feaeefebefb 100644 --- a/patches.renesas/0256-drm-rcar-du-Use-the-DRM-panel-API.patch +++ b/patches.renesas/0256-drm-rcar-du-Use-the-DRM-panel-API.patch @@ -10,14 +10,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit bf7149f34241dcd6c95ea76b2b5ab4ff33f1c9b9) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/Kconfig | 1 + - drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 22 ++++++++++ - drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 3 ++ - drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 68 +++++++++++-------------------- + drivers/gpu/drm/rcar-du/Kconfig | 1 + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 22 +++++++++ + drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 3 + + drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 68 ++++++++++-------------------- 4 files changed, 50 insertions(+), 44 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig -index 4c2fd056dd6d..2bab449add76 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -20,6 +20,7 @@ config DRM_RCAR_HDMI @@ -28,8 +26,6 @@ index 4c2fd056dd6d..2bab449add76 100644 help Enable support for the R-Car Display Unit embedded LVDS encoders. -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -index 3974d9495f37..31f878ad099d 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c @@ -16,6 +16,7 @@ @@ -40,7 +36,7 @@ index 3974d9495f37..31f878ad099d 100644 #include "rcar_du_drv.h" #include "rcar_du_encoder.h" -@@ -33,6 +34,11 @@ static void rcar_du_encoder_disable(struct drm_encoder *encoder) +@@ -33,6 +34,11 @@ static void rcar_du_encoder_disable(stru { struct rcar_du_encoder *renc = to_rcar_encoder(encoder); @@ -52,7 +48,7 @@ index 3974d9495f37..31f878ad099d 100644 if (renc->lvds) rcar_du_lvdsenc_enable(renc->lvds, encoder->crtc, false); } -@@ -43,6 +49,11 @@ static void rcar_du_encoder_enable(struct drm_encoder *encoder) +@@ -43,6 +49,11 @@ static void rcar_du_encoder_enable(struc if (renc->lvds) rcar_du_lvdsenc_enable(renc->lvds, encoder->crtc, true); @@ -64,7 +60,7 @@ index 3974d9495f37..31f878ad099d 100644 } static int rcar_du_encoder_atomic_check(struct drm_encoder *encoder, -@@ -89,6 +100,17 @@ static void rcar_du_encoder_mode_set(struct drm_encoder *encoder, +@@ -89,6 +100,17 @@ static void rcar_du_encoder_mode_set(str struct rcar_du_encoder *renc = to_rcar_encoder(encoder); rcar_du_crtc_route_output(crtc_state->crtc, renc->output); @@ -82,8 +78,6 @@ index 3974d9495f37..31f878ad099d 100644 } static const struct drm_encoder_helper_funcs encoder_helper_funcs = { -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h -index 7fc10a9c34c3..269fbab15907 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h @@ -16,6 +16,7 @@ @@ -110,8 +104,6 @@ index 7fc10a9c34c3..269fbab15907 100644 }; #define to_rcar_connector(c) \ -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c -index 3bcfd161c53f..ee91481131ad 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c @@ -15,6 +15,7 @@ @@ -181,7 +173,7 @@ index 3bcfd161c53f..ee91481131ad 100644 .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; -@@ -75,27 +59,19 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu, +@@ -75,27 +59,19 @@ int rcar_du_lvds_connector_init(struct r const struct device_node *np) { struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc); @@ -216,7 +208,7 @@ index 3bcfd161c53f..ee91481131ad 100644 ret = drm_connector_init(rcdu->ddev, connector, &connector_funcs, DRM_MODE_CONNECTOR_LVDS); -@@ -112,7 +88,11 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu, +@@ -112,7 +88,11 @@ int rcar_du_lvds_connector_init(struct r if (ret < 0) return ret; @@ -229,6 +221,3 @@ index 3bcfd161c53f..ee91481131ad 100644 return 0; } --- -2.13.3 - diff --git a/patches.renesas/0257-drm-Add-data-transmission-order-bus-flag.patch b/patches.renesas/0257-drm-Add-data-transmission-order-bus-flag.patch index e80d83282ce9a9..8b584a7b730e3c 100644 --- a/patches.renesas/0257-drm-Add-data-transmission-order-bus-flag.patch +++ b/patches.renesas/0257-drm-Add-data-transmission-order-bus-flag.patch @@ -16,11 +16,9 @@ Reviewed-by: Thierry Reding <treding@nvidia.com> (cherry picked from commit 5ec1a96010aa7aff19adba92a8163ef8f8c5c1ad) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - include/drm/drm_connector.h | 4 ++++ + include/drm/drm_connector.h | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h -index 7cb10d15cfa5..2ebb54a60412 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -159,6 +159,10 @@ struct drm_display_info { @@ -34,6 +32,3 @@ index 7cb10d15cfa5..2ebb54a60412 100644 /** * @bus_flags: Additional information (like pixel signal polarity) for --- -2.13.3 - diff --git a/patches.renesas/0258-drm-rcar-du-Add-support-for-LVDS-mode-selection.patch b/patches.renesas/0258-drm-rcar-du-Add-support-for-LVDS-mode-selection.patch index 4adb913d5d1e41..12dfff433e4476 100644 --- a/patches.renesas/0258-drm-rcar-du-Add-support-for-LVDS-mode-selection.patch +++ b/patches.renesas/0258-drm-rcar-du-Add-support-for-LVDS-mode-selection.patch @@ -12,16 +12,14 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit e947eccbeba45268bf3b5f4e30185d9bb87a293d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 27 +++++++++++++++++++++++++++ - drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c | 11 +++++++++-- - drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h | 13 +++++++++++++ + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 27 +++++++++++++++++++++++++++ + drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c | 11 +++++++++-- + drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h | 13 +++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -index 31f878ad099d..3a3c9374794e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -@@ -98,6 +98,8 @@ static void rcar_du_encoder_mode_set(struct drm_encoder *encoder, +@@ -98,6 +98,8 @@ static void rcar_du_encoder_mode_set(str struct drm_connector_state *conn_state) { struct rcar_du_encoder *renc = to_rcar_encoder(encoder); @@ -30,7 +28,7 @@ index 31f878ad099d..3a3c9374794e 100644 rcar_du_crtc_route_output(crtc_state->crtc, renc->output); -@@ -111,6 +113,31 @@ static void rcar_du_encoder_mode_set(struct drm_encoder *encoder, +@@ -111,6 +113,31 @@ static void rcar_du_encoder_mode_set(str } renc->connector = to_rcar_connector(conn_state->connector); @@ -62,8 +60,6 @@ index 31f878ad099d..3a3c9374794e 100644 } static const struct drm_encoder_helper_funcs encoder_helper_funcs = { -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c -index e3a4985f6f3f..1661f6201210 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c @@ -31,6 +31,7 @@ struct rcar_du_lvdsenc { @@ -74,7 +70,7 @@ index e3a4985f6f3f..1661f6201210 100644 }; static void rcar_lvds_write(struct rcar_du_lvdsenc *lvds, u32 reg, u32 data) -@@ -61,7 +62,7 @@ static void rcar_du_lvdsenc_start_gen2(struct rcar_du_lvdsenc *lvds, +@@ -61,7 +62,7 @@ static void rcar_du_lvdsenc_start_gen2(s /* Select the input, hardcode mode 0, enable LVDS operation and turn * bias circuitry on. */ @@ -83,7 +79,7 @@ index e3a4985f6f3f..1661f6201210 100644 if (rcrtc->index == 2) lvdcr0 |= LVDCR0_DUSEL; rcar_lvds_write(lvds, LVDCR0, lvdcr0); -@@ -114,7 +115,7 @@ static void rcar_du_lvdsenc_start_gen3(struct rcar_du_lvdsenc *lvds, +@@ -114,7 +115,7 @@ static void rcar_du_lvdsenc_start_gen3(s * Turn the PLL on, set it to LVDS normal mode, wait for the startup * delay and turn the output on. */ @@ -92,7 +88,7 @@ index e3a4985f6f3f..1661f6201210 100644 rcar_lvds_write(lvds, LVDCR0, lvdcr0); lvdcr0 |= LVDCR0_PWD; -@@ -211,6 +212,12 @@ void rcar_du_lvdsenc_atomic_check(struct rcar_du_lvdsenc *lvds, +@@ -211,6 +212,12 @@ void rcar_du_lvdsenc_atomic_check(struct mode->clock = clamp(mode->clock, 25175, 148500); } @@ -105,8 +101,6 @@ index e3a4985f6f3f..1661f6201210 100644 static int rcar_du_lvdsenc_get_resources(struct rcar_du_lvdsenc *lvds, struct platform_device *pdev) { -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h b/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h -index dfdba746edf4..7218ac89333e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h @@ -26,8 +26,17 @@ enum rcar_lvds_input { @@ -127,7 +121,7 @@ index dfdba746edf4..7218ac89333e 100644 int rcar_du_lvdsenc_enable(struct rcar_du_lvdsenc *lvds, struct drm_crtc *crtc, bool enable); void rcar_du_lvdsenc_atomic_check(struct rcar_du_lvdsenc *lvds, -@@ -37,6 +46,10 @@ static inline int rcar_du_lvdsenc_init(struct rcar_du_device *rcdu) +@@ -37,6 +46,10 @@ static inline int rcar_du_lvdsenc_init(s { return 0; } @@ -138,6 +132,3 @@ index dfdba746edf4..7218ac89333e 100644 static inline int rcar_du_lvdsenc_enable(struct rcar_du_lvdsenc *lvds, struct drm_crtc *crtc, bool enable) { --- -2.13.3 - diff --git a/patches.renesas/0259-drm-rcar-du-Replace-manual-bridge-implementation-wit.patch b/patches.renesas/0259-drm-rcar-du-Replace-manual-bridge-implementation-wit.patch index 3aa9982ca38d7a..b535e31a7c17dd 100644 --- a/patches.renesas/0259-drm-rcar-du-Replace-manual-bridge-implementation-wit.patch +++ b/patches.renesas/0259-drm-rcar-du-Replace-manual-bridge-implementation-wit.patch @@ -11,22 +11,20 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 5c602531feb3db3926cdd76dda89314f0634c9e7) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/Kconfig | 6 -- - drivers/gpu/drm/rcar-du/Makefile | 5 +- - drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 104 +++++++++++++---------- - drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 2 - - drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 134 ------------------------------ - drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h | 35 -------- - drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 82 ------------------ - drivers/gpu/drm/rcar-du/rcar_du_vgacon.h | 23 ----- - 8 files changed, 60 insertions(+), 331 deletions(-) + drivers/gpu/drm/rcar-du/Kconfig | 6 - + drivers/gpu/drm/rcar-du/Makefile | 5 - + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 108 +++++++++++++----------- + drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 2 + drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 134 ------------------------------ + drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h | 35 ------- + drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 82 ------------------ + drivers/gpu/drm/rcar-du/rcar_du_vgacon.h | 23 ----- + 8 files changed, 62 insertions(+), 333 deletions(-) delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_vgacon.c delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_vgacon.h -diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig -index 2bab449add76..06121eeba9e5 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -11,12 +11,6 @@ config DRM_RCAR_DU @@ -42,8 +40,6 @@ index 2bab449add76..06121eeba9e5 100644 config DRM_RCAR_LVDS bool "R-Car DU LVDS Encoder Support" depends on DRM_RCAR_DU -diff --git a/drivers/gpu/drm/rcar-du/Makefile b/drivers/gpu/drm/rcar-du/Makefile -index d3b44651061a..a492e6858691 100644 --- a/drivers/gpu/drm/rcar-du/Makefile +++ b/drivers/gpu/drm/rcar-du/Makefile @@ -4,10 +4,7 @@ rcar-du-drm-y := rcar_du_crtc.o \ @@ -58,8 +54,6 @@ index d3b44651061a..a492e6858691 100644 rcar-du-drm-$(CONFIG_DRM_RCAR_LVDS) += rcar_du_lvdsenc.o -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -index 3a3c9374794e..92a0405c2fb2 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c @@ -20,11 +20,9 @@ @@ -74,7 +68,7 @@ index 3a3c9374794e..92a0405c2fb2 100644 /* ----------------------------------------------------------------------------- * Encoder -@@ -63,29 +61,35 @@ static int rcar_du_encoder_atomic_check(struct drm_encoder *encoder, +@@ -63,30 +61,36 @@ static int rcar_du_encoder_atomic_check( struct rcar_du_encoder *renc = to_rcar_encoder(encoder); struct drm_display_mode *adjusted_mode = &crtc_state->adjusted_mode; const struct drm_display_mode *mode = &crtc_state->mode; @@ -91,42 +85,45 @@ index 3a3c9374794e..92a0405c2fb2 100644 + */ + if (encoder->encoder_type == DRM_MODE_ENCODER_LVDS) { + const struct drm_display_mode *panel_mode; - -- if (list_empty(&connector->modes)) { -- dev_dbg(dev->dev, "encoder: empty modes list\n"); -- return -EINVAL; -- } ++ + if (list_empty(&connector->modes)) { + dev_dbg(dev->dev, "encoder: empty modes list\n"); + return -EINVAL; + } - -- panel_mode = list_first_entry(&connector->modes, -- struct drm_display_mode, head); ++ + panel_mode = list_first_entry(&connector->modes, + struct drm_display_mode, head); - -- /* We're not allowed to modify the resolution. */ -- if (mode->hdisplay != panel_mode->hdisplay || -- mode->vdisplay != panel_mode->vdisplay) -- return -EINVAL; ++ + /* We're not allowed to modify the resolution. */ + if (mode->hdisplay != panel_mode->hdisplay || + mode->vdisplay != panel_mode->vdisplay) + return -EINVAL; -- /* The flat panel mode is fixed, just copy it to the adjusted mode. */ -- drm_mode_copy(adjusted_mode, panel_mode); +- if (list_empty(&connector->modes)) { +- dev_dbg(dev->dev, "encoder: empty modes list\n"); +- return -EINVAL; + /* + * The flat panel mode is fixed, just copy it to the adjusted + * mode. + */ + drm_mode_copy(adjusted_mode, panel_mode); -+ } + } +- panel_mode = list_first_entry(&connector->modes, +- struct drm_display_mode, head); +- +- /* We're not allowed to modify the resolution. */ +- if (mode->hdisplay != panel_mode->hdisplay || +- mode->vdisplay != panel_mode->vdisplay) +- return -EINVAL; +- +- /* The flat panel mode is fixed, just copy it to the adjusted mode. */ +- drm_mode_copy(adjusted_mode, panel_mode); +- if (renc->lvds) rcar_du_lvdsenc_atomic_check(renc->lvds, adjusted_mode); -@@ -159,6 +163,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, + +@@ -159,6 +163,7 @@ int rcar_du_encoder_init(struct rcar_du_ { struct rcar_du_encoder *renc; struct drm_encoder *encoder; @@ -134,7 +131,7 @@ index 3a3c9374794e..92a0405c2fb2 100644 unsigned int encoder_type; int ret; -@@ -182,6 +187,15 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, +@@ -182,6 +187,15 @@ int rcar_du_encoder_init(struct rcar_du_ break; } @@ -150,7 +147,7 @@ index 3a3c9374794e..92a0405c2fb2 100644 switch (type) { case RCAR_DU_ENCODER_VGA: encoder_type = DRM_MODE_ENCODER_DAC; -@@ -199,35 +213,35 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, +@@ -199,35 +213,35 @@ int rcar_du_encoder_init(struct rcar_du_ break; } @@ -163,10 +160,15 @@ index 3a3c9374794e..92a0405c2fb2 100644 - encoder_type, NULL); - if (ret < 0) - goto done; -- ++ ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs, ++ encoder_type, NULL); ++ if (ret < 0) ++ goto done; + - drm_encoder_helper_add(encoder, &encoder_helper_funcs); - } -- ++ drm_encoder_helper_add(encoder, &encoder_helper_funcs); + - switch (encoder_type) { - case DRM_MODE_ENCODER_LVDS: - ret = rcar_du_lvds_connector_init(rcdu, renc, con_node); @@ -175,16 +177,11 @@ index 3a3c9374794e..92a0405c2fb2 100644 - case DRM_MODE_ENCODER_DAC: - ret = rcar_du_vga_connector_init(rcdu, renc); - break; -+ ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs, -+ encoder_type, NULL); -+ if (ret < 0) -+ goto done; - +- - case DRM_MODE_ENCODER_TMDS: - /* connector managed by the bridge driver */ - break; -+ drm_encoder_helper_add(encoder, &encoder_helper_funcs); - +- - default: - ret = -EINVAL; - break; @@ -213,8 +210,6 @@ index 3a3c9374794e..92a0405c2fb2 100644 } done: -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h -index 269fbab15907..3a6e38fe56cd 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h @@ -18,7 +18,6 @@ @@ -233,9 +228,6 @@ index 269fbab15907..3a6e38fe56cd 100644 struct rcar_du_lvdsenc *lvds; }; -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c -deleted file mode 100644 -index 933a2547798e..000000000000 --- a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c +++ /dev/null @@ -1,134 +0,0 @@ @@ -373,9 +365,6 @@ index 933a2547798e..000000000000 - - return 0; -} -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h b/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h -deleted file mode 100644 -index 2ff0128ac8e1..000000000000 --- a/drivers/gpu/drm/rcar-du/rcar_du_hdmienc.h +++ /dev/null @@ -1,35 +0,0 @@ @@ -414,9 +403,6 @@ index 2ff0128ac8e1..000000000000 -#endif - -#endif /* __RCAR_DU_HDMIENC_H__ */ -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c b/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c -deleted file mode 100644 -index 8d6125c1c0f9..000000000000 --- a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.c +++ /dev/null @@ -1,82 +0,0 @@ @@ -502,9 +488,6 @@ index 8d6125c1c0f9..000000000000 - - return 0; -} -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.h b/drivers/gpu/drm/rcar-du/rcar_du_vgacon.h -deleted file mode 100644 -index 112f50316e01..000000000000 --- a/drivers/gpu/drm/rcar-du/rcar_du_vgacon.h +++ /dev/null @@ -1,23 +0,0 @@ @@ -531,6 +514,3 @@ index 112f50316e01..000000000000 - struct rcar_du_encoder *renc); - -#endif /* __RCAR_DU_VGACON_H__ */ --- -2.13.3 - diff --git a/patches.renesas/0260-drm-rcar-du-Hardcode-encoders-types-to-DRM_MODE_ENCO.patch b/patches.renesas/0260-drm-rcar-du-Hardcode-encoders-types-to-DRM_MODE_ENCO.patch index ffa7757d182d8a..584b58a86bd516 100644 --- a/patches.renesas/0260-drm-rcar-du-Hardcode-encoders-types-to-DRM_MODE_ENCO.patch +++ b/patches.renesas/0260-drm-rcar-du-Hardcode-encoders-types-to-DRM_MODE_ENCO.patch @@ -14,18 +14,16 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 381ddfe478871588af95548aaecb6698009c3d6b) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_drv.c | 15 ------------- - drivers/gpu/drm/rcar-du/rcar_du_drv.h | 2 -- - drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 30 ++++++++----------------- - drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 9 -------- - drivers/gpu/drm/rcar-du/rcar_du_kms.c | 37 ++----------------------------- + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 15 ------------ + drivers/gpu/drm/rcar-du/rcar_du_drv.h | 2 - + drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 30 +++++++----------------- + drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 9 ------- + drivers/gpu/drm/rcar-du/rcar_du_kms.c | 37 +----------------------------- 5 files changed, 11 insertions(+), 82 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -index 12af716ea57c..8ac5f5a64144 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -@@ -45,12 +45,10 @@ static const struct rcar_du_device_info rcar_du_r8a7779_info = { +@@ -45,12 +45,10 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(0), @@ -38,7 +36,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 1, }, }, -@@ -69,17 +67,14 @@ static const struct rcar_du_device_info rcar_du_r8a7790_info = { +@@ -69,17 +67,14 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(2) | BIT(1) | BIT(0), @@ -56,7 +54,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 2, }, }, -@@ -98,12 +93,10 @@ static const struct rcar_du_device_info rcar_du_r8a7791_info = { +@@ -98,12 +93,10 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(1) | BIT(0), @@ -69,7 +67,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 1, }, }, -@@ -119,12 +112,10 @@ static const struct rcar_du_device_info rcar_du_r8a7792_info = { +@@ -119,12 +112,10 @@ static const struct rcar_du_device_info /* R8A7792 has two RGB outputs. */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(0), @@ -82,7 +80,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 1, }, }, -@@ -142,12 +133,10 @@ static const struct rcar_du_device_info rcar_du_r8a7794_info = { +@@ -142,12 +133,10 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(0), @@ -95,7 +93,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 1, }, }, -@@ -166,12 +155,10 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = { +@@ -166,12 +155,10 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(3), @@ -108,7 +106,7 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 3, }, }, -@@ -190,12 +177,10 @@ static const struct rcar_du_device_info rcar_du_r8a7796_info = { +@@ -190,12 +177,10 @@ static const struct rcar_du_device_info */ [RCAR_DU_OUTPUT_DPAD0] = { .possible_crtcs = BIT(2), @@ -121,8 +119,6 @@ index 12af716ea57c..8ac5f5a64144 100644 .port = 2, }, }, -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/rcar-du/rcar_du_drv.h -index 574b3c1c21df..90eb209c244e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h @@ -38,7 +38,6 @@ struct rcar_du_lvdsenc; @@ -141,11 +137,9 @@ index 574b3c1c21df..90eb209c244e 100644 unsigned int port; }; -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -index 92a0405c2fb2..3e048dd98b64 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c -@@ -68,7 +68,7 @@ static int rcar_du_encoder_atomic_check(struct drm_encoder *encoder, +@@ -68,7 +68,7 @@ static int rcar_du_encoder_atomic_check( * Only panel-related encoder types require validation here, everything * else is handled by the bridge drivers. */ @@ -154,7 +148,7 @@ index 92a0405c2fb2..3e048dd98b64 100644 const struct drm_display_mode *panel_mode; if (list_empty(&connector->modes)) { -@@ -156,7 +156,6 @@ static const struct drm_encoder_funcs encoder_funcs = { +@@ -156,7 +156,6 @@ static const struct drm_encoder_funcs en }; int rcar_du_encoder_init(struct rcar_du_device *rcdu, @@ -162,7 +156,7 @@ index 92a0405c2fb2..3e048dd98b64 100644 enum rcar_du_output output, struct device_node *enc_node, struct device_node *con_node) -@@ -164,7 +163,6 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, +@@ -164,7 +163,6 @@ int rcar_du_encoder_init(struct rcar_du_ struct rcar_du_encoder *renc; struct drm_encoder *encoder; struct drm_bridge *bridge = NULL; @@ -170,7 +164,7 @@ index 92a0405c2fb2..3e048dd98b64 100644 int ret; renc = devm_kzalloc(rcdu->dev, sizeof(*renc), GFP_KERNEL); -@@ -188,33 +186,23 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, +@@ -188,33 +186,23 @@ int rcar_du_encoder_init(struct rcar_du_ } if (enc_node) { @@ -212,8 +206,6 @@ index 92a0405c2fb2..3e048dd98b64 100644 if (ret < 0) goto done; -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h -index 3a6e38fe56cd..b4633b64fb79 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h @@ -20,14 +20,6 @@ struct drm_panel; @@ -239,11 +231,9 @@ index 3a6e38fe56cd..b4633b64fb79 100644 enum rcar_du_output output, struct device_node *enc_node, struct device_node *con_node); -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -index e775ae5e5f06..d845e82f4653 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -@@ -284,16 +284,6 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, +@@ -284,16 +284,6 @@ static int rcar_du_encoders_init_one(str enum rcar_du_output output, struct of_endpoint *ep) { @@ -260,7 +250,7 @@ index e775ae5e5f06..d845e82f4653 100644 struct device_node *connector = NULL; struct device_node *encoder = NULL; struct device_node *ep_node = NULL; -@@ -340,30 +330,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, +@@ -340,30 +330,7 @@ static int rcar_du_encoders_init_one(str of_node_put(entity_ep_node); @@ -292,7 +282,7 @@ index e775ae5e5f06..d845e82f4653 100644 /* * If no encoder has been found the entity must be the * connector. -@@ -371,7 +338,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, +@@ -371,7 +338,7 @@ static int rcar_du_encoders_init_one(str connector = entity; } @@ -301,6 +291,3 @@ index e775ae5e5f06..d845e82f4653 100644 if (ret && ret != -EPROBE_DEFER) dev_warn(rcdu->dev, "failed to initialize encoder %s on output %u (%d), skipping\n", --- -2.13.3 - diff --git a/patches.renesas/0261-drm-rcar-du-Add-Gen3-HDMI-encoder-support.patch b/patches.renesas/0261-drm-rcar-du-Add-Gen3-HDMI-encoder-support.patch index 685d664e9cedcd..f65eceba6926b1 100644 --- a/patches.renesas/0261-drm-rcar-du-Add-Gen3-HDMI-encoder-support.patch +++ b/patches.renesas/0261-drm-rcar-du-Add-Gen3-HDMI-encoder-support.patch @@ -17,14 +17,12 @@ Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> (cherry picked from commit 40d0fa7095d06c73c33da4fa7e381350141682f5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/Kconfig | 7 +++ - drivers/gpu/drm/rcar-du/Makefile | 1 + - drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 100 +++++++++++++++++++++++++++++++++ + drivers/gpu/drm/rcar-du/Kconfig | 7 ++ + drivers/gpu/drm/rcar-du/Makefile | 1 + drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 100 +++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c -diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig -index 06121eeba9e5..8a50dab19e5c 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -11,6 +11,13 @@ config DRM_RCAR_DU @@ -41,18 +39,13 @@ index 06121eeba9e5..8a50dab19e5c 100644 config DRM_RCAR_LVDS bool "R-Car DU LVDS Encoder Support" depends on DRM_RCAR_DU -diff --git a/drivers/gpu/drm/rcar-du/Makefile b/drivers/gpu/drm/rcar-du/Makefile -index a492e6858691..2131e722de3b 100644 --- a/drivers/gpu/drm/rcar-du/Makefile +++ b/drivers/gpu/drm/rcar-du/Makefile -@@ -11,3 +11,4 @@ rcar-du-drm-$(CONFIG_DRM_RCAR_LVDS) += rcar_du_lvdsenc.o +@@ -11,3 +11,4 @@ rcar-du-drm-$(CONFIG_DRM_RCAR_LVDS) += r rcar-du-drm-$(CONFIG_DRM_RCAR_VSP) += rcar_du_vsp.o obj-$(CONFIG_DRM_RCAR_DU) += rcar-du-drm.o +obj-$(CONFIG_DRM_RCAR_DW_HDMI) += rcar_dw_hdmi.o -diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c -new file mode 100644 -index 000000000000..7539626b8ebd --- /dev/null +++ b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c @@ -0,0 +1,100 @@ @@ -156,6 +149,3 @@ index 000000000000..7539626b8ebd +MODULE_AUTHOR("Laurent Pinchart <laurent.pinchart@ideasonboard.com>"); +MODULE_DESCRIPTION("Renesas R-Car Gen3 HDMI Encoder Driver"); +MODULE_LICENSE("GPL"); --- -2.13.3 - diff --git a/patches.renesas/0262-drm-rcar-du-Skip-disabled-outputs.patch b/patches.renesas/0262-drm-rcar-du-Skip-disabled-outputs.patch index f0dd5e73cdac68..ddd74df98569ca 100644 --- a/patches.renesas/0262-drm-rcar-du-Skip-disabled-outputs.patch +++ b/patches.renesas/0262-drm-rcar-du-Skip-disabled-outputs.patch @@ -10,14 +10,12 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 4739a0d40b668ed4d60e048ee8ff03cd863e0987) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_kms.c | 7 +++++++ + drivers/gpu/drm/rcar-du/rcar_du_kms.c | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -index d845e82f4653..b89cb152b720 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c -@@ -302,6 +302,13 @@ static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, +@@ -302,6 +302,13 @@ static int rcar_du_encoders_init_one(str return -ENODEV; } @@ -31,6 +29,3 @@ index d845e82f4653..b89cb152b720 100644 entity_ep_node = of_parse_phandle(ep->local_node, "remote-endpoint", 0); for_each_endpoint_of_node(entity, ep_node) { --- -2.13.3 - diff --git a/patches.renesas/0263-drm-rcar-du-Add-DPLL-support.patch b/patches.renesas/0263-drm-rcar-du-Add-DPLL-support.patch index bee21ceb26e5f9..515a60e4e97d38 100644 --- a/patches.renesas/0263-drm-rcar-du-Add-DPLL-support.patch +++ b/patches.renesas/0263-drm-rcar-du-Add-DPLL-support.patch @@ -13,17 +13,15 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit dc4aedbf7c152c092c19e980a9fa1e89d6bc215f) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 81 +++++++++++++++++++++++++++++++++- - drivers/gpu/drm/rcar-du/rcar_du_drv.c | 1 + - drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 + - drivers/gpu/drm/rcar-du/rcar_du_regs.h | 23 ++++++++++ + drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 81 ++++++++++++++++++++++++++++++++- + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 1 + drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 + drivers/gpu/drm/rcar-du/rcar_du_regs.h | 23 +++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index 75bcb5e19cca..c903f33b2abe 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -@@ -106,9 +106,62 @@ static void rcar_du_crtc_put(struct rcar_du_crtc *rcrtc) +@@ -106,9 +106,62 @@ static void rcar_du_crtc_put(struct rcar * Hardware Setup */ @@ -86,7 +84,7 @@ index 75bcb5e19cca..c903f33b2abe 100644 unsigned long mode_clock = mode->clock * 1000; unsigned long clk; u32 value; -@@ -124,12 +177,18 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc) +@@ -124,12 +177,18 @@ static void rcar_du_crtc_set_display_tim escr = div | ESCR_DCLKSEL_CLKS; if (rcrtc->extclock) { @@ -105,7 +103,7 @@ index 75bcb5e19cca..c903f33b2abe 100644 extdiv = DIV_ROUND_CLOSEST(extclk, mode_clock); extdiv = clamp(extdiv, 1U, 64U) - 1; -@@ -140,7 +199,27 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc) +@@ -140,7 +199,27 @@ static void rcar_du_crtc_set_display_tim abs((long)rate - (long)mode_clock)) { dev_dbg(rcrtc->group->dev->dev, "crtc%u: using external clock\n", rcrtc->index); @@ -134,11 +132,9 @@ index 75bcb5e19cca..c903f33b2abe 100644 } } -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -index 8ac5f5a64144..da55ac11a252 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -@@ -163,6 +163,7 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = { +@@ -163,6 +163,7 @@ static const struct rcar_du_device_info }, }, .num_lvds = 1, @@ -146,8 +142,6 @@ index 8ac5f5a64144..da55ac11a252 100644 }; static const struct rcar_du_device_info rcar_du_r8a7796_info = { -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/rcar-du/rcar_du_drv.h -index 90eb209c244e..f8cd79488ece 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h @@ -65,6 +65,7 @@ struct rcar_du_device_info { @@ -158,8 +152,6 @@ index 90eb209c244e..f8cd79488ece 100644 }; #define RCAR_DU_MAX_CRTCS 4 -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_regs.h b/drivers/gpu/drm/rcar-du/rcar_du_regs.h -index fedb0161e234..d5bae99d3cfe 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_regs.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_regs.h @@ -277,6 +277,29 @@ @@ -192,6 +184,3 @@ index fedb0161e234..d5bae99d3cfe 100644 /* ----------------------------------------------------------------------------- * Display Timing Generation Registers */ --- -2.13.3 - diff --git a/patches.renesas/0264-drm-rcar-du-Add-HDMI-outputs-to-R8A7795-device-descr.patch b/patches.renesas/0264-drm-rcar-du-Add-HDMI-outputs-to-R8A7795-device-descr.patch index 55ea9c166b0f9c..271a733e59e9ab 100644 --- a/patches.renesas/0264-drm-rcar-du-Add-HDMI-outputs-to-R8A7795-device-descr.patch +++ b/patches.renesas/0264-drm-rcar-du-Add-HDMI-outputs-to-R8A7795-device-descr.patch @@ -11,12 +11,10 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> (cherry picked from commit 0dda563e571093f309d597cafaf7dd535496ecfb) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 4 +++- - drivers/gpu/drm/rcar-du/rcar_du_drv.c | 12 ++++++++++-- + drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 4 +++- + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h -index 6f08b7e7db06..459e5390d6e0 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h @@ -1,7 +1,7 @@ @@ -37,11 +35,9 @@ index 6f08b7e7db06..459e5390d6e0 100644 RCAR_DU_OUTPUT_TCON, RCAR_DU_OUTPUT_MAX, }; -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -index da55ac11a252..01981f004dc3 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c -@@ -150,13 +150,21 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = { +@@ -150,13 +150,21 @@ static const struct rcar_du_device_info | RCAR_DU_FEATURE_VSP1_SOURCE, .num_crtcs = 4, .routes = { @@ -65,6 +61,3 @@ index da55ac11a252..01981f004dc3 100644 [RCAR_DU_OUTPUT_LVDS0] = { .possible_crtcs = BIT(0), .port = 3, --- -2.13.3 - diff --git a/patches.renesas/0265-ARM-dts-r8a7743-Add-reset-control-properties.patch b/patches.renesas/0265-ARM-dts-r8a7743-Add-reset-control-properties.patch index ddc13b218bac15..f6605ba35cdcd6 100644 --- a/patches.renesas/0265-ARM-dts-r8a7743-Add-reset-control-properties.patch +++ b/patches.renesas/0265-ARM-dts-r8a7743-Add-reset-control-properties.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d20747b7df51178db5f5c7a03cbf17a91bdb6f0e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7743.dtsi | 24 ++++++++++++++++++++++++ + arch/arm/boot/dts/r8a7743.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) -diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi -index cd908796fb3b..0ddac81742e4 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi @@ -62,6 +62,7 @@ @@ -215,6 +213,3 @@ index cd908796fb3b..0ddac81742e4 100644 phy-mode = "rmii"; #address-cells = <1>; #size-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0266-ARM-dts-r8a7745-Add-reset-control-properties.patch b/patches.renesas/0266-ARM-dts-r8a7745-Add-reset-control-properties.patch index cc90456c87ebe2..e639e556f35375 100644 --- a/patches.renesas/0266-ARM-dts-r8a7745-Add-reset-control-properties.patch +++ b/patches.renesas/0266-ARM-dts-r8a7745-Add-reset-control-properties.patch @@ -16,11 +16,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 1efab6e91e8e789f98a11d6618f0fd66f1c51f98) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7745.dtsi | 24 ++++++++++++++++++++++++ + arch/arm/boot/dts/r8a7745.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) -diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi -index bca88715fada..2feb0084bb3b 100644 --- a/arch/arm/boot/dts/r8a7745.dtsi +++ b/arch/arm/boot/dts/r8a7745.dtsi @@ -62,6 +62,7 @@ @@ -215,6 +213,3 @@ index bca88715fada..2feb0084bb3b 100644 phy-mode = "rmii"; #address-cells = <1>; #size-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0267-ARM-dts-r7s72100-add-power-domains-to-sdhi.patch b/patches.renesas/0267-ARM-dts-r7s72100-add-power-domains-to-sdhi.patch index 90bb9b8b12b97c..138430a209e06c 100644 --- a/patches.renesas/0267-ARM-dts-r7s72100-add-power-domains-to-sdhi.patch +++ b/patches.renesas/0267-ARM-dts-r7s72100-add-power-domains-to-sdhi.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 3932197c01e4ca7d743d07728656d938f1ae93d5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 2 ++ + arch/arm/boot/dts/r7s72100.dtsi | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 9b12d73e67dc..9fb2e510958a 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -501,6 +501,7 @@ @@ -34,6 +32,3 @@ index 9b12d73e67dc..9fb2e510958a 100644 cap-sd-highspeed; cap-sdio-irq; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0268-ARM-dts-r8a7794-Add-DU1-clock-to-device-tree.patch b/patches.renesas/0268-ARM-dts-r8a7794-Add-DU1-clock-to-device-tree.patch index dad73645e99601..c50a87275b64dd 100644 --- a/patches.renesas/0268-ARM-dts-r8a7794-Add-DU1-clock-to-device-tree.patch +++ b/patches.renesas/0268-ARM-dts-r8a7794-Add-DU1-clock-to-device-tree.patch @@ -11,12 +11,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 1764f8081f1524bf629e0744b277db751281ff56) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794.dtsi | 8 +++++--- - include/dt-bindings/clock/r8a7794-clock.h | 1 + + arch/arm/boot/dts/r8a7794.dtsi | 8 +++++--- + include/dt-bindings/clock/r8a7794-clock.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi -index 38bf9ed8e739..f5f8d1c03ef7 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi @@ -1270,19 +1270,21 @@ @@ -44,8 +42,6 @@ index 38bf9ed8e739..f5f8d1c03ef7 100644 }; mstp8_clks: mstp8_clks@e6150990 { compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h -index a26776f7dedd..93e99c3ffc8d 100644 --- a/include/dt-bindings/clock/r8a7794-clock.h +++ b/include/dt-bindings/clock/r8a7794-clock.h @@ -82,6 +82,7 @@ @@ -56,6 +52,3 @@ index a26776f7dedd..93e99c3ffc8d 100644 #define R8A7794_CLK_DU0 24 /* MSTP8 */ --- -2.13.3 - diff --git a/patches.renesas/0269-ARM-dts-r8a7794-Correct-clock-of-DU1.patch b/patches.renesas/0269-ARM-dts-r8a7794-Correct-clock-of-DU1.patch index 3948a4088a2930..efd78494a48861 100644 --- a/patches.renesas/0269-ARM-dts-r8a7794-Correct-clock-of-DU1.patch +++ b/patches.renesas/0269-ARM-dts-r8a7794-Correct-clock-of-DU1.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 89675f36c9e17512812b9d14d9824f8ef92782c3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794.dtsi | 2 +- + arch/arm/boot/dts/r8a7794.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi -index f5f8d1c03ef7..2f6e94fd408c 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi @@ -925,7 +925,7 @@ @@ -29,6 +27,3 @@ index f5f8d1c03ef7..2f6e94fd408c 100644 clock-names = "du.0", "du.1"; status = "disabled"; --- -2.13.3 - diff --git a/patches.renesas/0270-ARM-dts-alt-Correct-clock-of-DU1.patch b/patches.renesas/0270-ARM-dts-alt-Correct-clock-of-DU1.patch index a721a802932689..cd7f1271920577 100644 --- a/patches.renesas/0270-ARM-dts-alt-Correct-clock-of-DU1.patch +++ b/patches.renesas/0270-ARM-dts-alt-Correct-clock-of-DU1.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 7f698bf60e3a13c991577f5360f371e2a41cf40e) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794-alt.dts | 2 +- + arch/arm/boot/dts/r8a7794-alt.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts -index 3fcf76b8e923..f1eea13cdf44 100644 --- a/arch/arm/boot/dts/r8a7794-alt.dts +++ b/arch/arm/boot/dts/r8a7794-alt.dts @@ -168,7 +168,7 @@ @@ -29,6 +27,3 @@ index 3fcf76b8e923..f1eea13cdf44 100644 <&x13_clk>, <&x2_clk>; clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; --- -2.13.3 - diff --git a/patches.renesas/0271-ARM-dts-silk-Correct-clock-of-DU1.patch b/patches.renesas/0271-ARM-dts-silk-Correct-clock-of-DU1.patch index bd2f103dea3c60..7ae6b71a13e43e 100644 --- a/patches.renesas/0271-ARM-dts-silk-Correct-clock-of-DU1.patch +++ b/patches.renesas/0271-ARM-dts-silk-Correct-clock-of-DU1.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 403fe77e22eb72c962c3889efc9d4fa62e454737) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794-silk.dts | 2 +- + arch/arm/boot/dts/r8a7794-silk.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts -index c742d80d6dca..4cb5278d104d 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts @@ -424,7 +424,7 @@ @@ -29,6 +27,3 @@ index c742d80d6dca..4cb5278d104d 100644 <&x2_clk>, <&x3_clk>; clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; --- -2.13.3 - diff --git a/patches.renesas/0272-ARM-dts-r7s72100-fix-ethernet-clock-parent.patch b/patches.renesas/0272-ARM-dts-r7s72100-fix-ethernet-clock-parent.patch index 0cb39df6b0e0c1..044e954b5720c9 100644 --- a/patches.renesas/0272-ARM-dts-r7s72100-fix-ethernet-clock-parent.patch +++ b/patches.renesas/0272-ARM-dts-r7s72100-fix-ethernet-clock-parent.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 91a7c50cb4fabfba218549dfa84356069918bfbf) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 2 +- + arch/arm/boot/dts/r7s72100.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 9fb2e510958a..47ef53a4c8bf 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -121,7 +121,7 @@ @@ -29,6 +27,3 @@ index 9fb2e510958a..47ef53a4c8bf 100644 clock-indices = <R7S72100_CLK_ETHER>; clock-output-names = "ether"; }; --- -2.13.3 - diff --git a/patches.renesas/0273-ARM-dts-r8a7790-Correct-parent-of-SSI-0-9-clocks.patch b/patches.renesas/0273-ARM-dts-r8a7790-Correct-parent-of-SSI-0-9-clocks.patch index 2b0c0de9849caf..dd0c0b3e687cf4 100644 --- a/patches.renesas/0273-ARM-dts-r8a7790-Correct-parent-of-SSI-0-9-clocks.patch +++ b/patches.renesas/0273-ARM-dts-r8a7790-Correct-parent-of-SSI-0-9-clocks.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit d13d4e063d4a08eb1686e890e9183dde709871bf) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790.dtsi | 7 +++++-- + arch/arm/boot/dts/r8a7790.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi -index 534525665bb3..fe6b8c2a2d71 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi @@ -1443,8 +1443,11 @@ @@ -34,6 +32,3 @@ index 534525665bb3..fe6b8c2a2d71 100644 <&p_clk>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, --- -2.13.3 - diff --git a/patches.renesas/0274-ARM-dts-r8a7791-Correct-parent-of-SSI-0-9-clocks.patch b/patches.renesas/0274-ARM-dts-r8a7791-Correct-parent-of-SSI-0-9-clocks.patch index 6daed32b9752da..457b96a233cd32 100644 --- a/patches.renesas/0274-ARM-dts-r8a7791-Correct-parent-of-SSI-0-9-clocks.patch +++ b/patches.renesas/0274-ARM-dts-r8a7791-Correct-parent-of-SSI-0-9-clocks.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 16fe68dcab5702a024d85229ff7e98979cb701a5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791.dtsi | 7 +++++-- + arch/arm/boot/dts/r8a7791.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi -index 4202d474992e..234daf480122 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -1447,8 +1447,11 @@ @@ -34,6 +32,3 @@ index 4202d474992e..234daf480122 100644 <&p_clk>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, --- -2.13.3 - diff --git a/patches.renesas/0275-ARM-dts-r8a7793-Correct-parent-of-SSI-0-9-clocks.patch b/patches.renesas/0275-ARM-dts-r8a7793-Correct-parent-of-SSI-0-9-clocks.patch index a3c47539699a98..1381821853903f 100644 --- a/patches.renesas/0275-ARM-dts-r8a7793-Correct-parent-of-SSI-0-9-clocks.patch +++ b/patches.renesas/0275-ARM-dts-r8a7793-Correct-parent-of-SSI-0-9-clocks.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 1cd9028027c7a7c10b774df698c3cfafec6aa67d) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7793.dtsi | 7 +++++-- + arch/arm/boot/dts/r8a7793.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi -index 9fcf3a9ca084..4de6041d61f9 100644 --- a/arch/arm/boot/dts/r8a7793.dtsi +++ b/arch/arm/boot/dts/r8a7793.dtsi @@ -1269,8 +1269,11 @@ @@ -34,6 +32,3 @@ index 9fcf3a9ca084..4de6041d61f9 100644 <&p_clk>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, --- -2.13.3 - diff --git a/patches.renesas/0276-ARM-dts-r8a7792-Correct-Z-clock.patch b/patches.renesas/0276-ARM-dts-r8a7792-Correct-Z-clock.patch index 69fa7c9308578f..d04817066e9b91 100644 --- a/patches.renesas/0276-ARM-dts-r8a7792-Correct-Z-clock.patch +++ b/patches.renesas/0276-ARM-dts-r8a7792-Correct-Z-clock.patch @@ -22,12 +22,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 7b39e985cfc18bba43646240b10a830046382abf) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7792.dtsi | 11 +++++++++-- - include/dt-bindings/clock/r8a7792-clock.h | 1 - + arch/arm/boot/dts/r8a7792.dtsi | 11 +++++++++-- + include/dt-bindings/clock/r8a7792-clock.h | 1 - 2 files changed, 9 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi -index 6c0797ebc08f..0efecb232ee5 100644 --- a/arch/arm/boot/dts/r8a7792.dtsi +++ b/arch/arm/boot/dts/r8a7792.dtsi @@ -46,7 +46,7 @@ @@ -62,8 +60,6 @@ index 6c0797ebc08f..0efecb232ee5 100644 zx_clk: zx { compatible = "fixed-factor-clock"; clocks = <&cpg_clocks R8A7792_CLK_PLL1>; -diff --git a/include/dt-bindings/clock/r8a7792-clock.h b/include/dt-bindings/clock/r8a7792-clock.h -index 94dd16a1e6e6..5be90bc23bd7 100644 --- a/include/dt-bindings/clock/r8a7792-clock.h +++ b/include/dt-bindings/clock/r8a7792-clock.h @@ -17,7 +17,6 @@ @@ -74,6 +70,3 @@ index 94dd16a1e6e6..5be90bc23bd7 100644 /* MSTP0 */ #define R8A7792_CLK_MSIOF0 0 --- -2.13.3 - diff --git a/patches.renesas/0277-ARM-dts-r8a7794-Add-Z2-clock.patch b/patches.renesas/0277-ARM-dts-r8a7794-Add-Z2-clock.patch index 2dd32210a08ec8..2723d15bd6b468 100644 --- a/patches.renesas/0277-ARM-dts-r8a7794-Add-Z2-clock.patch +++ b/patches.renesas/0277-ARM-dts-r8a7794-Add-Z2-clock.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 57ff9d736e05bede56fdb47599fdddb3408d4651) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7794.dtsi | 8 ++++++++ + arch/arm/boot/dts/r8a7794.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi -index 2f6e94fd408c..a19b884fb258 100644 --- a/arch/arm/boot/dts/r8a7794.dtsi +++ b/arch/arm/boot/dts/r8a7794.dtsi @@ -43,6 +43,7 @@ @@ -40,6 +38,3 @@ index 2f6e94fd408c..a19b884fb258 100644 zg_clk: zg { compatible = "fixed-factor-clock"; clocks = <&cpg_clocks R8A7794_CLK_PLL1>; --- -2.13.3 - diff --git a/patches.renesas/0278-ARM-dts-koelsch-Correct-clock-frequency-of-X2-DU-clo.patch b/patches.renesas/0278-ARM-dts-koelsch-Correct-clock-frequency-of-X2-DU-clo.patch index 9c17196ed71bb2..b54213172f4dff 100644 --- a/patches.renesas/0278-ARM-dts-koelsch-Correct-clock-frequency-of-X2-DU-clo.patch +++ b/patches.renesas/0278-ARM-dts-koelsch-Correct-clock-frequency-of-X2-DU-clo.patch @@ -18,11 +18,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit ebf06af55c7594ed1fc18469a5cddf911c40e687) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- + arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts -index 59beb8402a36..001e6116c47c 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts @@ -292,7 +292,7 @@ @@ -34,6 +32,3 @@ index 59beb8402a36..001e6116c47c 100644 }; x13_clk: x13-clock { --- -2.13.3 - diff --git a/patches.renesas/0279-ARM-dts-r7s72100-add-rtc-clock-to-device-tree.patch b/patches.renesas/0279-ARM-dts-r7s72100-add-rtc-clock-to-device-tree.patch index 7b0f017d0033e5..88bd513077c7c3 100644 --- a/patches.renesas/0279-ARM-dts-r7s72100-add-rtc-clock-to-device-tree.patch +++ b/patches.renesas/0279-ARM-dts-r7s72100-add-rtc-clock-to-device-tree.patch @@ -11,12 +11,10 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 929ded3dd7ce91d9ef4143d673b4ace2eb9ab355) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 9 +++++++++ - include/dt-bindings/clock/r7s72100-clock.h | 3 +++ + arch/arm/boot/dts/r7s72100.dtsi | 9 +++++++++ + include/dt-bindings/clock/r7s72100-clock.h | 3 +++ 2 files changed, 12 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 47ef53a4c8bf..9eace892fec7 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -117,6 +117,15 @@ @@ -35,8 +33,6 @@ index 47ef53a4c8bf..9eace892fec7 100644 mstp7_clks: mstp7_clks@fcfe0430 { #clock-cells = <1>; compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; -diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h -index cd2ed5194255..bc256d31099a 100644 --- a/include/dt-bindings/clock/r7s72100-clock.h +++ b/include/dt-bindings/clock/r7s72100-clock.h @@ -29,6 +29,9 @@ @@ -49,6 +45,3 @@ index cd2ed5194255..bc256d31099a 100644 /* MSTP7 */ #define R7S72100_CLK_ETHER 4 --- -2.13.3 - diff --git a/patches.renesas/0280-ARM-dts-r7s72100-add-RTC_X-clock-inputs-to-device-tr.patch b/patches.renesas/0280-ARM-dts-r7s72100-add-RTC_X-clock-inputs-to-device-tr.patch index f692b53994ba5f..9e2c15ba91d310 100644 --- a/patches.renesas/0280-ARM-dts-r7s72100-add-RTC_X-clock-inputs-to-device-tr.patch +++ b/patches.renesas/0280-ARM-dts-r7s72100-add-RTC_X-clock-inputs-to-device-tr.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit deddcb891d0d2b4f437dea9bdea4752982c4b133) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 14 ++++++++++++++ + arch/arm/boot/dts/r7s72100.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 9eace892fec7..9db46ac08ba7 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -51,6 +51,20 @@ @@ -41,6 +39,3 @@ index 9eace892fec7..9db46ac08ba7 100644 /* Fixed factor clocks */ b_clk: b { #clock-cells = <0>; --- -2.13.3 - diff --git a/patches.renesas/0281-ARM-dts-r7s72100-add-rtc-to-device-tree.patch b/patches.renesas/0281-ARM-dts-r7s72100-add-rtc-to-device-tree.patch index 32753eac174119..b3c7a2f6ac5da8 100644 --- a/patches.renesas/0281-ARM-dts-r7s72100-add-rtc-to-device-tree.patch +++ b/patches.renesas/0281-ARM-dts-r7s72100-add-rtc-to-device-tree.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 3b5e3f0455442f376f91c69147526535a0389ac3) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100.dtsi | 14 ++++++++++++++ + arch/arm/boot/dts/r7s72100.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi -index 9db46ac08ba7..ab9ced453118 100644 --- a/arch/arm/boot/dts/r7s72100.dtsi +++ b/arch/arm/boot/dts/r7s72100.dtsi @@ -563,4 +563,18 @@ @@ -37,6 +35,3 @@ index 9db46ac08ba7..ab9ced453118 100644 + status = "disabled"; + }; }; --- -2.13.3 - diff --git a/patches.renesas/0282-ARM-dts-rskrza1-set-rtc_x1-clock-value.patch b/patches.renesas/0282-ARM-dts-rskrza1-set-rtc_x1-clock-value.patch index 7e7fde86b1d903..c5fcac6c426b56 100644 --- a/patches.renesas/0282-ARM-dts-rskrza1-set-rtc_x1-clock-value.patch +++ b/patches.renesas/0282-ARM-dts-rskrza1-set-rtc_x1-clock-value.patch @@ -12,11 +12,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit f90c36448aacde1fd41332659a12cbc9558b1137) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100-rskrza1.dts | 4 ++++ + arch/arm/boot/dts/r7s72100-rskrza1.dts | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts -index 02b59c5b3c53..cab5857bfb41 100644 --- a/arch/arm/boot/dts/r7s72100-rskrza1.dts +++ b/arch/arm/boot/dts/r7s72100-rskrza1.dts @@ -43,6 +43,10 @@ @@ -30,6 +28,3 @@ index 02b59c5b3c53..cab5857bfb41 100644 &mtu2 { status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0283-ARM-dts-rskrza1-add-rtc-DT-support.patch b/patches.renesas/0283-ARM-dts-rskrza1-add-rtc-DT-support.patch index 8fec55b4064fb8..0f181d161e247c 100644 --- a/patches.renesas/0283-ARM-dts-rskrza1-add-rtc-DT-support.patch +++ b/patches.renesas/0283-ARM-dts-rskrza1-add-rtc-DT-support.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 931f3dc3f0d14cc7758aa2d48fc2d713f8c6ebff) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100-rskrza1.dts | 4 ++++ + arch/arm/boot/dts/r7s72100-rskrza1.dts | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts -index cab5857bfb41..72df20a04320 100644 --- a/arch/arm/boot/dts/r7s72100-rskrza1.dts +++ b/arch/arm/boot/dts/r7s72100-rskrza1.dts @@ -73,6 +73,10 @@ @@ -29,6 +27,3 @@ index cab5857bfb41..72df20a04320 100644 &scif2 { status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0284-ARM-dts-genmai-Enable-rtc-and-rtc_x1-clock.patch b/patches.renesas/0284-ARM-dts-genmai-Enable-rtc-and-rtc_x1-clock.patch index 9fc6ab6c37dd2b..93d5a9bf08d619 100644 --- a/patches.renesas/0284-ARM-dts-genmai-Enable-rtc-and-rtc_x1-clock.patch +++ b/patches.renesas/0284-ARM-dts-genmai-Enable-rtc-and-rtc_x1-clock.patch @@ -11,11 +11,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit e533a459f07c2b7bcc60121032b3b24d0c58133a) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r7s72100-genmai.dts | 8 ++++++++ + arch/arm/boot/dts/r7s72100-genmai.dts | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts -index 118a8e2b86bd..52a7b586bac7 100644 --- a/arch/arm/boot/dts/r7s72100-genmai.dts +++ b/arch/arm/boot/dts/r7s72100-genmai.dts @@ -44,6 +44,10 @@ @@ -40,6 +38,3 @@ index 118a8e2b86bd..52a7b586bac7 100644 &scif2 { status = "okay"; }; --- -2.13.3 - diff --git a/patches.renesas/0285-ARM-dts-r8a7790-Drop-_clk-suffix-from-external-CAN-c.patch b/patches.renesas/0285-ARM-dts-r8a7790-Drop-_clk-suffix-from-external-CAN-c.patch index 5978c46f6c3739..88115fb92fa2c0 100644 --- a/patches.renesas/0285-ARM-dts-r8a7790-Drop-_clk-suffix-from-external-CAN-c.patch +++ b/patches.renesas/0285-ARM-dts-r8a7790-Drop-_clk-suffix-from-external-CAN-c.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit 5b476a9610910a6ac5222bee4ae83a8d41800dbd) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7790.dtsi | 2 +- + arch/arm/boot/dts/r8a7790.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi -index fe6b8c2a2d71..99269aaca6fc 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi @@ -1101,7 +1101,7 @@ @@ -29,6 +27,3 @@ index fe6b8c2a2d71..99269aaca6fc 100644 compatible = "fixed-clock"; #clock-cells = <0>; /* This value must be overridden by the board. */ --- -2.13.3 - diff --git a/patches.renesas/0286-ARM-dts-r8a7791-Drop-_clk-suffix-from-external-CAN-c.patch b/patches.renesas/0286-ARM-dts-r8a7791-Drop-_clk-suffix-from-external-CAN-c.patch index ec8df35e4396b6..1854fbb79953ac 100644 --- a/patches.renesas/0286-ARM-dts-r8a7791-Drop-_clk-suffix-from-external-CAN-c.patch +++ b/patches.renesas/0286-ARM-dts-r8a7791-Drop-_clk-suffix-from-external-CAN-c.patch @@ -13,11 +13,9 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> (cherry picked from commit eb77d7260c4c25206e2a455be0dbe6443e0856b5) Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- - arch/arm/boot/dts/r8a7791.dtsi | 2 +- + arch/arm/boot/dts/r8a7791.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi -index 234daf480122..fb405eb16c19 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi @@ -1126,7 +1126,7 @@ @@ -29,6 +27,3 @@ index 234daf480122..fb405eb16c19 100644 compatible = "fixed-clock"; #clock-cells = <0>; /* This value must be overridden by the board. */ --- -2.13.3 - @@ -737,17 +737,11 @@ patches.renesas/0158-clk-renesas-rcar-gen3-Add-workaround-for-PLL0-2-4-er.patch patches.renesas/0159-clk-renesas-cpg-mssr-Add-support-for-fixing-up-clock.patch patches.renesas/0160-clk-renesas-r8a7795-Add-support-for-R-Car-H3-ES2.0.patch patches.renesas/0161-clk-renesas-rcar-gen3-cpg-Add-support-for-RCLK-on-R-.patch -patches.renesas/0162-pinctrl-sh-pfc-r8a7795-Fix-hscif2_clk_b-and-hscif4_c.patch patches.renesas/0163-pinctrl-sh-pfc-r8a7795-Restore-sort-order.patch -patches.renesas/0164-pinctrl-sh-pfc-Update-info-pointer-after-SoC-specifi.patch patches.renesas/0165-pinctrl-sh-pfc-r8a7795-Add-support-for-R-Car-H3-ES2..patch patches.renesas/0166-pinctrl-sh-pfc-r8a7795-Add-SCIF-support.patch patches.renesas/0167-pinctrl-sh-pfc-r8a7795-Add-SCIF_CLK-support.patch -patches.renesas/0168-pinctrl-sh-pfc-r8a7791-Add-missing-HSCIF1-pinmux-dat.patch -patches.renesas/0169-pinctrl-sh-pfc-r8a7791-Add-missing-DVC_MUTE-signal.patch -patches.renesas/0170-pinctrl-sh-pfc-r8a7791-Fix-SCIF2-pinmux-data.patch patches.renesas/0171-pinctrl-sh-pfc-r8a7791-Fix-IPSR-comment-typos.patch -patches.renesas/0172-pinctrl-sh-pfc-r8a7794-Swap-ATA-signals.patch patches.renesas/0173-net-phy-micrel-Restore-led_mode-and-clk_sel-on-resum.patch patches.renesas/0174-soc-renesas-rcar-sysc-Add-support-for-fixing-up-powe.patch patches.renesas/0175-soc-renesas-rcar-sysc-Add-support-for-R-Car-H3-ES2.0.patch @@ -799,7 +793,6 @@ patches.renesas/0220-usb-host-xhci-ring-don-t-need-to-clear-interrupt-pen.patch patches.renesas/0221-USB-xhci-fix-lock-inversion-problem.patch patches.renesas/0222-xhci-Fix-command-ring-stop-regression-in-4.11.patch patches.renesas/0223-dt-bindings-net-sms911x-Add-missing-optional-VDD-reg.patch -patches.renesas/0224-net-phy-micrel-configure-intterupts-after-autoneg-wo.patch patches.renesas/0225-drm-bridge-dw-hdmi-Remove-unused-functions.patch patches.renesas/0226-drm-bridge-dw-hdmi-Move-CSC-configuration-out-of-PHY.patch patches.renesas/0227-drm-bridge-dw-hdmi-Enable-CSC-even-for-DVI.patch |