Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1473999

[PATCH v3 01/22] of: device: Support loading a module with OF based modalias

From Stephen Boyd <stephen.boyd@linaro.org>
Newsgroups linux.kernel
Subject [PATCH v3 01/22] of: device: Support loading a module with OF based modalias
Date 2016-09-01 02:50 +0200
Message-ID <scomC-15L-37@gated-at.bofh.it> (permalink)
References <scomB-15L-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


In the case of ULPI devices, we want to be able to load the
driver before registering the device so that we don't get stuck
in a loop waiting for the phy module to appear and failing usb
controller probe. Currently we request the ulpi module via the
ulpi ids, but in the DT case we might need to request it with the
OF based modalias instead. Add a common function that allows
anyone to request a module with the OF based modalias.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: <devicetree@vger.kernel.org>
Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
---
 drivers/of/device.c       | 23 +++++++++++++++++++++++
 include/linux/of_device.h |  6 ++++++
 2 files changed, 29 insertions(+)

diff --git a/drivers/of/device.c b/drivers/of/device.c
index fd5cfad7c403..8a22a253a830 100644
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -226,6 +226,29 @@ ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len)
 	return tsize;
 }
 
+int of_device_request_module(struct device *dev)
+{
+	char *str;
+	ssize_t size;
+	int ret;
+
+	size = of_device_get_modalias(dev, NULL, 0);
+	if (size < 0)
+		return size;
+
+	str = kmalloc(size + 1, GFP_KERNEL);
+	if (!str)
+		return -ENOMEM;
+
+	of_device_get_modalias(dev, str, size);
+	str[size] = '\0';
+	ret = request_module(str);
+	kfree(str);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(of_device_request_module);
+
 /**
  * of_device_uevent - Display OF related uevent information
  */
diff --git a/include/linux/of_device.h b/include/linux/of_device.h
index cc7dd687a89d..e9afbcc8de12 100644
--- a/include/linux/of_device.h
+++ b/include/linux/of_device.h
@@ -37,6 +37,7 @@ extern const void *of_device_get_match_data(const struct device *dev);
 
 extern ssize_t of_device_get_modalias(struct device *dev,
 					char *str, ssize_t len);
+extern int of_device_request_module(struct device *dev);
 
 extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
 extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
@@ -78,6 +79,11 @@ static inline int of_device_get_modalias(struct device *dev,
 	return -ENODEV;
 }
 
+static inline int of_device_request_module(struct device *dev)
+{
+	return -ENODEV;
+}
+
 static inline int of_device_uevent_modalias(struct device *dev,
 				   struct kobj_uevent_env *env)
 {
-- 
2.9.0.rc2.8.ga28705d

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 00/22] Support qcom's HSIC USB and rewrite USB2 HS phy support Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 06/22] usb: chipidea: Add platform flag for wrapper phy management Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 12/22] usb: chipidea: msm: Rely on core to override AHBBURST Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 16/22] usb: chipidea: msm: Restore wrapper settings after reset Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 11/22] usb: chipidea: msm: Mark device as runtime pm active Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 04/22] usb: chipidea: Only read/write OTGSC from one place Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 04/22] usb: chipidea: Only read/write OTGSC from one  place Peter Chen <hzpeterchen@gmail.com> - 2016-09-02 05:00 +0200
  [PATCH v3 17/22] usb: chipidea: msm: Make platform data driver local instead of global Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 03/22] usb: ulpi: Support device discovery via device properties Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 03/22] usb: ulpi: Support device discovery via device  properties Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-09-02 16:20 +0200
      Re: [PATCH v3 03/22] usb: ulpi: Support device discovery via device properties Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-03 03:20 +0200
  [PATCH v3 20/22] usb: chipidea: msm: Be silent on probe defer errors Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 15/22] usb: chipidea: msm: Mux over secondary phy at the right time Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 13/22] usb: chipidea: msm: Use hw_write_id_reg() instead of writel Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 19/22] usb: chipidea: msm: Handle phy power states Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 22/22] phy: Add support for Qualcomm's USB HS phy Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 05/22] usb: chipidea: Handle extcon events properly Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 01/22] of: device: Support loading a module with OF based modalias Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 02/22] of: device: Export of_device_{get_modalias,uvent_modalias} to modules Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 14/22] usb: chipidea: msm: Add proper clk and reset support Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
  [PATCH v3 09/22] usb: chipidea: Add support for ULPI PHY bus Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 09/22] usb: chipidea: Add support for ULPI PHY bus Peter Chen <hzpeterchen@gmail.com> - 2016-09-02 05:00 +0200
  [PATCH v3 18/22] usb: chipidea: msm: Add reset controller for PHY POR bit Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 18/22] usb: chipidea: msm: Add reset controller for  PHY POR bit Peter Chen <hzpeterchen@gmail.com> - 2016-09-02 05:50 +0200
  [PATCH v3 10/22] usb: chipidea: Consolidate extcon notifiers Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 10/22] usb: chipidea: Consolidate extcon notifiers Peter Chen <hzpeterchen@gmail.com> - 2016-09-02 05:30 +0200
      Re: [PATCH v3 10/22] usb: chipidea: Consolidate extcon notifiers Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-03 03:10 +0200
        Re: [PATCH v3 10/22] usb: chipidea: Consolidate extcon notifiers Peter Chen <hzpeterchen@gmail.com> - 2016-09-05 04:40 +0200
          Re: [PATCH v3 10/22] usb: chipidea: Consolidate extcon notifiers Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-06 19:50 +0200
  [PATCH v3 21/22] phy: Add support for Qualcomm's USB HSIC phy Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200
    Re: [PATCH v3 21/22] phy: Add support for Qualcomm's USB HSIC phy Vivek Gautam <vivek.gautam@codeaurora.org> - 2016-09-01 08:20 +0200
      Re: [PATCH v3 21/22] phy: Add support for Qualcomm's USB HSIC phy vivek.gautam@codeaurora.org - 2016-09-02 13:30 +0200
  [PATCH v3 07/22] usb: chipidea: Notify events when switching host mode Stephen Boyd <stephen.boyd@linaro.org> - 2016-09-01 02:50 +0200

csiph-web