[PATCH 0/9] staging: comedi: addi_apci_1564: additional clean up

Ian Abbott abbotti at mev.co.uk
Wed Oct 22 11:08:47 UTC 2014


On 21/10/14 18:15, Hartley Sweeten wrote:
> In addition, in apci1564_interrupt() the dev->iobase (BAR1) is used for:
>
> 	s->state = inl(dev->iobase + APCI1564_DI_INT_STATUS_REG) & 0xffff;
>
> But is apci1564_reset() and apci1564_cos_insn_config() that register
> is accessed using devpriv->amcc_iobase (BAR0):
>
> 	inl(devpriv->amcc_iobase + APCI1564_DI_INT_STATUS_REG);
>
> The register should not be accessible from both BARs so BAR1 must be
> the real base address for the boards main registers.
>
> dev->iobase (BAR1) is currently used to access the counter register
> (other than the one access to APCI1564_DI_INT_STATUS_REG listed
> above). The mapping of those registers would overlay the boards main
> registers so my guess is they should really use BAR2 as the base address.
>
> I need to dig thru the git history to see if the screw up was
> caused by various patches to the driver or if the problem
> existed from when it was initially merged.

Looks like commit 860ba36cbeadee9064e2925be11dfb8368b9b25d ("staging: 
comedi: addi_apci_1564: move apci1564_interrupt() into 
addi_apci_1564.c") is the culprit.

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-


More information about the devel mailing list