Commit 95f68bc4 authored by Krishna Reddy's avatar Krishna Reddy Committed by Manish Pandey
Browse files

Tegra194: memctrl: fix bug in client order id reg value generation



Client order id reset values are incorrectly and'ed with
mc_client_order_id macro, which resulted in getting reg value as
always zero. Updated mc_client_order_id macro to avoid and'ing outside
the macro, to take the reg value and update specific bit field
as necessary.

Change-Id: I880be6e4291d7cd58cf70d7c247a4044e57edd9e
Signed-off-by: default avatarKrishna Reddy <vdumpa@nvidia.com>
parent c766adce
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
#define MC_CLIENT_ORDER_ID_28_PCIE5W_MASK (0x3U << 12) #define MC_CLIENT_ORDER_ID_28_PCIE5W_MASK (0x3U << 12)
#define MC_CLIENT_ORDER_ID_28_PCIE5W_ORDER_ID (2U << 12) #define MC_CLIENT_ORDER_ID_28_PCIE5W_ORDER_ID (2U << 12)
#define mc_client_order_id(id, client) \ #define mc_client_order_id(val, id, client) \
(~MC_CLIENT_ORDER_ID_##id##_##client##_MASK | \ ((val & ~MC_CLIENT_ORDER_ID_##id##_##client##_MASK) | \
MC_CLIENT_ORDER_ID_##id##_##client##_ORDER_ID) MC_CLIENT_ORDER_ID_##id##_##client##_ORDER_ID)
/******************************************************************************* /*******************************************************************************
......
...@@ -577,17 +577,14 @@ static void tegra194_memctrl_reconfig_mss_clients(void) ...@@ -577,17 +577,14 @@ static void tegra194_memctrl_reconfig_mss_clients(void)
tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG7, reg_val); tegra_mc_write_32(MC_PCFIFO_CLIENT_CONFIG7, reg_val);
/* Set Order Id only for the clients having non zero order id */ /* Set Order Id only for the clients having non zero order id */
reg_val = MC_CLIENT_ORDER_ID_9_RESET_VAL & reg_val = mc_client_order_id(MC_CLIENT_ORDER_ID_9_RESET_VAL, 9, XUSB_HOSTW);
mc_client_order_id(9, XUSB_HOSTW);
tegra_mc_write_32(MC_CLIENT_ORDER_ID_9, reg_val); tegra_mc_write_32(MC_CLIENT_ORDER_ID_9, reg_val);
reg_val = MC_CLIENT_ORDER_ID_27_RESET_VAL & reg_val = mc_client_order_id(MC_CLIENT_ORDER_ID_27_RESET_VAL, 27, PCIE0W);
mc_client_order_id(27, PCIE0W);
tegra_mc_write_32(MC_CLIENT_ORDER_ID_27, reg_val); tegra_mc_write_32(MC_CLIENT_ORDER_ID_27, reg_val);
reg_val = MC_CLIENT_ORDER_ID_28_RESET_VAL & reg_val = mc_client_order_id(MC_CLIENT_ORDER_ID_28_RESET_VAL, 28, PCIE4W);
mc_client_order_id(28, PCIE4W) & reg_val = mc_client_order_id(reg_val, 28, PCIE5W);
mc_client_order_id(28, PCIE5W);
tegra_mc_write_32(MC_CLIENT_ORDER_ID_28, reg_val); tegra_mc_write_32(MC_CLIENT_ORDER_ID_28, reg_val);
/* Set VC Id only for the clients having different reset values */ /* Set VC Id only for the clients having different reset values */
......
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