From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Yang Date: Fri, 21 May 2010 19:43:11 +0800 Subject: [U-Boot] [PATCH] 85xx: Add is_serdes_configured() support for P2020SERDES In-Reply-To: <1274433478-31849-1-git-send-email-galak@kernel.crashing.org> References: <1274433478-31849-1-git-send-email-galak@kernel.crashing.org> Message-ID: <4BF671CF.8020808@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 5/21/2010 5:17 PM, Kumar Gala wrote: > >Add the ability to determine if a given IP block connected on SERDES is >configured. This is useful for things like PCIe and SRIO since they are >only ever connected on SERDES. > >Signed-off-by: Kumar Gala > I'm not sure why this code has to be re-done rather than using the patch I submitted? {snip} >+int is_serdes_configured(enum srds_prtcl device) { >+ int i; >+ ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); >+ u32 pordevsr = in_be32(&gur->pordevsr); Wouldn't it be better to only read it once on fsl_serdes_init(), after all it will not be changed after reset. >+ u32 srds1_cfg = (pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> >+ MPC85xx_PORDEVSR_IO_SEL_SHIFT; >+ >+ debug("%s: dev = %d\n", __FUNCTION__, device); >+ debug("PORDEVSR[IO_SEL] = %x\n", srds1_cfg); >+ >+ if (srds1_cfg > ARRAY_SIZE(serdes1_cfg_tbl)) { >+ printf("Invalid PORDEVSR[IO_SEL] = %d\n", srds1_cfg); >+ return 0; >+ } >+ >+ for (i = 0; i < SRDS1_MAX_LANES; i++) { >+ if (serdes1_cfg_tbl[srds1_cfg][i] == device) >+ return 1; Given the fact that the is_serdes_configured() will be called multiple times, it will be better to process the table in fsl_serdes_init() and save time for every is_serdes_configured() judgment like what I did. - Leo >+ } >+ >+ return 0; >+} >+ >+void fsl_serdes_init(void) >+{ >+} >-- >1.6.0.6 > >_______________________________________________ >U-Boot mailing list >U-Boot at lists.denx.de >http://lists.denx.de/mailman/listinfo/u-boot