Re: [Intel-gfx] [PATCH v2 2/3] pwm/core: Try to get the module from pwm_get

2017-01-30 Thread Hans de Goede

Hi,

On 30-01-17 09:17, Thierry Reding wrote:

On Sun, Jan 22, 2017 at 05:14:08PM +0100, Hans de Goede wrote:

Add a module_name string to the pwm_lookup struct and if specified
and pwmchip_find_by_name() does not find the pwmchip try calling
request_module with the specified name.

Signed-off-by: Hans de Goede 
---
 drivers/pwm/core.c  |  4 
 include/linux/pwm.h | 11 +--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index 0d3ef29..c418a7a 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -823,6 +823,10 @@ struct pwm_device *pwm_get(struct device *dev, const char 
*con_id)
return ERR_PTR(-ENODEV);

chip = pwmchip_find_by_name(chosen->provider);
+   if (!chip && chosen->module_name) {
+   request_module(chosen->module_name);


How about checking for an error code here? It's kind of pointless to try
again if the module didn't load in the first place. No need to respin, I
can make that change as I apply.


Sure, that is fine.

Regards,

Hans
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2 2/3] pwm/core: Try to get the module from pwm_get

2017-01-30 Thread Thierry Reding
On Sun, Jan 22, 2017 at 05:14:08PM +0100, Hans de Goede wrote:
> Add a module_name string to the pwm_lookup struct and if specified
> and pwmchip_find_by_name() does not find the pwmchip try calling
> request_module with the specified name.
> 
> Signed-off-by: Hans de Goede 
> ---
>  drivers/pwm/core.c  |  4 
>  include/linux/pwm.h | 11 +--
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
> index 0d3ef29..c418a7a 100644
> --- a/drivers/pwm/core.c
> +++ b/drivers/pwm/core.c
> @@ -823,6 +823,10 @@ struct pwm_device *pwm_get(struct device *dev, const 
> char *con_id)
>   return ERR_PTR(-ENODEV);
>  
>   chip = pwmchip_find_by_name(chosen->provider);
> + if (!chip && chosen->module_name) {
> + request_module(chosen->module_name);

How about checking for an error code here? It's kind of pointless to try
again if the module didn't load in the first place. No need to respin, I
can make that change as I apply.

Thierry


signature.asc
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 2/3] pwm/core: Try to get the module from pwm_get

2017-01-22 Thread Hans de Goede
Add a module_name string to the pwm_lookup struct and if specified
and pwmchip_find_by_name() does not find the pwmchip try calling
request_module with the specified name.

Signed-off-by: Hans de Goede 
---
 drivers/pwm/core.c  |  4 
 include/linux/pwm.h | 11 +--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index 0d3ef29..c418a7a 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -823,6 +823,10 @@ struct pwm_device *pwm_get(struct device *dev, const char 
*con_id)
return ERR_PTR(-ENODEV);
 
chip = pwmchip_find_by_name(chosen->provider);
+   if (!chip && chosen->module_name) {
+   request_module(chosen->module_name);
+   chip = pwmchip_find_by_name(chosen->provider);
+   }
if (!chip)
return ERR_PTR(-EPROBE_DEFER);
 
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 2c6c511..40ab8b6 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -613,18 +613,25 @@ struct pwm_lookup {
const char *con_id;
unsigned int period;
enum pwm_polarity polarity;
+   const char *module_name; /* Optional may be NULL */
 };
 
-#define PWM_LOOKUP(_provider, _index, _dev_id, _con_id, _period, _polarity) \
+#define PWM_LOOKUP_MODNAME(_provider, _index, _dev_id, _con_id, _period, \
+  _polarity, _module_name) \
{   \
.provider = _provider,  \
.index = _index,\
.dev_id = _dev_id,  \
.con_id = _con_id,  \
.period = _period,  \
-   .polarity = _polarity   \
+   .polarity = _polarity,  \
+   .module_name = _module_name \
}
 
+#define PWM_LOOKUP(_provider, _index, _dev_id, _con_id, _period, _polarity) \
+   PWM_LOOKUP_MODNAME(_provider, _index, _dev_id, _con_id, _period, \
+  _polarity, NULL)
+
 #if IS_ENABLED(CONFIG_PWM)
 void pwm_add_table(struct pwm_lookup *table, size_t num);
 void pwm_remove_table(struct pwm_lookup *table, size_t num);
-- 
2.9.3

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx