Am Freitag, 9. Juni 2006 12:27 schrieb Iordan (Danny) Ignatov:
> Juergen Schindele wrote:
> > Am Donnerstag, 8. Juni 2006 14:06 schrieb Iordan (Danny) Ignatov:
> >> Hi,
> >>
> >> I have the isp116x running fine on my ixp425 platform under kernel
> >> 2.4.27-uc1, where it maps to IXP425_EXP_BUS_CS4_BASE_VIRT = 0xf4000000
> >> (the 2.4.27 driver does not perform ioremap). However with kernel -
> >> 2.6.12, (same platform and settings as in the 2.4.27 case) I provide the
> >> physical address IXP425_EXP_BUS_CS4_BASE_PHYS  = 0x54000000 which is
> >> then ioremap'd  (togther with 0x54000002 for addr) after which I am
> >> unable to read/write from/to the chip (all registers when read come with
> >> the same value of 0x1000)? Is it a mem mapping problem or is it maybe an
> >> issue with the read/write procedures (or maybe something else that I
> >> hvent thought about)?
> >
> > Hi Danny,
> > i had the same problem and solved it.
> > the problems are the readw / writew calls in data and register acces
> > functions defined in isp116x.h. For a BIG_ENDIAN kernel readw / writew
> > swaps bytes. when writing 0x0027 the value 0x2700 is driven on the
> > expansion bus.
> >
> > i replaced the readw / writew lines like this :
> >
> > #if (defined CONFIG_ARCH_IXP4XX) && (defined
> > CONFIG_ARCH_SUPPORTS_BIG_ENDIAN) val = (u32)
> > __raw_readw(isp116x->data_reg);
> > #else
> >         val = (u32) readw(isp116x->data_reg);
> > #endif
> >
> > #if (defined CONFIG_ARCH_IXP4XX) && (defined
> > CONFIG_ARCH_SUPPORTS_BIG_ENDIAN) __raw_writew(reg, isp116x->addr_reg);
> > #else
> >         writew(reg, isp116x->addr_reg);
> > #endif
> >
> > I am using moooore recent kernel 2.6.14 but this should work for 2.4.x
> > too. Check it out.
> > --------------------------------------------------------------
> > Jürgen Schindele            NENTEC Netzwerktechnologie GmbH
> > Entwicklung                 Greschbachstrasse 12
> >                             76229 Karlsruhe/Germany
> > eMail:[EMAIL PROTECTED]   Phone: +49(0)721 94249-<51>
> > Web:   www.nentec.de        Fax:   +49(0)721 94249-10
> > --------------------------------------------------------------
>
> Hi Juergen,
>
> Thanks for the help!!! The change form readw/writew to
> __raw_readw/writew fixed the problem. Perhaps the #ifdefined should
> become a permanent fixture in the driver for all BIG_ENDIAN users.
> Now the driver seems to load properly however when i plug my usb mouse i
> get the following errors :
>
>  usb 1-1: new low speed USB device using isp116x-hcd and address 7
> usb 1-1: device not accepting address 7, error -32
> usb 1-1: new low speed USB device using isp116x-hcd and address 8
> usb 1-1: device not accepting address 8, error -32
> usb 1-1: new low speed USB device using isp116x-hcd and address 9
> usb 1-1: device not accepting address 9, error -32
> usb 1-1: new low speed USB device using isp116x-hcd and address 10
> usb 1-1: device not accepting address 10, error -32

This semms to me an hardware issue.
Is power correctly supplied ?

Check "struct isp116x_platform_data" for internal or external 15k resistors.
Also check if NDELAY or PLATFORM_DELAY is greater 300 ns.
Enable URB-TRACE and PT_DEBUG to see frames coming back.

Good Luck
--------------------------------------------------------------
Jürgen Schindele            NENTEC Netzwerktechnologie GmbH
Entwicklung                 Greschbachstrasse 12
                            76229 Karlsruhe/Germany
eMail:[EMAIL PROTECTED]   Phone: +49(0)721 94249-<51>
Web:   www.nentec.de        Fax:   +49(0)721 94249-10
--------------------------------------------------------------



_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to