Re: [kvm-unit-tests PATCH 01/11] arm/pci: Device tree PCI probing

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

 



On Fri, Feb 05, 2016 at 12:48:50PM +0100, Alexander Gordeev wrote:
> On Wed, Jan 13, 2016 at 04:13:07PM +0100, Andrew Jones wrote:
> > > diff --git a/lib/pci-host-generic.h b/lib/pci-host-generic.h
> > > new file mode 100644
> > > index 0000000..097ac2d
> > > --- /dev/null
> > > +++ b/lib/pci-host-generic.h
> > > @@ -0,0 +1,26 @@
> > > +#ifndef PCI_HOST_GENERIC_H
> > > +#define PCI_HOST_GENERIC_H
> > > +
> > > +struct pci_addr_range {
> > > +	phys_addr_t			start;
> > > +	phys_addr_t			size;
> > > +};
> > > +
> > > +struct pci_addr_space {
> > > +	struct pci_addr_range		cpu_range;
> > > +	struct pci_addr_range		pci_range;
> > > +	phys_addr_t			alloc;
> > 
> > alloc isn't used in this patch, but guess it will be later
> > 
> > > +	u32				of_flags;
> > > +};
> > > +
> > > +struct pci_host_bridge {
> > > +	struct pci_addr_range		cpu_range;
> > > +	int				bus;
> > > +	int				bus_max;
> > > +	int				nr_addr_spaces;
> > > +	struct pci_addr_space		addr_space[];
> > > +};
> > > +
> > > +#define PCI_ECAM_BUS_SIZE		(1 << 20)
> > 
> > Why not put this struct declaration (and supporting structs) in pci.h?
> > Linux has struct pci_host_bridge in include/linux/pci.h
> 
> I think we do not need any of these structures to get public.
> 
> My initial attempt was also an assessment of an idea to
> generalize PCI code across architectures. But my current
> judgement - an outcome is not worth it. With x86 PCI access
> so much different and only bus 0 function 0 "hierarchy" we
> only need the simplest required routines.
> 
> Hence, I would leave these in pci-host-generic.h (just not
> to blow pci-host-generic.c too big).
> 
> As result, just these routines would end up in pci.h:
> 
> 	bool pci_probe(void);
> 	void pci_free(void);	/* pci_shutdown() ? */ 
> 	int pci_bus_scan(void);
> 	int pci_testdev(void);
> 
> Thoughts?

Whichever you prefer. We either "bloat" pci.h or we "bloat" the lib
directory with another file :-) Actually, I still prefer pci.h, because
if arm unit tests will always need both of them, then they'll always
need two #include lines... OTOH, if you don't think unit tests will
need these structures, then they could just be defined right in
pci-host-generic.c (or pci.c if you consolidate the source files).

Thanks,
drew

> 
> > > +
> > > +#endif
> > > diff --git a/lib/pci.h b/lib/pci.h
> > > new file mode 100644
> > > index 0000000..22b8e31
> > > --- /dev/null
> > > +++ b/lib/pci.h
> > > @@ -0,0 +1,13 @@
> > > +#ifndef PCI_H
> > > +#define PCI_H
> > 
> > This file needs its copyright/gpl header. I also like to document
> > the lib here in the header file, e.g. see lib/devicetree.h and
> > lib/alloc.h
> > 
> > > +
> > > +#include "alloc.h"
> > > +
> > > +struct pci {
> > > +	void *sysdata;
> > 
> > The choice of sysdata for the name appears to come from the Linux
> > kernel. Why not also call 'struct pci' 'struct pci_dev' for full
> > consistency?
> > 
> > > +};
> > > +
> > > +extern struct pci *pci_dt_probe(void);
> > > +extern void pci_shutdown(struct pci *pci);
> > > +
> > > +#endif
> > > -- 
> > > 1.8.3.1
> > > 
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux