[PATCH v2 3/3] PCI: rockchip: Add system PM support

Brian Norris briannorris at chromium.org
Tue Nov 22 21:06:42 PST 2016


Hi Shawn,

On Wed, Nov 23, 2016 at 12:15:15PM +0800, Shawn Lin wrote:
> This patch adds system PM support for Rockchip's RC.
> For pre S3, the EP is configured into D3 state which guarantees
> the link state should be in L1. So we could send PME_Turn_Off message
> to the EP and wait for its ACK to make the link state into L2 or L3
> without the aux-supply. This could help save more power which I think
> should be very important for mobile devices.
> 
> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
> 
> ---
> 
> Changes in v2:
> - Wrap the 'x' in parentheses
> - add msg regison mapped support
> - enable int for err case in suspend_noirq
> 
>  drivers/pci/host/pcie-rockchip.c | 102 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 102 insertions(+)
> 
> diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
> index 457401d..f2828a8 100644
> --- a/drivers/pci/host/pcie-rockchip.c
> +++ b/drivers/pci/host/pcie-rockchip.c

[...]

> @@ -1196,8 +1207,91 @@ static int rockchip_cfg_atu(struct rockchip_pcie *rockchip)
>  		}
>  	}
>  
> +	/* assign message regions */
> +	rockchip_pcie_prog_ob_atu(rockchip, reg_no + 1 + offset,
> +				  AXI_WRAPPER_NOR_MSG,
> +				  20 - 1, 0, 0);
> +	if (!rockchip->msg_region)
> +		rockchip->msg_region = devm_ioremap(rockchip->dev,
> +						    rockchip->mem_bus_addr +
> +						    ((reg_no + offset) << 20),
> +						    SZ_1M);

You still forgot to check for devm_ioremap() failures. Should probably
have:

		if (!rockchip->msg_region)
			return -ENOMEM;

in there.

Otherwise (and maybe with the "why 5 seconds" answer noted in the commit
message?):

Reviewed-by: Brian Norris <briannorris at chromium.org>

on all 3 patches.

> +
>  	return err;
>  }

[...]

Thanks,
Brian



More information about the Linux-rockchip mailing list