From: kbuild test robot <lkp@intel.com>
To: Lin Huang <hl@rock-chips.com>
Cc: kbuild-all@01.org, heiko@sntech.de, myungjoo.ham@samsung.com,
mark.yao@rock-chips.com, cw00.choi@samsung.com, airlied@linux.ie,
mturquette@baylibre.com, dbasehore@chromium.org,
sboyd@codeaurora.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, dianders@chromium.org,
linux-rockchip@lists.infradead.org, kyungmin.park@samsung.com,
linux-arm-kernel@lists.infradead.org, tixy@linaro.org,
typ@rock-chips.com, sudeep.holla@arm.com, mark.rutland@arm.com,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
Lin Huang <hl@rock-chips.com>
Subject: Re: [PATCH 5/5] drm/rockchip: Add dmc notifier in vop driver
Date: Fri, 2 Sep 2016 08:34:53 +0800 [thread overview]
Message-ID: <201609020840.6FaQa5pQ%fengguang.wu@intel.com> (raw)
In-Reply-To: <1472769085-20715-6-git-send-email-hl@rock-chips.com>
[-- Attachment #1: Type: text/plain, Size: 17809 bytes --]
Hi Lin,
[auto build test ERROR on next-20160825]
[cannot apply to rockchip/for-next devfreq/for-rafael linus/master v4.8-rc4 v4.8-rc3 v4.8-rc2 v4.8-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Lin-Huang/rk3399-support-ddr-frequency-scaling/20160902-063701
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/rockchip/rockchip_drm_vop.c:23:0:
include/linux/devfreq-event.h:190:21: error: redefinition of 'devfreq_event_get_drvdata'
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
include/linux/devfreq-event.h:151:21: note: previous definition of 'devfreq_event_get_drvdata' was here
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_crtc_disable':
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:13: error: invalid storage class for function 'vop_plane_destroy'
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:658:12: error: invalid storage class for function 'vop_plane_prepare_fb'
static int vop_plane_prepare_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:667:13: error: invalid storage class for function 'vop_plane_cleanup_fb'
static void vop_plane_cleanup_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:674:12: error: invalid storage class for function 'vop_plane_atomic_check'
static int vop_plane_atomic_check(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:731:13: error: invalid storage class for function 'vop_plane_atomic_disable'
static void vop_plane_atomic_disable(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:756:13: error: invalid storage class for function 'vop_plane_atomic_update'
static void vop_plane_atomic_update(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: error: initializer element is not constant
.prepare_fb = vop_plane_prepare_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: note: (near initialization for 'plane_helper_funcs.prepare_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: error: initializer element is not constant
.cleanup_fb = vop_plane_cleanup_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: note: (near initialization for 'plane_helper_funcs.cleanup_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: error: initializer element is not constant
.atomic_check = vop_plane_atomic_check,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: note: (near initialization for 'plane_helper_funcs.atomic_check')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: error: initializer element is not constant
.atomic_update = vop_plane_atomic_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: note: (near initialization for 'plane_helper_funcs.atomic_update')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: error: initializer element is not constant
.atomic_disable = vop_plane_atomic_disable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: note: (near initialization for 'plane_helper_funcs.atomic_disable')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:873:13: error: invalid storage class for function 'vop_atomic_plane_reset'
static void vop_atomic_plane_reset(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:891:1: error: invalid storage class for function 'vop_atomic_plane_duplicate_state'
vop_atomic_plane_duplicate_state(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:911:13: error: invalid storage class for function 'vop_atomic_plane_destroy_state'
static void vop_atomic_plane_destroy_state(struct drm_plane *plane,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: error: initializer element is not constant
.destroy = vop_plane_destroy,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: note: (near initialization for 'vop_plane_funcs.destroy')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: error: initializer element is not constant
.reset = vop_atomic_plane_reset,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: note: (near initialization for 'vop_plane_funcs.reset')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: error: initializer element is not constant
.atomic_duplicate_state = vop_atomic_plane_duplicate_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: note: (near initialization for 'vop_plane_funcs.atomic_duplicate_state')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: error: initializer element is not constant
.atomic_destroy_state = vop_atomic_plane_destroy_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: note: (near initialization for 'vop_plane_funcs.atomic_destroy_state')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:930:12: error: invalid storage class for function 'vop_crtc_enable_vblank'
static int vop_crtc_enable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:947:13: error: invalid storage class for function 'vop_crtc_disable_vblank'
static void vop_crtc_disable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:962:13: error: invalid storage class for function 'vop_crtc_wait_for_update'
static void vop_crtc_wait_for_update(struct drm_crtc *crtc)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: error: initializer element is not constant
.enable_vblank = vop_crtc_enable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: note: (near initialization for 'private_crtc_funcs.enable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: error: initializer element is not constant
.disable_vblank = vop_crtc_disable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: note: (near initialization for 'private_crtc_funcs.disable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: error: initializer element is not constant
.wait_for_update = vop_crtc_wait_for_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: note: (near initialization for 'private_crtc_funcs.wait_for_update')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:976:13: error: invalid storage class for function 'vop_crtc_mode_fixup'
static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:988:13: error: invalid storage class for function 'vop_crtc_enable'
static void vop_crtc_enable(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1090:13: error: invalid storage class for function 'vop_crtc_atomic_flush'
static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1105:13: error: invalid storage class for function 'vop_crtc_atomic_begin'
static void vop_crtc_atomic_begin(struct drm_crtc *crtc,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: error: initializer element is not constant
.enable = vop_crtc_enable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: note: (near initialization for 'vop_crtc_helper_funcs.enable')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: error: initializer element is not constant
.mode_fixup = vop_crtc_mode_fixup,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: note: (near initialization for 'vop_crtc_helper_funcs.mode_fixup')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: error: initializer element is not constant
.atomic_flush = vop_crtc_atomic_flush,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_flush')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: error: initializer element is not constant
.atomic_begin = vop_crtc_atomic_begin,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_begin')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1129:13: error: invalid storage class for function 'vop_crtc_destroy'
static void vop_crtc_destroy(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1134:13: error: invalid storage class for function 'vop_crtc_reset'
static void vop_crtc_reset(struct drm_crtc *crtc)
^
vim +/vop_plane_destroy +653 drivers/gpu/drm/rockchip/rockchip_drm_vop.c
4bb85264 Lin Huang 2016-09-02 647 if (vop->devfreq_event_dev)
4bb85264 Lin Huang 2016-09-02 648 devfreq_event_enable_edev(vop->devfreq_event_dev);
4bb85264 Lin Huang 2016-09-02 649 devfreq_resume_device(vop->devfreq);
893b6cad Daniel Vetter 2016-06-08 650 }
2048e328 Mark Yao 2014-08-22 651 }
2048e328 Mark Yao 2014-08-22 652
63ebb9fa Mark Yao 2015-11-30 @653 static void vop_plane_destroy(struct drm_plane *plane)
2048e328 Mark Yao 2014-08-22 654 {
63ebb9fa Mark Yao 2015-11-30 655 drm_plane_cleanup(plane);
2048e328 Mark Yao 2014-08-22 656 }
2048e328 Mark Yao 2014-08-22 657
44d0237a Mark Yao 2016-04-29 @658 static int vop_plane_prepare_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 659 struct drm_plane_state *new_state)
44d0237a Mark Yao 2016-04-29 660 {
44d0237a Mark Yao 2016-04-29 661 if (plane->state->fb)
44d0237a Mark Yao 2016-04-29 662 drm_framebuffer_reference(plane->state->fb);
44d0237a Mark Yao 2016-04-29 663
44d0237a Mark Yao 2016-04-29 664 return 0;
44d0237a Mark Yao 2016-04-29 665 }
44d0237a Mark Yao 2016-04-29 666
44d0237a Mark Yao 2016-04-29 @667 static void vop_plane_cleanup_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 668 struct drm_plane_state *old_state)
44d0237a Mark Yao 2016-04-29 669 {
44d0237a Mark Yao 2016-04-29 670 if (old_state->fb)
44d0237a Mark Yao 2016-04-29 671 drm_framebuffer_unreference(old_state->fb);
44d0237a Mark Yao 2016-04-29 672 }
44d0237a Mark Yao 2016-04-29 673
63ebb9fa Mark Yao 2015-11-30 @674 static int vop_plane_atomic_check(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 675 struct drm_plane_state *state)
2048e328 Mark Yao 2014-08-22 676 {
63ebb9fa Mark Yao 2015-11-30 677 struct drm_crtc *crtc = state->crtc;
92915da6 John Keeping 2016-03-04 678 struct drm_crtc_state *crtc_state;
63ebb9fa Mark Yao 2015-11-30 679 struct drm_framebuffer *fb = state->fb;
2048e328 Mark Yao 2014-08-22 680 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 681 struct vop_plane_state *vop_plane_state = to_vop_plane_state(state);
2048e328 Mark Yao 2014-08-22 682 const struct vop_win_data *win = vop_win->data;
2048e328 Mark Yao 2014-08-22 683 int ret;
63ebb9fa Mark Yao 2015-11-30 684 struct drm_rect clip;
4c156c21 Mark Yao 2015-06-26 685 int min_scale = win->phy->scl ? FRAC_16_16(1, 8) :
4c156c21 Mark Yao 2015-06-26 686 DRM_PLANE_HELPER_NO_SCALING;
4c156c21 Mark Yao 2015-06-26 687 int max_scale = win->phy->scl ? FRAC_16_16(8, 1) :
4c156c21 Mark Yao 2015-06-26 688 DRM_PLANE_HELPER_NO_SCALING;
2048e328 Mark Yao 2014-08-22 689
63ebb9fa Mark Yao 2015-11-30 690 if (!crtc || !fb)
63ebb9fa Mark Yao 2015-11-30 691 goto out_disable;
92915da6 John Keeping 2016-03-04 692
92915da6 John Keeping 2016-03-04 693 crtc_state = drm_atomic_get_existing_crtc_state(state->state, crtc);
92915da6 John Keeping 2016-03-04 694 if (WARN_ON(!crtc_state))
92915da6 John Keeping 2016-03-04 695 return -EINVAL;
92915da6 John Keeping 2016-03-04 696
63ebb9fa Mark Yao 2015-11-30 697 clip.x1 = 0;
63ebb9fa Mark Yao 2015-11-30 698 clip.y1 = 0;
92915da6 John Keeping 2016-03-04 699 clip.x2 = crtc_state->adjusted_mode.hdisplay;
92915da6 John Keeping 2016-03-04 700 clip.y2 = crtc_state->adjusted_mode.vdisplay;
63ebb9fa Mark Yao 2015-11-30 701
f9b96be0 Ville Syrjälä 2016-07-26 702 ret = drm_plane_helper_check_state(state, &clip,
f9b96be0 Ville Syrjälä 2016-07-26 703 min_scale, max_scale,
f9b96be0 Ville Syrjälä 2016-07-26 704 true, true);
2048e328 Mark Yao 2014-08-22 705 if (ret)
2048e328 Mark Yao 2014-08-22 706 return ret;
2048e328 Mark Yao 2014-08-22 707
f9b96be0 Ville Syrjälä 2016-07-26 708 if (!state->visible)
63ebb9fa Mark Yao 2015-11-30 709 goto out_disable;
84c7f8ca Mark Yao 2015-07-20 710
63ebb9fa Mark Yao 2015-11-30 711 vop_plane_state->format = vop_convert_format(fb->pixel_format);
63ebb9fa Mark Yao 2015-11-30 712 if (vop_plane_state->format < 0)
63ebb9fa Mark Yao 2015-11-30 713 return vop_plane_state->format;
2048e328 Mark Yao 2014-08-22 714
84c7f8ca Mark Yao 2015-07-20 715 /*
84c7f8ca Mark Yao 2015-07-20 716 * Src.x1 can be odd when do clip, but yuv plane start point
84c7f8ca Mark Yao 2015-07-20 717 * need align with 2 pixel.
84c7f8ca Mark Yao 2015-07-20 718 */
f9b96be0 Ville Syrjälä 2016-07-26 719 if (is_yuv_support(fb->pixel_format) && ((state->src.x1 >> 16) % 2))
63ebb9fa Mark Yao 2015-11-30 720 return -EINVAL;
84c7f8ca Mark Yao 2015-07-20 721
63ebb9fa Mark Yao 2015-11-30 722 vop_plane_state->enable = true;
2048e328 Mark Yao 2014-08-22 723
63ebb9fa Mark Yao 2015-11-30 724 return 0;
2048e328 Mark Yao 2014-08-22 725
63ebb9fa Mark Yao 2015-11-30 726 out_disable:
63ebb9fa Mark Yao 2015-11-30 727 vop_plane_state->enable = false;
63ebb9fa Mark Yao 2015-11-30 728 return 0;
63ebb9fa Mark Yao 2015-11-30 729 }
2048e328 Mark Yao 2014-08-22 730
63ebb9fa Mark Yao 2015-11-30 @731 static void vop_plane_atomic_disable(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 732 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 733 {
63ebb9fa Mark Yao 2015-11-30 734 struct vop_plane_state *vop_plane_state = to_vop_plane_state(old_state);
63ebb9fa Mark Yao 2015-11-30 735 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 736 const struct vop_win_data *win = vop_win->data;
63ebb9fa Mark Yao 2015-11-30 737 struct vop *vop = to_vop(old_state->crtc);
2048e328 Mark Yao 2014-08-22 738
63ebb9fa Mark Yao 2015-11-30 739 if (!old_state->crtc)
63ebb9fa Mark Yao 2015-11-30 740 return;
84c7f8ca Mark Yao 2015-07-20 741
4f9d39a7 Daniel Vetter 2016-06-08 742 spin_lock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 743 vop_win->enable = false;
4f9d39a7 Daniel Vetter 2016-06-08 744 vop_win->yrgb_mst = 0;
4f9d39a7 Daniel Vetter 2016-06-08 745 spin_unlock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 746
63ebb9fa Mark Yao 2015-11-30 747 spin_lock(&vop->reg_lock);
63ebb9fa Mark Yao 2015-11-30 748
63ebb9fa Mark Yao 2015-11-30 749 VOP_WIN_SET(vop, win, enable, 0);
84c7f8ca Mark Yao 2015-07-20 750
63ebb9fa Mark Yao 2015-11-30 751 spin_unlock(&vop->reg_lock);
84c7f8ca Mark Yao 2015-07-20 752
63ebb9fa Mark Yao 2015-11-30 753 vop_plane_state->enable = false;
84c7f8ca Mark Yao 2015-07-20 754 }
84c7f8ca Mark Yao 2015-07-20 755
63ebb9fa Mark Yao 2015-11-30 @756 static void vop_plane_atomic_update(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 757 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 758 {
63ebb9fa Mark Yao 2015-11-30 759 struct drm_plane_state *state = plane->state;
:::::: The code at line 653 was first introduced by commit
:::::: 63ebb9fa7ff06d194362ed4a5d0a31ac7612a89c drm/rockchip: Convert to support atomic API
:::::: TO: Mark Yao <mark.yao@rock-chips.com>
:::::: CC: Mark Yao <mark.yao@rock-chips.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 38827 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
Cc: tixy@linaro.org, mark.rutland@arm.com, mturquette@baylibre.com,
dri-devel@lists.freedesktop.org, dianders@chromium.org,
cw00.choi@samsung.com, typ@rock-chips.com,
linux-rockchip@lists.infradead.org, myungjoo.ham@samsung.com,
devicetree@vger.kernel.org, linux-pm@vger.kernel.org,
dbasehore@chromium.org, linux-arm-kernel@lists.infradead.org,
Lin Huang <hl@rock-chips.com>,
sboyd@codeaurora.org, linux-kernel@vger.kernel.org,
kyungmin.park@samsung.com, kbuild-all@01.org,
sudeep.holla@arm.com
Subject: Re: [PATCH 5/5] drm/rockchip: Add dmc notifier in vop driver
Date: Fri, 2 Sep 2016 08:34:53 +0800 [thread overview]
Message-ID: <201609020840.6FaQa5pQ%fengguang.wu@intel.com> (raw)
In-Reply-To: <1472769085-20715-6-git-send-email-hl@rock-chips.com>
[-- Attachment #1: Type: text/plain, Size: 17809 bytes --]
Hi Lin,
[auto build test ERROR on next-20160825]
[cannot apply to rockchip/for-next devfreq/for-rafael linus/master v4.8-rc4 v4.8-rc3 v4.8-rc2 v4.8-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Lin-Huang/rk3399-support-ddr-frequency-scaling/20160902-063701
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/rockchip/rockchip_drm_vop.c:23:0:
include/linux/devfreq-event.h:190:21: error: redefinition of 'devfreq_event_get_drvdata'
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
include/linux/devfreq-event.h:151:21: note: previous definition of 'devfreq_event_get_drvdata' was here
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_crtc_disable':
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:13: error: invalid storage class for function 'vop_plane_destroy'
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:658:12: error: invalid storage class for function 'vop_plane_prepare_fb'
static int vop_plane_prepare_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:667:13: error: invalid storage class for function 'vop_plane_cleanup_fb'
static void vop_plane_cleanup_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:674:12: error: invalid storage class for function 'vop_plane_atomic_check'
static int vop_plane_atomic_check(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:731:13: error: invalid storage class for function 'vop_plane_atomic_disable'
static void vop_plane_atomic_disable(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:756:13: error: invalid storage class for function 'vop_plane_atomic_update'
static void vop_plane_atomic_update(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: error: initializer element is not constant
.prepare_fb = vop_plane_prepare_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: note: (near initialization for 'plane_helper_funcs.prepare_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: error: initializer element is not constant
.cleanup_fb = vop_plane_cleanup_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: note: (near initialization for 'plane_helper_funcs.cleanup_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: error: initializer element is not constant
.atomic_check = vop_plane_atomic_check,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: note: (near initialization for 'plane_helper_funcs.atomic_check')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: error: initializer element is not constant
.atomic_update = vop_plane_atomic_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: note: (near initialization for 'plane_helper_funcs.atomic_update')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: error: initializer element is not constant
.atomic_disable = vop_plane_atomic_disable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: note: (near initialization for 'plane_helper_funcs.atomic_disable')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:873:13: error: invalid storage class for function 'vop_atomic_plane_reset'
static void vop_atomic_plane_reset(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:891:1: error: invalid storage class for function 'vop_atomic_plane_duplicate_state'
vop_atomic_plane_duplicate_state(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:911:13: error: invalid storage class for function 'vop_atomic_plane_destroy_state'
static void vop_atomic_plane_destroy_state(struct drm_plane *plane,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: error: initializer element is not constant
.destroy = vop_plane_destroy,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: note: (near initialization for 'vop_plane_funcs.destroy')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: error: initializer element is not constant
.reset = vop_atomic_plane_reset,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: note: (near initialization for 'vop_plane_funcs.reset')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: error: initializer element is not constant
.atomic_duplicate_state = vop_atomic_plane_duplicate_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: note: (near initialization for 'vop_plane_funcs.atomic_duplicate_state')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: error: initializer element is not constant
.atomic_destroy_state = vop_atomic_plane_destroy_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: note: (near initialization for 'vop_plane_funcs.atomic_destroy_state')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:930:12: error: invalid storage class for function 'vop_crtc_enable_vblank'
static int vop_crtc_enable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:947:13: error: invalid storage class for function 'vop_crtc_disable_vblank'
static void vop_crtc_disable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:962:13: error: invalid storage class for function 'vop_crtc_wait_for_update'
static void vop_crtc_wait_for_update(struct drm_crtc *crtc)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: error: initializer element is not constant
.enable_vblank = vop_crtc_enable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: note: (near initialization for 'private_crtc_funcs.enable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: error: initializer element is not constant
.disable_vblank = vop_crtc_disable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: note: (near initialization for 'private_crtc_funcs.disable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: error: initializer element is not constant
.wait_for_update = vop_crtc_wait_for_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: note: (near initialization for 'private_crtc_funcs.wait_for_update')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:976:13: error: invalid storage class for function 'vop_crtc_mode_fixup'
static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:988:13: error: invalid storage class for function 'vop_crtc_enable'
static void vop_crtc_enable(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1090:13: error: invalid storage class for function 'vop_crtc_atomic_flush'
static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1105:13: error: invalid storage class for function 'vop_crtc_atomic_begin'
static void vop_crtc_atomic_begin(struct drm_crtc *crtc,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: error: initializer element is not constant
.enable = vop_crtc_enable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: note: (near initialization for 'vop_crtc_helper_funcs.enable')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: error: initializer element is not constant
.mode_fixup = vop_crtc_mode_fixup,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: note: (near initialization for 'vop_crtc_helper_funcs.mode_fixup')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: error: initializer element is not constant
.atomic_flush = vop_crtc_atomic_flush,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_flush')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: error: initializer element is not constant
.atomic_begin = vop_crtc_atomic_begin,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_begin')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1129:13: error: invalid storage class for function 'vop_crtc_destroy'
static void vop_crtc_destroy(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1134:13: error: invalid storage class for function 'vop_crtc_reset'
static void vop_crtc_reset(struct drm_crtc *crtc)
^
vim +/vop_plane_destroy +653 drivers/gpu/drm/rockchip/rockchip_drm_vop.c
4bb85264 Lin Huang 2016-09-02 647 if (vop->devfreq_event_dev)
4bb85264 Lin Huang 2016-09-02 648 devfreq_event_enable_edev(vop->devfreq_event_dev);
4bb85264 Lin Huang 2016-09-02 649 devfreq_resume_device(vop->devfreq);
893b6cad Daniel Vetter 2016-06-08 650 }
2048e328 Mark Yao 2014-08-22 651 }
2048e328 Mark Yao 2014-08-22 652
63ebb9fa Mark Yao 2015-11-30 @653 static void vop_plane_destroy(struct drm_plane *plane)
2048e328 Mark Yao 2014-08-22 654 {
63ebb9fa Mark Yao 2015-11-30 655 drm_plane_cleanup(plane);
2048e328 Mark Yao 2014-08-22 656 }
2048e328 Mark Yao 2014-08-22 657
44d0237a Mark Yao 2016-04-29 @658 static int vop_plane_prepare_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 659 struct drm_plane_state *new_state)
44d0237a Mark Yao 2016-04-29 660 {
44d0237a Mark Yao 2016-04-29 661 if (plane->state->fb)
44d0237a Mark Yao 2016-04-29 662 drm_framebuffer_reference(plane->state->fb);
44d0237a Mark Yao 2016-04-29 663
44d0237a Mark Yao 2016-04-29 664 return 0;
44d0237a Mark Yao 2016-04-29 665 }
44d0237a Mark Yao 2016-04-29 666
44d0237a Mark Yao 2016-04-29 @667 static void vop_plane_cleanup_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 668 struct drm_plane_state *old_state)
44d0237a Mark Yao 2016-04-29 669 {
44d0237a Mark Yao 2016-04-29 670 if (old_state->fb)
44d0237a Mark Yao 2016-04-29 671 drm_framebuffer_unreference(old_state->fb);
44d0237a Mark Yao 2016-04-29 672 }
44d0237a Mark Yao 2016-04-29 673
63ebb9fa Mark Yao 2015-11-30 @674 static int vop_plane_atomic_check(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 675 struct drm_plane_state *state)
2048e328 Mark Yao 2014-08-22 676 {
63ebb9fa Mark Yao 2015-11-30 677 struct drm_crtc *crtc = state->crtc;
92915da6 John Keeping 2016-03-04 678 struct drm_crtc_state *crtc_state;
63ebb9fa Mark Yao 2015-11-30 679 struct drm_framebuffer *fb = state->fb;
2048e328 Mark Yao 2014-08-22 680 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 681 struct vop_plane_state *vop_plane_state = to_vop_plane_state(state);
2048e328 Mark Yao 2014-08-22 682 const struct vop_win_data *win = vop_win->data;
2048e328 Mark Yao 2014-08-22 683 int ret;
63ebb9fa Mark Yao 2015-11-30 684 struct drm_rect clip;
4c156c21 Mark Yao 2015-06-26 685 int min_scale = win->phy->scl ? FRAC_16_16(1, 8) :
4c156c21 Mark Yao 2015-06-26 686 DRM_PLANE_HELPER_NO_SCALING;
4c156c21 Mark Yao 2015-06-26 687 int max_scale = win->phy->scl ? FRAC_16_16(8, 1) :
4c156c21 Mark Yao 2015-06-26 688 DRM_PLANE_HELPER_NO_SCALING;
2048e328 Mark Yao 2014-08-22 689
63ebb9fa Mark Yao 2015-11-30 690 if (!crtc || !fb)
63ebb9fa Mark Yao 2015-11-30 691 goto out_disable;
92915da6 John Keeping 2016-03-04 692
92915da6 John Keeping 2016-03-04 693 crtc_state = drm_atomic_get_existing_crtc_state(state->state, crtc);
92915da6 John Keeping 2016-03-04 694 if (WARN_ON(!crtc_state))
92915da6 John Keeping 2016-03-04 695 return -EINVAL;
92915da6 John Keeping 2016-03-04 696
63ebb9fa Mark Yao 2015-11-30 697 clip.x1 = 0;
63ebb9fa Mark Yao 2015-11-30 698 clip.y1 = 0;
92915da6 John Keeping 2016-03-04 699 clip.x2 = crtc_state->adjusted_mode.hdisplay;
92915da6 John Keeping 2016-03-04 700 clip.y2 = crtc_state->adjusted_mode.vdisplay;
63ebb9fa Mark Yao 2015-11-30 701
f9b96be0 Ville Syrjälä 2016-07-26 702 ret = drm_plane_helper_check_state(state, &clip,
f9b96be0 Ville Syrjälä 2016-07-26 703 min_scale, max_scale,
f9b96be0 Ville Syrjälä 2016-07-26 704 true, true);
2048e328 Mark Yao 2014-08-22 705 if (ret)
2048e328 Mark Yao 2014-08-22 706 return ret;
2048e328 Mark Yao 2014-08-22 707
f9b96be0 Ville Syrjälä 2016-07-26 708 if (!state->visible)
63ebb9fa Mark Yao 2015-11-30 709 goto out_disable;
84c7f8ca Mark Yao 2015-07-20 710
63ebb9fa Mark Yao 2015-11-30 711 vop_plane_state->format = vop_convert_format(fb->pixel_format);
63ebb9fa Mark Yao 2015-11-30 712 if (vop_plane_state->format < 0)
63ebb9fa Mark Yao 2015-11-30 713 return vop_plane_state->format;
2048e328 Mark Yao 2014-08-22 714
84c7f8ca Mark Yao 2015-07-20 715 /*
84c7f8ca Mark Yao 2015-07-20 716 * Src.x1 can be odd when do clip, but yuv plane start point
84c7f8ca Mark Yao 2015-07-20 717 * need align with 2 pixel.
84c7f8ca Mark Yao 2015-07-20 718 */
f9b96be0 Ville Syrjälä 2016-07-26 719 if (is_yuv_support(fb->pixel_format) && ((state->src.x1 >> 16) % 2))
63ebb9fa Mark Yao 2015-11-30 720 return -EINVAL;
84c7f8ca Mark Yao 2015-07-20 721
63ebb9fa Mark Yao 2015-11-30 722 vop_plane_state->enable = true;
2048e328 Mark Yao 2014-08-22 723
63ebb9fa Mark Yao 2015-11-30 724 return 0;
2048e328 Mark Yao 2014-08-22 725
63ebb9fa Mark Yao 2015-11-30 726 out_disable:
63ebb9fa Mark Yao 2015-11-30 727 vop_plane_state->enable = false;
63ebb9fa Mark Yao 2015-11-30 728 return 0;
63ebb9fa Mark Yao 2015-11-30 729 }
2048e328 Mark Yao 2014-08-22 730
63ebb9fa Mark Yao 2015-11-30 @731 static void vop_plane_atomic_disable(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 732 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 733 {
63ebb9fa Mark Yao 2015-11-30 734 struct vop_plane_state *vop_plane_state = to_vop_plane_state(old_state);
63ebb9fa Mark Yao 2015-11-30 735 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 736 const struct vop_win_data *win = vop_win->data;
63ebb9fa Mark Yao 2015-11-30 737 struct vop *vop = to_vop(old_state->crtc);
2048e328 Mark Yao 2014-08-22 738
63ebb9fa Mark Yao 2015-11-30 739 if (!old_state->crtc)
63ebb9fa Mark Yao 2015-11-30 740 return;
84c7f8ca Mark Yao 2015-07-20 741
4f9d39a7 Daniel Vetter 2016-06-08 742 spin_lock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 743 vop_win->enable = false;
4f9d39a7 Daniel Vetter 2016-06-08 744 vop_win->yrgb_mst = 0;
4f9d39a7 Daniel Vetter 2016-06-08 745 spin_unlock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 746
63ebb9fa Mark Yao 2015-11-30 747 spin_lock(&vop->reg_lock);
63ebb9fa Mark Yao 2015-11-30 748
63ebb9fa Mark Yao 2015-11-30 749 VOP_WIN_SET(vop, win, enable, 0);
84c7f8ca Mark Yao 2015-07-20 750
63ebb9fa Mark Yao 2015-11-30 751 spin_unlock(&vop->reg_lock);
84c7f8ca Mark Yao 2015-07-20 752
63ebb9fa Mark Yao 2015-11-30 753 vop_plane_state->enable = false;
84c7f8ca Mark Yao 2015-07-20 754 }
84c7f8ca Mark Yao 2015-07-20 755
63ebb9fa Mark Yao 2015-11-30 @756 static void vop_plane_atomic_update(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 757 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 758 {
63ebb9fa Mark Yao 2015-11-30 759 struct drm_plane_state *state = plane->state;
:::::: The code at line 653 was first introduced by commit
:::::: 63ebb9fa7ff06d194362ed4a5d0a31ac7612a89c drm/rockchip: Convert to support atomic API
:::::: TO: Mark Yao <mark.yao@rock-chips.com>
:::::: CC: Mark Yao <mark.yao@rock-chips.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 38827 bytes --]
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: lkp@intel.com (kbuild test robot)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/5] drm/rockchip: Add dmc notifier in vop driver
Date: Fri, 2 Sep 2016 08:34:53 +0800 [thread overview]
Message-ID: <201609020840.6FaQa5pQ%fengguang.wu@intel.com> (raw)
In-Reply-To: <1472769085-20715-6-git-send-email-hl@rock-chips.com>
Hi Lin,
[auto build test ERROR on next-20160825]
[cannot apply to rockchip/for-next devfreq/for-rafael linus/master v4.8-rc4 v4.8-rc3 v4.8-rc2 v4.8-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Lin-Huang/rk3399-support-ddr-frequency-scaling/20160902-063701
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/rockchip/rockchip_drm_vop.c:23:0:
include/linux/devfreq-event.h:190:21: error: redefinition of 'devfreq_event_get_drvdata'
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
include/linux/devfreq-event.h:151:21: note: previous definition of 'devfreq_event_get_drvdata' was here
static inline void *devfreq_event_get_drvdata(struct devfreq_event_dev *edev)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_crtc_disable':
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:13: error: invalid storage class for function 'vop_plane_destroy'
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:653:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void vop_plane_destroy(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:658:12: error: invalid storage class for function 'vop_plane_prepare_fb'
static int vop_plane_prepare_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:667:13: error: invalid storage class for function 'vop_plane_cleanup_fb'
static void vop_plane_cleanup_fb(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:674:12: error: invalid storage class for function 'vop_plane_atomic_check'
static int vop_plane_atomic_check(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:731:13: error: invalid storage class for function 'vop_plane_atomic_disable'
static void vop_plane_atomic_disable(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:756:13: error: invalid storage class for function 'vop_plane_atomic_update'
static void vop_plane_atomic_update(struct drm_plane *plane,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: error: initializer element is not constant
.prepare_fb = vop_plane_prepare_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:866:16: note: (near initialization for 'plane_helper_funcs.prepare_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: error: initializer element is not constant
.cleanup_fb = vop_plane_cleanup_fb,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:867:16: note: (near initialization for 'plane_helper_funcs.cleanup_fb')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: error: initializer element is not constant
.atomic_check = vop_plane_atomic_check,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:868:18: note: (near initialization for 'plane_helper_funcs.atomic_check')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: error: initializer element is not constant
.atomic_update = vop_plane_atomic_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:869:19: note: (near initialization for 'plane_helper_funcs.atomic_update')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: error: initializer element is not constant
.atomic_disable = vop_plane_atomic_disable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:870:20: note: (near initialization for 'plane_helper_funcs.atomic_disable')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:873:13: error: invalid storage class for function 'vop_atomic_plane_reset'
static void vop_atomic_plane_reset(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:891:1: error: invalid storage class for function 'vop_atomic_plane_duplicate_state'
vop_atomic_plane_duplicate_state(struct drm_plane *plane)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:911:13: error: invalid storage class for function 'vop_atomic_plane_destroy_state'
static void vop_atomic_plane_destroy_state(struct drm_plane *plane,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: error: initializer element is not constant
.destroy = vop_plane_destroy,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:924:13: note: (near initialization for 'vop_plane_funcs.destroy')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: error: initializer element is not constant
.reset = vop_atomic_plane_reset,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:925:11: note: (near initialization for 'vop_plane_funcs.reset')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: error: initializer element is not constant
.atomic_duplicate_state = vop_atomic_plane_duplicate_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:926:28: note: (near initialization for 'vop_plane_funcs.atomic_duplicate_state')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: error: initializer element is not constant
.atomic_destroy_state = vop_atomic_plane_destroy_state,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:927:26: note: (near initialization for 'vop_plane_funcs.atomic_destroy_state')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:930:12: error: invalid storage class for function 'vop_crtc_enable_vblank'
static int vop_crtc_enable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:947:13: error: invalid storage class for function 'vop_crtc_disable_vblank'
static void vop_crtc_disable_vblank(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:962:13: error: invalid storage class for function 'vop_crtc_wait_for_update'
static void vop_crtc_wait_for_update(struct drm_crtc *crtc)
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: error: initializer element is not constant
.enable_vblank = vop_crtc_enable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:971:19: note: (near initialization for 'private_crtc_funcs.enable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: error: initializer element is not constant
.disable_vblank = vop_crtc_disable_vblank,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:972:20: note: (near initialization for 'private_crtc_funcs.disable_vblank')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: error: initializer element is not constant
.wait_for_update = vop_crtc_wait_for_update,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:973:21: note: (near initialization for 'private_crtc_funcs.wait_for_update')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:976:13: error: invalid storage class for function 'vop_crtc_mode_fixup'
static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:988:13: error: invalid storage class for function 'vop_crtc_enable'
static void vop_crtc_enable(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1090:13: error: invalid storage class for function 'vop_crtc_atomic_flush'
static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1105:13: error: invalid storage class for function 'vop_crtc_atomic_begin'
static void vop_crtc_atomic_begin(struct drm_crtc *crtc,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: error: initializer element is not constant
.enable = vop_crtc_enable,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1122:12: note: (near initialization for 'vop_crtc_helper_funcs.enable')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: error: initializer element is not constant
.mode_fixup = vop_crtc_mode_fixup,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1124:16: note: (near initialization for 'vop_crtc_helper_funcs.mode_fixup')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: error: initializer element is not constant
.atomic_flush = vop_crtc_atomic_flush,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1125:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_flush')
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: error: initializer element is not constant
.atomic_begin = vop_crtc_atomic_begin,
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1126:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_begin')
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1129:13: error: invalid storage class for function 'vop_crtc_destroy'
static void vop_crtc_destroy(struct drm_crtc *crtc)
^
>> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1134:13: error: invalid storage class for function 'vop_crtc_reset'
static void vop_crtc_reset(struct drm_crtc *crtc)
^
vim +/vop_plane_destroy +653 drivers/gpu/drm/rockchip/rockchip_drm_vop.c
4bb85264 Lin Huang 2016-09-02 647 if (vop->devfreq_event_dev)
4bb85264 Lin Huang 2016-09-02 648 devfreq_event_enable_edev(vop->devfreq_event_dev);
4bb85264 Lin Huang 2016-09-02 649 devfreq_resume_device(vop->devfreq);
893b6cad Daniel Vetter 2016-06-08 650 }
2048e328 Mark Yao 2014-08-22 651 }
2048e328 Mark Yao 2014-08-22 652
63ebb9fa Mark Yao 2015-11-30 @653 static void vop_plane_destroy(struct drm_plane *plane)
2048e328 Mark Yao 2014-08-22 654 {
63ebb9fa Mark Yao 2015-11-30 655 drm_plane_cleanup(plane);
2048e328 Mark Yao 2014-08-22 656 }
2048e328 Mark Yao 2014-08-22 657
44d0237a Mark Yao 2016-04-29 @658 static int vop_plane_prepare_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 659 struct drm_plane_state *new_state)
44d0237a Mark Yao 2016-04-29 660 {
44d0237a Mark Yao 2016-04-29 661 if (plane->state->fb)
44d0237a Mark Yao 2016-04-29 662 drm_framebuffer_reference(plane->state->fb);
44d0237a Mark Yao 2016-04-29 663
44d0237a Mark Yao 2016-04-29 664 return 0;
44d0237a Mark Yao 2016-04-29 665 }
44d0237a Mark Yao 2016-04-29 666
44d0237a Mark Yao 2016-04-29 @667 static void vop_plane_cleanup_fb(struct drm_plane *plane,
1832040d Chris Wilson 2016-08-18 668 struct drm_plane_state *old_state)
44d0237a Mark Yao 2016-04-29 669 {
44d0237a Mark Yao 2016-04-29 670 if (old_state->fb)
44d0237a Mark Yao 2016-04-29 671 drm_framebuffer_unreference(old_state->fb);
44d0237a Mark Yao 2016-04-29 672 }
44d0237a Mark Yao 2016-04-29 673
63ebb9fa Mark Yao 2015-11-30 @674 static int vop_plane_atomic_check(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 675 struct drm_plane_state *state)
2048e328 Mark Yao 2014-08-22 676 {
63ebb9fa Mark Yao 2015-11-30 677 struct drm_crtc *crtc = state->crtc;
92915da6 John Keeping 2016-03-04 678 struct drm_crtc_state *crtc_state;
63ebb9fa Mark Yao 2015-11-30 679 struct drm_framebuffer *fb = state->fb;
2048e328 Mark Yao 2014-08-22 680 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 681 struct vop_plane_state *vop_plane_state = to_vop_plane_state(state);
2048e328 Mark Yao 2014-08-22 682 const struct vop_win_data *win = vop_win->data;
2048e328 Mark Yao 2014-08-22 683 int ret;
63ebb9fa Mark Yao 2015-11-30 684 struct drm_rect clip;
4c156c21 Mark Yao 2015-06-26 685 int min_scale = win->phy->scl ? FRAC_16_16(1, 8) :
4c156c21 Mark Yao 2015-06-26 686 DRM_PLANE_HELPER_NO_SCALING;
4c156c21 Mark Yao 2015-06-26 687 int max_scale = win->phy->scl ? FRAC_16_16(8, 1) :
4c156c21 Mark Yao 2015-06-26 688 DRM_PLANE_HELPER_NO_SCALING;
2048e328 Mark Yao 2014-08-22 689
63ebb9fa Mark Yao 2015-11-30 690 if (!crtc || !fb)
63ebb9fa Mark Yao 2015-11-30 691 goto out_disable;
92915da6 John Keeping 2016-03-04 692
92915da6 John Keeping 2016-03-04 693 crtc_state = drm_atomic_get_existing_crtc_state(state->state, crtc);
92915da6 John Keeping 2016-03-04 694 if (WARN_ON(!crtc_state))
92915da6 John Keeping 2016-03-04 695 return -EINVAL;
92915da6 John Keeping 2016-03-04 696
63ebb9fa Mark Yao 2015-11-30 697 clip.x1 = 0;
63ebb9fa Mark Yao 2015-11-30 698 clip.y1 = 0;
92915da6 John Keeping 2016-03-04 699 clip.x2 = crtc_state->adjusted_mode.hdisplay;
92915da6 John Keeping 2016-03-04 700 clip.y2 = crtc_state->adjusted_mode.vdisplay;
63ebb9fa Mark Yao 2015-11-30 701
f9b96be0 Ville Syrj?l? 2016-07-26 702 ret = drm_plane_helper_check_state(state, &clip,
f9b96be0 Ville Syrj?l? 2016-07-26 703 min_scale, max_scale,
f9b96be0 Ville Syrj?l? 2016-07-26 704 true, true);
2048e328 Mark Yao 2014-08-22 705 if (ret)
2048e328 Mark Yao 2014-08-22 706 return ret;
2048e328 Mark Yao 2014-08-22 707
f9b96be0 Ville Syrj?l? 2016-07-26 708 if (!state->visible)
63ebb9fa Mark Yao 2015-11-30 709 goto out_disable;
84c7f8ca Mark Yao 2015-07-20 710
63ebb9fa Mark Yao 2015-11-30 711 vop_plane_state->format = vop_convert_format(fb->pixel_format);
63ebb9fa Mark Yao 2015-11-30 712 if (vop_plane_state->format < 0)
63ebb9fa Mark Yao 2015-11-30 713 return vop_plane_state->format;
2048e328 Mark Yao 2014-08-22 714
84c7f8ca Mark Yao 2015-07-20 715 /*
84c7f8ca Mark Yao 2015-07-20 716 * Src.x1 can be odd when do clip, but yuv plane start point
84c7f8ca Mark Yao 2015-07-20 717 * need align with 2 pixel.
84c7f8ca Mark Yao 2015-07-20 718 */
f9b96be0 Ville Syrj?l? 2016-07-26 719 if (is_yuv_support(fb->pixel_format) && ((state->src.x1 >> 16) % 2))
63ebb9fa Mark Yao 2015-11-30 720 return -EINVAL;
84c7f8ca Mark Yao 2015-07-20 721
63ebb9fa Mark Yao 2015-11-30 722 vop_plane_state->enable = true;
2048e328 Mark Yao 2014-08-22 723
63ebb9fa Mark Yao 2015-11-30 724 return 0;
2048e328 Mark Yao 2014-08-22 725
63ebb9fa Mark Yao 2015-11-30 726 out_disable:
63ebb9fa Mark Yao 2015-11-30 727 vop_plane_state->enable = false;
63ebb9fa Mark Yao 2015-11-30 728 return 0;
63ebb9fa Mark Yao 2015-11-30 729 }
2048e328 Mark Yao 2014-08-22 730
63ebb9fa Mark Yao 2015-11-30 @731 static void vop_plane_atomic_disable(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 732 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 733 {
63ebb9fa Mark Yao 2015-11-30 734 struct vop_plane_state *vop_plane_state = to_vop_plane_state(old_state);
63ebb9fa Mark Yao 2015-11-30 735 struct vop_win *vop_win = to_vop_win(plane);
63ebb9fa Mark Yao 2015-11-30 736 const struct vop_win_data *win = vop_win->data;
63ebb9fa Mark Yao 2015-11-30 737 struct vop *vop = to_vop(old_state->crtc);
2048e328 Mark Yao 2014-08-22 738
63ebb9fa Mark Yao 2015-11-30 739 if (!old_state->crtc)
63ebb9fa Mark Yao 2015-11-30 740 return;
84c7f8ca Mark Yao 2015-07-20 741
4f9d39a7 Daniel Vetter 2016-06-08 742 spin_lock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 743 vop_win->enable = false;
4f9d39a7 Daniel Vetter 2016-06-08 744 vop_win->yrgb_mst = 0;
4f9d39a7 Daniel Vetter 2016-06-08 745 spin_unlock_irq(&plane->dev->event_lock);
4f9d39a7 Daniel Vetter 2016-06-08 746
63ebb9fa Mark Yao 2015-11-30 747 spin_lock(&vop->reg_lock);
63ebb9fa Mark Yao 2015-11-30 748
63ebb9fa Mark Yao 2015-11-30 749 VOP_WIN_SET(vop, win, enable, 0);
84c7f8ca Mark Yao 2015-07-20 750
63ebb9fa Mark Yao 2015-11-30 751 spin_unlock(&vop->reg_lock);
84c7f8ca Mark Yao 2015-07-20 752
63ebb9fa Mark Yao 2015-11-30 753 vop_plane_state->enable = false;
84c7f8ca Mark Yao 2015-07-20 754 }
84c7f8ca Mark Yao 2015-07-20 755
63ebb9fa Mark Yao 2015-11-30 @756 static void vop_plane_atomic_update(struct drm_plane *plane,
63ebb9fa Mark Yao 2015-11-30 757 struct drm_plane_state *old_state)
63ebb9fa Mark Yao 2015-11-30 758 {
63ebb9fa Mark Yao 2015-11-30 759 struct drm_plane_state *state = plane->state;
:::::: The code at line 653 was first introduced by commit
:::::: 63ebb9fa7ff06d194362ed4a5d0a31ac7612a89c drm/rockchip: Convert to support atomic API
:::::: TO: Mark Yao <mark.yao@rock-chips.com>
:::::: CC: Mark Yao <mark.yao@rock-chips.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 38827 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160902/2bea9fd4/attachment-0001.obj>
next prev parent reply other threads:[~2016-09-02 0:35 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-01 22:31 [PATCH 0/5] rk3399 support ddr frequency scaling Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-01 22:31 ` [PATCH 1/5] Documentation: bindings: add dt documentation for dfi controller Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-02 8:50 ` Chanwoo Choi
2016-09-02 8:50 ` Chanwoo Choi
2016-09-02 8:50 ` Chanwoo Choi
2016-09-01 22:31 ` [PATCH 2/5] PM / devfreq: event: support rockchip " Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-01 22:31 ` [PATCH 3/5] Documentation: bindings: add dt documentation for rk3399 dmc Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-02 8:53 ` Chanwoo Choi
2016-09-02 8:53 ` Chanwoo Choi
2016-09-02 8:53 ` Chanwoo Choi
2016-09-01 22:31 ` [PATCH 4/5] PM / devfreq: rockchip: add devfreq driver " Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-01 23:17 ` Heiko Stübner
2016-09-01 23:17 ` Heiko Stübner
2016-09-01 23:17 ` Heiko Stübner
2016-09-02 1:46 ` Chanwoo Choi
2016-09-02 1:46 ` Chanwoo Choi
2016-09-02 1:23 ` kbuild test robot
2016-09-02 1:23 ` kbuild test robot
2016-09-02 1:23 ` kbuild test robot
2016-09-05 0:49 ` Chanwoo Choi
2016-09-05 0:49 ` Chanwoo Choi
2016-09-05 0:49 ` Chanwoo Choi
2016-09-01 22:31 ` [PATCH 5/5] drm/rockchip: Add dmc notifier in vop driver Lin Huang
2016-09-01 22:31 ` Lin Huang
2016-09-02 0:34 ` kbuild test robot [this message]
2016-09-02 0:34 ` kbuild test robot
2016-09-02 0:34 ` kbuild test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201609020840.6FaQa5pQ%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=airlied@linux.ie \
--cc=cw00.choi@samsung.com \
--cc=dbasehore@chromium.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hl@rock-chips.com \
--cc=kbuild-all@01.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=mark.yao@rock-chips.com \
--cc=mturquette@baylibre.com \
--cc=myungjoo.ham@samsung.com \
--cc=sboyd@codeaurora.org \
--cc=sudeep.holla@arm.com \
--cc=tixy@linaro.org \
--cc=typ@rock-chips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.