Commit 5596c6ad authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'mips_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS updates from Thomas Bogendoerfer:
 "Just cleanups and fixes"

* tag 'mips_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
  MIPS: vpe-mt: drop physical_memsize
  mips: fix syscall_get_nr
  MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
  MIPS: DTS: jz4780: add #clock-cells to rtc_dev
  MIPS: dts: Boston: Fix dtc 'pci_device_reg' warning
  mips: dts: ralink: mt7621: add port@5 as CPU port
  mips: dts: align LED node names with dtschema
  MIPS: ralink: Use devm_platform_get_and_ioremap_resource()
  MIPS: pci-mt7620: Use devm_platform_get_and_ioremap_resource()
  MIPS: pci: lantiq: Use devm_platform_get_and_ioremap_resource()
  MIPS: lantiq: xway: Use devm_platform_get_and_ioremap_resource()
  MIPS: BCM47XX: Add support for Linksys E2500 V3
  mips: ralink: make SOC_MT7621 select PINCTRL_MT7621 and fix help section
  MIPS: DTS: CI20: fix otg power gpio
  MIPS: dts: lantiq: Remove bogus interrupt-parent; line
  MIPS: Fix a compilation issue
  MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO
  mips: Realtek RTL: select NO_EXCEPT_FILL
  MIPS: OCTEON: octeon-usb: Consolidate error messages
parents 7c3dc440 91dc288f
...@@ -445,6 +445,7 @@ config LANTIQ ...@@ -445,6 +445,7 @@ config LANTIQ
select IRQ_MIPS_CPU select IRQ_MIPS_CPU
select CEVT_R4K select CEVT_R4K
select CSRC_R4K select CSRC_R4K
select NO_EXCEPT_FILL
select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_CPU_MIPS32_R1
select SYS_HAS_CPU_MIPS32_R2 select SYS_HAS_CPU_MIPS32_R2
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
......
...@@ -130,6 +130,7 @@ struct bcm47xx_board_type_list2 bcm47xx_board_list_boot_hw[] __initconst = { ...@@ -130,6 +130,7 @@ struct bcm47xx_board_type_list2 bcm47xx_board_list_boot_hw[] __initconst = {
{{BCM47XX_BOARD_LINKSYS_E1000V21, "Linksys E1000 V2.1"}, "E1000", "2.1"}, {{BCM47XX_BOARD_LINKSYS_E1000V21, "Linksys E1000 V2.1"}, "E1000", "2.1"},
{{BCM47XX_BOARD_LINKSYS_E1200V2, "Linksys E1200 V2"}, "E1200", "2.0"}, {{BCM47XX_BOARD_LINKSYS_E1200V2, "Linksys E1200 V2"}, "E1200", "2.0"},
{{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"}, {{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"},
{{BCM47XX_BOARD_LINKSYS_E2500V3, "Linksys E2500 V3"}, "E2500", "1.0"},
/* like WRT610N v2.0 */ /* like WRT610N v2.0 */
{{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"}, {{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"},
{{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"}, {{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"},
......
...@@ -222,6 +222,12 @@ bcm47xx_buttons_linksys_e2000v1[] __initconst = { ...@@ -222,6 +222,12 @@ bcm47xx_buttons_linksys_e2000v1[] __initconst = {
BCM47XX_GPIO_KEY(8, KEY_RESTART), BCM47XX_GPIO_KEY(8, KEY_RESTART),
}; };
static const struct gpio_keys_button
bcm47xx_buttons_linksys_e2500v3[] __initconst = {
BCM47XX_GPIO_KEY(9, KEY_WPS_BUTTON),
BCM47XX_GPIO_KEY(10, KEY_RESTART),
};
static const struct gpio_keys_button static const struct gpio_keys_button
bcm47xx_buttons_linksys_e3000v1[] __initconst = { bcm47xx_buttons_linksys_e3000v1[] __initconst = {
BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON), BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
...@@ -617,6 +623,9 @@ int __init bcm47xx_buttons_register(void) ...@@ -617,6 +623,9 @@ int __init bcm47xx_buttons_register(void)
case BCM47XX_BOARD_LINKSYS_E2000V1: case BCM47XX_BOARD_LINKSYS_E2000V1:
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2000v1); err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2000v1);
break; break;
case BCM47XX_BOARD_LINKSYS_E2500V3:
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2500v3);
break;
case BCM47XX_BOARD_LINKSYS_E3000V1: case BCM47XX_BOARD_LINKSYS_E3000V1:
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3000v1); err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3000v1);
break; break;
......
...@@ -20,27 +20,27 @@ uart0: serial@1180000000800 { ...@@ -20,27 +20,27 @@ uart0: serial@1180000000800 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
usb1 { led-usb1 {
label = "usb1"; label = "usb1";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>; gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
}; };
usb2 { led-usb2 {
label = "usb2"; label = "usb2";
gpios = <&gpio 10 GPIO_ACTIVE_LOW>; gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
}; };
wps { led-wps {
label = "wps"; label = "wps";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>; gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
}; };
wireless1 { led-wireless1 {
label = "5g"; label = "5g";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>; gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
}; };
wireless2 { led-wireless2 {
label = "2.4g"; label = "2.4g";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>; gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
}; };
......
...@@ -21,15 +21,15 @@ uart0: serial@1180000000800 { ...@@ -21,15 +21,15 @@ uart0: serial@1180000000800 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
usb { led-usb {
gpios = <&gpio 9 GPIO_ACTIVE_LOW>; gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
}; };
wps { led-wps {
gpios = <&gpio 11 GPIO_ACTIVE_LOW>; gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
}; };
wireless { led-wireless {
label = "2.4g"; label = "2.4g";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>; gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
}; };
......
...@@ -125,7 +125,7 @@ pci2_intc: interrupt-controller { ...@@ -125,7 +125,7 @@ pci2_intc: interrupt-controller {
#interrupt-cells = <1>; #interrupt-cells = <1>;
}; };
pci2_root@0,0,0 { pci2_root@0,0 {
compatible = "pci10ee,7021"; compatible = "pci10ee,7021";
reg = <0x00000000 0 0 0 0>; reg = <0x00000000 0 0 0 0>;
......
...@@ -42,25 +42,25 @@ switch { ...@@ -42,25 +42,25 @@ switch {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
led0 { led-0 {
label = "ci20:red:led0"; label = "ci20:red:led0";
gpios = <&gpc 3 GPIO_ACTIVE_HIGH>; gpios = <&gpc 3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "none"; linux,default-trigger = "none";
}; };
led1 { led-1 {
label = "ci20:red:led1"; label = "ci20:red:led1";
gpios = <&gpc 2 GPIO_ACTIVE_HIGH>; gpios = <&gpc 2 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "nand-disk"; linux,default-trigger = "nand-disk";
}; };
led2 { led-2 {
label = "ci20:red:led2"; label = "ci20:red:led2";
gpios = <&gpc 1 GPIO_ACTIVE_HIGH>; gpios = <&gpc 1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cpu1"; linux,default-trigger = "cpu1";
}; };
led3 { led-3 {
label = "ci20:red:led3"; label = "ci20:red:led3";
gpios = <&gpc 0 GPIO_ACTIVE_HIGH>; gpios = <&gpc 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cpu0"; linux,default-trigger = "cpu0";
...@@ -113,7 +113,7 @@ otg_power: fixedregulator@2 { ...@@ -113,7 +113,7 @@ otg_power: fixedregulator@2 {
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
gpio = <&gpf 14 GPIO_ACTIVE_LOW>; gpio = <&gpf 15 GPIO_ACTIVE_LOW>;
enable-active-high; enable-active-high;
}; };
}; };
......
...@@ -155,6 +155,8 @@ rtc_dev: rtc@10003000 { ...@@ -155,6 +155,8 @@ rtc_dev: rtc@10003000 {
clocks = <&cgu JZ4780_CLK_RTCLK>; clocks = <&cgu JZ4780_CLK_RTCLK>;
clock-names = "rtc"; clock-names = "rtc";
#clock-cells = <0>;
}; };
pinctrl: pin-controller@10010000 { pinctrl: pin-controller@10010000 {
......
...@@ -40,7 +40,6 @@ sram@1f000000 { ...@@ -40,7 +40,6 @@ sram@1f000000 {
eiu0: eiu@101000 { eiu0: eiu@101000 {
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-controller; interrupt-controller;
interrupt-parent;
compatible = "lantiq,eiu-xway"; compatible = "lantiq,eiu-xway";
reg = <0x101000 0x1000>; reg = <0x101000 0x1000>;
}; };
......
...@@ -28,19 +28,19 @@ leds0 { ...@@ -28,19 +28,19 @@ leds0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&user_leds_s0>; pinctrl-0 = <&user_leds_s0>;
led@1 { led-1 {
label = "pic32mzda_sk:red:led1"; label = "pic32mzda_sk:red:led1";
gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>; gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
}; };
led@2 { led-2 {
label = "pic32mzda_sk:yellow:led2"; label = "pic32mzda_sk:yellow:led2";
gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>; gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc0"; linux,default-trigger = "mmc0";
}; };
led@3 { led-3 {
label = "pic32mzda_sk:green:led3"; label = "pic32mzda_sk:green:led3";
gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
default-state = "on"; default-state = "on";
......
...@@ -41,23 +41,23 @@ button-1 { ...@@ -41,23 +41,23 @@ button-1 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
led@0 { led-0 {
label = "tp-link:green:usb"; label = "tp-link:green:usb";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>; gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
}; };
led@1 { led-1 {
label = "tp-link:green:system"; label = "tp-link:green:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>; gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
}; };
led@2 { led-2 {
label = "tp-link:green:qss"; label = "tp-link:green:qss";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>; gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
}; };
led@3 { led-3 {
label = "tp-link:green:wlan"; label = "tp-link:green:wlan";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>; gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
}; };
......
...@@ -22,25 +22,25 @@ memory@0 { ...@@ -22,25 +22,25 @@ memory@0 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
wlan { led-wlan {
label = "dragino2:red:wlan"; label = "dragino2:red:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
lan { led-lan {
label = "dragino2:red:lan"; label = "dragino2:red:lan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
}; };
wan { led-wan {
label = "dragino2:red:wan"; label = "dragino2:red:wan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>; gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
}; };
system { led-system {
label = "dragino2:red:system"; label = "dragino2:red:system";
gpios = <&gpio 28 GPIO_ACTIVE_HIGH>; gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
......
...@@ -22,7 +22,7 @@ memory@0 { ...@@ -22,7 +22,7 @@ memory@0 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
system { led-system {
label = "onion:amber:system"; label = "onion:amber:system";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>; gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
......
...@@ -22,25 +22,25 @@ memory@0 { ...@@ -22,25 +22,25 @@ memory@0 {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
wlan { led-wlan {
label = "tp-link:green:wlan"; label = "tp-link:green:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
lan { led-lan {
label = "tp-link:green:lan"; label = "tp-link:green:lan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>; gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
}; };
wps { led-wps {
label = "tp-link:green:wps"; label = "tp-link:green:wps";
gpios = <&gpio 26 GPIO_ACTIVE_LOW>; gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
}; };
led3g { led-led3g {
label = "tp-link:green:3g"; label = "tp-link:green:3g";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>; gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
......
...@@ -47,67 +47,67 @@ leds { ...@@ -47,67 +47,67 @@ leds {
* (see below). So we can't include it in this LED node. * (see below). So we can't include it in this LED node.
*/ */
power_blue { led-power-blue {
label = "smartgw:power:blue"; label = "smartgw:power:blue";
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>; gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
power_green { led-power-green {
label = "smartgw:power:green"; label = "smartgw:power:green";
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
power_red { led-power-red {
label = "smartgw:power:red"; label = "smartgw:power:red";
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
radio_blue { led-radio-blue {
label = "smartgw:radio:blue"; label = "smartgw:radio:blue";
gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
radio_green { led-radio-green {
label = "smartgw:radio:green"; label = "smartgw:radio:green";
gpios = <&gpio 24 GPIO_ACTIVE_HIGH>; gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
radio_red { led-radio-red {
label = "smartgw:radio:red"; label = "smartgw:radio:red";
gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
internet_blue { led-internet-blue {
label = "smartgw:internet:blue"; label = "smartgw:internet:blue";
gpios = <&gpio 26 GPIO_ACTIVE_HIGH>; gpios = <&gpio 26 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
internet_green { led-internet-green {
label = "smartgw:internet:green"; label = "smartgw:internet:green";
gpios = <&gpio 27 GPIO_ACTIVE_HIGH>; gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
internet_red { led-internet-red {
label = "smartgw:internet:red"; label = "smartgw:internet:red";
gpios = <&gpio 28 GPIO_ACTIVE_HIGH>; gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
default-state = "off"; default-state = "off";
}; };
ethernet_link { led-ethernet-link {
label = "smartgw:eth:link"; label = "smartgw:eth:link";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>; gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
linux,default-trigger = "netdev"; linux,default-trigger = "netdev";
}; };
ethernet_activity { led-ethernet-activity {
label = "smartgw:eth:act"; label = "smartgw:eth:act";
gpios = <&gpio 43 GPIO_ACTIVE_LOW>; gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
linux,default-trigger = "netdev"; linux,default-trigger = "netdev";
......
...@@ -33,13 +33,13 @@ key-reset { ...@@ -33,13 +33,13 @@ key-reset {
gpio-leds { gpio-leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
power { led-power {
label = "green:power"; label = "green:power";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>; gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
linux,default-trigger = "default-on"; linux,default-trigger = "default-on";
}; };
system { led-system {
label = "green:system"; label = "green:system";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>; gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
linux,default-trigger = "disk-activity"; linux,default-trigger = "disk-activity";
...@@ -91,22 +91,16 @@ &pcie { ...@@ -91,22 +91,16 @@ &pcie {
status = "okay"; status = "okay";
}; };
&gmac1 {
status = "okay";
phy-handle = <&ethphy4>;
};
&mdio {
ethphy4: ethernet-phy@4 {
reg = <4>;
};
};
&switch0 { &switch0 {
ports { ports {
port@0 { port@0 {
status = "okay"; status = "okay";
label = "ethblack"; label = "ethblack";
}; };
port@4 {
status = "okay";
label = "ethblue";
};
}; };
}; };
...@@ -33,33 +33,33 @@ key-reset { ...@@ -33,33 +33,33 @@ key-reset {
gpio-leds { gpio-leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
ethblack-green { led-ethblack-green {
label = "green:ethblack"; label = "green:ethblack";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>; gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
}; };
ethblue-green { led-ethblue-green {
label = "green:ethblue"; label = "green:ethblue";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>; gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
}; };
ethyellow-green { led-ethyellow-green {
label = "green:ethyellow"; label = "green:ethyellow";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>; gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
}; };
ethyellow-orange { led-ethyellow-orange {
label = "orange:ethyellow"; label = "orange:ethyellow";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
}; };
power { led-power {
label = "green:power"; label = "green:power";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>; gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
linux,default-trigger = "default-on"; linux,default-trigger = "default-on";
}; };
system { led-system {
label = "green:system"; label = "green:system";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>; gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
linux,default-trigger = "disk-activity"; linux,default-trigger = "disk-activity";
...@@ -112,9 +112,12 @@ &pcie { ...@@ -112,9 +112,12 @@ &pcie {
}; };
&gmac1 { &gmac1 {
status = "okay";
phy-mode = "rgmii-rxid"; phy-mode = "rgmii-rxid";
phy-handle = <&ethphy5>; phy-handle = <&ethphy5>;
fixed-link {
status = "disabled";
};
}; };
&mdio { &mdio {
...@@ -134,5 +137,9 @@ port@4 { ...@@ -134,5 +137,9 @@ port@4 {
status = "okay"; status = "okay";
label = "ethblue"; label = "ethblue";
}; };
port@5 {
status = "disabled";
};
}; };
}; };
...@@ -332,8 +332,13 @@ fixed-link { ...@@ -332,8 +332,13 @@ fixed-link {
gmac1: mac@1 { gmac1: mac@1 {
compatible = "mediatek,eth-mac"; compatible = "mediatek,eth-mac";
reg = <1>; reg = <1>;
status = "disabled";
phy-mode = "rgmii"; phy-mode = "rgmii";
fixed-link {
speed = <1000>;
full-duplex;
pause;
};
}; };
mdio: mdio-bus { mdio: mdio-bus {
...@@ -384,6 +389,18 @@ port@4 { ...@@ -384,6 +389,18 @@ port@4 {
label = "swp4"; label = "swp4";
}; };
port@5 {
reg = <5>;
ethernet = <&gmac1>;
phy-mode = "rgmii";
fixed-link {
speed = <1000>;
full-duplex;
pause;
};
};
port@6 { port@6 {
reg = <6>; reg = <6>;
ethernet = <&gmac0>; ethernet = <&gmac0>;
......
...@@ -245,7 +245,7 @@ static int dwc3_octeon_config_power(struct device *dev, u64 base) ...@@ -245,7 +245,7 @@ static int dwc3_octeon_config_power(struct device *dev, u64 base)
power_active_low = 0; power_active_low = 0;
gpio = gpio_pwr[1]; gpio = gpio_pwr[1];
} else { } else {
dev_err(dev, "dwc3 controller clock init failure.\n"); dev_err(dev, "invalid power configuration\n");
return -EINVAL; return -EINVAL;
} }
if ((OCTEON_IS_MODEL(OCTEON_CN73XX) || if ((OCTEON_IS_MODEL(OCTEON_CN73XX) ||
...@@ -278,7 +278,7 @@ static int dwc3_octeon_config_power(struct device *dev, u64 base) ...@@ -278,7 +278,7 @@ static int dwc3_octeon_config_power(struct device *dev, u64 base)
uctl_host_cfg.s.ppc_en = 0; uctl_host_cfg.s.ppc_en = 0;
uctl_host_cfg.s.ppc_active_high_en = 0; uctl_host_cfg.s.ppc_active_high_en = 0;
cvmx_write_csr(base + UCTL_HOST_CFG, uctl_host_cfg.u64); cvmx_write_csr(base + UCTL_HOST_CFG, uctl_host_cfg.u64);
dev_warn(dev, "dwc3 controller clock init failure.\n"); dev_info(dev, "power control disabled\n");
} }
return 0; return 0;
} }
...@@ -301,19 +301,19 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base) ...@@ -301,19 +301,19 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base)
i = of_property_read_u32(dev->of_node, i = of_property_read_u32(dev->of_node,
"refclk-frequency", &clock_rate); "refclk-frequency", &clock_rate);
if (i) { if (i) {
pr_err("No UCTL \"refclk-frequency\"\n"); dev_err(dev, "No UCTL \"refclk-frequency\"\n");
return -EINVAL; return -EINVAL;
} }
i = of_property_read_string(dev->of_node, i = of_property_read_string(dev->of_node,
"refclk-type-ss", &ss_clock_type); "refclk-type-ss", &ss_clock_type);
if (i) { if (i) {
pr_err("No UCTL \"refclk-type-ss\"\n"); dev_err(dev, "No UCTL \"refclk-type-ss\"\n");
return -EINVAL; return -EINVAL;
} }
i = of_property_read_string(dev->of_node, i = of_property_read_string(dev->of_node,
"refclk-type-hs", &hs_clock_type); "refclk-type-hs", &hs_clock_type);
if (i) { if (i) {
pr_err("No UCTL \"refclk-type-hs\"\n"); dev_err(dev, "No UCTL \"refclk-type-hs\"\n");
return -EINVAL; return -EINVAL;
} }
if (strcmp("dlmc_ref_clk0", ss_clock_type) == 0) { if (strcmp("dlmc_ref_clk0", ss_clock_type) == 0) {
...@@ -322,29 +322,29 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base) ...@@ -322,29 +322,29 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base)
else if (strcmp(hs_clock_type, "pll_ref_clk") == 0) else if (strcmp(hs_clock_type, "pll_ref_clk") == 0)
ref_clk_sel = 2; ref_clk_sel = 2;
else else
pr_err("Invalid HS clock type %s, using pll_ref_clk instead\n", dev_warn(dev, "Invalid HS clock type %s, using pll_ref_clk instead\n",
hs_clock_type); hs_clock_type);
} else if (strcmp(ss_clock_type, "dlmc_ref_clk1") == 0) { } else if (strcmp(ss_clock_type, "dlmc_ref_clk1") == 0) {
if (strcmp(hs_clock_type, "dlmc_ref_clk1") == 0) if (strcmp(hs_clock_type, "dlmc_ref_clk1") == 0)
ref_clk_sel = 1; ref_clk_sel = 1;
else if (strcmp(hs_clock_type, "pll_ref_clk") == 0) else if (strcmp(hs_clock_type, "pll_ref_clk") == 0)
ref_clk_sel = 3; ref_clk_sel = 3;
else { else {
pr_err("Invalid HS clock type %s, using pll_ref_clk instead\n", dev_warn(dev, "Invalid HS clock type %s, using pll_ref_clk instead\n",
hs_clock_type); hs_clock_type);
ref_clk_sel = 3; ref_clk_sel = 3;
} }
} else } else
pr_err("Invalid SS clock type %s, using dlmc_ref_clk0 instead\n", dev_warn(dev, "Invalid SS clock type %s, using dlmc_ref_clk0 instead\n",
ss_clock_type); ss_clock_type);
if ((ref_clk_sel == 0 || ref_clk_sel == 1) && if ((ref_clk_sel == 0 || ref_clk_sel == 1) &&
(clock_rate != 100000000)) (clock_rate != 100000000))
pr_err("Invalid UCTL clock rate of %u, using 100000000 instead\n", dev_warn(dev, "Invalid UCTL clock rate of %u, using 100000000 instead\n",
clock_rate); clock_rate);
} else { } else {
pr_err("No USB UCTL device node\n"); dev_err(dev, "No USB UCTL device node\n");
return -EINVAL; return -EINVAL;
} }
...@@ -396,8 +396,8 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base) ...@@ -396,8 +396,8 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base)
uctl_ctl.s.ref_clk_div2 = 0; uctl_ctl.s.ref_clk_div2 = 0;
switch (clock_rate) { switch (clock_rate) {
default: default:
dev_err(dev, "Invalid ref_clk %u, using 100000000 instead\n", dev_warn(dev, "Invalid ref_clk %u, using 100000000 instead\n",
clock_rate); clock_rate);
fallthrough; fallthrough;
case 100000000: case 100000000:
mpll_mul = 0x19; mpll_mul = 0x19;
...@@ -438,10 +438,8 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base) ...@@ -438,10 +438,8 @@ static int dwc3_octeon_clocks_start(struct device *dev, u64 base)
udelay(10); udelay(10);
/* Steo 8c: Setup power-power control. */ /* Steo 8c: Setup power-power control. */
if (dwc3_octeon_config_power(dev, base)) { if (dwc3_octeon_config_power(dev, base))
dev_err(dev, "Error configuring power.\n");
return -EINVAL; return -EINVAL;
}
/* Step 8d: Deassert UAHC reset signal. */ /* Step 8d: Deassert UAHC reset signal. */
uctl_ctl.u64 = cvmx_read_csr(uctl_ctl_reg); uctl_ctl.u64 = cvmx_read_csr(uctl_ctl_reg);
...@@ -529,10 +527,10 @@ static int __init dwc3_octeon_device_init(void) ...@@ -529,10 +527,10 @@ static int __init dwc3_octeon_device_init(void)
} }
mutex_lock(&dwc3_octeon_clocks_mutex); mutex_lock(&dwc3_octeon_clocks_mutex);
dwc3_octeon_clocks_start(&pdev->dev, (u64)base); if (dwc3_octeon_clocks_start(&pdev->dev, (u64)base) == 0)
dev_info(&pdev->dev, "clocks initialized.\n");
dwc3_octeon_set_endian_mode((u64)base); dwc3_octeon_set_endian_mode((u64)base);
dwc3_octeon_phy_reset((u64)base); dwc3_octeon_phy_reset((u64)base);
dev_info(&pdev->dev, "clocks initialized.\n");
mutex_unlock(&dwc3_octeon_clocks_mutex); mutex_unlock(&dwc3_octeon_clocks_mutex);
devm_iounmap(&pdev->dev, base); devm_iounmap(&pdev->dev, base);
devm_release_mem_region(&pdev->dev, res->start, devm_release_mem_region(&pdev->dev, res->start,
......
...@@ -61,6 +61,7 @@ enum bcm47xx_board { ...@@ -61,6 +61,7 @@ enum bcm47xx_board {
BCM47XX_BOARD_LINKSYS_E1000V21, BCM47XX_BOARD_LINKSYS_E1000V21,
BCM47XX_BOARD_LINKSYS_E1200V2, BCM47XX_BOARD_LINKSYS_E1200V2,
BCM47XX_BOARD_LINKSYS_E2000V1, BCM47XX_BOARD_LINKSYS_E2000V1,
BCM47XX_BOARD_LINKSYS_E2500V3,
BCM47XX_BOARD_LINKSYS_E3000V1, BCM47XX_BOARD_LINKSYS_E3000V1,
BCM47XX_BOARD_LINKSYS_E3200V1, BCM47XX_BOARD_LINKSYS_E3200V1,
BCM47XX_BOARD_LINKSYS_E4200V1, BCM47XX_BOARD_LINKSYS_E4200V1,
......
...@@ -374,7 +374,7 @@ struct pci_msu { ...@@ -374,7 +374,7 @@ struct pci_msu {
PCI_CFG04_STAT_SSE | \ PCI_CFG04_STAT_SSE | \
PCI_CFG04_STAT_PE) PCI_CFG04_STAT_PE)
#define KORINA_CNFG1 ((KORINA_STAT<<16)|KORINA_CMD) #define KORINA_CNFG1 (KORINA_STAT | KORINA_CMD)
#define KORINA_REVID 0 #define KORINA_REVID 0
#define KORINA_CLASS_CODE 0 #define KORINA_CLASS_CODE 0
......
...@@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task, ...@@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task,
static inline long syscall_get_nr(struct task_struct *task, static inline long syscall_get_nr(struct task_struct *task,
struct pt_regs *regs) struct pt_regs *regs)
{ {
return current_thread_info()->syscall; return task_thread_info(task)->syscall;
} }
static inline void mips_syscall_update_nr(struct task_struct *task, static inline void mips_syscall_update_nr(struct task_struct *task,
......
...@@ -102,7 +102,6 @@ struct vpe_control { ...@@ -102,7 +102,6 @@ struct vpe_control {
struct list_head tc_list; /* Thread contexts */ struct list_head tc_list; /* Thread contexts */
}; };
extern unsigned long physical_memsize;
extern struct vpe_control vpecontrol; extern struct vpe_control vpecontrol;
extern const struct file_operations vpe_fops; extern const struct file_operations vpe_fops;
......
...@@ -424,9 +424,11 @@ static void cps_shutdown_this_cpu(enum cpu_death death) ...@@ -424,9 +424,11 @@ static void cps_shutdown_this_cpu(enum cpu_death death)
wmb(); wmb();
} }
} else { } else {
pr_debug("Gating power to core %d\n", core); if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
/* Power down the core */ pr_debug("Gating power to core %d\n", core);
cps_pm_enter_state(CPS_PM_POWER_GATED); /* Power down the core */
cps_pm_enter_state(CPS_PM_POWER_GATED);
}
} }
} }
......
...@@ -92,12 +92,11 @@ int vpe_run(struct vpe *v) ...@@ -92,12 +92,11 @@ int vpe_run(struct vpe *v)
write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H); write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
/* /*
* The sde-kit passes 'memsize' to __start in $a3, so set something * We don't pass the memsize here, so VPE programs need to be
* here... Or set $a3 to zero and define DFLT_STACK_SIZE and * compiled with DFLT_STACK_SIZE and DFLT_HEAP_SIZE defined.
* DFLT_HEAP_SIZE when you compile your program
*/ */
mttgpr(7, 0);
mttgpr(6, v->ntcs); mttgpr(6, v->ntcs);
mttgpr(7, physical_memsize);
/* set up VPE1 */ /* set up VPE1 */
/* /*
......
...@@ -22,12 +22,6 @@ ...@@ -22,12 +22,6 @@
DEFINE_SPINLOCK(ebu_lock); DEFINE_SPINLOCK(ebu_lock);
EXPORT_SYMBOL_GPL(ebu_lock); EXPORT_SYMBOL_GPL(ebu_lock);
/*
* This is needed by the VPE loader code, just set it to 0 and assume
* that the firmware hardcodes this value to something useful.
*/
unsigned long physical_memsize = 0L;
/* /*
* this struct is filled by the soc specific detection code and holds * this struct is filled by the soc specific detection code and holds
* information about the specific soc type, revision and name * information about the specific soc type, revision and name
......
...@@ -22,10 +22,7 @@ static void __iomem *dcdc_membase; ...@@ -22,10 +22,7 @@ static void __iomem *dcdc_membase;
static int dcdc_probe(struct platform_device *pdev) static int dcdc_probe(struct platform_device *pdev)
{ {
struct resource *res; dcdc_membase = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
dcdc_membase = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(dcdc_membase)) if (IS_ERR(dcdc_membase))
return PTR_ERR(dcdc_membase); return PTR_ERR(dcdc_membase);
......
...@@ -239,12 +239,10 @@ static int ...@@ -239,12 +239,10 @@ static int
ltq_dma_init(struct platform_device *pdev) ltq_dma_init(struct platform_device *pdev)
{ {
struct clk *clk; struct clk *clk;
struct resource *res;
unsigned int id, nchannels; unsigned int id, nchannels;
int i; int i;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ltq_dma_membase = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
ltq_dma_membase = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(ltq_dma_membase)) if (IS_ERR(ltq_dma_membase))
panic("Failed to remap dma resource"); panic("Failed to remap dma resource");
......
...@@ -136,17 +136,14 @@ static inline void clkdev_add_gptu(struct device *dev, const char *con, ...@@ -136,17 +136,14 @@ static inline void clkdev_add_gptu(struct device *dev, const char *con,
static int gptu_probe(struct platform_device *pdev) static int gptu_probe(struct platform_device *pdev)
{ {
struct clk *clk; struct clk *clk;
struct resource *res;
if (of_irq_to_resource_table(pdev->dev.of_node, irqres, 6) != 6) { if (of_irq_to_resource_table(pdev->dev.of_node, irqres, 6) != 6) {
dev_err(&pdev->dev, "Failed to get IRQ list\n"); dev_err(&pdev->dev, "Failed to get IRQ list\n");
return -EINVAL; return -EINVAL;
} }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
/* remap gptu register range */ /* remap gptu register range */
gptu_membase = devm_ioremap_resource(&pdev->dev, res); gptu_membase = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(gptu_membase)) if (IS_ERR(gptu_membase))
return PTR_ERR(gptu_membase); return PTR_ERR(gptu_membase);
......
...@@ -204,17 +204,13 @@ static int ltq_pci_startup(struct platform_device *pdev) ...@@ -204,17 +204,13 @@ static int ltq_pci_startup(struct platform_device *pdev)
static int ltq_pci_probe(struct platform_device *pdev) static int ltq_pci_probe(struct platform_device *pdev)
{ {
struct resource *res_cfg, *res_bridge;
pci_clear_flags(PCI_PROBE_ONLY); pci_clear_flags(PCI_PROBE_ONLY);
res_bridge = platform_get_resource(pdev, IORESOURCE_MEM, 1); ltq_pci_membase = devm_platform_get_and_ioremap_resource(pdev, 1, NULL);
ltq_pci_membase = devm_ioremap_resource(&pdev->dev, res_bridge);
if (IS_ERR(ltq_pci_membase)) if (IS_ERR(ltq_pci_membase))
return PTR_ERR(ltq_pci_membase); return PTR_ERR(ltq_pci_membase);
res_cfg = platform_get_resource(pdev, IORESOURCE_MEM, 0); ltq_pci_mapped_cfg = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
ltq_pci_mapped_cfg = devm_ioremap_resource(&pdev->dev, res_cfg);
if (IS_ERR(ltq_pci_mapped_cfg)) if (IS_ERR(ltq_pci_mapped_cfg))
return PTR_ERR(ltq_pci_mapped_cfg); return PTR_ERR(ltq_pci_mapped_cfg);
......
...@@ -282,21 +282,17 @@ static int mt7628_pci_hw_init(struct platform_device *pdev) ...@@ -282,21 +282,17 @@ static int mt7628_pci_hw_init(struct platform_device *pdev)
static int mt7620_pci_probe(struct platform_device *pdev) static int mt7620_pci_probe(struct platform_device *pdev)
{ {
struct resource *bridge_res = platform_get_resource(pdev,
IORESOURCE_MEM, 0);
struct resource *pcie_res = platform_get_resource(pdev,
IORESOURCE_MEM, 1);
u32 val = 0; u32 val = 0;
rstpcie0 = devm_reset_control_get_exclusive(&pdev->dev, "pcie0"); rstpcie0 = devm_reset_control_get_exclusive(&pdev->dev, "pcie0");
if (IS_ERR(rstpcie0)) if (IS_ERR(rstpcie0))
return PTR_ERR(rstpcie0); return PTR_ERR(rstpcie0);
bridge_base = devm_ioremap_resource(&pdev->dev, bridge_res); bridge_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(bridge_base)) if (IS_ERR(bridge_base))
return PTR_ERR(bridge_base); return PTR_ERR(bridge_base);
pcie_base = devm_ioremap_resource(&pdev->dev, pcie_res); pcie_base = devm_platform_get_and_ioremap_resource(pdev, 1, NULL);
if (IS_ERR(pcie_base)) if (IS_ERR(pcie_base))
return PTR_ERR(pcie_base); return PTR_ERR(pcie_base);
......
...@@ -54,10 +54,11 @@ choice ...@@ -54,10 +54,11 @@ choice
select HAVE_PCI select HAVE_PCI
select PCI_DRIVERS_GENERIC select PCI_DRIVERS_GENERIC
select SOC_BUS select SOC_BUS
select PINCTRL_MT7621
help help
The MT7621 system-on-a-chip includes an 880 MHz MIPS1004Kc dual-core CPU, The MT7621 system-on-a-chip includes an 880 MHz MIPS1004Kc
a 5-port 10/100/1000 switch/PHY and one RGMII. dual-core CPU, a 5-port 10/100/1000 switch/PHY and one RGMII.
endchoice endchoice
choice choice
......
...@@ -95,7 +95,6 @@ static int rt_timer_enable(struct rt_timer *rt) ...@@ -95,7 +95,6 @@ static int rt_timer_enable(struct rt_timer *rt)
static int rt_timer_probe(struct platform_device *pdev) static int rt_timer_probe(struct platform_device *pdev)
{ {
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct rt_timer *rt; struct rt_timer *rt;
struct clk *clk; struct clk *clk;
...@@ -109,7 +108,7 @@ static int rt_timer_probe(struct platform_device *pdev) ...@@ -109,7 +108,7 @@ static int rt_timer_probe(struct platform_device *pdev)
if (rt->irq < 0) if (rt->irq < 0)
return rt->irq; return rt->irq;
rt->membase = devm_ioremap_resource(&pdev->dev, res); rt->membase = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(rt->membase)) if (IS_ERR(rt->membase))
return PTR_ERR(rt->membase); return PTR_ERR(rt->membase);
......
# For the pre-R6 code in arch/mips/vdso/vdso.h for locating
# the base address of VDSO, the linker will emit a R_MIPS_PC32
# relocation in binutils > 2.25 but it will fail with older versions
# because that relocation is not supported for that symbol. As a result
# of which we are forced to disable the VDSO symbols when building
# with < 2.25 binutils on pre-R6 kernels. For more references on why we
# can't use other methods to get the base address of VDSO please refer to
# the comments on that file.
#
# GCC (at least up to version 9.2) appears to emit function calls that make use # GCC (at least up to version 9.2) appears to emit function calls that make use
# of the GOT when targeting microMIPS, which we can't use in the VDSO due to # of the GOT when targeting microMIPS, which we can't use in the VDSO due to
# the lack of relocations. As such, we disable the VDSO for microMIPS builds. # the lack of relocations. As such, we disable the VDSO for microMIPS builds.
config MIPS_LD_CAN_LINK_VDSO
def_bool LD_VERSION >= 22500 || LD_IS_LLD
config MIPS_DISABLE_VDSO config MIPS_DISABLE_VDSO
def_bool CPU_MICROMIPS || (!CPU_MIPSR6 && !MIPS_LD_CAN_LINK_VDSO) def_bool CPU_MICROMIPS
...@@ -52,9 +52,6 @@ endif ...@@ -52,9 +52,6 @@ endif
CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
ifdef CONFIG_MIPS_DISABLE_VDSO ifdef CONFIG_MIPS_DISABLE_VDSO
ifndef CONFIG_MIPS_LD_CAN_LINK_VDSO
$(warning MIPS VDSO requires binutils >= 2.25)
endif
obj-vdso-y := $(filter-out vgettimeofday.o, $(obj-vdso-y)) obj-vdso-y := $(filter-out vgettimeofday.o, $(obj-vdso-y))
endif endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment