[PATCH 7/8] usb: typec: altmodes/displayport: Make dp_altmode_notify() more generic
Heikki Krogerus
heikki.krogerus at linux.intel.com
Tue May 11 06:55:36 UTC 2021
On Wed, May 05, 2021 at 06:24:14PM +0200, Hans de Goede wrote:
> Make dp_altmode_notify() handle the dp->data.conf == 0 case too,
> rather then having separate code-paths for this in various places
> which call it.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus at linux.intel.com>
> ---
> drivers/usb/typec/altmodes/displayport.c | 35 +++++++++---------------
> 1 file changed, 13 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c
> index b7f094435b00..aa669b9cf70e 100644
> --- a/drivers/usb/typec/altmodes/displayport.c
> +++ b/drivers/usb/typec/altmodes/displayport.c
> @@ -66,10 +66,17 @@ struct dp_altmode {
>
> static int dp_altmode_notify(struct dp_altmode *dp)
> {
> - u8 state = get_count_order(DP_CONF_GET_PIN_ASSIGN(dp->data.conf));
> + unsigned long conf;
> + u8 state;
> +
> + if (dp->data.conf) {
> + state = get_count_order(DP_CONF_GET_PIN_ASSIGN(dp->data.conf));
> + conf = TYPEC_MODAL_STATE(state);
> + } else {
> + conf = TYPEC_STATE_USB;
> + }
>
> - return typec_altmode_notify(dp->alt, TYPEC_MODAL_STATE(state),
> - &dp->data);
> + return typec_altmode_notify(dp->alt, conf, &dp->data);
> }
>
> static int dp_altmode_configure(struct dp_altmode *dp, u8 con)
> @@ -137,21 +144,10 @@ static int dp_altmode_status_update(struct dp_altmode *dp)
>
> static int dp_altmode_configured(struct dp_altmode *dp)
> {
> - int ret;
> -
> sysfs_notify(&dp->alt->dev.kobj, "displayport", "configuration");
> -
> - if (!dp->data.conf)
> - return typec_altmode_notify(dp->alt, TYPEC_STATE_USB,
> - &dp->data);
> -
> - ret = dp_altmode_notify(dp);
> - if (ret)
> - return ret;
> -
> sysfs_notify(&dp->alt->dev.kobj, "displayport", "pin_assignment");
>
> - return 0;
> + return dp_altmode_notify(dp);
> }
>
> static int dp_altmode_configure_vdm(struct dp_altmode *dp, u32 conf)
> @@ -172,13 +168,8 @@ static int dp_altmode_configure_vdm(struct dp_altmode *dp, u32 conf)
> }
>
> ret = typec_altmode_vdm(dp->alt, header, &conf, 2);
> - if (ret) {
> - if (DP_CONF_GET_PIN_ASSIGN(dp->data.conf))
> - dp_altmode_notify(dp);
> - else
> - typec_altmode_notify(dp->alt, TYPEC_STATE_USB,
> - &dp->data);
> - }
> + if (ret)
> + dp_altmode_notify(dp);
>
> return ret;
> }
> --
> 2.31.1
--
heikki
More information about the dri-devel
mailing list