Thread (26 messages) 26 messages, 3 authors, 2013-03-01
STALE4854d

[PATCH v9 8/9] usb: chipidea: tell platform layer the ci core probe's result

From: Peter Chen <hidden>
Date: 2013-02-28 08:31:44

On Thu, Feb 28, 2013 at 09:26:17AM +0200, Felipe Balbi wrote:
Hi,

On Thu, Feb 28, 2013 at 11:11:20AM +0800, Peter Chen wrote:
quoted
On Wed, Feb 27, 2013 at 02:12:38PM +0200, Felipe Balbi wrote:
quoted
Hi,

On Wed, Feb 27, 2013 at 10:22:03AM +0800, Peter Chen wrote:
quoted
On Tue, Feb 26, 2013 at 11:42:34AM +0200, Felipe Balbi wrote:
quoted
On Sun, Feb 17, 2013 at 05:24:42PM +0800, Peter Chen wrote:
quoted
If the probe fails, the ci13xxx_add_device will not return error,
(bus_probe_device doesn't has return value)
therefore, the platform layer can't know whether core's probe
is successful or not, if platform layer goes on using core's struct
which is initialized at core's probe, the error will occur.

This error is showed when I only compile gadget, the host-only
controller reports "no supported roles", and fails probe, but imx
platform code doesn't know it, and goes on using core's private data.

Signed-off-by: Peter Chen <redacted>
this just tells you that platform code shouldn't be using the driver
directly. passing probe_retval via platform_data is an abomination, fix
the real problem instead, whatever it is.
So you suggest the platform glue layer should not use core driver's data
directly, eg, for your dwc3, the platform glue layer should not use
struct dwc3 *dwc directly? 
yes, and it doesn't. Ever.
If the dwc3 core fails to probe, but controller core clk is still on, is it
a valid case?
of course not, but then again, core clk shouldn't be handled by glue
layer. You need to figure out who owns the clock, if it feeds DWC3 why
would you clk_get() and clk_prepare_enable() from glue ? Makes no sense.
Sorry? I can't find clk_prepare_enable at dwc3/core.c, but at dwc3 core, it
try to access register at probe, unless platform layer open the clock, how
can the core visit the core register.


-- 

Best Regards,
Peter Chen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help