Re: [PATCH] i2c: exynos5: register driver early in subsys initcall to avoid probe defer

2015-11-19 Thread Marek Szyprowski

Hello,

On 2015-11-01 17:02, Wolfram Sang wrote:

On Fri, Oct 30, 2015 at 03:23:28PM +0100, Marek Szyprowski wrote:

i2c bus drivers should be registered earlier than typical drivers to let
important i2c devices (like PMICs/regulators) get registered early
enough to avoid probe defer of all devices in typical embedded system.

Signed-off-by: Marek Szyprowski 

I don't accept such patches anymore. Some more background:

http://www.spinics.net/lists/linux-i2c/msg13102.html
http://www.spinics.net/lists/linux-i2c/msg16644.html


Well, then how can we get Exynos5xxx-based boards working with USB gadget
driver compiled-in? USB Device controller driver (UDC) needs regulator to
probe successfully. On the other hand USB gadget subsystem doesn't wait
until all UDC drivers gets probed and fails to bind compiled-in gadget
drivers if no UDC is available on probe time.

This problem is known for ages, there were number of attempts to add
support for deferred probe or solve the problem of deferred UDC driver
probe, but none got accepted so far:

http://www.spinics.net/lists/linux-usb/msg102795.html (20 Feb 2014)
http://www.spinics.net/lists/linux-usb/msg105279.html (2 Apr 2014)
http://thread.gmane.org/gmane.linux.usb.general/109745 (10 Jun 2014)
https://lkml.org/lkml/2015/6/22/554 (23 Jun 2015)

Till now it worked somehow for boards with older i2c bus drivers, which
were registered in subsys initcall. Boards, which use newer i2c bus drivers
cannot be used with usb gadgets compiled-in.

Best regards
--
Marek Szyprowski, PhD
Samsung R Institute Poland

--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] i2c: exynos5: register driver early in subsys initcall to avoid probe defer

2015-11-19 Thread Wolfram Sang
Hi Marek,

> This problem is known for ages, there were number of attempts to add

Yes, I heard of it, too.

> support for deferred probe or solve the problem of deferred UDC driver
> probe, but none got accepted so far:

Then they need to be worked on. AFAIK the rejection is based on
implementation details, not because the feature itself is not wanted,
or?

> Till now it worked somehow for boards with older i2c bus drivers, which
> were registered in subsys initcall. Boards, which use newer i2c bus drivers
> cannot be used with usb gadgets compiled-in.

Yes, because the above issue needs to be *fixed*, not workarounded. You
still have the option to carry your patch out-of-tree if fixing the
issue is not an option for you.

We already had problems here when someone tried to revert
subsys_initcall to module_init because of other dependency issues on
another particular board. So, the pain should really go where the fixing
is needed.

I hope you understand,

   Wolfram



signature.asc
Description: Digital signature


Re: [PATCH] i2c: exynos5: register driver early in subsys initcall to avoid probe defer

2015-11-01 Thread Wolfram Sang
On Fri, Oct 30, 2015 at 03:23:28PM +0100, Marek Szyprowski wrote:
> i2c bus drivers should be registered earlier than typical drivers to let
> important i2c devices (like PMICs/regulators) get registered early
> enough to avoid probe defer of all devices in typical embedded system.
> 
> Signed-off-by: Marek Szyprowski 

I don't accept such patches anymore. Some more background:

http://www.spinics.net/lists/linux-i2c/msg13102.html
http://www.spinics.net/lists/linux-i2c/msg16644.html



signature.asc
Description: Digital signature


[PATCH] i2c: exynos5: register driver early in subsys initcall to avoid probe defer

2015-10-30 Thread Marek Szyprowski
i2c bus drivers should be registered earlier than typical drivers to let
important i2c devices (like PMICs/regulators) get registered early
enough to avoid probe defer of all devices in typical embedded system.

Signed-off-by: Marek Szyprowski 
---
 drivers/i2c/busses/i2c-exynos5.c | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-exynos5.c
index b29c7500461a..934a5cbcbdd3 100644
--- a/drivers/i2c/busses/i2c-exynos5.c
+++ b/drivers/i2c/busses/i2c-exynos5.c
@@ -867,7 +867,17 @@ static struct platform_driver exynos5_i2c_driver = {
},
 };
 
-module_platform_driver(exynos5_i2c_driver);
+static int __init i2c_adap_exynos5_i2c_init(void)
+{
+   return platform_driver_register(_i2c_driver);
+}
+subsys_initcall(i2c_adap_exynos5_i2c_init);
+
+static void __exit i2c_adap_exynos5_i2c_exit(void)
+{
+   platform_driver_unregister(_i2c_driver);
+}
+module_exit(i2c_adap_exynos5_i2c_exit);
 
 MODULE_DESCRIPTION("Exynos5 HS-I2C Bus driver");
 MODULE_AUTHOR("Naveen Krishna Chatradhi, ");
-- 
1.9.2

--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html