Re: [PATCH v5 01/11] firmware: raspberrypi: Keep count of all consumers

2020-12-03 Thread Bartosz Golaszewski
On Mon, Nov 23, 2020 at 7:38 PM Nicolas Saenz Julienne
 wrote:
>
> When unbinding the firmware device we need to make sure it has no
> consumers left. Otherwise we'd leave them with a firmware handle
> pointing at freed memory.
>
> Keep a reference count of all consumers and introduce rpi_firmware_put()
> which will permit automatically decrease the reference count upon
> unbinding consumer drivers.
>
> Suggested-by: Uwe Kleine-König 
> Signed-off-by: Nicolas Saenz Julienne 
> ---
>
> Changes since v3:
> - Use kref instead of waiting on refcount
>
>  drivers/firmware/raspberrypi.c | 37 +++---
>  include/soc/bcm2835/raspberrypi-firmware.h |  2 ++
>  2 files changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
> index 30259dc9b805..ed793aef7851 100644
> --- a/drivers/firmware/raspberrypi.c
> +++ b/drivers/firmware/raspberrypi.c
> @@ -7,6 +7,7 @@
>   */
>
>  #include 
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -27,6 +28,8 @@ struct rpi_firmware {
> struct mbox_chan *chan; /* The property channel. */
> struct completion c;
> u32 enabled;
> +
> +   struct kref consumers;
>  };
>
>  static DEFINE_MUTEX(transaction_lock);
> @@ -225,12 +228,27 @@ static void rpi_register_clk_driver(struct device *dev)
> -1, NULL, 0);
>  }
>
> +static void rpi_firmware_delete(struct kref *kref)
> +{
> +   struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
> +  consumers);
> +
> +   mbox_free_channel(fw->chan);
> +   kfree(fw);
> +}
> +
> +void rpi_firmware_put(struct rpi_firmware *fw)
> +{
> +   kref_put(&fw->consumers, rpi_firmware_delete);
> +}
> +EXPORT_SYMBOL_GPL(rpi_firmware_put);
> +
>  static int rpi_firmware_probe(struct platform_device *pdev)
>  {
> struct device *dev = &pdev->dev;
> struct rpi_firmware *fw;
>
> -   fw = devm_kzalloc(dev, sizeof(*fw), GFP_KERNEL);

One nit from my side: maybe add a comment here saying that you really
want to use non-managed kzalloc() because you're going to get people
blindly converting it to devm_kzalloc() very soon.

Bartosz

> +   fw = kzalloc(sizeof(*fw), GFP_KERNEL);
> if (!fw)
> return -ENOMEM;
>
> @@ -247,6 +265,7 @@ static int rpi_firmware_probe(struct platform_device 
> *pdev)
> }
>
> init_completion(&fw->c);
> +   kref_init(&fw->consumers);
>
> platform_set_drvdata(pdev, fw);
>
> @@ -275,25 +294,35 @@ static int rpi_firmware_remove(struct platform_device 
> *pdev)
> rpi_hwmon = NULL;
> platform_device_unregister(rpi_clk);
> rpi_clk = NULL;
> -   mbox_free_channel(fw->chan);
> +
> +   rpi_firmware_put(fw);
>
> return 0;
>  }
>
>  /**
> - * rpi_firmware_get - Get pointer to rpi_firmware structure.
>   * @firmware_node:Pointer to the firmware Device Tree node.
>   *
> + * The reference to rpi_firmware has to be released with rpi_firmware_put().
> + *
>   * Returns NULL is the firmware device is not ready.
>   */
>  struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
>  {
> struct platform_device *pdev = of_find_device_by_node(firmware_node);
> +   struct rpi_firmware *fw;
>
> if (!pdev)
> return NULL;
>
> -   return platform_get_drvdata(pdev);
> +   fw = platform_get_drvdata(pdev);
> +   if (!fw)
> +   return NULL;
> +
> +   if (!kref_get_unless_zero(&fw->consumers))
> +   return NULL;
> +
> +   return fw;
>  }
>  EXPORT_SYMBOL_GPL(rpi_firmware_get);
>
> diff --git a/include/soc/bcm2835/raspberrypi-firmware.h 
> b/include/soc/bcm2835/raspberrypi-firmware.h
> index cc9cdbc66403..fdfef7fe40df 100644
> --- a/include/soc/bcm2835/raspberrypi-firmware.h
> +++ b/include/soc/bcm2835/raspberrypi-firmware.h
> @@ -140,6 +140,7 @@ int rpi_firmware_property(struct rpi_firmware *fw,
>   u32 tag, void *data, size_t len);
>  int rpi_firmware_property_list(struct rpi_firmware *fw,
>void *data, size_t tag_size);
> +void rpi_firmware_put(struct rpi_firmware *fw);
>  struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node);
>  #else
>  static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag,
> @@ -154,6 +155,7 @@ static inline int rpi_firmware_property_list(struct 
> rpi_firmware *fw,
> return -ENOSYS;
>  }
>
> +static inline void rpi_firmware_put(struct rpi_firmware *fw) { }
>  static inline struct rpi_firmware *rpi_firmware_get(struct device_node 
> *firmware_node)
>  {
> return NULL;
> --
> 2.29.2
>
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v5 01/11] firmware: raspberrypi: Keep count of all consumers

2020-12-03 Thread Nicolas Saenz Julienne
On Thu, 2020-12-03 at 09:05 +0100, Bartosz Golaszewski wrote:
> On Mon, Nov 23, 2020 at 7:38 PM Nicolas Saenz Julienne
>  wrote:
> > 
> > When unbinding the firmware device we need to make sure it has no
> > consumers left. Otherwise we'd leave them with a firmware handle
> > pointing at freed memory.
> > 
> > Keep a reference count of all consumers and introduce rpi_firmware_put()
> > which will permit automatically decrease the reference count upon
> > unbinding consumer drivers.
> > 
> > Suggested-by: Uwe Kleine-König 
> > Signed-off-by: Nicolas Saenz Julienne 
> > ---
> > 
> > Changes since v3:
> > - Use kref instead of waiting on refcount
> > 
> >  drivers/firmware/raspberrypi.c | 37 +++---
> >  include/soc/bcm2835/raspberrypi-firmware.h |  2 ++
> >  2 files changed, 35 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
> > index 30259dc9b805..ed793aef7851 100644
> > --- a/drivers/firmware/raspberrypi.c
> > +++ b/drivers/firmware/raspberrypi.c
> > @@ -7,6 +7,7 @@
> >   */
> > 
> >  #include 
> > +#include 
> >  #include 
> >  #include 
> >  #include 
> > @@ -27,6 +28,8 @@ struct rpi_firmware {
> > struct mbox_chan *chan; /* The property channel. */
> > struct completion c;
> > u32 enabled;
> > +
> > +   struct kref consumers;
> >  };
> > 
> >  static DEFINE_MUTEX(transaction_lock);
> > @@ -225,12 +228,27 @@ static void rpi_register_clk_driver(struct device 
> > *dev)
> > -1, NULL, 0);
> >  }
> > 
> > +static void rpi_firmware_delete(struct kref *kref)
> > +{
> > +   struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
> > +  consumers);
> > +
> > +   mbox_free_channel(fw->chan);
> > +   kfree(fw);
> > +}
> > +
> > +void rpi_firmware_put(struct rpi_firmware *fw)
> > +{
> > +   kref_put(&fw->consumers, rpi_firmware_delete);
> > +}
> > +EXPORT_SYMBOL_GPL(rpi_firmware_put);
> > +
> >  static int rpi_firmware_probe(struct platform_device *pdev)
> >  {
> > struct device *dev = &pdev->dev;
> > struct rpi_firmware *fw;
> > 
> > -   fw = devm_kzalloc(dev, sizeof(*fw), GFP_KERNEL);
> 
> One nit from my side: maybe add a comment here saying that you really
> want to use non-managed kzalloc() because you're going to get people
> blindly converting it to devm_kzalloc() very soon.

Good point, I'll change it.

Regards,
Nicolas



signature.asc
Description: This is a digitally signed message part
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 07/11] drivers: staging: vc04_services: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to have any practical purpose.
For in-tree drivers, the kernel version really matters. OTOH, the module
version doesn't seem to be actively maintained - the code received changes
while the version remained constant.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c 
b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
index df90c1f9d148..0b20dd51c340 100644
--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
+++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
@@ -2011,5 +2011,4 @@ module_platform_driver(bcm2835_camera_driver)
 MODULE_DESCRIPTION("Broadcom 2835 MMAL video capture");
 MODULE_AUTHOR("Vincent Sanders");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(BM2835_MMAL_VERSION);
 MODULE_ALIAS("platform:bcm2835-camera");
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 11/11] drivers: staging: rtl8723bs: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
The driver received lots of changes, but module remained constant since
it landed in mainline, several years ago.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/rtl8723bs/os_dep/os_intfs.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8723bs/os_dep/os_intfs.c 
b/drivers/staging/rtl8723bs/os_dep/os_intfs.c
index 27f990a01a23..0a94bab4fdcb 100644
--- a/drivers/staging/rtl8723bs/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8723bs/os_dep/os_intfs.c
@@ -13,7 +13,6 @@
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Realtek Wireless Lan Driver");
 MODULE_AUTHOR("Realtek Semiconductor Corp.");
-MODULE_VERSION(DRIVERVERSION);
 
 /* module param defaults */
 static int rtw_chip_version;
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 05/11] drivers: staging: media: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
For in-tree drivers, the kernel version matters. The code received lots of
changes, but module version remained constant, since the driver landed in
mainline. So, this version doesn't seem have any practical meaning anymore.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/media/omap4iss/iss.c   | 1 -
 drivers/staging/media/omap4iss/iss_video.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/media/omap4iss/iss.c 
b/drivers/staging/media/omap4iss/iss.c
index e06ea7ea1e50..dae9073e7d3c 100644
--- a/drivers/staging/media/omap4iss/iss.c
+++ b/drivers/staging/media/omap4iss/iss.c
@@ -1349,4 +1349,3 @@ module_platform_driver(iss_driver);
 MODULE_DESCRIPTION("TI OMAP4 ISS driver");
 MODULE_AUTHOR("Sergio Aguirre ");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(ISS_VIDEO_DRIVER_VERSION);
diff --git a/drivers/staging/media/omap4iss/iss_video.h 
b/drivers/staging/media/omap4iss/iss_video.h
index 8b3dd92021e1..526281bf0051 100644
--- a/drivers/staging/media/omap4iss/iss_video.h
+++ b/drivers/staging/media/omap4iss/iss_video.h
@@ -18,7 +18,6 @@
 #include 
 
 #define ISS_VIDEO_DRIVER_NAME  "issvideo"
-#define ISS_VIDEO_DRIVER_VERSION   "0.0.2"
 
 struct iss_device;
 struct iss_video;
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 02/11] drivers: staging: gasket: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
For in-tree drivers, the kernel version matters. The code has received lots
of changes, w/o the versions being actively maintained, so it doesn't seem
to have much practical meaning.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/gasket/apex_driver.c | 1 -
 drivers/staging/gasket/gasket_core.c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/gasket/apex_driver.c 
b/drivers/staging/gasket/apex_driver.c
index f12f81c8dd2f..66ae99bebfd8 100644
--- a/drivers/staging/gasket/apex_driver.c
+++ b/drivers/staging/gasket/apex_driver.c
@@ -718,7 +718,6 @@ static void apex_exit(void)
gasket_unregister_device(&apex_desc);
 }
 MODULE_DESCRIPTION("Google Apex driver");
-MODULE_VERSION(APEX_DRIVER_VERSION);
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR("John Joseph ");
 MODULE_DEVICE_TABLE(pci, apex_pci_ids);
diff --git a/drivers/staging/gasket/gasket_core.c 
b/drivers/staging/gasket/gasket_core.c
index 28dab302183b..763d5ea45e68 100644
--- a/drivers/staging/gasket/gasket_core.c
+++ b/drivers/staging/gasket/gasket_core.c
@@ -1809,7 +1809,6 @@ static int __init gasket_init(void)
 }
 
 MODULE_DESCRIPTION("Google Gasket driver framework");
-MODULE_VERSION(GASKET_FRAMEWORK_VERSION);
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR("Rob Springer ");
 module_init(gasket_init);
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 01/11] drivers: staging: speakup: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical
purpose. For in-tree drivers, the kernel version matters.

The drivers have received lots of changes, without the module version
(or the underlying DRV_VERSION macro) ever changed, since the code
landed in the kernel tree. So, it doesn't seem to have any practical
meaning anymore.

Signed-off-by: Enrico Weigelt 
---
 drivers/accessibility/speakup/main.c   | 1 -
 drivers/accessibility/speakup/speakup_acntpc.c | 1 -
 drivers/accessibility/speakup/speakup_acntsa.c | 1 -
 drivers/accessibility/speakup/speakup_apollo.c | 2 --
 drivers/accessibility/speakup/speakup_audptr.c | 2 --
 drivers/accessibility/speakup/speakup_bns.c| 2 --
 drivers/accessibility/speakup/speakup_decext.c | 1 -
 drivers/accessibility/speakup/speakup_decpc.c  | 1 -
 drivers/accessibility/speakup/speakup_dectlk.c | 1 -
 drivers/accessibility/speakup/speakup_dtlk.c   | 2 --
 drivers/accessibility/speakup/speakup_dummy.c  | 2 --
 drivers/accessibility/speakup/speakup_keypc.c  | 1 -
 drivers/accessibility/speakup/speakup_ltlk.c   | 2 --
 drivers/accessibility/speakup/speakup_soft.c   | 1 -
 drivers/accessibility/speakup/speakup_spkout.c | 2 --
 drivers/accessibility/speakup/speakup_txprt.c  | 2 --
 16 files changed, 24 deletions(-)

diff --git a/drivers/accessibility/speakup/main.c 
b/drivers/accessibility/speakup/main.c
index 48019660a096..d512f4775ae1 100644
--- a/drivers/accessibility/speakup/main.c
+++ b/drivers/accessibility/speakup/main.c
@@ -46,7 +46,6 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("Daniel Drake ");
 MODULE_DESCRIPTION("Speakup console speech");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(SPEAKUP_VERSION);
 
 char *synth_name;
 module_param_named(synth, synth_name, charp, 0444);
diff --git a/drivers/accessibility/speakup/speakup_acntpc.c 
b/drivers/accessibility/speakup/speakup_acntpc.c
index c94328a5bd4a..4d9ebf8b3460 100644
--- a/drivers/accessibility/speakup/speakup_acntpc.c
+++ b/drivers/accessibility/speakup/speakup_acntpc.c
@@ -315,5 +315,4 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for Accent PC synthesizer");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
 
diff --git a/drivers/accessibility/speakup/speakup_acntsa.c 
b/drivers/accessibility/speakup/speakup_acntsa.c
index 3a863dc61286..1dc2fd99043f 100644
--- a/drivers/accessibility/speakup/speakup_acntsa.c
+++ b/drivers/accessibility/speakup/speakup_acntsa.c
@@ -140,5 +140,4 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for Accent SA synthesizer");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
 
diff --git a/drivers/accessibility/speakup/speakup_apollo.c 
b/drivers/accessibility/speakup/speakup_apollo.c
index 0877b4044c28..ce215fb3f7ff 100644
--- a/drivers/accessibility/speakup/speakup_apollo.c
+++ b/drivers/accessibility/speakup/speakup_apollo.c
@@ -204,5 +204,3 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for Apollo II synthesizer");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
-
diff --git a/drivers/accessibility/speakup/speakup_audptr.c 
b/drivers/accessibility/speakup/speakup_audptr.c
index e6a6a9665d8f..e4733215b5a9 100644
--- a/drivers/accessibility/speakup/speakup_audptr.c
+++ b/drivers/accessibility/speakup/speakup_audptr.c
@@ -167,5 +167,3 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for Audapter synthesizer");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
-
diff --git a/drivers/accessibility/speakup/speakup_bns.c 
b/drivers/accessibility/speakup/speakup_bns.c
index 76dfa3f7c058..6783b007c020 100644
--- a/drivers/accessibility/speakup/speakup_bns.c
+++ b/drivers/accessibility/speakup/speakup_bns.c
@@ -124,5 +124,3 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for Braille 'n Speak synthesizers");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
-
diff --git a/drivers/accessibility/speakup/speakup_decext.c 
b/drivers/accessibility/speakup/speakup_decext.c
index 7408eb29cf38..efe7ccbfbf05 100644
--- a/drivers/accessibility/speakup/speakup_decext.c
+++ b/drivers/accessibility/speakup/speakup_decext.c
@@ -236,5 +236,4 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for DECtalk External synthesizers");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
 
diff --git a/drivers/accessibility/speakup/speakup_decpc.c 
b/drivers/accessibility/speakup/speakup_decpc.c
index 96f24c848cc5..60da9ec9949c 100644
--- a/drivers/accessibility/speakup/speakup_decpc.c
+++ b/drivers/accessibility/speakup/speakup_decpc.c
@@ -492,4 +492,3 @@ MODULE_AUTHOR("Kirk Reiser ");
 MODULE_AUTHOR("David Borowski");
 MODULE_DESCRIPTION("Speakup support for DECtalk PC synthesizers");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV

[PATCH 08/11] drivers: staging: rtl8188eu: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
For in-kernel drivers, the kernel version matters most. The driver received
lots of changes, while module version remained constant, since it landed
in mainline, back 7 years ago.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/rtl8188eu/os_dep/os_intfs.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index e291df87f620..258d7a13467a 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -18,7 +18,6 @@
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Realtek Wireless Lan Driver");
 MODULE_AUTHOR("Realtek Semiconductor Corp.");
-MODULE_VERSION(DRIVERVERSION);
 MODULE_FIRMWARE("rtlwifi/rtl8188eufw.bin");
 
 #define RTW_NOTCH_FILTER 0 /* 0:Disable, 1:Enable, */
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 09/11] drivers: staging: rtl8192e: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to have any practical purpose:
the driver has received lots of changes, while the module version remained
constant. Unmaintained version numbers aren't actually useful.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c 
b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
index 663675efcfe4..e316f920657b 100644
--- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
+++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
@@ -2635,7 +2635,6 @@ void rtl92e_check_rfctrl_gpio_timer(struct timer_list *t)
  ***/
 MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards");
 MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
-MODULE_VERSION(DRV_VERSION);
 MODULE_LICENSE("GPL");
 MODULE_FIRMWARE(RTL8192E_BOOT_IMG_FW);
 MODULE_FIRMWARE(RTL8192E_MAIN_IMG_FW);
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 10/11] drivers: staging: rtl8723bs: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to have any pratical purpose.
The code received lots of huge changes, but module version remained constant,
since it landed in mainline tree, back 11 years go. Unmaintained version
numbers aren't actually useful. For in-tree drivers, the kernel version
really matters.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/rtl8192u/r8192U_core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8192u/r8192U_core.c 
b/drivers/staging/rtl8192u/r8192U_core.c
index 27dc181c4c9b..da871f45042a 100644
--- a/drivers/staging/rtl8192u/r8192U_core.c
+++ b/drivers/staging/rtl8192u/r8192U_core.c
@@ -90,7 +90,6 @@ static const struct usb_device_id rtl8192_usb_id_tbl[] = {
 };
 
 MODULE_LICENSE("GPL");
-MODULE_VERSION("V 1.1");
 MODULE_DEVICE_TABLE(usb, rtl8192_usb_id_tbl);
 MODULE_DESCRIPTION("Linux driver for Realtek RTL8192 USB WiFi cards");
 
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 03/11] drivers: staging: gdm724x: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
For in-kernel drivers, the kernel version matters. And the code has received
lots of changes, without the version ever been touched (remained constant
since landing in the mainline tree), so it doesn't seem to have any practical
meaning anymore.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/gdm724x/gdm_lte.h | 1 -
 drivers/staging/gdm724x/gdm_usb.c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_lte.h 
b/drivers/staging/gdm724x/gdm_lte.h
index f2143a6e0e99..bf6478ab05dd 100644
--- a/drivers/staging/gdm724x/gdm_lte.h
+++ b/drivers/staging/gdm724x/gdm_lte.h
@@ -11,7 +11,6 @@
 
 #define MAX_NIC_TYPE   4
 #define MAX_RX_SUBMIT_COUNT3
-#define DRIVER_VERSION "3.7.17.0"
 
 enum TX_ERROR_CODE {
TX_NO_ERROR = 0,
diff --git a/drivers/staging/gdm724x/gdm_usb.c 
b/drivers/staging/gdm724x/gdm_usb.c
index dc4da66c3695..aa6f08396396 100644
--- a/drivers/staging/gdm724x/gdm_usb.c
+++ b/drivers/staging/gdm724x/gdm_usb.c
@@ -1003,6 +1003,5 @@ static void __exit gdm_usb_lte_exit(void)
 module_init(gdm_usb_lte_init);
 module_exit(gdm_usb_lte_exit);
 
-MODULE_VERSION(DRIVER_VERSION);
 MODULE_DESCRIPTION("GCT LTE USB Device Driver");
 MODULE_LICENSE("GPL");
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 04/11] drivers: staging: goldfish: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to have much practical purpose.
For in-kernel drivers, the kernel version matters. The driver received lots
of changes, but version number has remained the same since it's introducing
into mainline, seven years ago. So, it doesn't seem to have much practical
meaning anymore.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/goldfish/goldfish_audio.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/goldfish/goldfish_audio.c 
b/drivers/staging/goldfish/goldfish_audio.c
index 0c65a0121dde..4a23f40e549a 100644
--- a/drivers/staging/goldfish/goldfish_audio.c
+++ b/drivers/staging/goldfish/goldfish_audio.c
@@ -24,7 +24,6 @@
 MODULE_AUTHOR("Google, Inc.");
 MODULE_DESCRIPTION("Android QEMU Audio Driver");
 MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
 
 struct goldfish_audio {
char __iomem *reg_base;
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 06/11] drivers: staging: qlge: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Enrico Weigelt, metux IT consult
Remove MODULE_VERSION(), as it doesn't seem to serve any practical purpose.
For in-tree drivers, the kernel version really matters. The module version
doesn't seem to be maintained and having much practical meaning anymore.

Signed-off-by: Enrico Weigelt 
---
 drivers/staging/qlge/qlge_main.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 27da386f9d87..a98ee325ff32 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -49,7 +49,6 @@ const char qlge_driver_version[] = DRV_VERSION;
 MODULE_AUTHOR("Ron Mercer ");
 MODULE_DESCRIPTION(DRV_STRING " ");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_VERSION);
 
 static const u32 default_msg =
NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK |
-- 
2.11.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 01/11] drivers: staging: speakup: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Greg KH
On Thu, Dec 03, 2020 at 01:47:53PM +0100, Enrico Weigelt, metux IT consult 
wrote:
> Remove MODULE_VERSION(), as it doesn't seem to serve any practical
> purpose. For in-tree drivers, the kernel version matters.
> 
> The drivers have received lots of changes, without the module version
> (or the underlying DRV_VERSION macro) ever changed, since the code
> landed in the kernel tree. So, it doesn't seem to have any practical
> meaning anymore.
> 
> Signed-off-by: Enrico Weigelt 
> ---
>  drivers/accessibility/speakup/main.c   | 1 -



Yous subject line is odd, these are not "staging" drivers anymore, so
why do you say they are there?

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH AUTOSEL 4.14 8/9] soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)

2020-12-03 Thread Sasha Levin
From: Hao Si 

[ Upstream commit 2663b3388551230cbc4606a40fabf3331ceb59e4 ]

The local variable 'cpumask_t mask' is in the stack memory, and its address
is assigned to 'desc->affinity' in 'irq_set_affinity_hint()'.
But the memory area where this variable is located is at risk of being
modified.

During LTP testing, the following error was generated:

Unable to handle kernel paging request at virtual address 12e9b790
Mem abort info:
  ESR = 0x9607
  Exception class = DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
Data abort info:
  ISV = 0, ISS = 0x0007
  CM = 0, WnR = 0
swapper pgtable: 4k pages, 48-bit VAs, pgdp = 75ac5e07
[12e9b790] pgd=0027dbffe003, pud=0027dbffd003,
pmd=0027b6d61003, pte=
Internal error: Oops: 9607 [#1] PREEMPT SMP
Modules linked in: xt_conntrack
Process read_all (pid: 20171, stack limit = 0x44ea4095)
CPU: 14 PID: 20171 Comm: read_all Tainted: GB   W
Hardware name: NXP Layerscape LX2160ARDB (DT)
pstate: 8085 (Nzcv daIf -PAN -UAO)
pc : irq_affinity_hint_proc_show+0x54/0xb0
lr : irq_affinity_hint_proc_show+0x4c/0xb0
sp : 1138bc10
x29: 1138bc10 x28: d131d1e0
x27: 007000c0 x26: 8025b9480dc0
x25: 8025b9480da8 x24: 03ff
x23: 8027334f8300 x22: 80272e97d000
x21: 80272e97d0b0 x20: 8025b9480d80
x19: 09a49000 x18: 
x17:  x16: 
x15:  x14: 
x13:  x12: 0040
x11:  x10: 802735b79b88
x9 :  x8 : 
x7 : 09a49848 x6 : 0003
x5 :  x4 : 08157d6c
x3 : 1138bc10 x2 : 12e9b790
x1 :  x0 : 
Call trace:
 irq_affinity_hint_proc_show+0x54/0xb0
 seq_read+0x1b0/0x440
 proc_reg_read+0x80/0xd8
 __vfs_read+0x60/0x178
 vfs_read+0x94/0x150
 ksys_read+0x74/0xf0
 __arm64_sys_read+0x24/0x30
 el0_svc_common.constprop.0+0xd8/0x1a0
 el0_svc_handler+0x34/0x88
 el0_svc+0x10/0x14
Code: f9001bbf 943e0732 f94066c2 b462 (f9400041)
---[ end trace b495bdcb0b3b732b ]---
Kernel panic - not syncing: Fatal exception
SMP: stopping secondary CPUs
SMP: failed to stop secondary CPUs 0,2-4,6,8,11,13-15
Kernel Offset: disabled
CPU features: 0x0,21006008
Memory Limit: none
---[ end Kernel panic - not syncing: Fatal exception ]---

Fix it by using 'cpumask_of(cpu)' to get the cpumask.

Signed-off-by: Hao Si 
Signed-off-by: Lin Chen 
Signed-off-by: Yi Wang 
Signed-off-by: Li Yang 
Signed-off-by: Sasha Levin 
---
 drivers/staging/fsl-mc/bus/dpio/dpio-driver.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c 
b/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c
index e36da20a2796b..e7856a9e685f4 100644
--- a/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c
+++ b/drivers/staging/fsl-mc/bus/dpio/dpio-driver.c
@@ -77,7 +77,6 @@ static int register_dpio_irq_handlers(struct fsl_mc_device 
*dpio_dev, int cpu)
struct dpio_priv *priv;
int error;
struct fsl_mc_device_irq *irq;
-   cpumask_t mask;
 
priv = dev_get_drvdata(&dpio_dev->dev);
 
@@ -96,9 +95,7 @@ static int register_dpio_irq_handlers(struct fsl_mc_device 
*dpio_dev, int cpu)
}
 
/* set the affinity hint */
-   cpumask_clear(&mask);
-   cpumask_set_cpu(cpu, &mask);
-   if (irq_set_affinity_hint(irq->msi_desc->irq, &mask))
+   if (irq_set_affinity_hint(irq->msi_desc->irq, cpumask_of(cpu)))
dev_err(&dpio_dev->dev,
"irq_set_affinity failed irq %d cpu %d\n",
irq->msi_desc->irq, cpu);
-- 
2.27.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 01/11] drivers: staging: speakup: remove unneeded MODULE_VERSION() call

2020-12-03 Thread Dan Carpenter
On Thu, Dec 03, 2020 at 02:25:15PM +0100, Greg KH wrote:
> On Thu, Dec 03, 2020 at 01:47:53PM +0100, Enrico Weigelt, metux IT consult 
> wrote:
> > Remove MODULE_VERSION(), as it doesn't seem to serve any practical
> > purpose. For in-tree drivers, the kernel version matters.
> > 
> > The drivers have received lots of changes, without the module version
> > (or the underlying DRV_VERSION macro) ever changed, since the code
> > landed in the kernel tree. So, it doesn't seem to have any practical
> > meaning anymore.
> > 
> > Signed-off-by: Enrico Weigelt 
> > ---
> >  drivers/accessibility/speakup/main.c   | 1 -
> 
> 
> 
> Yous subject line is odd, these are not "staging" drivers anymore, so
> why do you say they are there?

Also putting "drivers:" in the subject always seems superfluous.

regards,
dan carpenter

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v5 08/11] input: raspberrypi-ts: Release firmware handle when not needed

2020-12-03 Thread Nicolas Saenz Julienne
On Tue, 2020-12-01 at 22:03 -0800, Dmitry Torokhov wrote:
> Hi Nicolas,
> 
> On Mon, Nov 23, 2020 at 07:38:29PM +0100, Nicolas Saenz Julienne wrote:
> > Use devm_rpi_firmware_get() so as to make sure we release RPi's firmware
> > interface when unbinding the device.
> 
> I do not believe this comment is correct any longer. Otherwise:
> 
> Acked-by: Dmitry Torokhov 

Yes, sorry for that. I'll update it.

Regards,
Nicolas



signature.asc
Description: This is a digitally signed message part
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3 3/6] ARM: dts: sun8i: v3s: Add node for system control

2020-12-03 Thread Martin Cerveny

Hello.

On Thu, 3 Dec 2020, Chen-Yu Tsai wrote:


Hi,

On Mon, Nov 16, 2020 at 8:57 PM Martin Cerveny  wrote:


Allwinner V3s has system control and SRAM C1 region similar to H3.

Signed-off-by: Martin Cerveny 
---
 arch/arm/boot/dts/sun8i-v3s.dtsi | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 0c7341676921..70193512c222 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -161,6 +161,20 @@ syscon: system-control@1c0 {
#address-cells = <1>;
#size-cells = <1>;
ranges;
+
+   sram_c: sram@1d0 {
+   compatible = "mmio-sram";
+   reg = <0x01d0 0x8>;


How was this address derived? Did you check that there is actually SRAM here?


Yes, I did some checking (mmap). But I repeated measurement and found 
mirrored regions:


- SRAM_C is mirrored from 0x_4000 (primary location) to 0x01d0_4000 (size 
0xb000)
  (probably exact size is 0xb0c0)
- rest of 0x01d0_ are discontinuously filled with R/W register sets
  (probably some internals registers from VE) that I thought to be SRAM too
- register SRAM_CTRL_REG0==0x01c00_ (value 0x7fff_) switch whole
  region 0x01d0_-0x01df_ __AND__ 0x_4000-0x_
- VE/cedrus code use this regions indirectly
  (VE_AVC_SRAM_PORT_OFFSET/VE_AVC_SRAM_PORT_DATA...)
  and it is not influenced by "true" SRAM mapping or size

-> so I suppose to better use only SRAM_C lower definition:

---
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index e8f304125e2d..90d703e5b73b 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -162,17 +162,17 @@ syscon: system-control@1c0 {
#size-cells = <1>;
ranges;

-   sram_c: sram@1d0 {
+   sram_c: sram@4000 {
compatible = "mmio-sram";
-   reg = <0x01d0 0x8>;
+   reg = <0x4000 0xb000>;
#address-cells = <1>;
#size-cells = <1>;
-   ranges = <0 0x01d0 0x8>;
+   ranges = <0 0 0x4000 0xb000>;

ve_sram: sram-section@0 {
compatible = 
"allwinner,sun8i-v3s-sram-c1",
 
"allwinner,sun4i-a10-sram-c1";
-   reg = <0x00 0x8>;
+   reg = <0x0 0xb000>;
};
};
};
---

Does someone have accessible specific documentation of VE/cedrus for V3s ?

Regards, Martin


ChenYu


+   #address-cells = <1>;
+   #size-cells = <1>;
+   ranges = <0 0x01d0 0x8>;
+
+   ve_sram: sram-section@0 {
+   compatible = 
"allwinner,sun8i-v3s-sram-c1",
+
"allwinner,sun4i-a10-sram-c1";
+   reg = <0x00 0x8>;
+   };
+   };
};

tcon0: lcd-controller@1c0c000 {
--
2.25.1


___
linux-arm-kernel mailing list
linux-arm-ker...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3 3/6] ARM: dts: sun8i: v3s: Add node for system control

2020-12-03 Thread Chen-Yu Tsai
On Fri, Dec 4, 2020 at 12:25 AM Martin Cerveny  wrote:
>
> Hello.
>
> On Thu, 3 Dec 2020, Chen-Yu Tsai wrote:
>
> > Hi,
> >
> > On Mon, Nov 16, 2020 at 8:57 PM Martin Cerveny  
> > wrote:
> >>
> >> Allwinner V3s has system control and SRAM C1 region similar to H3.
> >>
> >> Signed-off-by: Martin Cerveny 
> >> ---
> >>  arch/arm/boot/dts/sun8i-v3s.dtsi | 14 ++
> >>  1 file changed, 14 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi 
> >> b/arch/arm/boot/dts/sun8i-v3s.dtsi
> >> index 0c7341676921..70193512c222 100644
> >> --- a/arch/arm/boot/dts/sun8i-v3s.dtsi
> >> +++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
> >> @@ -161,6 +161,20 @@ syscon: system-control@1c0 {
> >> #address-cells = <1>;
> >> #size-cells = <1>;
> >> ranges;
> >> +
> >> +   sram_c: sram@1d0 {
> >> +   compatible = "mmio-sram";
> >> +   reg = <0x01d0 0x8>;
> >
> > How was this address derived? Did you check that there is actually SRAM 
> > here?
>
> Yes, I did some checking (mmap). But I repeated measurement and found
> mirrored regions:
>
> - SRAM_C is mirrored from 0x_4000 (primary location) to 0x01d0_4000 (size 
> 0xb000)
>(probably exact size is 0xb0c0)
> - rest of 0x01d0_ are discontinuously filled with R/W register sets
>(probably some internals registers from VE) that I thought to be SRAM too
> - register SRAM_CTRL_REG0==0x01c00_ (value 0x7fff_) switch whole
>region 0x01d0_-0x01df_ __AND__ 0x_4000-0x_
> - VE/cedrus code use this regions indirectly
>(VE_AVC_SRAM_PORT_OFFSET/VE_AVC_SRAM_PORT_DATA...)
>and it is not influenced by "true" SRAM mapping or size

Could you add this to your commit log? That would make the information
available to others, and you could mention that you only added the
location that is contiguous SRAM without the interspersed registers.

So based on this, and what we've seen with the H616, I'm guessing
0x01d0_ - 0x01df_ exposes all the internal guts of the VE,
while SRAM C @ 0x4000 just maps a small portion out.

> -> so I suppose to better use only SRAM_C lower definition:

Yes that would be more appropriate, as it matches the manual, and as you
mentioned, is *real* SRAM.

> ---
> diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi 
> b/arch/arm/boot/dts/sun8i-v3s.dtsi
> index e8f304125e2d..90d703e5b73b 100644
> --- a/arch/arm/boot/dts/sun8i-v3s.dtsi
> +++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
> @@ -162,17 +162,17 @@ syscon: system-control@1c0 {
> #size-cells = <1>;
> ranges;
>
> -   sram_c: sram@1d0 {
> +   sram_c: sram@4000 {
> compatible = "mmio-sram";
> -   reg = <0x01d0 0x8>;
> +   reg = <0x4000 0xb000>;
> #address-cells = <1>;
> #size-cells = <1>;
> -   ranges = <0 0x01d0 0x8>;
> +   ranges = <0 0 0x4000 0xb000>;
>
> ve_sram: sram-section@0 {
> compatible = 
> "allwinner,sun8i-v3s-sram-c1",
>  
> "allwinner,sun4i-a10-sram-c1";
> -   reg = <0x00 0x8>;
> +   reg = <0x0 0xb000>;
> };
> };
> };
> ---
>
> Does someone have accessible specific documentation of VE/cedrus for V3s ?

I doubt such information exists.


Regards
ChenYu

> Regards, Martin
>
> > ChenYu
> >
> >> +   #address-cells = <1>;
> >> +   #size-cells = <1>;
> >> +   ranges = <0 0x01d0 0x8>;
> >> +
> >> +   ve_sram: sram-section@0 {
> >> +   compatible = 
> >> "allwinner,sun8i-v3s-sram-c1",
> >> +
> >> "allwinner,sun4i-a10-sram-c1";
> >> +   reg = <0x00 0x8>;
> >> +   };
> >> +   };
> >> };
> >>
> >> tcon0: lcd-controller@1c0c000 {
> >> --
> >> 2.25.1
> >>
> >>
> >> ___
> >> linux-arm-kernel mailing list
> >> linux-arm-ker...@lists.infradead.org
> >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re.Investment

2020-12-03 Thread MR JABER AL-GHAFR
Good Day
I am JABER AL-GHAFRI, Pleasant greetings to you as i seek your indulgence to 
introduce to you the desire of my principal’s wish, to make huge financial 
investment in your home country on areas of oil and gas, real estate, tourism 
and hotel, manufacturing and production company, agriculture, fishing, Mining & 
Trading of natural resources such as crude oil, coal, graphite, coke, refinery, 
energy, hospital etc.

He needs a capable, trustworthy and understanding business partner, who can 
confidently handle and manage his investment funds with utmost care of secrecy 
without traces or link to him as he is politically exposed at the moment in his 
country. He has a huge available financial portfolio.

Please, I will provide more details about the transaction if you are sure you 
can handle classified information and also let me know your entitlement for the 
solicited role
I shall be expecting your quick reply. E-mail alghafri...@gmail.com
Best Regards,
JABER AL-GHAFRI

-- 
This email has been checked for viruses by AVG.
https://www.avg.com

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: bcm2835: fix vchiq_mmal dependencies

2020-12-03 Thread Arnd Bergmann
From: Arnd Bergmann 

When the MMAL code is built-in but the vchiq core config is
set to =m, the mmal code never gets built, which in turn can
lead to link errors:

ERROR: modpost: "vchiq_mmal_port_set_format" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_port_disable" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_port_parameter_set" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_component_finalise" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_port_connect_tunnel" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_component_enable" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_finalise" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_component_init" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_component_disable" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "mmal_vchi_buffer_init" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_port_enable" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_version" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_submit_buffer" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_init" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "mmal_vchi_buffer_cleanup" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!
ERROR: modpost: "vchiq_mmal_port_parameter_get" 
[drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko] undefined!

Change the Kconfig to depend on BCM2835_VCHIQ like the other drivers,
and remove the now redundant dependencies.

Fixes: b18ee53ad297 ("staging: bcm2835: Break MMAL support out from camera")
Signed-off-by: Arnd Bergmann 
---
 drivers/staging/vc04_services/vchiq-mmal/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/vchiq-mmal/Kconfig 
b/drivers/staging/vc04_services/vchiq-mmal/Kconfig
index 500c0d12e4ff..c99525a0bb45 100644
--- a/drivers/staging/vc04_services/vchiq-mmal/Kconfig
+++ b/drivers/staging/vc04_services/vchiq-mmal/Kconfig
@@ -1,6 +1,6 @@
 config BCM2835_VCHIQ_MMAL
tristate "BCM2835 MMAL VCHIQ service"
-   depends on (ARCH_BCM2835 || COMPILE_TEST)
+   depends on BCM2835_VCHIQ
help
  Enables the MMAL API over VCHIQ interface as used for the
  majority of the multimedia services on VideoCore.
-- 
2.27.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: greybus: audio: Add missing unlock in gbaudio_dapm_free_controls()

2020-12-03 Thread Wang Hai
Add the missing unlock before return from function
gbaudio_dapm_free_controls() in the error handling case.

Fixes: 510e340efe0c ("staging: greybus: audio: Add helper APIs for dynamic 
audio module")
Reported-by: Hulk Robot 
Signed-off-by: Wang Hai 
---
 drivers/staging/greybus/audio_helper.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/greybus/audio_helper.c 
b/drivers/staging/greybus/audio_helper.c
index 237531ba60f3..293675dbea10 100644
--- a/drivers/staging/greybus/audio_helper.c
+++ b/drivers/staging/greybus/audio_helper.c
@@ -135,6 +135,7 @@ int gbaudio_dapm_free_controls(struct snd_soc_dapm_context 
*dapm,
if (!w) {
dev_err(dapm->dev, "%s: widget not found\n",
widget->name);
+   mutex_unlock(&dapm->card->dapm_mutex);
return -EINVAL;
}
widget++;
-- 
2.17.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel