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.Right, this is what I was thinking too: somewhere in read_mc_regs(),
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.
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 asYes, you make the read of DRAM_CONTROL inside determine_memory_type() as
f15_m60h_dbam_to_chip_select() really just needs the dram_type.
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.