Messages in this thread | | | Date | Thu, 2 Oct 2014 16:52:01 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH 4/4] edac, amd64_edac: Add F15h M60h support |
| |
On Wed, Oct 01, 2014 at 02:44:21PM -0500, Aravind Gopalakrishnan wrote: > The more I think about this, I'm finding it's hard to do this cleanly. > I initially thought I'd just cache this in pvt->dram_type the first time I'm > doing this. > But, the pvt->ops->dbam_to_cs() mappers get called first before > determine_memory_type(). > > So, If I look for dram_type in f15_m60h_dbam_to_chip_select() it's ugly as > that's really the point of > having a determine_memory_type(). > > Also, there's just a lot of if-else statements in determine_memory_type() > now. > This could benefit from having a per-family low_ops function. > And, we can call this early... somewhere in read_mc_regs() so that we have > information ready to use in > f15_m60h_dbam_to_chip_select() and in init_csrows() which needs dram_type > too.
Right, this is what I was thinking too: somewhere in read_mc_regs(), after having collected ->dclr0, you call determine_memory_type() and store it into pvt->dram_type.
> Oh, btw- We can do away with a pvt->dram_ctrl as > f15_m60h_dbam_to_chip_select() really just needs the dram_type.
Yes, you make the read of DRAM_CONTROL inside determine_memory_type() as we don't need it anywhere else.
If we do, all of a sudden, we'll move it up to read_mc_regs(). IOW, I'm trying to centralize all reg reads in read_mc_regs() and use locally cached info later so I don't have to access the hardware each time needlessly, if it can be helped.
Thanks.
-- Regards/Gruss, Boris.
Sent from a fat crate under my desk. Formatting is fine. --
| |