Working MSM7201 usb host driver v

by Andrew de Quincey » Tue, 09 Feb 2010 20:16:47 GMT


Sponsored Links
 Hi, here's my now working patch - I've still a bit of work to do on it
obviously, but it should suffice as a proof of concept

-- 



Working MSM7201 usb host driver v

by Andrew de Quincey » Tue, 09 Feb 2010 22:26:14 GMT


 




>> website: 


Sponsored Links


Working MSM7201 usb host driver v

by Andrew de Quincey » Wed, 10 Feb 2010 18:15:32 GMT


 Cool, I shall get on it then! Would 2.6.27 be the branch to go for would you
reckon?

Do you know if there's another list with more G1 users on it for testing
perhaps? This one seems sort of dead.

-- 



Working MSM7201 usb host driver v

by Andrew de Quincey » Wed, 10 Feb 2010 19:27:13 GMT


 Here you go - this is a patch against the android-msm-2.6.27 branch.

I don't have a config.gz from the G1, so I don't know what specific options
it uses so there may be compilation failures resulting from disabling the
USB_FUNCTION stuff. If you could send me a copy of your config.gz, I can
sort this out.

-- 



Working MSM7201 usb host driver v

by Andrew de Quincey » Wed, 10 Feb 2010 19:41:30 GMT


 Hi, sorry, my git skills failed me last time - resending :)

-- 



Working MSM7201 usb host driver v

by Jun Sun » Thu, 11 Feb 2010 01:50:25 GMT


 
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25
# Wed Jan 20 21:12:11 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_GPIOS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_ZONE_DMA=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION="-01843-gfea26b0"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
CONFIG_GROUP_SCHED=y
# CONFIG_FAIR_GROUP_SCHED is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_PANIC_TIMEOUT=3
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_ASHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_CLASSIC_RCU=y

#
# System Type
#
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_GOLDFISH is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS7500 is not set
#



Working MSM7201 usb host driver v

by Andrew de Quincey » Thu, 11 Feb 2010 02:32:29 GMT


 Hi, thanks for the .config, that helped getting my dev system setup a lot.
Anyway, attached is a backport against the android-msm-htc-2.6.25 branch; I
can't guarantee it'll work properly as the kernel EHCI stack has definitely
changed a bit since .25. It compiles though, what more testing do we need?
:)

I'm only going to support the standard linux USB host + gadget frameworks:
that's what all the linux USB OTG support is based on, and I can't be
bothered porting all that to the android specific USB_FUNCTION stuff. If
someone else does though, I've no objections!

I'm going to start reading up on OTG drivers to take this beyond the
prototype stage.

-- 



Working MSM7201 usb host driver v

by Jun Sun » Fri, 12 Feb 2010 18:11:41 GMT


 
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25
# Thu Feb 11 22:47:00 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_GPIOS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_ZONE_DMA=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION="-01843-gfea26b0"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
CONFIG_GROUP_SCHED=y
# CONFIG_FAIR_GROUP_SCHED is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_PANIC_TIMEOUT=3
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_ASHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_CLASSIC_RCU=y

#
# System Type
#
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_GOLDFISH is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS7500 is not set
#



Working MSM7201 usb host driver v

by Andrew de Quincey » Fri, 12 Feb 2010 18:33:04 GMT


 Hi, thanks for trying that out, good to see the EHCI hardware initialised
ok, even if its not quite working yet.

Are you supplying power to the USB disk on its /USB/ interface? Even if its
got an external PSU, it might need power on the USB line as well in order to
function properly.

When I plug a device in, I don't see anything at all until I've switched my
external usb-powering battery on.

If the two USB data lines are the wrong way round, you'll see the device
being plugged in, but it'll fail to communicate with it. As I've said, we
can fix this in software :)

I seriously doubt I have to tell you this, but just in case: make absolutely
certain the USB  GND and USB power lines aren't mixed up!

If that's not it, I can send a patch with loads of debugging turned on.

-- 



Working MSM7201 usb host driver v

by Chris Stratton » Mon, 15 Feb 2010 16:47:53 GMT


 Andrew,

I've tried patching the cyanogen 2.6.29.6-cm42 kernel with your usb
host code for basically the same finds root hub and nothing else
result on a magic32b that Jun Sun posted from a g1.

Im using a usb hard drive's Y cable and a usb A to mini adapter; I
think this should be good as the phone will charge off either the real
mini or the adapted one.  But nothing in dmesg either booting with
devices connected or connecting them later.

I think I need to learn about how the enumeration process is supposed
to trigger in an ordinary host only system.

Maybe one of us can figure out how to try a kernel closer to yours,
also should look for g1/magic vs. hero differences in source.

Chris

-- 



Other Threads

1. how to get android phone to read out words

it's not as complex as speech recognition, but i just want to somehow
make my android app read out pre-written lines.  is there a way to do
that?

thanks.

-- 

2. Call order of multiple registered callbacks

Hi all,

Is the call order for multiple registered callbacks defined in some
way, or is it just random?  I assumed that callbacks will be called in
the order that they are registered, but this seems to not be the
case.  For example, I have two callbacks registered to be notified of
changes in the OnSharedPreferenceChangeListener.  But the order in
which the callbacks are called is not always in the order I registered
them.  Is this a general pattern with callbacks or just a bug in the
implementation of the Preferences?  I couldn't find anything in the
documentation.

Thanks.

-- 

3. Webview segfault causes process to restart and in rare cases take the Android platform down and turn the phone off

4. Error generating final archive: invalid entry size

5. ADB connect 192.168.16.2:5555 link drops

6. Is it legal to use an invalid Map API key?

7. valantine images