Subject: Re: ELDK 4.2/kilauea/3.5+ kernel broken

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 19 Oct 2012 06:03:26 +1100

On Thu, 2012-10-18 at 20:45 +0300, Robert Berger wrote:
> -       mtdcri(SDR0, *sdr_addr, upper_32_bits(res.start));      /*HIGH addr */
> -       mtdcri(SDR0, *sdr_addr + 1, lower_32_bits(res.start));  /* Low addr */
> +       SDR0_WRITE(sdr_addr, (u64)res.start >> 32);      /*HIGH addr */
> +       SDR0_WRITE(sdr_addr + 1, res.start & 0xFFFFFFFF); /* Low addr */
> +
>  
>         msi->msi_dev = of_find_node_by_name(NULL, "ppc4xx-msi");
> -       if (!msi->msi_dev)
> +       if (msi->msi_dev)
>                 return -ENODEV; 

The above changes look bad. The first one is stupid, the second one is clearly broken.

The diff us from good to bad right ? Looks like somebody added a very busted patch.

If I look at the code in current upstream, I see:

	mtdcri(SDR0, *sdr_addr, upper_32_bits(res.start));	/*HIGH addr */
	mtdcri(SDR0, *sdr_addr + 1, lower_32_bits(res.start));	/* Low addr */

	msi->msi_dev = of_find_node_by_name(NULL, "ppc4xx-msi");
	if (!msi->msi_dev)
		return -ENODEV;

Which looks correct. So this might be something specific to ELDK ?

Cheers,
Ben.