Re: [PATCH v3 1/2] usb: dwc3: pci: Supply device properties via driver data

2018-07-26 Thread Andy Shevchenko
On Thu, 2018-07-26 at 14:50 +0300, Felipe Balbi wrote:
> Andy Shevchenko  writes:
> 
> > For now all PCI enumerated dwc3 devices require some properties
> > to be present. This allows us to unconditionally append them and
> > supply
> > via driver_data.
> > 
> > No functional change intended.
> > 
> > Signed-off-by: Andy Shevchenko 
> 
> both applied,

Thanks!

>  but I removed your macro below since that only adds
> obfuscation and breaks the simple use-case of navigating with the help
> of ctags/etags.

No hard feelings!

-- 
Andy Shevchenko 
Intel Finland Oy
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 1/2] usb: dwc3: pci: Supply device properties via driver data

2018-07-26 Thread Felipe Balbi
Andy Shevchenko  writes:

> For now all PCI enumerated dwc3 devices require some properties
> to be present. This allows us to unconditionally append them and supply
> via driver_data.
>
> No functional change intended.
>
> Signed-off-by: Andy Shevchenko 

both applied, but I removed your macro below since that only adds
obfuscation and breaks the simple use-case of navigating with the help
of ctags/etags.

-- 
balbi


signature.asc
Description: PGP signature


[PATCH v3 1/2] usb: dwc3: pci: Supply device properties via driver data

2018-07-26 Thread Andy Shevchenko
For now all PCI enumerated dwc3 devices require some properties
to be present. This allows us to unconditionally append them and supply
via driver_data.

No functional change intended.

Signed-off-by: Andy Shevchenko 
---
 drivers/usb/dwc3/dwc3-pci.c | 107 +---
 1 file changed, 50 insertions(+), 57 deletions(-)

diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
index b29f031dfc23..cc4db9a06505 100644
--- a/drivers/usb/dwc3/dwc3-pci.c
+++ b/drivers/usb/dwc3/dwc3-pci.c
@@ -101,52 +101,37 @@ static int dwc3_byt_enable_ulpi_refclock(struct pci_dev 
*pci)
return 0;
 }
 
+static const struct property_entry dwc3_pci_intel_properties[] = {
+   PROPERTY_ENTRY_STRING("dr_mode", "peripheral"),
+   PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
+   {}
+};
+
+static const struct property_entry dwc3_pci_amd_properties[] = {
+   PROPERTY_ENTRY_BOOL("snps,has-lpm-erratum"),
+   PROPERTY_ENTRY_U8("snps,lpm-nyet-threshold", 0xf),
+   PROPERTY_ENTRY_BOOL("snps,u2exit_lfps_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,u2ss_inp3_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,req_p1p2p3_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,del_p1p2p3_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,del_phy_power_chg_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,lfps_filter_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,rx_detect_poll_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,tx_de_emphasis_quirk"),
+   PROPERTY_ENTRY_U8("snps,tx_de_emphasis", 1),
+   /* FIXME these quirks should be removed when AMD NL tapes out */
+   PROPERTY_ENTRY_BOOL("snps,disable_scramble_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,dis_u3_susphy_quirk"),
+   PROPERTY_ENTRY_BOOL("snps,dis_u2_susphy_quirk"),
+   PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
+   {}
+};
+
 static int dwc3_pci_quirks(struct dwc3_pci *dwc)
 {
-   struct platform_device  *dwc3 = dwc->dwc3;
struct pci_dev  *pdev = dwc->pci;
 
-   if (pdev->vendor == PCI_VENDOR_ID_AMD &&
-   pdev->device == PCI_DEVICE_ID_AMD_NL_USB) {
-   struct property_entry properties[] = {
-   PROPERTY_ENTRY_BOOL("snps,has-lpm-erratum"),
-   PROPERTY_ENTRY_U8("snps,lpm-nyet-threshold", 0xf),
-   PROPERTY_ENTRY_BOOL("snps,u2exit_lfps_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,u2ss_inp3_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,req_p1p2p3_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,del_p1p2p3_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,del_phy_power_chg_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,lfps_filter_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,rx_detect_poll_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,tx_de_emphasis_quirk"),
-   PROPERTY_ENTRY_U8("snps,tx_de_emphasis", 1),
-   /*
-* FIXME these quirks should be removed when AMD NL
-* tapes out
-*/
-   PROPERTY_ENTRY_BOOL("snps,disable_scramble_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,dis_u3_susphy_quirk"),
-   PROPERTY_ENTRY_BOOL("snps,dis_u2_susphy_quirk"),
-   PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
-   { },
-   };
-
-   return platform_device_add_properties(dwc3, properties);
-   }
-
if (pdev->vendor == PCI_VENDOR_ID_INTEL) {
-   int ret;
-
-   struct property_entry properties[] = {
-   PROPERTY_ENTRY_STRING("dr_mode", "peripheral"),
-   PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
-   { }
-   };
-
-   ret = platform_device_add_properties(dwc3, properties);
-   if (ret < 0)
-   return ret;
-
if (pdev->device == PCI_DEVICE_ID_INTEL_BXT ||
pdev->device == PCI_DEVICE_ID_INTEL_BXT_M) {
guid_parse(PCI_INTEL_BXT_DSM_GUID, &dwc->guid);
@@ -155,6 +140,7 @@ static int dwc3_pci_quirks(struct dwc3_pci *dwc)
 
if (pdev->device == PCI_DEVICE_ID_INTEL_BYT) {
struct gpio_desc *gpio;
+   int ret;
 
/* On BYT the FW does not always enable the refclock */
ret = dwc3_byt_enable_ulpi_refclock(pdev);
@@ -216,9 +202,9 @@ static void dwc3_pci_resume_work(struct work_struct *work)
 }
 #endif
 
-static int dwc3_pci_probe(struct pci_dev *pci,
-   const struct pci_device_id *id)
+static int dwc3_pci_probe(struct pci_dev *pci, const struct pci_device_id *id)
 {
+   struct property_entry *p = (struct property_entry *)id->driver_data;
struct dwc3_pci *dwc;
struct resource