* [PATCH] drm/i915: nuke the intel_lvds_connector
@ 2018-10-09 21:09 Jani Nikula
2018-10-09 21:58 ` ✓ Fi.CI.BAT: success for " Patchwork
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Jani Nikula @ 2018-10-09 21:09 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
For a while we carried lvds connector specific data in the lvds
connector, but since commit 05c72e77ccda ("drm/i915: Nuke the LVDS lid
notifier") we haven't needed it. Revert back to plain intel_connector.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/intel_lvds.c | 42 +++++++++++----------------------------
1 file changed, 12 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 1fe970cf9909..510585ed94b2 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -42,10 +42,6 @@
#include <linux/acpi.h>
/* Private structure for the integrated LVDS support */
-struct intel_lvds_connector {
- struct intel_connector base;
-};
-
struct intel_lvds_pps {
/* 100us units */
int t1_t2;
@@ -70,7 +66,7 @@ struct intel_lvds_encoder {
struct intel_lvds_pps init_pps;
u32 init_lvds_val;
- struct intel_lvds_connector *attached_connector;
+ struct intel_connector *attached_connector;
};
static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
@@ -78,11 +74,6 @@ static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
return container_of(encoder, struct intel_lvds_encoder, base.base);
}
-static struct intel_lvds_connector *to_lvds_connector(struct drm_connector *connector)
-{
- return container_of(connector, struct intel_lvds_connector, base.base);
-}
-
bool intel_lvds_port_enabled(struct drm_i915_private *dev_priv,
i915_reg_t lvds_reg, enum pipe *pipe)
{
@@ -396,7 +387,7 @@ static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder,
struct intel_lvds_encoder *lvds_encoder =
to_lvds_encoder(&intel_encoder->base);
struct intel_connector *intel_connector =
- &lvds_encoder->attached_connector->base;
+ lvds_encoder->attached_connector;
struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
unsigned int lvds_bpp;
@@ -461,15 +452,15 @@ intel_lvds_detect(struct drm_connector *connector, bool force)
*/
static int intel_lvds_get_modes(struct drm_connector *connector)
{
- struct intel_lvds_connector *lvds_connector = to_lvds_connector(connector);
+ struct intel_connector *intel_connector = to_intel_connector(connector);
struct drm_device *dev = connector->dev;
struct drm_display_mode *mode;
/* use cached edid if we have one */
- if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
- return drm_add_edid_modes(connector, lvds_connector->base.edid);
+ if (!IS_ERR_OR_NULL(intel_connector->edid))
+ return drm_add_edid_modes(connector, intel_connector->edid);
- mode = drm_mode_duplicate(dev, lvds_connector->base.panel.fixed_mode);
+ mode = drm_mode_duplicate(dev, intel_connector->panel.fixed_mode);
if (mode == NULL)
return 0;
@@ -781,8 +772,7 @@ static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
return i915_modparams.lvds_channel_mode == 2;
/* single channel LVDS is limited to 112 MHz */
- if (lvds_encoder->attached_connector->base.panel.fixed_mode->clock
- > 112999)
+ if (lvds_encoder->attached_connector->panel.fixed_mode->clock > 112999)
return true;
if (dmi_check_system(intel_dual_link_lvds))
@@ -837,7 +827,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
struct drm_device *dev = &dev_priv->drm;
struct intel_lvds_encoder *lvds_encoder;
struct intel_encoder *intel_encoder;
- struct intel_lvds_connector *lvds_connector;
struct intel_connector *intel_connector;
struct drm_connector *connector;
struct drm_encoder *encoder;
@@ -890,23 +879,16 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
if (!lvds_encoder)
return;
- lvds_connector = kzalloc(sizeof(*lvds_connector), GFP_KERNEL);
- if (!lvds_connector) {
- kfree(lvds_encoder);
- return;
- }
-
- if (intel_connector_init(&lvds_connector->base) < 0) {
- kfree(lvds_connector);
+ intel_connector = intel_connector_alloc();
+ if (!intel_connector) {
kfree(lvds_encoder);
return;
}
- lvds_encoder->attached_connector = lvds_connector;
+ lvds_encoder->attached_connector = intel_connector;
intel_encoder = &lvds_encoder->base;
encoder = &intel_encoder->base;
- intel_connector = &lvds_connector->base;
connector = &intel_connector->base;
drm_connector_init(dev, &intel_connector->base, &intel_lvds_connector_funcs,
DRM_MODE_CONNECTOR_LVDS);
@@ -987,7 +969,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
} else {
edid = ERR_PTR(-ENOENT);
}
- lvds_connector->base.edid = edid;
+ intel_connector->edid = edid;
list_for_each_entry(scan, &connector->probed_modes, head) {
if (scan->type & DRM_MODE_TYPE_PREFERRED) {
@@ -1051,6 +1033,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
drm_connector_cleanup(connector);
drm_encoder_cleanup(encoder);
kfree(lvds_encoder);
- kfree(lvds_connector);
+ intel_connector_free(intel_connector);
return;
}
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
@ 2018-10-09 21:58 ` Patchwork
2018-10-10 0:03 ` ✓ Fi.CI.IGT: " Patchwork
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-09 21:58 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: nuke the intel_lvds_connector
URL : https://patchwork.freedesktop.org/series/50771/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4956 -> Patchwork_10403 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/50771/revisions/1/mbox/
== Known issues ==
Here are the changes found in Patchwork_10403 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@amdgpu/amd_basic@cs-compute:
fi-kbl-8809g: NOTRUN -> FAIL (fdo#108094)
igt@amdgpu/amd_prime@amd-to-i915:
fi-kbl-8809g: NOTRUN -> FAIL (fdo#107341)
igt@gem_exec_suspend@basic-s3:
fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718)
==== Possible fixes ====
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: FAIL (fdo#104008) -> PASS
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#107341 https://bugs.freedesktop.org/show_bug.cgi?id=107341
fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
fdo#108094 https://bugs.freedesktop.org/show_bug.cgi?id=108094
== Participating hosts (48 -> 38) ==
Missing (10): fi-ilk-m540 fi-hsw-4200u fi-glk-dsi fi-icl-u2 fi-byt-squawks fi-snb-2520m fi-bsw-cyan fi-ctg-p8600 fi-hsw-4770 fi-glk-j4005
== Build changes ==
* Linux: CI_DRM_4956 -> Patchwork_10403
CI_DRM_4956: 61d9f59ad3592dd6fb724d72014f03b4f222571b @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4672: 4497591d2572831a9f07fd9e48a2571bfcffe354 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10403: fce1cc335f2893d42b51328b43c55c90e54e73db @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
fce1cc335f28 drm/i915: nuke the intel_lvds_connector
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10403/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
2018-10-09 21:58 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-10-10 0:03 ` Patchwork
2018-10-10 1:59 ` [PATCH] " kbuild test robot
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-10 0:03 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: nuke the intel_lvds_connector
URL : https://patchwork.freedesktop.org/series/50771/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4956_full -> Patchwork_10403_full =
== Summary - WARNING ==
Minor unknown changes coming with Patchwork_10403_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_10403_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_10403_full:
=== IGT changes ===
==== Warnings ====
igt@pm_rc6_residency@rc6-accuracy:
shard-kbl: SKIP -> PASS
== Known issues ==
Here are the changes found in Patchwork_10403_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_cursor_crc@cursor-256x256-sliding:
shard-apl: PASS -> FAIL (fdo#103232)
igt@kms_cursor_crc@cursor-256x85-random:
shard-glk: PASS -> FAIL (fdo#103232)
igt@kms_cursor_crc@cursor-64x64-suspend:
shard-apl: PASS -> FAIL (fdo#103232, fdo#103191)
igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
shard-glk: PASS -> DMESG-WARN (fdo#105763, fdo#106538) +1
igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt:
shard-glk: PASS -> FAIL (fdo#103167) +1
igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render:
shard-skl: PASS -> FAIL (fdo#103167) +1
igt@kms_frontbuffer_tracking@psr-suspend:
shard-skl: PASS -> INCOMPLETE (fdo#107773, fdo#104108, fdo#106978)
igt@kms_plane@pixel-format-pipe-a-planes:
shard-skl: NOTRUN -> DMESG-FAIL (fdo#103166, fdo#106885)
igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
shard-apl: PASS -> FAIL (fdo#103166) +2
igt@perf_pmu@rc6-runtime-pm-long:
shard-skl: PASS -> FAIL (fdo#105010)
igt@pm_rpm@reg-read-ioctl:
shard-skl: PASS -> INCOMPLETE (fdo#107807)
==== Possible fixes ====
igt@gem_userptr_blits@readonly-unsync:
shard-skl: INCOMPLETE (fdo#108074) -> PASS
igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
shard-glk: FAIL (fdo#108145) -> PASS
igt@kms_cursor_crc@cursor-128x42-onscreen:
shard-apl: FAIL (fdo#103232) -> PASS
igt@kms_cursor_crc@cursor-256x256-sliding:
shard-glk: FAIL (fdo#103232) -> PASS +2
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
shard-apl: FAIL (fdo#103167) -> PASS +1
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
shard-glk: FAIL (fdo#103167) -> PASS +4
igt@kms_plane@plane-position-covered-pipe-b-planes:
shard-glk: FAIL (fdo#103166) -> PASS +3
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108
fdo#105010 https://bugs.freedesktop.org/show_bug.cgi?id=105010
fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
fdo#106885 https://bugs.freedesktop.org/show_bug.cgi?id=106885
fdo#106978 https://bugs.freedesktop.org/show_bug.cgi?id=106978
fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773
fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807
fdo#108074 https://bugs.freedesktop.org/show_bug.cgi?id=108074
fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
== Participating hosts (6 -> 6) ==
No changes in participating hosts
== Build changes ==
* Linux: CI_DRM_4956 -> Patchwork_10403
CI_DRM_4956: 61d9f59ad3592dd6fb724d72014f03b4f222571b @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4672: 4497591d2572831a9f07fd9e48a2571bfcffe354 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10403: fce1cc335f2893d42b51328b43c55c90e54e73db @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10403/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
2018-10-09 21:58 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-10-10 0:03 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-10-10 1:59 ` kbuild test robot
2018-10-10 2:10 ` kbuild test robot
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: kbuild test robot @ 2018-10-10 1:59 UTC (permalink / raw)
Cc: jani.nikula, intel-gfx, kbuild-all
[-- Attachment #1: Type: text/plain, Size: 3356 bytes --]
Hi Jani,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.19-rc7 next-20181009]
[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/Jani-Nikula/drm-i915-nuke-the-intel_lvds_connector/20181010-092805
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x000-201840 (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
All error/warnings (new ones prefixed by >>):
drivers/gpu/drm/i915/intel_lvds.c: In function 'intel_lvds_destroy':
>> drivers/gpu/drm/i915/intel_lvds.c:481:3: error: implicit declaration of function 'to_lvds_connector'; did you mean 'to_intel_connector'? [-Werror=implicit-function-declaration]
to_lvds_connector(connector);
^~~~~~~~~~~~~~~~~
to_intel_connector
>> drivers/gpu/drm/i915/intel_lvds.c:481:3: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
>> drivers/gpu/drm/i915/intel_lvds.c:483:36: error: dereferencing pointer to incomplete type 'struct intel_lvds_connector'
if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
^~
cc1: some warnings being treated as errors
vim +481 drivers/gpu/drm/i915/intel_lvds.c
79e53945 Jesse Barnes 2008-11-07 470
79e53945 Jesse Barnes 2008-11-07 471 /**
79e53945 Jesse Barnes 2008-11-07 472 * intel_lvds_destroy - unregister and free LVDS structures
79e53945 Jesse Barnes 2008-11-07 473 * @connector: connector to free
79e53945 Jesse Barnes 2008-11-07 474 *
79e53945 Jesse Barnes 2008-11-07 475 * Unregister the DDC bus for this connector then free the driver private
79e53945 Jesse Barnes 2008-11-07 476 * structure.
79e53945 Jesse Barnes 2008-11-07 477 */
79e53945 Jesse Barnes 2008-11-07 478 static void intel_lvds_destroy(struct drm_connector *connector)
79e53945 Jesse Barnes 2008-11-07 479 {
db1740a0 Jani Nikula 2012-10-19 480 struct intel_lvds_connector *lvds_connector =
db1740a0 Jani Nikula 2012-10-19 @481 to_lvds_connector(connector);
79e53945 Jesse Barnes 2008-11-07 482
9cd300e0 Jani Nikula 2012-10-19 @483 if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
9cd300e0 Jani Nikula 2012-10-19 484 kfree(lvds_connector->base.edid);
9cd300e0 Jani Nikula 2012-10-19 485
1d508706 Jani Nikula 2012-10-19 486 intel_panel_fini(&lvds_connector->base.panel);
aaa6fd2a Matthew Garrett 2011-08-12 487
79e53945 Jesse Barnes 2008-11-07 488 drm_connector_cleanup(connector);
79e53945 Jesse Barnes 2008-11-07 489 kfree(connector);
79e53945 Jesse Barnes 2008-11-07 490 }
79e53945 Jesse Barnes 2008-11-07 491
:::::: The code at line 481 was first introduced by commit
:::::: db1740a0f1a1d60391f60cfd93083f3c091d398a drm/i915/lvds: Move the acpi_lid_notifier from drm_i915_private to the connector
:::::: TO: Jani Nikula <jani.nikula@intel.com>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 29789 bytes --]
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
` (2 preceding siblings ...)
2018-10-10 1:59 ` [PATCH] " kbuild test robot
@ 2018-10-10 2:10 ` kbuild test robot
2018-10-10 9:56 ` Chris Wilson
2018-10-10 10:26 ` Ville Syrjälä
5 siblings, 0 replies; 8+ messages in thread
From: kbuild test robot @ 2018-10-10 2:10 UTC (permalink / raw)
Cc: jani.nikula, intel-gfx, kbuild-all
[-- Attachment #1: Type: text/plain, Size: 3356 bytes --]
Hi Jani,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.19-rc7 next-20181009]
[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/Jani-Nikula/drm-i915-nuke-the-intel_lvds_connector/20181010-092805
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x005-201840 (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
All errors (new ones prefixed by >>):
drivers/gpu//drm/i915/intel_lvds.c: In function 'intel_lvds_destroy':
drivers/gpu//drm/i915/intel_lvds.c:481:3: error: implicit declaration of function 'to_lvds_connector'; did you mean 'to_intel_connector'? [-Werror=implicit-function-declaration]
to_lvds_connector(connector);
^~~~~~~~~~~~~~~~~
to_intel_connector
>> drivers/gpu//drm/i915/intel_lvds.c:481:3: error: initialization makes pointer from integer without a cast [-Werror=int-conversion]
drivers/gpu//drm/i915/intel_lvds.c:483:36: error: dereferencing pointer to incomplete type 'struct intel_lvds_connector'
if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
^~
cc1: all warnings being treated as errors
vim +481 drivers/gpu//drm/i915/intel_lvds.c
79e53945 Jesse Barnes 2008-11-07 470
79e53945 Jesse Barnes 2008-11-07 471 /**
79e53945 Jesse Barnes 2008-11-07 472 * intel_lvds_destroy - unregister and free LVDS structures
79e53945 Jesse Barnes 2008-11-07 473 * @connector: connector to free
79e53945 Jesse Barnes 2008-11-07 474 *
79e53945 Jesse Barnes 2008-11-07 475 * Unregister the DDC bus for this connector then free the driver private
79e53945 Jesse Barnes 2008-11-07 476 * structure.
79e53945 Jesse Barnes 2008-11-07 477 */
79e53945 Jesse Barnes 2008-11-07 478 static void intel_lvds_destroy(struct drm_connector *connector)
79e53945 Jesse Barnes 2008-11-07 479 {
db1740a0 Jani Nikula 2012-10-19 480 struct intel_lvds_connector *lvds_connector =
db1740a0 Jani Nikula 2012-10-19 @481 to_lvds_connector(connector);
79e53945 Jesse Barnes 2008-11-07 482
9cd300e0 Jani Nikula 2012-10-19 483 if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
9cd300e0 Jani Nikula 2012-10-19 484 kfree(lvds_connector->base.edid);
9cd300e0 Jani Nikula 2012-10-19 485
1d508706 Jani Nikula 2012-10-19 486 intel_panel_fini(&lvds_connector->base.panel);
aaa6fd2a Matthew Garrett 2011-08-12 487
79e53945 Jesse Barnes 2008-11-07 488 drm_connector_cleanup(connector);
79e53945 Jesse Barnes 2008-11-07 489 kfree(connector);
79e53945 Jesse Barnes 2008-11-07 490 }
79e53945 Jesse Barnes 2008-11-07 491
:::::: The code at line 481 was first introduced by commit
:::::: db1740a0f1a1d60391f60cfd93083f3c091d398a drm/i915/lvds: Move the acpi_lid_notifier from drm_i915_private to the connector
:::::: TO: Jani Nikula <jani.nikula@intel.com>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35372 bytes --]
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
` (3 preceding siblings ...)
2018-10-10 2:10 ` kbuild test robot
@ 2018-10-10 9:56 ` Chris Wilson
2018-10-10 10:26 ` Ville Syrjälä
5 siblings, 0 replies; 8+ messages in thread
From: Chris Wilson @ 2018-10-10 9:56 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Quoting Jani Nikula (2018-10-09 22:09:16)
> For a while we carried lvds connector specific data in the lvds
> connector, but since commit 05c72e77ccda ("drm/i915: Nuke the LVDS lid
> notifier") we haven't needed it. Revert back to plain intel_connector.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: nuke the intel_lvds_connector
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
` (4 preceding siblings ...)
2018-10-10 9:56 ` Chris Wilson
@ 2018-10-10 10:26 ` Ville Syrjälä
2018-10-10 11:31 ` Jani Nikula
5 siblings, 1 reply; 8+ messages in thread
From: Ville Syrjälä @ 2018-10-10 10:26 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Wed, Oct 10, 2018 at 12:09:16AM +0300, Jani Nikula wrote:
> For a while we carried lvds connector specific data in the lvds
> connector, but since commit 05c72e77ccda ("drm/i915: Nuke the LVDS lid
> notifier") we haven't needed it. Revert back to plain intel_connector.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_lvds.c | 42 +++++++++++----------------------------
> 1 file changed, 12 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 1fe970cf9909..510585ed94b2 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -42,10 +42,6 @@
> #include <linux/acpi.h>
>
> /* Private structure for the integrated LVDS support */
> -struct intel_lvds_connector {
> - struct intel_connector base;
> -};
> -
> struct intel_lvds_pps {
> /* 100us units */
> int t1_t2;
> @@ -70,7 +66,7 @@ struct intel_lvds_encoder {
> struct intel_lvds_pps init_pps;
> u32 init_lvds_val;
>
> - struct intel_lvds_connector *attached_connector;
> + struct intel_connector *attached_connector;
> };
>
> static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
> @@ -78,11 +74,6 @@ static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
> return container_of(encoder, struct intel_lvds_encoder, base.base);
> }
>
> -static struct intel_lvds_connector *to_lvds_connector(struct drm_connector *connector)
> -{
> - return container_of(connector, struct intel_lvds_connector, base.base);
> -}
> -
> bool intel_lvds_port_enabled(struct drm_i915_private *dev_priv,
> i915_reg_t lvds_reg, enum pipe *pipe)
> {
> @@ -396,7 +387,7 @@ static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder,
> struct intel_lvds_encoder *lvds_encoder =
> to_lvds_encoder(&intel_encoder->base);
> struct intel_connector *intel_connector =
> - &lvds_encoder->attached_connector->base;
> + lvds_encoder->attached_connector;
> struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
> struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
> unsigned int lvds_bpp;
> @@ -461,15 +452,15 @@ intel_lvds_detect(struct drm_connector *connector, bool force)
> */
> static int intel_lvds_get_modes(struct drm_connector *connector)
> {
> - struct intel_lvds_connector *lvds_connector = to_lvds_connector(connector);
> + struct intel_connector *intel_connector = to_intel_connector(connector);
> struct drm_device *dev = connector->dev;
> struct drm_display_mode *mode;
>
> /* use cached edid if we have one */
> - if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
> - return drm_add_edid_modes(connector, lvds_connector->base.edid);
> + if (!IS_ERR_OR_NULL(intel_connector->edid))
> + return drm_add_edid_modes(connector, intel_connector->edid);
>
> - mode = drm_mode_duplicate(dev, lvds_connector->base.panel.fixed_mode);
> + mode = drm_mode_duplicate(dev, intel_connector->panel.fixed_mode);
> if (mode == NULL)
> return 0;
>
> @@ -781,8 +772,7 @@ static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
> return i915_modparams.lvds_channel_mode == 2;
>
> /* single channel LVDS is limited to 112 MHz */
> - if (lvds_encoder->attached_connector->base.panel.fixed_mode->clock
> - > 112999)
> + if (lvds_encoder->attached_connector->panel.fixed_mode->clock > 112999)
> return true;
>
> if (dmi_check_system(intel_dual_link_lvds))
> @@ -837,7 +827,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> struct drm_device *dev = &dev_priv->drm;
> struct intel_lvds_encoder *lvds_encoder;
> struct intel_encoder *intel_encoder;
> - struct intel_lvds_connector *lvds_connector;
> struct intel_connector *intel_connector;
> struct drm_connector *connector;
> struct drm_encoder *encoder;
> @@ -890,23 +879,16 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> if (!lvds_encoder)
> return;
>
> - lvds_connector = kzalloc(sizeof(*lvds_connector), GFP_KERNEL);
> - if (!lvds_connector) {
> - kfree(lvds_encoder);
> - return;
> - }
> -
> - if (intel_connector_init(&lvds_connector->base) < 0) {
> - kfree(lvds_connector);
> + intel_connector = intel_connector_alloc();
> + if (!intel_connector) {
> kfree(lvds_encoder);
> return;
> }
>
> - lvds_encoder->attached_connector = lvds_connector;
> + lvds_encoder->attached_connector = intel_connector;
>
> intel_encoder = &lvds_encoder->base;
> encoder = &intel_encoder->base;
> - intel_connector = &lvds_connector->base;
> connector = &intel_connector->base;
> drm_connector_init(dev, &intel_connector->base, &intel_lvds_connector_funcs,
> DRM_MODE_CONNECTOR_LVDS);
> @@ -987,7 +969,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> } else {
> edid = ERR_PTR(-ENOENT);
> }
> - lvds_connector->base.edid = edid;
> + intel_connector->edid = edid;
>
> list_for_each_entry(scan, &connector->probed_modes, head) {
> if (scan->type & DRM_MODE_TYPE_PREFERRED) {
> @@ -1051,6 +1033,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> drm_connector_cleanup(connector);
> drm_encoder_cleanup(encoder);
> kfree(lvds_encoder);
> - kfree(lvds_connector);
> + intel_connector_free(intel_connector);
I was going to say that this will do a double free on the state, but
drm_connector_cleanup() & co. memset(0) the object so this should be
fine.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> return;
> }
> --
> 2.11.0
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: nuke the intel_lvds_connector
2018-10-10 10:26 ` Ville Syrjälä
@ 2018-10-10 11:31 ` Jani Nikula
0 siblings, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2018-10-10 11:31 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Wed, 10 Oct 2018, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Oct 10, 2018 at 12:09:16AM +0300, Jani Nikula wrote:
>> For a while we carried lvds connector specific data in the lvds
>> connector, but since commit 05c72e77ccda ("drm/i915: Nuke the LVDS lid
>> notifier") we haven't needed it. Revert back to plain intel_connector.
>>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_lvds.c | 42 +++++++++++----------------------------
>> 1 file changed, 12 insertions(+), 30 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
>> index 1fe970cf9909..510585ed94b2 100644
>> --- a/drivers/gpu/drm/i915/intel_lvds.c
>> +++ b/drivers/gpu/drm/i915/intel_lvds.c
>> @@ -42,10 +42,6 @@
>> #include <linux/acpi.h>
>>
>> /* Private structure for the integrated LVDS support */
>> -struct intel_lvds_connector {
>> - struct intel_connector base;
>> -};
>> -
>> struct intel_lvds_pps {
>> /* 100us units */
>> int t1_t2;
>> @@ -70,7 +66,7 @@ struct intel_lvds_encoder {
>> struct intel_lvds_pps init_pps;
>> u32 init_lvds_val;
>>
>> - struct intel_lvds_connector *attached_connector;
>> + struct intel_connector *attached_connector;
>> };
>>
>> static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
>> @@ -78,11 +74,6 @@ static struct intel_lvds_encoder *to_lvds_encoder(struct drm_encoder *encoder)
>> return container_of(encoder, struct intel_lvds_encoder, base.base);
>> }
>>
>> -static struct intel_lvds_connector *to_lvds_connector(struct drm_connector *connector)
>> -{
>> - return container_of(connector, struct intel_lvds_connector, base.base);
>> -}
>> -
>> bool intel_lvds_port_enabled(struct drm_i915_private *dev_priv,
>> i915_reg_t lvds_reg, enum pipe *pipe)
>> {
>> @@ -396,7 +387,7 @@ static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder,
>> struct intel_lvds_encoder *lvds_encoder =
>> to_lvds_encoder(&intel_encoder->base);
>> struct intel_connector *intel_connector =
>> - &lvds_encoder->attached_connector->base;
>> + lvds_encoder->attached_connector;
>> struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
>> struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
>> unsigned int lvds_bpp;
>> @@ -461,15 +452,15 @@ intel_lvds_detect(struct drm_connector *connector, bool force)
>> */
>> static int intel_lvds_get_modes(struct drm_connector *connector)
>> {
>> - struct intel_lvds_connector *lvds_connector = to_lvds_connector(connector);
>> + struct intel_connector *intel_connector = to_intel_connector(connector);
>> struct drm_device *dev = connector->dev;
>> struct drm_display_mode *mode;
>>
>> /* use cached edid if we have one */
>> - if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
>> - return drm_add_edid_modes(connector, lvds_connector->base.edid);
>> + if (!IS_ERR_OR_NULL(intel_connector->edid))
>> + return drm_add_edid_modes(connector, intel_connector->edid);
>>
>> - mode = drm_mode_duplicate(dev, lvds_connector->base.panel.fixed_mode);
>> + mode = drm_mode_duplicate(dev, intel_connector->panel.fixed_mode);
>> if (mode == NULL)
>> return 0;
>>
>> @@ -781,8 +772,7 @@ static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
>> return i915_modparams.lvds_channel_mode == 2;
>>
>> /* single channel LVDS is limited to 112 MHz */
>> - if (lvds_encoder->attached_connector->base.panel.fixed_mode->clock
>> - > 112999)
>> + if (lvds_encoder->attached_connector->panel.fixed_mode->clock > 112999)
>> return true;
>>
>> if (dmi_check_system(intel_dual_link_lvds))
>> @@ -837,7 +827,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>> struct drm_device *dev = &dev_priv->drm;
>> struct intel_lvds_encoder *lvds_encoder;
>> struct intel_encoder *intel_encoder;
>> - struct intel_lvds_connector *lvds_connector;
>> struct intel_connector *intel_connector;
>> struct drm_connector *connector;
>> struct drm_encoder *encoder;
>> @@ -890,23 +879,16 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>> if (!lvds_encoder)
>> return;
>>
>> - lvds_connector = kzalloc(sizeof(*lvds_connector), GFP_KERNEL);
>> - if (!lvds_connector) {
>> - kfree(lvds_encoder);
>> - return;
>> - }
>> -
>> - if (intel_connector_init(&lvds_connector->base) < 0) {
>> - kfree(lvds_connector);
>> + intel_connector = intel_connector_alloc();
>> + if (!intel_connector) {
>> kfree(lvds_encoder);
>> return;
>> }
>>
>> - lvds_encoder->attached_connector = lvds_connector;
>> + lvds_encoder->attached_connector = intel_connector;
>>
>> intel_encoder = &lvds_encoder->base;
>> encoder = &intel_encoder->base;
>> - intel_connector = &lvds_connector->base;
>> connector = &intel_connector->base;
>> drm_connector_init(dev, &intel_connector->base, &intel_lvds_connector_funcs,
>> DRM_MODE_CONNECTOR_LVDS);
>> @@ -987,7 +969,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>> } else {
>> edid = ERR_PTR(-ENOENT);
>> }
>> - lvds_connector->base.edid = edid;
>> + intel_connector->edid = edid;
>>
>> list_for_each_entry(scan, &connector->probed_modes, head) {
>> if (scan->type & DRM_MODE_TYPE_PREFERRED) {
>> @@ -1051,6 +1033,6 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>> drm_connector_cleanup(connector);
>> drm_encoder_cleanup(encoder);
>> kfree(lvds_encoder);
>> - kfree(lvds_connector);
>> + intel_connector_free(intel_connector);
>
> I was going to say that this will do a double free on the state, but
> drm_connector_cleanup() & co. memset(0) the object so this should be
> fine.
I'll just note that we do have some work to do in the fail paths in
other connectors...
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Thanks for the review, Chris and Ville. Pushed.
BR,
Jani.
>
>> return;
>> }
>> --
>> 2.11.0
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-10-10 11:38 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-09 21:09 [PATCH] drm/i915: nuke the intel_lvds_connector Jani Nikula
2018-10-09 21:58 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-10-10 0:03 ` ✓ Fi.CI.IGT: " Patchwork
2018-10-10 1:59 ` [PATCH] " kbuild test robot
2018-10-10 2:10 ` kbuild test robot
2018-10-10 9:56 ` Chris Wilson
2018-10-10 10:26 ` Ville Syrjälä
2018-10-10 11:31 ` Jani Nikula
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.