Message ID | 20240329-qcom-ucsi-fixes-v2-8-0f5d37ed04db@linaro.org |
---|---|
State | New |
Headers | show |
Series | usb: typec: ucsi: fix several issues manifesting on Qualcomm platforms | expand |
On Fri, Mar 29, 2024 at 08:15:40AM +0200, Dmitry Baryshkov wrote: > In preparation to adding more quirks, extract quirks to the static > variables and reference them through match->data. Otherwise adding > more quirks will add the table really cumbersome. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/usb/typec/ucsi/ucsi_glink.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c > index 932e7bf69447..d7a18950faab 100644 > --- a/drivers/usb/typec/ucsi/ucsi_glink.c > +++ b/drivers/usb/typec/ucsi/ucsi_glink.c > @@ -297,12 +297,14 @@ static void pmic_glink_ucsi_destroy(void *data) > mutex_unlock(&ucsi->lock); > } > > +static unsigned long quirk_sc8180x = UCSI_NO_PARTNER_PDOS; > + > static const struct of_device_id pmic_glink_ucsi_of_quirks[] = { > - { .compatible = "qcom,qcm6490-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, > - { .compatible = "qcom,sc8180x-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, > - { .compatible = "qcom,sc8280xp-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, > - { .compatible = "qcom,sm8350-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, > - { .compatible = "qcom,sm8550-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, > + { .compatible = "qcom,qcm6490-pmic-glink", .data = &quirk_sc8180x, }, > + { .compatible = "qcom,sc8180x-pmic-glink", .data = &quirk_sc8180x, }, > + { .compatible = "qcom,sc8280xp-pmic-glink", .data = &quirk_sc8180x, }, > + { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, }, > + { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sc8180x, }, > {} > }; > > @@ -340,7 +342,7 @@ static int pmic_glink_ucsi_probe(struct auxiliary_device *adev, > > match = of_match_device(pmic_glink_ucsi_of_quirks, dev->parent); > if (match) > - ucsi->ucsi->quirks = (unsigned long)match->data; > + ucsi->ucsi->quirks = *(unsigned long *)match->data; > > ucsi_set_drvdata(ucsi->ucsi, ucsi); > > > -- > 2.39.2
diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c index 932e7bf69447..d7a18950faab 100644 --- a/drivers/usb/typec/ucsi/ucsi_glink.c +++ b/drivers/usb/typec/ucsi/ucsi_glink.c @@ -297,12 +297,14 @@ static void pmic_glink_ucsi_destroy(void *data) mutex_unlock(&ucsi->lock); } +static unsigned long quirk_sc8180x = UCSI_NO_PARTNER_PDOS; + static const struct of_device_id pmic_glink_ucsi_of_quirks[] = { - { .compatible = "qcom,qcm6490-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, - { .compatible = "qcom,sc8180x-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, - { .compatible = "qcom,sc8280xp-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, - { .compatible = "qcom,sm8350-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, - { .compatible = "qcom,sm8550-pmic-glink", .data = (void *)UCSI_NO_PARTNER_PDOS, }, + { .compatible = "qcom,qcm6490-pmic-glink", .data = &quirk_sc8180x, }, + { .compatible = "qcom,sc8180x-pmic-glink", .data = &quirk_sc8180x, }, + { .compatible = "qcom,sc8280xp-pmic-glink", .data = &quirk_sc8180x, }, + { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, }, + { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sc8180x, }, {} }; @@ -340,7 +342,7 @@ static int pmic_glink_ucsi_probe(struct auxiliary_device *adev, match = of_match_device(pmic_glink_ucsi_of_quirks, dev->parent); if (match) - ucsi->ucsi->quirks = (unsigned long)match->data; + ucsi->ucsi->quirks = *(unsigned long *)match->data; ucsi_set_drvdata(ucsi->ucsi, ucsi);
In preparation to adding more quirks, extract quirks to the static variables and reference them through match->data. Otherwise adding more quirks will add the table really cumbersome. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/usb/typec/ucsi/ucsi_glink.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)