> First, many thanks for the files.
>
> Do you mind if I cvs upload them to the SGI kernel mailing list?
CVS upload them to the mailing list, I don't get your point here. I have CVS
access so I may upload them if I want to, and I can post it to the mailing list
if you want me to. But it feels like too much people would laugh at me if I
posted it at the moment.. I'll atleast get it through the compiler once again.
> Do you mind if we hold this discussion on the SGI list once I do that?
Sure, I actually forgot to group reply, that's why this discussion isn't
(wasn't) on the list :-)
> Next, I was hoping you could explain this bit of code to me, I don't quite
> see how it's right from the docs. I'm looking at page 13 of the HAL2
> docs.
Does something else bother you than the incorrect type? I can't see anything
else being wrong here.
[snip]
> typedef volatile unsigned long hpcreg;
How stupid! I thought I had checked that it was unsigned short.. ;)
My spacing depends on that..
> Next, your spacing isn't quite right I don't think. I think it needs to
> be:
>
> typedef volatile __u16 hal_reg;
>
> struct hal2_ctrl_regs {
> hal_reg _unused0[8];
> hal_reg isr; /* 0x10 Status Register */
> hal_reg _unused1[7];
> hal_reg rev; /* 0x20 Revision Register */
> hal_reg _unused2[7];
> hal_reg iar; /* 0x30 Indirect Address Register */
> hal_reg _unused3[7];
> hal_reg idr0; /* 0x40 Indirect Data Register 0 */
> hal_reg _unused4[7];
> hal_reg idr1; /* 0x50 Indirect Data Register 1 */
> hal_reg _unused5[7];
> hal_reg idr2; /* 0x60 Indirect Data Register 2 */
> hal_reg _unused6[7];
> hal_reg idr3; /* 0x70 Indirect Data Register 3 */
> } *h2_ctrl = (hal2_ctrl_regs *) H2_CTRL_PIO;
And this line should actually be:
} *h2_ctrl = (hal2_ctrl_regs *) KSEG1ADDR(H2_CTRL_PIO);
> Does that make sense, or otherwise, what was your thought on this?
It probably does, I have found two bugs so far.
- Ulf
|