提交 e1a2bef3 编写于 作者: F Fang Yafen 提交者: Zheng Zengkai

net: keep the original function for non-RPi

raspberrypi inclusion
category: feature
bugzilla: 50432

------------------------------

This patch adjusts following net related patches for
raspberry pi on non-Raspberry Pi platforms, using specific
config CONFIG_OPENEULER_RASPBERRYPI to distinguish them:

5e6ba3df smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default
ab8cdd97 lan78xx: use default alignment for rx buffers
03c2e3cc net:phy:2711 Change the default ethernet LED actions
ae5b52c2 brcmfmac: Prefer a ccode from OTP over nvram file
83998d2a brcmfmac: Increase power saving delay to 2s
cd40cb1f net: lan78xx: Ack pending PHY ints when resetting
Signed-off-by: NFang Yafen <yafen@iscas.ac.cn>
Reviewed-by: NXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 d027ebc9
...@@ -263,8 +263,13 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) ...@@ -263,8 +263,13 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev)
static int bcm54xx_config_init(struct phy_device *phydev) static int bcm54xx_config_init(struct phy_device *phydev)
{ {
int reg, err, val; int reg, err, val;
#ifdef CONFIG_OPENEULER_RASPBERRYPI
u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT,
BCM_LED_MULTICOLOR_LINK}; BCM_LED_MULTICOLOR_LINK};
#else
u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT,
BCM_LED_MULTICOLOR_LINK_ACT};
#endif
struct device_node *np = phydev->mdio.dev.of_node; struct device_node *np = phydev->mdio.dev.of_node;
reg = phy_read(phydev, MII_BCM54XX_ECR); reg = phy_read(phydev, MII_BCM54XX_ECR);
......
...@@ -1181,8 +1181,10 @@ static int lan78xx_link_reset(struct lan78xx_net *dev) ...@@ -1181,8 +1181,10 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
if (unlikely(ret < 0)) if (unlikely(ret < 0))
return -EIO; return -EIO;
#ifdef CONFIG_OPENEULER_RASPBERRYPI
/* Acknowledge any pending PHY interrupt, lest it be the last */ /* Acknowledge any pending PHY interrupt, lest it be the last */
phy_read(phydev, LAN88XX_INT_STS); phy_read(phydev, LAN88XX_INT_STS);
#endif
phy_read_status(phydev); phy_read_status(phydev);
...@@ -3164,7 +3166,11 @@ static int rx_submit(struct lan78xx_net *dev, struct urb *urb, gfp_t flags) ...@@ -3164,7 +3166,11 @@ static int rx_submit(struct lan78xx_net *dev, struct urb *urb, gfp_t flags)
size_t size = dev->rx_urb_size; size_t size = dev->rx_urb_size;
int ret = 0; int ret = 0;
#ifdef CONFIG_OPENEULER_RASPBERRYPI
skb = netdev_alloc_skb(dev->net, size); skb = netdev_alloc_skb(dev->net, size);
#else
skb = netdev_alloc_skb_ip_align(dev->net, size);
#endif
if (!skb) { if (!skb) {
usb_free_urb(urb); usb_free_urb(urb);
return -ENOMEM; return -ENOMEM;
......
...@@ -72,9 +72,11 @@ static bool truesize_mode = false; ...@@ -72,9 +72,11 @@ static bool truesize_mode = false;
module_param(truesize_mode, bool, 0644); module_param(truesize_mode, bool, 0644);
MODULE_PARM_DESC(truesize_mode, "Report larger truesize value"); MODULE_PARM_DESC(truesize_mode, "Report larger truesize value");
#ifdef CONFIG_OPENEULER_RASPBERRYPI
static int packetsize = 2560; static int packetsize = 2560;
module_param(packetsize, int, 0644); module_param(packetsize, int, 0644);
MODULE_PARM_DESC(packetsize, "Override the RX URB packet size"); MODULE_PARM_DESC(packetsize, "Override the RX URB packet size");
#endif
static char *macaddr = ":"; static char *macaddr = ":";
module_param(macaddr, charp, 0); module_param(macaddr, charp, 0);
...@@ -963,6 +965,7 @@ static int smsc95xx_reset(struct usbnet *dev) ...@@ -963,6 +965,7 @@ static int smsc95xx_reset(struct usbnet *dev)
"Read Value from HW_CFG after writing HW_CFG_BIR_: 0x%08x\n", "Read Value from HW_CFG after writing HW_CFG_BIR_: 0x%08x\n",
read_buf); read_buf);
#ifdef CONFIG_OPENEULER_RASPBERRYPI
if (!turbo_mode) { if (!turbo_mode) {
burst_cap = 0; burst_cap = 0;
dev->rx_urb_size = packetsize ? packetsize : MAX_SINGLE_PACKET_SIZE; dev->rx_urb_size = packetsize ? packetsize : MAX_SINGLE_PACKET_SIZE;
...@@ -973,6 +976,18 @@ static int smsc95xx_reset(struct usbnet *dev) ...@@ -973,6 +976,18 @@ static int smsc95xx_reset(struct usbnet *dev)
dev->rx_urb_size = packetsize ? packetsize : DEFAULT_FS_BURST_CAP_SIZE; dev->rx_urb_size = packetsize ? packetsize : DEFAULT_FS_BURST_CAP_SIZE;
burst_cap = dev->rx_urb_size / FS_USB_PKT_SIZE; burst_cap = dev->rx_urb_size / FS_USB_PKT_SIZE;
} }
#else
if (!turbo_mode) {
burst_cap = 0;
dev->rx_urb_size = MAX_SINGLE_PACKET_SIZE;
} else if (dev->udev->speed == USB_SPEED_HIGH) {
burst_cap = DEFAULT_HS_BURST_CAP_SIZE / HS_USB_PKT_SIZE;
dev->rx_urb_size = DEFAULT_HS_BURST_CAP_SIZE;
} else {
burst_cap = DEFAULT_FS_BURST_CAP_SIZE / FS_USB_PKT_SIZE;
dev->rx_urb_size = DEFAULT_FS_BURST_CAP_SIZE;
}
#endif
netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n",
(ulong)dev->rx_urb_size); (ulong)dev->rx_urb_size);
......
...@@ -2938,7 +2938,11 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, ...@@ -2938,7 +2938,11 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev,
brcmf_dbg(INFO, "Do not enable power save for P2P clients\n"); brcmf_dbg(INFO, "Do not enable power save for P2P clients\n");
pm = PM_OFF; pm = PM_OFF;
} }
#ifdef CONFIG_OPENEULER_RASPBERRYPI
brcmf_info("power save %s\n", (pm ? "enabled" : "disabled")); brcmf_info("power save %s\n", (pm ? "enabled" : "disabled"));
#else
brcmf_dbg(INFO, "power save %s\n", (pm ? "enabled" : "disabled"));
#endif
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm);
if (err) { if (err) {
...@@ -2948,7 +2952,9 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, ...@@ -2948,7 +2952,9 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev,
bphy_err(drvr, "error (%d)\n", err); bphy_err(drvr, "error (%d)\n", err);
} }
#ifdef CONFIG_OPENEULER_RASPBERRYPI
timeout = 2000; /* 2000ms - the maximum */ timeout = 2000; /* 2000ms - the maximum */
#endif
err = brcmf_fil_iovar_int_set(ifp, "pm2_sleep_ret", err = brcmf_fil_iovar_int_set(ifp, "pm2_sleep_ret",
min_t(u32, timeout, BRCMF_PS_MAX_TIMEOUT_MS)); min_t(u32, timeout, BRCMF_PS_MAX_TIMEOUT_MS));
if (err) if (err)
...@@ -7413,6 +7419,7 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, ...@@ -7413,6 +7419,7 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy,
s32 err; s32 err;
int i; int i;
#ifdef CONFIG_OPENEULER_RASPBERRYPI
err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq)); err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
if (err) { if (err) {
bphy_err(drvr, "Country code iovar returned err = %d\n", err); bphy_err(drvr, "Country code iovar returned err = %d\n", err);
...@@ -7435,6 +7442,12 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, ...@@ -7435,6 +7442,12 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy,
pr_debug("brcmfmac: substituting saved ccode %c%c\n", pr_debug("brcmfmac: substituting saved ccode %c%c\n",
alpha2[0], alpha2[1]); alpha2[0], alpha2[1]);
} }
#else
/* The country code gets set to "00" by default at boot, ignore */
alpha2 = req->alpha2;
if (req->alpha2[0] == '0' && req->alpha2[1] == '0')
return;
#endif
/* ignore non-ISO3166 country codes */ /* ignore non-ISO3166 country codes */
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
...@@ -7447,6 +7460,14 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, ...@@ -7447,6 +7460,14 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy,
brcmf_dbg(TRACE, "Enter: initiator=%d, alpha=%c%c\n", req->initiator, brcmf_dbg(TRACE, "Enter: initiator=%d, alpha=%c%c\n", req->initiator,
alpha2[0], alpha2[1]); alpha2[0], alpha2[1]);
#ifndef CONFIG_OPENEULER_RASPBERRYPI
err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
if (err) {
bphy_err(drvr, "Country code iovar returned err = %d\n", err);
return;
}
#endif
err = brcmf_translate_country_code(ifp->drvr, alpha2, &ccreq); err = brcmf_translate_country_code(ifp->drvr, alpha2, &ccreq);
if (err) if (err)
return; return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册