[PATCH 21/33] fbdev: directly call fbcon_suspended/resumed

2019-05-28 Thread Daniel Vetter
With the sh_mobile notifier removed we can just directly call the
fbcon code here.

v2: Remove now unused local variable.

v3: fixup !CONFIG_FRAMEBUFFER_CONSOLE, noticed by kbuild

Signed-off-by: Daniel Vetter 
Reviewed-by: Sam Ravnborg 
Reviewed-by: Maarten Lankhorst 
Cc: Bartlomiej Zolnierkiewicz 
Cc: Daniel Vetter 
Cc: Hans de Goede 
Cc: Greg Kroah-Hartman 
Cc: Prarit Bhargava 
Cc: Kees Cook 
Cc: Konstantin Khorenko 
Cc: Yisheng Xie 
Cc: "Michał Mirosław" 
Cc: Peter Rosin 
Cc: Mikulas Patocka 
Cc: linux-fb...@vger.kernel.org
---
 drivers/video/fbdev/core/fbcon.c | 10 ++
 drivers/video/fbdev/core/fbmem.c |  7 ++-
 include/linux/fb.h   |  8 
 include/linux/fbcon.h|  4 
 4 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 142686953b71..e3267d71395c 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -2919,7 +2919,7 @@ static int fbcon_set_origin(struct vc_data *vc)
return 0;
 }
 
-static void fbcon_suspended(struct fb_info *info)
+void fbcon_suspended(struct fb_info *info)
 {
struct vc_data *vc = NULL;
struct fbcon_ops *ops = info->fbcon_par;
@@ -2932,7 +2932,7 @@ static void fbcon_suspended(struct fb_info *info)
fbcon_cursor(vc, CM_ERASE);
 }
 
-static void fbcon_resumed(struct fb_info *info)
+void fbcon_resumed(struct fb_info *info)
 {
struct vc_data *vc;
struct fbcon_ops *ops = info->fbcon_par;
@@ -3330,12 +3330,6 @@ static int fbcon_event_notify(struct notifier_block 
*self,
int idx, ret = 0;
 
switch(action) {
-   case FB_EVENT_SUSPEND:
-   fbcon_suspended(info);
-   break;
-   case FB_EVENT_RESUME:
-   fbcon_resumed(info);
-   break;
case FB_EVENT_MODE_CHANGE:
fbcon_modechanged(info);
break;
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index bee45e9405b8..73269dedcd45 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1917,17 +1917,14 @@ EXPORT_SYMBOL(unregister_framebuffer);
  */
 void fb_set_suspend(struct fb_info *info, int state)
 {
-   struct fb_event event;
-
WARN_CONSOLE_UNLOCKED();
 
-   event.info = info;
if (state) {
-   fb_notifier_call_chain(FB_EVENT_SUSPEND, );
+   fbcon_suspended(info);
info->state = FBINFO_STATE_SUSPENDED;
} else {
info->state = FBINFO_STATE_RUNNING;
-   fb_notifier_call_chain(FB_EVENT_RESUME, );
+   fbcon_resumed(info);
}
 }
 EXPORT_SYMBOL(fb_set_suspend);
diff --git a/include/linux/fb.h b/include/linux/fb.h
index b90cf7d56bd8..794b386415b7 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -126,14 +126,6 @@ struct fb_cursor_user {
 
 /* The resolution of the passed in fb_info about to change */ 
 #define FB_EVENT_MODE_CHANGE   0x01
-/* The display on this fb_info is being suspended, no access to the
- * framebuffer is allowed any more after that call returns
- */
-#define FB_EVENT_SUSPEND   0x02
-/* The display on this fb_info was resumed, you can restore the display
- * if you own it
- */
-#define FB_EVENT_RESUME0x03
 /*  An entry from the modelist was removed */
 #define FB_EVENT_MODE_DELETE0x04
 
diff --git a/include/linux/fbcon.h b/include/linux/fbcon.h
index 38d44fdb6d14..790c42ec7b5d 100644
--- a/include/linux/fbcon.h
+++ b/include/linux/fbcon.h
@@ -7,12 +7,16 @@ void __exit fb_console_exit(void);
 int fbcon_fb_registered(struct fb_info *info);
 void fbcon_fb_unregistered(struct fb_info *info);
 void fbcon_fb_unbind(struct fb_info *info);
+void fbcon_suspended(struct fb_info *info);
+void fbcon_resumed(struct fb_info *info);
 #else
 static inline void fb_console_init(void) {}
 static inline void fb_console_exit(void) {}
 static inline int fbcon_fb_registered(struct fb_info *info) { return 0; }
 static inline void fbcon_fb_unregistered(struct fb_info *info) {}
 static inline void fbcon_fb_unbind(struct fb_info *info) {}
+static inline void fbcon_suspended(struct fb_info *info) {}
+static inline void fbcon_resumed(struct fb_info *info) {}
 #endif
 
 #endif /* _LINUX_FBCON_H */
-- 
2.20.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH 21/33] fbdev: directly call fbcon_suspended/resumed

2019-05-24 Thread Daniel Vetter
With the sh_mobile notifier removed we can just directly call the
fbcon code here.

v2: Remove now unused local variable.

v3: fixup !CONFIG_FRAMEBUFFER_CONSOLE, noticed by kbuild

Signed-off-by: Daniel Vetter 
Cc: Bartlomiej Zolnierkiewicz 
Cc: Daniel Vetter 
Cc: Hans de Goede 
Cc: Greg Kroah-Hartman 
Cc: Prarit Bhargava 
Cc: Kees Cook 
Cc: Konstantin Khorenko 
Cc: Yisheng Xie 
Cc: "Michał Mirosław" 
Cc: Peter Rosin 
Cc: Mikulas Patocka 
Cc: linux-fb...@vger.kernel.org
---
 drivers/video/fbdev/core/fbcon.c | 10 ++
 drivers/video/fbdev/core/fbmem.c |  7 ++-
 include/linux/fb.h   |  8 
 include/linux/fbcon.h|  4 
 4 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index f114b4c88796..24ea6e4fbee0 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -2919,7 +2919,7 @@ static int fbcon_set_origin(struct vc_data *vc)
return 0;
 }
 
-static void fbcon_suspended(struct fb_info *info)
+void fbcon_suspended(struct fb_info *info)
 {
struct vc_data *vc = NULL;
struct fbcon_ops *ops = info->fbcon_par;
@@ -2932,7 +2932,7 @@ static void fbcon_suspended(struct fb_info *info)
fbcon_cursor(vc, CM_ERASE);
 }
 
-static void fbcon_resumed(struct fb_info *info)
+void fbcon_resumed(struct fb_info *info)
 {
struct vc_data *vc;
struct fbcon_ops *ops = info->fbcon_par;
@@ -3330,12 +3330,6 @@ static int fbcon_event_notify(struct notifier_block 
*self,
int idx, ret = 0;
 
switch(action) {
-   case FB_EVENT_SUSPEND:
-   fbcon_suspended(info);
-   break;
-   case FB_EVENT_RESUME:
-   fbcon_resumed(info);
-   break;
case FB_EVENT_MODE_CHANGE:
fbcon_modechanged(info);
break;
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index bee45e9405b8..73269dedcd45 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1917,17 +1917,14 @@ EXPORT_SYMBOL(unregister_framebuffer);
  */
 void fb_set_suspend(struct fb_info *info, int state)
 {
-   struct fb_event event;
-
WARN_CONSOLE_UNLOCKED();
 
-   event.info = info;
if (state) {
-   fb_notifier_call_chain(FB_EVENT_SUSPEND, );
+   fbcon_suspended(info);
info->state = FBINFO_STATE_SUSPENDED;
} else {
info->state = FBINFO_STATE_RUNNING;
-   fb_notifier_call_chain(FB_EVENT_RESUME, );
+   fbcon_resumed(info);
}
 }
 EXPORT_SYMBOL(fb_set_suspend);
diff --git a/include/linux/fb.h b/include/linux/fb.h
index b90cf7d56bd8..794b386415b7 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -126,14 +126,6 @@ struct fb_cursor_user {
 
 /* The resolution of the passed in fb_info about to change */ 
 #define FB_EVENT_MODE_CHANGE   0x01
-/* The display on this fb_info is being suspended, no access to the
- * framebuffer is allowed any more after that call returns
- */
-#define FB_EVENT_SUSPEND   0x02
-/* The display on this fb_info was resumed, you can restore the display
- * if you own it
- */
-#define FB_EVENT_RESUME0x03
 /*  An entry from the modelist was removed */
 #define FB_EVENT_MODE_DELETE0x04
 
diff --git a/include/linux/fbcon.h b/include/linux/fbcon.h
index 38d44fdb6d14..790c42ec7b5d 100644
--- a/include/linux/fbcon.h
+++ b/include/linux/fbcon.h
@@ -7,12 +7,16 @@ void __exit fb_console_exit(void);
 int fbcon_fb_registered(struct fb_info *info);
 void fbcon_fb_unregistered(struct fb_info *info);
 void fbcon_fb_unbind(struct fb_info *info);
+void fbcon_suspended(struct fb_info *info);
+void fbcon_resumed(struct fb_info *info);
 #else
 static inline void fb_console_init(void) {}
 static inline void fb_console_exit(void) {}
 static inline int fbcon_fb_registered(struct fb_info *info) { return 0; }
 static inline void fbcon_fb_unregistered(struct fb_info *info) {}
 static inline void fbcon_fb_unbind(struct fb_info *info) {}
+static inline void fbcon_suspended(struct fb_info *info) {}
+static inline void fbcon_resumed(struct fb_info *info) {}
 #endif
 
 #endif /* _LINUX_FBCON_H */
-- 
2.20.1



Re: [PATCH 21/33] fbdev: directly call fbcon_suspended/resumed

2019-05-20 Thread kbuild test robot
Hi Daniel,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.2-rc1 next-20190520]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Daniel-Vetter/fbcon-notifier-begone/20190521-021841
config: x86_64-randconfig-x006-201920 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot 

All errors (new ones prefixed by >>):

   drivers/video/fbdev/core/fbmem.c: In function 'fb_set_suspend':
>> drivers/video/fbdev/core/fbmem.c:1908:3: error: too many arguments to 
>> function 'fbcon_suspended'
  fbcon_suspended(info);
  ^~~
   In file included from drivers/video/fbdev/core/fbmem.c:35:0:
   include/linux/fbcon.h:18:20: note: declared here
static inline void fbcon_suspended(void) {}
   ^~~
>> drivers/video/fbdev/core/fbmem.c:1912:3: error: too many arguments to 
>> function 'fbcon_resumed'
  fbcon_resumed(info);
  ^
   In file included from drivers/video/fbdev/core/fbmem.c:35:0:
   include/linux/fbcon.h:19:20: note: declared here
static inline void fbcon_resumed(void) {}
   ^

vim +/fbcon_suspended +1908 drivers/video/fbdev/core/fbmem.c

  1893  
  1894  /**
  1895   *  fb_set_suspend - low level driver signals suspend
  1896   *  @info: framebuffer affected
  1897   *  @state: 0 = resuming, !=0 = suspending
  1898   *
  1899   *  This is meant to be used by low level drivers to
  1900   *  signal suspend/resume to the core & clients.
  1901   *  It must be called with the console semaphore held
  1902   */
  1903  void fb_set_suspend(struct fb_info *info, int state)
  1904  {
  1905  WARN_CONSOLE_UNLOCKED();
  1906  
  1907  if (state) {
> 1908  fbcon_suspended(info);
  1909  info->state = FBINFO_STATE_SUSPENDED;
  1910  } else {
  1911  info->state = FBINFO_STATE_RUNNING;
> 1912  fbcon_resumed(info);
  1913  }
  1914  }
  1915  EXPORT_SYMBOL(fb_set_suspend);
  1916  

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[PATCH 21/33] fbdev: directly call fbcon_suspended/resumed

2019-05-20 Thread Daniel Vetter
With the sh_mobile notifier removed we can just directly call the
fbcon code here.

v2: Remove now unused local variable.

Signed-off-by: Daniel Vetter 
Cc: Bartlomiej Zolnierkiewicz 
Cc: Daniel Vetter 
Cc: Hans de Goede 
Cc: Greg Kroah-Hartman 
Cc: Prarit Bhargava 
Cc: Kees Cook 
Cc: Konstantin Khorenko 
Cc: Yisheng Xie 
Cc: "Michał Mirosław" 
Cc: Peter Rosin 
Cc: Mikulas Patocka 
Cc: linux-fb...@vger.kernel.org
---
 drivers/video/fbdev/core/fbcon.c | 10 ++
 drivers/video/fbdev/core/fbmem.c |  7 ++-
 include/linux/fb.h   |  8 
 include/linux/fbcon.h|  4 
 4 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index a8d12914b559..b056d1190788 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -2915,7 +2915,7 @@ static int fbcon_set_origin(struct vc_data *vc)
return 0;
 }
 
-static void fbcon_suspended(struct fb_info *info)
+void fbcon_suspended(struct fb_info *info)
 {
struct vc_data *vc = NULL;
struct fbcon_ops *ops = info->fbcon_par;
@@ -2928,7 +2928,7 @@ static void fbcon_suspended(struct fb_info *info)
fbcon_cursor(vc, CM_ERASE);
 }
 
-static void fbcon_resumed(struct fb_info *info)
+void fbcon_resumed(struct fb_info *info)
 {
struct vc_data *vc;
struct fbcon_ops *ops = info->fbcon_par;
@@ -3326,12 +3326,6 @@ static int fbcon_event_notify(struct notifier_block 
*self,
int idx, ret = 0;
 
switch(action) {
-   case FB_EVENT_SUSPEND:
-   fbcon_suspended(info);
-   break;
-   case FB_EVENT_RESUME:
-   fbcon_resumed(info);
-   break;
case FB_EVENT_MODE_CHANGE:
fbcon_modechanged(info);
break;
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index f059b0b1a030..7c55846ee5fc 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1881,17 +1881,14 @@ EXPORT_SYMBOL(unregister_framebuffer);
  */
 void fb_set_suspend(struct fb_info *info, int state)
 {
-   struct fb_event event;
-
WARN_CONSOLE_UNLOCKED();
 
-   event.info = info;
if (state) {
-   fb_notifier_call_chain(FB_EVENT_SUSPEND, );
+   fbcon_suspended(info);
info->state = FBINFO_STATE_SUSPENDED;
} else {
info->state = FBINFO_STATE_RUNNING;
-   fb_notifier_call_chain(FB_EVENT_RESUME, );
+   fbcon_resumed(info);
}
 }
 EXPORT_SYMBOL(fb_set_suspend);
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 44021e55b15c..a78bbd372cfd 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -126,14 +126,6 @@ struct fb_cursor_user {
 
 /* The resolution of the passed in fb_info about to change */ 
 #define FB_EVENT_MODE_CHANGE   0x01
-/* The display on this fb_info is being suspended, no access to the
- * framebuffer is allowed any more after that call returns
- */
-#define FB_EVENT_SUSPEND   0x02
-/* The display on this fb_info was resumed, you can restore the display
- * if you own it
- */
-#define FB_EVENT_RESUME0x03
 /*  An entry from the modelist was removed */
 #define FB_EVENT_MODE_DELETE0x04
 /*  CONSOLE-SPECIFIC: get console to framebuffer mapping */
diff --git a/include/linux/fbcon.h b/include/linux/fbcon.h
index 38d44fdb6d14..61a22e6c0c64 100644
--- a/include/linux/fbcon.h
+++ b/include/linux/fbcon.h
@@ -7,12 +7,16 @@ void __exit fb_console_exit(void);
 int fbcon_fb_registered(struct fb_info *info);
 void fbcon_fb_unregistered(struct fb_info *info);
 void fbcon_fb_unbind(struct fb_info *info);
+void fbcon_suspended(struct fb_info *info);
+void fbcon_resumed(struct fb_info *info);
 #else
 static inline void fb_console_init(void) {}
 static inline void fb_console_exit(void) {}
 static inline int fbcon_fb_registered(struct fb_info *info) { return 0; }
 static inline void fbcon_fb_unregistered(struct fb_info *info) {}
 static inline void fbcon_fb_unbind(struct fb_info *info) {}
+static inline void fbcon_suspended(void) {}
+static inline void fbcon_resumed(void) {}
 #endif
 
 #endif /* _LINUX_FBCON_H */
-- 
2.20.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel