Hi Heikki,
> -----Original Message-----
> From: [email protected] <[email protected]> On
> Behalf Of Heikki Krogerus
> Sent: Monday, April 15, 2019 5:10 AM
> To: Greg Kroah-Hartman <[email protected]>
> Cc: Ajay Gupta <[email protected]>; [email protected]
> Subject: [PATCH v2 6/7] usb: typec: displayport: Export probe and remove
> functions
>
> From: Ajay Gupta <[email protected]>
>
> VirtualLink standard extends the DisplayPort Alt Mode by utilizing also the
> USB 2
> pins on the USB Type-C connector.
> It uses the same messages as DisplayPort, but not the DP SVID. At the time of
> writing, USB IF has not assigned a Standard ID (SID) for VirtualLink, so the
> manufacturers of VirtualLink adapters use their Vendor IDs as the SVID.
>
> Since the SVID specific communication is exactly the same as with DisplayPort
> alternate mode, there is no need to implement separate driver for VirtualLink.
> We'll handle the current VirtualLink adapters with probe drivers, and once
> there
> is SVID assigned for it, we add it to the displayport alt mode driver.
>
> To support probing drivers, exporting the probe and remove functions, and also
> changing the DP_HEADER helper macro to use the SVID of the alternate mode
> device instead of the DisplayPort alt mode SVID.
>
> Suggested-by: Heikki Krogerus <[email protected]>
> Signed-off-by: Ajay Gupta <[email protected]>
> Signed-off-by: Heikki Krogerus <[email protected]>
> ---
> drivers/usb/typec/altmodes/displayport.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
Looks like you missed adding displayport.h file. It is available in original
patch below,
https://marc.info/?l=linux-usb&m=155492587224379&w=2
Thanks
> nvpublic
> diff --git a/drivers/usb/typec/altmodes/displayport.c
> b/drivers/usb/typec/altmodes/displayport.c
> index 1b2afeb1eeb6..4092248a5936 100644
> --- a/drivers/usb/typec/altmodes/displayport.c
> +++ b/drivers/usb/typec/altmodes/displayport.c
> @@ -14,7 +14,7 @@
> #include <linux/usb/pd_vdo.h>
> #include <linux/usb/typec_dp.h>
>
> -#define DP_HEADER(cmd) (VDO(USB_TYPEC_DP_SID, 1,
> cmd) | \
> +#define DP_HEADER(_dp, cmd) (VDO((_dp)->alt->svid, 1, cmd) | \
> VDO_OPOS(USB_TYPEC_DP_MODE))
>
> enum {
> @@ -155,7 +155,7 @@ static int dp_altmode_configured(struct dp_altmode
> *dp)
>
> static int dp_altmode_configure_vdm(struct dp_altmode *dp, u32 conf) {
> - u32 header = DP_HEADER(DP_CMD_CONFIGURE);
> + u32 header = DP_HEADER(dp, DP_CMD_CONFIGURE);
> int ret;
>
> ret = typec_altmode_notify(dp->alt, TYPEC_STATE_SAFE, &dp->data);
> @@ -193,7 +193,7 @@ static void dp_altmode_work(struct work_struct *work)
> dev_err(&dp->alt->dev, "failed to enter mode\n");
> break;
> case DP_STATE_UPDATE:
> - header = DP_HEADER(DP_CMD_STATUS_UPDATE);
> + header = DP_HEADER(dp, DP_CMD_STATUS_UPDATE);
> vdo = 1;
> ret = typec_altmode_vdm(dp->alt, header, &vdo, 2);
> if (ret)
> @@ -507,7 +507,7 @@ static const struct attribute_group dp_altmode_group =
> {
> .attrs = dp_altmode_attrs,
> };
>
> -static int dp_altmode_probe(struct typec_altmode *alt)
> +int dp_altmode_probe(struct typec_altmode *alt)
> {
> const struct typec_altmode *port = typec_altmode_get_partner(alt);
> struct dp_altmode *dp;
> @@ -545,14 +545,16 @@ static int dp_altmode_probe(struct typec_altmode
> *alt)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(dp_altmode_probe);
>
> -static void dp_altmode_remove(struct typec_altmode *alt)
> +void dp_altmode_remove(struct typec_altmode *alt)
> {
> struct dp_altmode *dp = typec_altmode_get_drvdata(alt);
>
> sysfs_remove_group(&alt->dev.kobj, &dp_altmode_group);
> cancel_work_sync(&dp->work);
> }
> +EXPORT_SYMBOL_GPL(dp_altmode_remove);
>
> static const struct typec_device_id dp_typec_id[] = {
> { USB_TYPEC_DP_SID, USB_TYPEC_DP_MODE },
> --
> 2.20.1