[PATCH] 4xx: Add check_link to struct ppc4xx_pciex_hwops

Ayman El-Khashab ayman at elkhashab.com
Wed Jul 13 08:13:38 EST 2011


On Tue, Jul 12, 2011 at 02:04:04PM -0400, Josh Boyer wrote:
> On Tue, Jul 12, 2011 at 12:40:07PM -0500, Ayman El-Khashab wrote:
> >On Fri, Jul 01, 2011 at 04:44:24PM +1000, Tony Breeds wrote:
> >> All current pcie controllers unconditionally use SDR to check the link and
> >> poll for reset.
> >
> >I was able to apply this patch and then modify the 460SX to
> >work correctly, so I think it is fine.  There is only 1
> >comment below.  So how does one supply a patch atop another
> >patch?
> >
> >Best,
> >Ayman
> >
> >> +static int __init ppc4xx_pciex_port_reset_sdr(struct ppc4xx_pciex_port *port)
> >> +{
> >> +	printk(KERN_INFO "PCIE%d: Checking link...\n",
> >> +	       port->index);
> >
> >Its not a functional problem, but this printk belongs in the
> >check link if anywhere rather than the reset.
> 
> I've got this queued in my tree locally.  I can make that change before
> I push it out.
> 

Ok, so let me ask the following ... will it cause trouble if
I swap the sequence of the calls to the following in xxx_port_init

ppc4xx_pciex_port_init_mapping(...)

and

if (ppc4xx_pciex_hwops->check_link)...

The reason is that at least on the 460SX, the link check is
done via registers in the config space.  But the init_mapping is 
needed to setup some of the DCRs to make the config space work.  
In my check_link, i map the config space do the link checks
and then unmap since a superset of the space could be mapped
later.

Thanks,
ayman



More information about the Linuxppc-dev mailing list