RE: [PATCH 7/7 v2] usb: dwc3: add the hibernation code itself

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Felipe Balbi [mailto:balbi@xxxxxx]
> Sent: Thursday, February 23, 2012 2:26 AM
> 
> On Wed, Feb 15, 2012 at 06:57:02PM -0800, Paul Zimmerman wrote:
> > @@ -56,7 +55,7 @@ struct dwc3_pci {
> >  static int __devinit dwc3_pci_probe(struct pci_dev *pci,
> >  		const struct pci_device_id *id)
> >  {
> > -	struct resource		res[2];
> > +	struct resource		res[3];
> >  	struct platform_device	*dwc3;
> >  	struct dwc3_pci		*glue;
> >  	int			ret = -ENOMEM;
> > @@ -102,6 +101,16 @@ static int __devinit dwc3_pci_probe(struct pci_dev *pci,
> >  	res[1].name	= "dwc_usb3";
> >  	res[1].flags	= IORESOURCE_IRQ;
> >
> > +	if (pci->vendor == PCI_VENDOR_ID_SYNOPSYS &&
> > +			pci->device == PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3) {
> > +		/* Add dummy resource to tell dwc3 driver this is HAPS */
> > +		dev_vdbg(&pci->dev, "adding dummy resource for HAPS\n");
> > +		res[2].start	= 0;
> > +		res[2].end	= 1;
> > +		res[2].name	= "dwc_usb3_haps";
> > +		res[2].flags	= IORESOURCE_MEM;
> > +	}
> 
> instead, you need to add a dev_pm_ops on this file too (as I said on the
> last mail), then you can move this check to dwc3-pci.c's
> runtime_resume/suspend and call haps specific stuff from there. Just
> make a big code comment stating that HAPS is a special situation because
> it's non-standard FPGA-only platform.
> 
> This will also let you remove the "is_haps" flag from core.c which
> doesn't make much sense anyway. If I let "is_haps" go in, soon we will
> have
> is_my_perfect_special_architecture_which_is_better_then_the_rest_of_you
> for every single user and that makes frightens me quite a lot ;-)

Unfortunately, I don't see a way to make that work. The way the
interface between the modules is designed, dwc3-pci does not have
access to the DWC3 registers. Plus, dwc3-pci does not have access to
the 'struct dwc3' pointer either, so it has no way to see the software
state of the dwc3 driver.

We could redesign that, so the register space is mapped and the
'struct dwc3' is allocated in the glue layer instead of in dwc3.
Would you be up for that? If so, I could prepare an RFC patch for
that.

-- 
Paul

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux