Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm/dp: remove most of usbpd-related remains

Remove most of remains of downstream usbpd code. Mainline kernel uses
different approach for managing Type-C / USB-PD, so this remains unused.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Patchwork: https://patchwork.freedesktop.org/patch/538270/
Link: https://lore.kernel.org/r/20230520182050.4014143-1-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

+8 -190
-1
drivers/gpu/drm/msm/Makefile
··· 122 122 dp/dp_ctrl.o \ 123 123 dp/dp_display.o \ 124 124 dp/dp_drm.o \ 125 - dp/dp_hpd.o \ 126 125 dp/dp_link.o \ 127 126 dp/dp_panel.o \ 128 127 dp/dp_parser.o \
-1
drivers/gpu/drm/msm/dp/dp_ctrl.h
··· 14 14 #include "dp_catalog.h" 15 15 16 16 struct dp_ctrl { 17 - bool orientation; 18 17 atomic_t aborted; 19 18 bool wide_bus_en; 20 19 };
+2 -4
drivers/gpu/drm/msm/dp/dp_debug.c
··· 21 21 struct dp_debug_private { 22 22 struct dentry *root; 23 23 24 - struct dp_usbpd *usbpd; 25 24 struct dp_link *link; 26 25 struct dp_panel *panel; 27 26 struct drm_connector *connector; ··· 231 232 } 232 233 233 234 struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, 234 - struct dp_usbpd *usbpd, struct dp_link *link, 235 + struct dp_link *link, 235 236 struct drm_connector *connector, struct drm_minor *minor) 236 237 { 237 238 struct dp_debug_private *debug; 238 239 struct dp_debug *dp_debug; 239 240 int rc; 240 241 241 - if (!dev || !panel || !usbpd || !link) { 242 + if (!dev || !panel || !link) { 242 243 DRM_ERROR("invalid input\n"); 243 244 rc = -EINVAL; 244 245 goto error; ··· 251 252 } 252 253 253 254 debug->dp_debug.debug_en = false; 254 - debug->usbpd = usbpd; 255 255 debug->link = link; 256 256 debug->panel = panel; 257 257 debug->dev = dev;
+2 -3
drivers/gpu/drm/msm/dp/dp_debug.h
··· 32 32 * 33 33 * @dev: device instance of the caller 34 34 * @panel: instance of panel module 35 - * @usbpd: instance of usbpd module 36 35 * @link: instance of link module 37 36 * @connector: double pointer to display connector 38 37 * @minor: pointer to drm minor number after device registration ··· 41 42 * for debugfs input to be communicated with existing modules 42 43 */ 43 44 struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, 44 - struct dp_usbpd *usbpd, struct dp_link *link, 45 + struct dp_link *link, 45 46 struct drm_connector *connector, 46 47 struct drm_minor *minor); 47 48 ··· 58 59 59 60 static inline 60 61 struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, 61 - struct dp_usbpd *usbpd, struct dp_link *link, 62 + struct dp_link *link, 62 63 struct drm_connector *connector, struct drm_minor *minor) 63 64 { 64 65 return ERR_PTR(-EINVAL);
+2 -32
drivers/gpu/drm/msm/dp/dp_display.c
··· 14 14 15 15 #include "msm_drv.h" 16 16 #include "msm_kms.h" 17 - #include "dp_hpd.h" 18 17 #include "dp_parser.h" 19 18 #include "dp_power.h" 20 19 #include "dp_catalog.h" ··· 87 88 struct platform_device *pdev; 88 89 struct dentry *root; 89 90 90 - struct dp_usbpd *usbpd; 91 91 struct dp_parser *parser; 92 92 struct dp_power *power; 93 93 struct dp_catalog *catalog; ··· 96 98 struct dp_ctrl *ctrl; 97 99 struct dp_debug *debug; 98 100 99 - struct dp_usbpd_cb usbpd_cb; 100 101 struct dp_display_mode dp_mode; 101 102 struct msm_dp dp_display; 102 103 ··· 460 463 dp->dp_display.connector_type, dp->core_initialized, 461 464 dp->phy_initialized); 462 465 463 - dp_power_init(dp->power, false); 466 + dp_power_init(dp->power); 464 467 dp_ctrl_reset_irq_ctrl(dp->ctrl, true); 465 468 dp_aux_init(dp->aux); 466 469 dp->core_initialized = true; ··· 485 488 dp_display_host_phy_init(dp); 486 489 487 490 return dp_display_process_hpd_high(dp); 488 - } 489 - 490 - static int dp_display_usbpd_disconnect_cb(struct device *dev) 491 - { 492 - return 0; 493 491 } 494 492 495 493 static int dp_display_notify_disconnect(struct device *dev) ··· 571 579 572 580 static int dp_hpd_plug_handle(struct dp_display_private *dp, u32 data) 573 581 { 574 - struct dp_usbpd *hpd = dp->usbpd; 575 582 u32 state; 576 583 int ret; 577 - 578 - if (!hpd) 579 - return 0; 580 584 581 585 mutex_lock(&dp->event_mutex); 582 586 ··· 634 646 635 647 static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data) 636 648 { 637 - struct dp_usbpd *hpd = dp->usbpd; 638 649 u32 state; 639 - 640 - if (!hpd) 641 - return 0; 642 650 643 651 mutex_lock(&dp->event_mutex); 644 652 ··· 748 764 { 749 765 int rc = 0; 750 766 struct device *dev = &dp->pdev->dev; 751 - struct dp_usbpd_cb *cb = &dp->usbpd_cb; 752 767 struct dp_panel_in panel_in = { 753 768 .dev = dev, 754 769 }; 755 - 756 - /* Callback APIs used for cable status change event */ 757 - cb->configure = dp_display_usbpd_configure_cb; 758 - cb->disconnect = dp_display_usbpd_disconnect_cb; 759 - cb->attention = dp_display_usbpd_attention_cb; 760 - 761 - dp->usbpd = dp_hpd_get(dev, cb); 762 - if (IS_ERR(dp->usbpd)) { 763 - rc = PTR_ERR(dp->usbpd); 764 - DRM_ERROR("failed to initialize hpd, rc = %d\n", rc); 765 - dp->usbpd = NULL; 766 - goto error; 767 - } 768 770 769 771 dp->parser = dp_parser_get(dp->pdev); 770 772 if (IS_ERR(dp->parser)) { ··· 1511 1541 dp = container_of(dp_display, struct dp_display_private, dp_display); 1512 1542 dev = &dp->pdev->dev; 1513 1543 1514 - dp->debug = dp_debug_get(dev, dp->panel, dp->usbpd, 1544 + dp->debug = dp_debug_get(dev, dp->panel, 1515 1545 dp->link, dp->dp_display.connector, 1516 1546 minor); 1517 1547 if (IS_ERR(dp->debug)) {
-67
drivers/gpu/drm/msm/dp/dp_hpd.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. 4 - */ 5 - 6 - #define pr_fmt(fmt) "[drm-dp] %s: " fmt, __func__ 7 - 8 - #include <linux/slab.h> 9 - #include <linux/device.h> 10 - 11 - #include "dp_hpd.h" 12 - 13 - /* DP specific VDM commands */ 14 - #define DP_USBPD_VDM_STATUS 0x10 15 - #define DP_USBPD_VDM_CONFIGURE 0x11 16 - 17 - /* USBPD-TypeC specific Macros */ 18 - #define VDM_VERSION 0x0 19 - #define USB_C_DP_SID 0xFF01 20 - 21 - struct dp_hpd_private { 22 - struct device *dev; 23 - struct dp_usbpd_cb *dp_cb; 24 - struct dp_usbpd dp_usbpd; 25 - }; 26 - 27 - int dp_hpd_connect(struct dp_usbpd *dp_usbpd, bool hpd) 28 - { 29 - int rc = 0; 30 - struct dp_hpd_private *hpd_priv; 31 - 32 - hpd_priv = container_of(dp_usbpd, struct dp_hpd_private, 33 - dp_usbpd); 34 - 35 - if (!hpd_priv->dp_cb || !hpd_priv->dp_cb->configure 36 - || !hpd_priv->dp_cb->disconnect) { 37 - pr_err("hpd dp_cb not initialized\n"); 38 - return -EINVAL; 39 - } 40 - if (hpd) 41 - hpd_priv->dp_cb->configure(hpd_priv->dev); 42 - else 43 - hpd_priv->dp_cb->disconnect(hpd_priv->dev); 44 - 45 - return rc; 46 - } 47 - 48 - struct dp_usbpd *dp_hpd_get(struct device *dev, struct dp_usbpd_cb *cb) 49 - { 50 - struct dp_hpd_private *dp_hpd; 51 - 52 - if (!cb) { 53 - pr_err("invalid cb data\n"); 54 - return ERR_PTR(-EINVAL); 55 - } 56 - 57 - dp_hpd = devm_kzalloc(dev, sizeof(*dp_hpd), GFP_KERNEL); 58 - if (!dp_hpd) 59 - return ERR_PTR(-ENOMEM); 60 - 61 - dp_hpd->dev = dev; 62 - dp_hpd->dp_cb = cb; 63 - 64 - dp_hpd->dp_usbpd.connect = dp_hpd_connect; 65 - 66 - return &dp_hpd->dp_usbpd; 67 - }
-78
drivers/gpu/drm/msm/dp/dp_hpd.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0-only */ 2 - /* 3 - * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. 4 - */ 5 - 6 - #ifndef _DP_HPD_H_ 7 - #define _DP_HPD_H_ 8 - 9 - //#include <linux/usb/usbpd.h> 10 - 11 - #include <linux/types.h> 12 - #include <linux/device.h> 13 - 14 - enum plug_orientation { 15 - ORIENTATION_NONE, 16 - ORIENTATION_CC1, 17 - ORIENTATION_CC2, 18 - }; 19 - 20 - /** 21 - * struct dp_usbpd - DisplayPort status 22 - * 23 - * @orientation: plug orientation configuration 24 - * @low_pow_st: low power state 25 - * @adaptor_dp_en: adaptor functionality enabled 26 - * @multi_func: multi-function preferred 27 - * @usb_config_req: request to switch to usb 28 - * @exit_dp_mode: request exit from displayport mode 29 - * @hpd_irq: Change in the status since last message 30 - * @alt_mode_cfg_done: bool to specify alt mode status 31 - * @debug_en: bool to specify debug mode 32 - * @connect: simulate disconnect or connect for debug mode 33 - */ 34 - struct dp_usbpd { 35 - enum plug_orientation orientation; 36 - bool low_pow_st; 37 - bool adaptor_dp_en; 38 - bool multi_func; 39 - bool usb_config_req; 40 - bool exit_dp_mode; 41 - bool hpd_irq; 42 - bool alt_mode_cfg_done; 43 - bool debug_en; 44 - 45 - int (*connect)(struct dp_usbpd *dp_usbpd, bool hpd); 46 - }; 47 - 48 - /** 49 - * struct dp_usbpd_cb - callback functions provided by the client 50 - * 51 - * @configure: called by usbpd module when PD communication has 52 - * been completed and the usb peripheral has been configured on 53 - * dp mode. 54 - * @disconnect: notify the cable disconnect issued by usb. 55 - * @attention: notify any attention message issued by usb. 56 - */ 57 - struct dp_usbpd_cb { 58 - int (*configure)(struct device *dev); 59 - int (*disconnect)(struct device *dev); 60 - int (*attention)(struct device *dev); 61 - }; 62 - 63 - /** 64 - * dp_hpd_get() - setup hpd module 65 - * 66 - * @dev: device instance of the caller 67 - * @cb: struct containing callback function pointers. 68 - * 69 - * This function allows the client to initialize the usbpd 70 - * module. The module will communicate with HPD module. 71 - */ 72 - struct dp_usbpd *dp_hpd_get(struct device *dev, struct dp_usbpd_cb *cb); 73 - 74 - int dp_hpd_register(struct dp_usbpd *dp_usbpd); 75 - void dp_hpd_unregister(struct dp_usbpd *dp_usbpd); 76 - int dp_hpd_connect(struct dp_usbpd *dp_usbpd, bool hpd); 77 - 78 - #endif /* _DP_HPD_H_ */
-1
drivers/gpu/drm/msm/dp/dp_panel.h
··· 10 10 11 11 #include "dp_aux.h" 12 12 #include "dp_link.h" 13 - #include "dp_hpd.h" 14 13 15 14 struct edid; 16 15
+1 -1
drivers/gpu/drm/msm/dp/dp_power.c
··· 195 195 pm_runtime_disable(&power->pdev->dev); 196 196 } 197 197 198 - int dp_power_init(struct dp_power *dp_power, bool flip) 198 + int dp_power_init(struct dp_power *dp_power) 199 199 { 200 200 int rc = 0; 201 201 struct dp_power_private *power = NULL;
+1 -2
drivers/gpu/drm/msm/dp/dp_power.h
··· 26 26 * dp_power_init() - enable power supplies for display controller 27 27 * 28 28 * @power: instance of power module 29 - * @flip: bool for flipping gpio direction 30 29 * return: 0 if success or error if failure. 31 30 * 32 31 * This API will turn on the regulators and configures gpio's 33 32 * aux/hpd. 34 33 */ 35 - int dp_power_init(struct dp_power *power, bool flip); 34 + int dp_power_init(struct dp_power *power); 36 35 37 36 /** 38 37 * dp_power_deinit() - turn off regulators and gpios.