From patchwork Wed Mar 25 18:11:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Fuzzey X-Patchwork-Id: 1261576 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=flowbird.group Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=flowbird.group header.i=@flowbird.group header.a=rsa-sha256 header.s=google header.b=bxLcTHqu; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nbmr1NK2z9sSR for ; Thu, 26 Mar 2020 05:12:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727466AbgCYSMF (ORCPT ); Wed, 25 Mar 2020 14:12:05 -0400 Received: from mail-ed1-f98.google.com ([209.85.208.98]:38150 "EHLO mail-ed1-f98.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727607AbgCYSMC (ORCPT ); Wed, 25 Mar 2020 14:12:02 -0400 Received: by mail-ed1-f98.google.com with SMTP id e5so3740928edq.5 for ; Wed, 25 Mar 2020 11:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flowbird.group; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SuDRidi899yKOqtqrOSIVDZrVwIsv8//2ku9t3taYYw=; b=bxLcTHqu65jbEfJcmFVf/k5qn5rrnssRpOu7m1fkUwQ+hMbGNP1ieh1DX43BjNs++y 0WAOHiHl8yvEgLRnKoYOvHhoVr1bItOeD7Sj4Aa/KqqXEltj5XuuGT0HVEQuDUJYuCQY 8LElCA9N3mtDetiBAzhWVeyoBLTWn7E6IcTCf2CZPv95KivKWS3Degd8VJaN+rtkn0eH NpDmDFN1ElSJ+9gpws//7dGBIswIutaYfnz5zTbShfQBaXMrVWNXrzoAyi8UZw8meqJt 9o9aXDulyDUsEZ/ABe0Tuw4yk0CfMmnp7jn1XOi7jEig72HUmj2NVd+vU63oaJorNUK/ GjYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=SuDRidi899yKOqtqrOSIVDZrVwIsv8//2ku9t3taYYw=; b=jqh3kocWgCuGga75fAmTeVOEWjvqoHUkUnQyXIZUAE9hLutVMG3eieKbAMEd8LxcID Rd/otGK11KahC+OBqJQJjHkW88Grx3MUImmqM3zasLIhZtRRlAuJEw8SkSMafI1iGgkJ 8Alwh1xOm55McTgcsRrquNqjM67B1QS61gzZe2Nx0n2jOnmRx6EyHKGb7xL0XNVgJpga +a4G5WsfXmnhSKsPzgC3gO3M1FbvLVgch7Y//6M51X0CwieVanvnjdbyq/DmF3krlkYU zQLcaRIRGht0hnZ0wy63jbD3GOk5wWThk8iCCNN8VJ4msxKlhJ2EQQ9iCMKFSBp1V5Qs 4Dkw== X-Gm-Message-State: ANhLgQ0AAd0wpYecjuQ6bapVfgKsQWzxr2MWXMxxv8NEGVyo85Yooild 5XQlW7cts6ZFB0O6nxJD42tb2MuRvnTgWREFYaLgG8uaK0PM X-Google-Smtp-Source: ADFU+vsP1VGrqe0bH9yBDhQTiDwm45P/c/NITFyxt4w4soNr9lVu8TUlPlK7dRfw0H6X0rwjrixmvkNsBr9B X-Received: by 2002:a17:906:33d3:: with SMTP id w19mr4251998eja.134.1585159919820; Wed, 25 Mar 2020 11:11:59 -0700 (PDT) Received: from mail.besancon.parkeon.com ([185.149.63.251]) by smtp-relay.gmail.com with ESMTPS id r12sm12457ejr.8.2020.03.25.11.11.58 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 25 Mar 2020 11:11:59 -0700 (PDT) X-Relaying-Domain: flowbird.group Received: from [172.16.13.190] (port=39524 helo=PC12445-BES.dynamic.besancon.parkeon.com) by mail.besancon.parkeon.com with esmtp (Exim 4.71) (envelope-from ) id 1jHAVS-0003Oy-Es; Wed, 25 Mar 2020 19:11:58 +0100 From: Martin Fuzzey To: Fugang Duan , Rob Herring , Shawn Guo , "David S. Miller" Cc: netdev@vger.kernel.org, Fabio Estevam , linux-kernel@vger.kernel.org, Sascha Hauer , NXP Linux Team , devicetree@vger.kernel.org, Andrew Lunn Subject: [PATCH v2 1/4] net: fec: set GPR bit on suspend by DT configuration. Date: Wed, 25 Mar 2020 19:11:56 +0100 Message-Id: <1585159919-11491-2-git-send-email-martin.fuzzey@flowbird.group> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> References: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On some SoCs, such as the i.MX6, it is necessary to set a bit in the SoC level GPR register before suspending for wake on lan to work. The fec platform callback sleep_mode_enable was intended to allow this but the platform implementation was NAK'd back in 2015 [1] This means that, currently, wake on lan is broken on mainline for the i.MX6 at least. So implement the required bit setting in the fec driver by itself by adding a new optional DT property indicating the GPR register and adding the offset and bit information to the driver. [1] https://www.spinics.net/lists/netdev/msg310922.html Signed-off-by: Martin Fuzzey Signed-off-by: Fugang Duan --- drivers/net/ethernet/freescale/fec.h | 7 ++ drivers/net/ethernet/freescale/fec_main.c | 149 ++++++++++++++++++++++++------ 2 files changed, 127 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h index f79e57f..d89568f 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -488,6 +488,12 @@ struct fec_enet_priv_rx_q { struct sk_buff *rx_skbuff[RX_RING_SIZE]; }; +struct fec_stop_mode_gpr { + struct regmap *gpr; + u8 reg; + u8 bit; +}; + /* The FEC buffer descriptors track the ring buffers. The rx_bd_base and * tx_bd_base always point to the base of the buffer descriptors. The * cur_rx and cur_tx point to the currently available buffer. @@ -562,6 +568,7 @@ struct fec_enet_private { int hwts_tx_en; struct delayed_work time_keep; struct regulator *reg_phy; + struct fec_stop_mode_gpr stop_gpr; unsigned int tx_align; unsigned int rx_align; diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 23c5fef..69cab0b 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -62,6 +62,8 @@ #include #include #include +#include +#include #include #include @@ -84,6 +86,56 @@ #define FEC_ENET_OPD_V 0xFFF0 #define FEC_MDIO_PM_TIMEOUT 100 /* ms */ +struct fec_devinfo { + u32 quirks; + u8 stop_gpr_reg; + u8 stop_gpr_bit; +}; + +static const struct fec_devinfo fec_imx25_info = { + .quirks = FEC_QUIRK_USE_GASKET | FEC_QUIRK_MIB_CLEAR | + FEC_QUIRK_HAS_FRREG, +}; + +static const struct fec_devinfo fec_imx27_info = { + .quirks = FEC_QUIRK_MIB_CLEAR | FEC_QUIRK_HAS_FRREG, +}; + +static const struct fec_devinfo fec_imx28_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME | + FEC_QUIRK_SINGLE_MDIO | FEC_QUIRK_HAS_RACC | + FEC_QUIRK_HAS_FRREG, +}; + +static const struct fec_devinfo fec_imx6q_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | + FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | + FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 | + FEC_QUIRK_HAS_RACC, + .stop_gpr_reg = 0x34, + .stop_gpr_bit = 27, +}; + +static const struct fec_devinfo fec_mvf600_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC, +}; + +static const struct fec_devinfo fec_imx6x_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | + FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | + FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB | + FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE | + FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE, +}; + +static const struct fec_devinfo fec_imx6ul_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | + FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | + FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR007885 | + FEC_QUIRK_BUG_CAPTURE | FEC_QUIRK_HAS_RACC | + FEC_QUIRK_HAS_COALESCE, +}; + static struct platform_device_id fec_devtype[] = { { /* keep it for coldfire */ @@ -91,39 +143,25 @@ .driver_data = 0, }, { .name = "imx25-fec", - .driver_data = FEC_QUIRK_USE_GASKET | FEC_QUIRK_MIB_CLEAR | - FEC_QUIRK_HAS_FRREG, + .driver_data = (kernel_ulong_t)&fec_imx25_info, }, { .name = "imx27-fec", - .driver_data = FEC_QUIRK_MIB_CLEAR | FEC_QUIRK_HAS_FRREG, + .driver_data = (kernel_ulong_t)&fec_imx27_info, }, { .name = "imx28-fec", - .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME | - FEC_QUIRK_SINGLE_MDIO | FEC_QUIRK_HAS_RACC | - FEC_QUIRK_HAS_FRREG, + .driver_data = (kernel_ulong_t)&fec_imx28_info, }, { .name = "imx6q-fec", - .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | - FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | - FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 | - FEC_QUIRK_HAS_RACC, + .driver_data = (kernel_ulong_t)&fec_imx6q_info, }, { .name = "mvf600-fec", - .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC, + .driver_data = (kernel_ulong_t)&fec_mvf600_info, }, { .name = "imx6sx-fec", - .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | - FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | - FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB | - FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE | - FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE, + .driver_data = (kernel_ulong_t)&fec_imx6x_info, }, { .name = "imx6ul-fec", - .driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | - FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | - FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR007885 | - FEC_QUIRK_BUG_CAPTURE | FEC_QUIRK_HAS_RACC | - FEC_QUIRK_HAS_COALESCE, + .driver_data = (kernel_ulong_t)&fec_imx6ul_info, }, { /* sentinel */ } @@ -1092,11 +1130,28 @@ static void fec_enet_reset_skb(struct net_device *ndev) } +static void fec_enet_stop_mode(struct fec_enet_private *fep, bool enabled) +{ + struct fec_platform_data *pdata = fep->pdev->dev.platform_data; + struct fec_stop_mode_gpr *stop_gpr = &fep->stop_gpr; + + if (stop_gpr->gpr) { + if (enabled) + regmap_update_bits(stop_gpr->gpr, stop_gpr->reg, + BIT(stop_gpr->bit), + BIT(stop_gpr->bit)); + else + regmap_update_bits(stop_gpr->gpr, stop_gpr->reg, + BIT(stop_gpr->bit), 0); + } else if (pdata && pdata->sleep_mode_enable) { + pdata->sleep_mode_enable(enabled); + } +} + static void fec_stop(struct net_device *ndev) { struct fec_enet_private *fep = netdev_priv(ndev); - struct fec_platform_data *pdata = fep->pdev->dev.platform_data; u32 rmii_mode = readl(fep->hwp + FEC_R_CNTRL) & (1 << 8); u32 val; @@ -1125,9 +1180,7 @@ static void fec_enet_reset_skb(struct net_device *ndev) val = readl(fep->hwp + FEC_ECNTRL); val |= (FEC_ECR_MAGICEN | FEC_ECR_SLEEP); writel(val, fep->hwp + FEC_ECNTRL); - - if (pdata && pdata->sleep_mode_enable) - pdata->sleep_mode_enable(true); + fec_enet_stop_mode(fep, true); } writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED); @@ -3397,6 +3450,37 @@ static int fec_enet_get_irq_cnt(struct platform_device *pdev) return irq_cnt; } +static int fec_enet_init_stop_mode(struct fec_enet_private *fep, + struct fec_devinfo *dev_info, + struct device_node *np) +{ + struct device_node *gpr_np; + int ret; + + if (!dev_info) + return 0; + + gpr_np = of_parse_phandle(np, "gpr", 0); + if (!gpr_np) + return 0; + + fep->stop_gpr.gpr = syscon_node_to_regmap(gpr_np); + if (IS_ERR(fep->stop_gpr.gpr)) { + dev_err(&fep->pdev->dev, "could not find gpr regmap\n"); + ret = PTR_ERR(fep->stop_gpr.gpr); + fep->stop_gpr.gpr = NULL; + goto out; + } + + fep->stop_gpr.reg = dev_info->stop_gpr_reg; + fep->stop_gpr.bit = dev_info->stop_gpr_bit; + +out: + of_node_put(gpr_np); + + return ret; +} + static int fec_probe(struct platform_device *pdev) { @@ -3412,6 +3496,7 @@ static int fec_enet_get_irq_cnt(struct platform_device *pdev) int num_rx_qs; char irq_name[8]; int irq_cnt; + struct fec_devinfo *dev_info; fec_enet_get_queue_num(pdev, &num_tx_qs, &num_rx_qs); @@ -3429,7 +3514,9 @@ static int fec_enet_get_irq_cnt(struct platform_device *pdev) of_id = of_match_device(fec_dt_ids, &pdev->dev); if (of_id) pdev->id_entry = of_id->data; - fep->quirks = pdev->id_entry->driver_data; + dev_info = (struct fec_devinfo *)pdev->id_entry->driver_data; + if (dev_info) + fep->quirks = dev_info->quirks; fep->netdev = ndev; fep->num_rx_queues = num_rx_qs; @@ -3463,6 +3550,10 @@ static int fec_enet_get_irq_cnt(struct platform_device *pdev) if (of_get_property(np, "fsl,magic-packet", NULL)) fep->wol_flag |= FEC_WOL_HAS_MAGIC_PACKET; + ret = fec_enet_init_stop_mode(fep, dev_info, np); + if (ret) + goto failed_stop_mode; + phy_node = of_parse_phandle(np, "phy-handle", 0); if (!phy_node && of_phy_is_fixed_link(np)) { ret = of_phy_register_fixed_link(np); @@ -3631,6 +3722,7 @@ static int fec_enet_get_irq_cnt(struct platform_device *pdev) if (of_phy_is_fixed_link(np)) of_phy_deregister_fixed_link(np); of_node_put(phy_node); +failed_stop_mode: failed_phy: dev_id--; failed_ioremap: @@ -3708,7 +3800,6 @@ static int __maybe_unused fec_resume(struct device *dev) { struct net_device *ndev = dev_get_drvdata(dev); struct fec_enet_private *fep = netdev_priv(ndev); - struct fec_platform_data *pdata = fep->pdev->dev.platform_data; int ret; int val; @@ -3726,8 +3817,8 @@ static int __maybe_unused fec_resume(struct device *dev) goto failed_clk; } if (fep->wol_flag & FEC_WOL_FLAG_ENABLE) { - if (pdata && pdata->sleep_mode_enable) - pdata->sleep_mode_enable(false); + fec_enet_stop_mode(fep, false); + val = readl(fep->hwp + FEC_ECNTRL); val &= ~(FEC_ECR_MAGICEN | FEC_ECR_SLEEP); writel(val, fep->hwp + FEC_ECNTRL); From patchwork Wed Mar 25 18:11:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Fuzzey X-Patchwork-Id: 1261575 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=flowbird.group Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=flowbird.group header.i=@flowbird.group header.a=rsa-sha256 header.s=google header.b=BJCpQeb6; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nbmm72Kgz9sSN for ; Thu, 26 Mar 2020 05:12:08 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727996AbgCYSMF (ORCPT ); Wed, 25 Mar 2020 14:12:05 -0400 Received: from mail-wr1-f99.google.com ([209.85.221.99]:40097 "EHLO mail-wr1-f99.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727682AbgCYSMC (ORCPT ); Wed, 25 Mar 2020 14:12:02 -0400 Received: by mail-wr1-f99.google.com with SMTP id u10so4388532wro.7 for ; Wed, 25 Mar 2020 11:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flowbird.group; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=G61Qe3eJT571EH7x7IhXUIxwlPNKKyhXnXe4ITy6VDY=; b=BJCpQeb64ilhKkblw6FOV5x7rvqyn9D/mptuh8QHSv4LCHx1h22tsz8VRicfOKIuy7 35s2PDgmhbScymVqGByxQVrsHLJq/j6RIv3ZN9aU4o0WZb7B6SFqEnxXJps5QZDa976P 813Xnt5LQ4xFA7gvgY4LSfSUV6/LS+lHY+tOwPFPM2xZp0NhZXgbyz+l3iI0cfUDGn1Q fZwzLwf2H3HWMhqX9GaeOm9oUOvEcbXom84OCu1QYjvKjkEEjdXMfLIZE0Rcnget399+ imRnWfc8rguyBYzRG8WqYpl66nH71FdYg0QK2vD6lUzCa+uLIujmj9ArAoelFtMcH4jE N4KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=G61Qe3eJT571EH7x7IhXUIxwlPNKKyhXnXe4ITy6VDY=; b=f2/qtQU5BY3Szly2+dRJFRjQmVQN4PZqeNs655fXfoxDIwiRdrcKv6tN1WZTgjgoRV F27CmqQm6sHEY6oK0jG5wD63AC91V2fRAm91GD902S9Pwdi/nuSmttjBfprKPtYm6unm aNgHAnYfxcUaSAaSWF1CjXfuWDHr040RLVhdnF7DNRuCjbZ9WtTyddgTSJd0p+pIDK00 LWT2Gg6uWzYxpIdptl0BpXZ+JUEaY30zbG3lb464Ulc4QFZH5sP/kfDcJsx/YX/SEJvZ ZMSMS4SAOjksA66DOMocbdgKIErasGTKXg/gc8SkzrKZxu0kMyt+bjBv3n7DctveE7ef f81w== X-Gm-Message-State: ANhLgQ1Zv+UrLL+HJrU5CiX39eg1knd33/UoA8KbC5GI54W2yAlCFHjT UpzlqIuxFAycJpjRmE6G2qgg+taoC6QFJTlBbwaA13ry3LS4 X-Google-Smtp-Source: ADFU+vub5D0jlsGOnm4YpokUYEZUOEHB6GT1kQnRwz9Q/yK67pONTdN9dt97HprIfogh2eG4adM5QF2KReUu X-Received: by 2002:a05:6000:114f:: with SMTP id d15mr4897008wrx.143.1585159919696; Wed, 25 Mar 2020 11:11:59 -0700 (PDT) Received: from mail.besancon.parkeon.com ([185.149.63.251]) by smtp-relay.gmail.com with ESMTPS id e16sm328483wrs.81.2020.03.25.11.11.59 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 25 Mar 2020 11:11:59 -0700 (PDT) X-Relaying-Domain: flowbird.group Received: from [172.16.13.190] (port=39524 helo=PC12445-BES.dynamic.besancon.parkeon.com) by mail.besancon.parkeon.com with esmtp (Exim 4.71) (envelope-from ) id 1jHAVT-0003Oy-7a; Wed, 25 Mar 2020 19:11:59 +0100 From: Martin Fuzzey To: Fugang Duan , Rob Herring , Shawn Guo , "David S. Miller" Cc: netdev@vger.kernel.org, Fabio Estevam , linux-kernel@vger.kernel.org, Sascha Hauer , NXP Linux Team , devicetree@vger.kernel.org, Andrew Lunn Subject: [PATCH v2 2/4] ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN. Date: Wed, 25 Mar 2020 19:11:57 +0100 Message-Id: <1585159919-11491-3-git-send-email-martin.fuzzey@flowbird.group> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> References: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In order to wake from suspend by ethernet magic packets the GPC must be used as intc does not have wakeup functionality. But the FEC DT node currently uses interrupt-extended, specificying intc, thus breaking WoL. This problem is probably fallout from the stacked domain conversion as intc used to chain to GPC. So replace "interrupts-extended" by "interrupts" to use the default parent which is GPC. Fixes: b923ff6af0d5 ("ARM: imx6: convert GPC to stacked domains") Signed-off-by: Martin Fuzzey --- arch/arm/boot/dts/imx6qdl.dtsi | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index e6b4b85..bc488df 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -1039,9 +1039,8 @@ compatible = "fsl,imx6q-fec"; reg = <0x02188000 0x4000>; interrupt-names = "int0", "pps"; - interrupts-extended = - <&intc 0 118 IRQ_TYPE_LEVEL_HIGH>, - <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>, + <0 119 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_ENET>, <&clks IMX6QDL_CLK_ENET>, <&clks IMX6QDL_CLK_ENET_REF>; From patchwork Wed Mar 25 18:11:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Fuzzey X-Patchwork-Id: 1261577 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=flowbird.group Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=flowbird.group header.i=@flowbird.group header.a=rsa-sha256 header.s=google header.b=rrNk6Kcx; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nbmv5tsZz9sSQ for ; Thu, 26 Mar 2020 05:12:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727957AbgCYSME (ORCPT ); Wed, 25 Mar 2020 14:12:04 -0400 Received: from mail-ed1-f100.google.com ([209.85.208.100]:45287 "EHLO mail-ed1-f100.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727705AbgCYSMD (ORCPT ); Wed, 25 Mar 2020 14:12:03 -0400 Received: by mail-ed1-f100.google.com with SMTP id u59so3687073edc.12 for ; Wed, 25 Mar 2020 11:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flowbird.group; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KKpKhLhaC9HGAwcc/wCEo8PVI3BgJbUGYTvCaeR49Ok=; b=rrNk6KcxURyxMqPmDLj2w7bRmiDPMbUI0d/kn5MoPrEUo33YzVn3zrxcuD85NeIErE +uGfzC7ut3SYcHQaLhmVWeUTDF73/vZGMa7Ku0Mz/KEWdWqxjWZHRLrkQP0RfXWMGD0m g8VbKMTkYncsJmDzeZV4BiiiM5zYJmPUIi2Cs4pHzaY5pWLRtjTfZVHxHP9YFhI9gv2h /soDGEdt35MheO4BaZk6KhmtRX4IfSR4z5IKnqcXCOr/49iFIdKQh5jwWJD6BMQDXElL to2vidpfeVH7HdXqu2o5MY3gopz3yUWfxHW8arc0tljoE4wT5MR3wxtPfBk3kpMziCWj MZ5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KKpKhLhaC9HGAwcc/wCEo8PVI3BgJbUGYTvCaeR49Ok=; b=HUJQ+mgtQV+5dvDsYbYGAy3Ib3jZHmrgFtMUWmDejx+Y64aeYm/D6i1h+KJqZQ4dCo Wt6yVG8SEJ0G6lDxIa47cmiRT7BMKYHDRgIg4WLjRLUGrkdww+EuylaremSiGBBQS7F1 IK6YKJWjXDPuVtouV8w3V4fee/zqkuL7HFGDTcHWUaL480NYPIK7w3aZfxNdCukMCE6l FiO0dUmPygUpX9R88SU281ssbRePA6NZeyRLV+rolVzngrdax27neNYKYWW3GtErbUZ3 Rmwx7aMXe1Oh7FFaO78N2dQM9sPnJSF3FWYfoyArF+m52/YnnYRVv821Sy+ogkq1GHsN f8ZA== X-Gm-Message-State: ANhLgQ3OB8LPGMTGl9CGj+q/jutfVHUyjeV+ohkFLZTUhBB6z4PcIrcJ fHPEo4iN0b6c4GbuWj2JrPxIjNL61QRDm3SUvbzYeFwMht98 X-Google-Smtp-Source: ADFU+vuep+cArUuYfyT4aIlU+oz4LwkVg1M9a67K8D0RfGmqdTIIjC4kRTkukTB5EAVMq2zHqSjAPESSkERj X-Received: by 2002:a17:906:1cc9:: with SMTP id i9mr2034588ejh.0.1585159920479; Wed, 25 Mar 2020 11:12:00 -0700 (PDT) Received: from mail.besancon.parkeon.com ([185.149.63.251]) by smtp-relay.gmail.com with ESMTPS id x25sm182281edl.7.2020.03.25.11.12.00 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 25 Mar 2020 11:12:00 -0700 (PDT) X-Relaying-Domain: flowbird.group Received: from [172.16.13.190] (port=39524 helo=PC12445-BES.dynamic.besancon.parkeon.com) by mail.besancon.parkeon.com with esmtp (Exim 4.71) (envelope-from ) id 1jHAVT-0003Oy-U9; Wed, 25 Mar 2020 19:12:00 +0100 From: Martin Fuzzey To: Fugang Duan , Rob Herring , Shawn Guo , "David S. Miller" Cc: netdev@vger.kernel.org, Fabio Estevam , linux-kernel@vger.kernel.org, Sascha Hauer , NXP Linux Team , devicetree@vger.kernel.org, Andrew Lunn Subject: [PATCH v2 3/4] dt-bindings: fec: document the new gpr property. Date: Wed, 25 Mar 2020 19:11:58 +0100 Message-Id: <1585159919-11491-4-git-send-email-martin.fuzzey@flowbird.group> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> References: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This property allows the gpr register bit to be defined for wake on lan support. Signed-off-by: Martin Fuzzey Reviewed-by: Fugang Duan Acked-by: Rob Herring --- Documentation/devicetree/bindings/net/fsl-fec.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt index 5b88fae0..ff8b0f2 100644 --- a/Documentation/devicetree/bindings/net/fsl-fec.txt +++ b/Documentation/devicetree/bindings/net/fsl-fec.txt @@ -22,6 +22,8 @@ Optional properties: - fsl,err006687-workaround-present: If present indicates that the system has the hardware workaround for ERR006687 applied and does not need a software workaround. +- gpr: phandle of SoC general purpose register mode. Required for wake on LAN + on some SoCs -interrupt-names: names of the interrupts listed in interrupts property in the same order. The defaults if not specified are __Number of interrupts__ __Default__ From patchwork Wed Mar 25 18:11:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Fuzzey X-Patchwork-Id: 1261578 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=flowbird.group Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=flowbird.group header.i=@flowbird.group header.a=rsa-sha256 header.s=google header.b=iLyoXKlK; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nbmx3XSJz9sSV for ; Thu, 26 Mar 2020 05:12:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728049AbgCYSMP (ORCPT ); Wed, 25 Mar 2020 14:12:15 -0400 Received: from mail-lf1-f98.google.com ([209.85.167.98]:41661 "EHLO mail-lf1-f98.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726820AbgCYSMD (ORCPT ); Wed, 25 Mar 2020 14:12:03 -0400 Received: by mail-lf1-f98.google.com with SMTP id z23so2622639lfh.8 for ; Wed, 25 Mar 2020 11:12:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flowbird.group; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fLsD0pf0Z2Qy/ATTVpbRFX98Scq2+qNt41yDSpwIQQk=; b=iLyoXKlKVAEeJKb4GZYsqeun1adVsC9YRwFHuXskB9nuaEPBvhLao07deNQYw72RQZ wUwwf0sN6Ny/pl8t5eyZT7VfFmA3hHfjm0p/6KznAlT68UT2/NfUk4WM2Bzg2QPFbQNK Dq1SSAcgbZ97s/TTEkSa8wqn5E9oLog/QQ9+ti8S0vepfcEUM3V4wFHq5Zow6/K/fYGH U/veqSNDhMM86ByHOJR9SIOtlnkc38IhLnho9ySmFzY8ZsFnUvBQ23Ybb+NcJ4a7pQMO XTwn5dlOUF1oWN2ly2rRSEI7VzWpGaIUzS7n+zM1bjONc+vbSRGCjXC0QOf+r1RIlru6 +A3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fLsD0pf0Z2Qy/ATTVpbRFX98Scq2+qNt41yDSpwIQQk=; b=cxxDuzij52+5/PkGbYsuH5KRWffMMFYt25WprJyypi5A+iiQaG2mjFo1UfsybHVcd0 2flHq1GIQ44b44KWuJvL4ACXxpXIUNVwFBO7PfSgyBR1EP7h3HXjK7AIsDkwZxn69/bB pQVpkAveWtSvoV48jPo2nPRW7bbMvJuIxqwFbR7C+iGkQ7Rx954yd1vEp5N8rgqgjvJ9 H8lw61dG5v8CXlmQVlOgLLsDTxMeKk1mR2yuJ0nBvHx5ZwXFY7UzafzJvRkrLVDw43q7 qSeQJlwgjbP5Jx876U8dsfjhaByNyM3liF8rMhv9sRMXybenrdSJY9RE0hONLJHIIHZw bjiQ== X-Gm-Message-State: ANhLgQ2QTbny/db49eHMRd8bj6Vu7I+gcG/C5l9ev8UQY0vLo9DO0Wx6 iNh6XfqX9cm0lJScMsreVqYhhAqv3MBMfsBWxIMJBCkRAFlP X-Google-Smtp-Source: ADFU+vu3J9uRTLiIP5vf8lSLTAkoSWCPvzFRTGJZ+RRp6NqycNXaFIzinWVyrA2u9iaNoUfPCIbblHthN6mv X-Received: by 2002:a19:660a:: with SMTP id a10mr3091046lfc.9.1585159921405; Wed, 25 Mar 2020 11:12:01 -0700 (PDT) Received: from mail.besancon.parkeon.com ([185.149.63.251]) by smtp-relay.gmail.com with ESMTPS id x11sm55799lji.25.2020.03.25.11.12.01 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 25 Mar 2020 11:12:01 -0700 (PDT) X-Relaying-Domain: flowbird.group Received: from [172.16.13.190] (port=39524 helo=PC12445-BES.dynamic.besancon.parkeon.com) by mail.besancon.parkeon.com with esmtp (Exim 4.71) (envelope-from ) id 1jHAVU-0003Oy-K9; Wed, 25 Mar 2020 19:12:00 +0100 From: Martin Fuzzey To: Fugang Duan , Rob Herring , Shawn Guo , "David S. Miller" Cc: netdev@vger.kernel.org, Fabio Estevam , linux-kernel@vger.kernel.org, Sascha Hauer , NXP Linux Team , devicetree@vger.kernel.org, Andrew Lunn Subject: [PATCH v2 4/4] ARM: dts: imx6: add fec gpr property. Date: Wed, 25 Mar 2020 19:11:59 +0100 Message-Id: <1585159919-11491-5-git-send-email-martin.fuzzey@flowbird.group> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> References: <1585159919-11491-1-git-send-email-martin.fuzzey@flowbird.group> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is required for wake on lan on i.MX6 Signed-off-by: Martin Fuzzey Reviewed-by: Fugang Duan --- arch/arm/boot/dts/imx6qdl.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index bc488df..65b0c8a 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -1045,6 +1045,7 @@ <&clks IMX6QDL_CLK_ENET>, <&clks IMX6QDL_CLK_ENET_REF>; clock-names = "ipg", "ahb", "ptp"; + gpr = <&gpr>; status = "disabled"; };