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