Displaying 20 results from an estimated 48 matches for "pci_iomap_range".
2015 Jan 14
0
[PATCH v3 09/16] pci: add pci_iomap_range
...-- a/include/asm-generic/pci_iomap.h
+++ b/include/asm-generic/pci_iomap.h
@@ -15,6 +15,9 @@ struct pci_dev;
#ifdef CONFIG_PCI
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
+extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
+ unsigned long offset,
+ unsigned long maxlen);
/* Create a virtual mapping cookie for a port on a given PCI device.
* Do not call this directly, it exists to make it easier for architectures
* to override */
@@ -30,6 +33,13 @@ static inline void...
2015 Jan 14
0
[PATCH v3 09/16] pci: add pci_iomap_range
...-- a/include/asm-generic/pci_iomap.h
+++ b/include/asm-generic/pci_iomap.h
@@ -15,6 +15,9 @@ struct pci_dev;
#ifdef CONFIG_PCI
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
+extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
+ unsigned long offset,
+ unsigned long maxlen);
/* Create a virtual mapping cookie for a port on a given PCI device.
* Do not call this directly, it exists to make it easier for architectures
* to override */
@@ -30,6 +33,13 @@ static inline void...
2015 Jan 16
1
[PATCH v3 10/16] s390: add pci_iomap_range
...gt; +++ b/arch/s390/pci/pci.c
> @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> }
>
> /* Create a virtual mapping cookie for a PCI BAR */
> -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> + int bar,
> + unsigned long offset,
> + unsigned long max)
> {
> struct zpci_dev *zdev = get_zdev(pdev);
> u64 addr;
> @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
>
>...
2015 Jan 16
1
[PATCH v3 10/16] s390: add pci_iomap_range
...gt; +++ b/arch/s390/pci/pci.c
> @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> }
>
> /* Create a virtual mapping cookie for a PCI BAR */
> -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> + int bar,
> + unsigned long offset,
> + unsigned long max)
> {
> struct zpci_dev *zdev = get_zdev(pdev);
> u64 addr;
> @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
>
>...
2014 Dec 11
0
[PATCH RFC 3/5] pci: add pci_iomap_range
...- a/include/asm-generic/pci_iomap.h
+++ b/include/asm-generic/pci_iomap.h
@@ -15,6 +15,11 @@ struct pci_dev;
#ifdef CONFIG_PCI
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
+extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
+ unsigned offset,
+ unsigned long minlen,
+ unsigned long maxlen,
+ bool force_nocache);
/* Create a virtual mapping cookie for a port on a given PCI device.
* Do not call this directly, it exists to make it easier for architectures...
2014 Dec 11
0
[PATCH RFC 3/5] pci: add pci_iomap_range
...- a/include/asm-generic/pci_iomap.h
+++ b/include/asm-generic/pci_iomap.h
@@ -15,6 +15,11 @@ struct pci_dev;
#ifdef CONFIG_PCI
/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
+extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
+ unsigned offset,
+ unsigned long minlen,
+ unsigned long maxlen,
+ bool force_nocache);
/* Create a virtual mapping cookie for a port on a given PCI device.
* Do not call this directly, it exists to make it easier for architectures...
2014 Dec 15
0
[PATCH RFC 2/5] s390: add pci_iomap_range
...100644
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
}
/* Create a virtual mapping cookie for a PCI BAR */
-void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
+void __iomem *pci_iomap_range(struct pci_dev *pdev,
+ int bar,
+ unsigned long offset,
+ unsigned long max)
{
struct zpci_dev *zdev = get_zdev(pdev);
u64 addr;
@@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
idx = zdev->bars[bar].map_idx;
spin...
2014 Dec 15
0
[PATCH RFC 2/5] s390: add pci_iomap_range
...100644
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
}
/* Create a virtual mapping cookie for a PCI BAR */
-void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
+void __iomem *pci_iomap_range(struct pci_dev *pdev,
+ int bar,
+ unsigned long offset,
+ unsigned long max)
{
struct zpci_dev *zdev = get_zdev(pdev);
u64 addr;
@@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
idx = zdev->bars[bar].map_idx;
spin...
2015 Jan 14
0
[PATCH v3 10/16] s390: add pci_iomap_range
...100644
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
}
/* Create a virtual mapping cookie for a PCI BAR */
-void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
+void __iomem *pci_iomap_range(struct pci_dev *pdev,
+ int bar,
+ unsigned long offset,
+ unsigned long max)
{
struct zpci_dev *zdev = get_zdev(pdev);
u64 addr;
@@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
idx = zdev->bars[bar].map_idx;
spin...
2015 Jan 14
0
[PATCH v3 10/16] s390: add pci_iomap_range
...100644
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
}
/* Create a virtual mapping cookie for a PCI BAR */
-void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
+void __iomem *pci_iomap_range(struct pci_dev *pdev,
+ int bar,
+ unsigned long offset,
+ unsigned long max)
{
struct zpci_dev *zdev = get_zdev(pdev);
u64 addr;
@@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
idx = zdev->bars[bar].map_idx;
spin...
2014 Dec 19
2
[PATCH RFC 2/5] s390: add pci_iomap_range
...gt; +++ b/arch/s390/pci/pci.c
> @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> }
>
> /* Create a virtual mapping cookie for a PCI BAR */
> -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> + int bar,
> + unsigned long offset,
> + unsigned long max)
> {
> struct zpci_dev *zdev = get_zdev(pdev);
> u64 addr;
> @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
>
>...
2014 Dec 19
2
[PATCH RFC 2/5] s390: add pci_iomap_range
...gt; +++ b/arch/s390/pci/pci.c
> @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> }
>
> /* Create a virtual mapping cookie for a PCI BAR */
> -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> + int bar,
> + unsigned long offset,
> + unsigned long max)
> {
> struct zpci_dev *zdev = get_zdev(pdev);
> u64 addr;
> @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
>
>...
2014 Dec 19
0
[PATCH RFC 2/5] s390: add pci_iomap_range
...> > @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> > }
> >
> > /* Create a virtual mapping cookie for a PCI BAR */
> > -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> > +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> > + int bar,
> > + unsigned long offset,
> > + unsigned long max)
> > {
> > struct zpci_dev *zdev = get_zdev(pdev);
> > u64 addr;
> > @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, in...
2014 Dec 19
0
[PATCH RFC 2/5] s390: add pci_iomap_range
...> > @@ -259,7 +259,10 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
> > }
> >
> > /* Create a virtual mapping cookie for a PCI BAR */
> > -void __iomem *pci_iomap(struct pci_dev *pdev, int bar, unsigned long max)
> > +void __iomem *pci_iomap_range(struct pci_dev *pdev,
> > + int bar,
> > + unsigned long offset,
> > + unsigned long max)
> > {
> > struct zpci_dev *zdev = get_zdev(pdev);
> > u64 addr;
> > @@ -270,14 +273,27 @@ void __iomem *pci_iomap(struct pci_dev *pdev, in...
2014 Dec 11
1
[PATCH RFC 3/5] pci: add pci_iomap_range
On Thursday 11 December 2014 21:37:34 Michael S. Tsirkin wrote:
> if (flags & IORESOURCE_MEM) {
> - if (flags & IORESOURCE_CACHEABLE)
> + if (!force_nocache && (flags & IORESOURCE_CACHEABLE))
> return ioremap(start, len);
> return ioremap_nocache(start, len);
> }
>
ioremap
2014 Dec 11
1
[PATCH RFC 3/5] pci: add pci_iomap_range
On Thursday 11 December 2014 21:37:34 Michael S. Tsirkin wrote:
> if (flags & IORESOURCE_MEM) {
> - if (flags & IORESOURCE_CACHEABLE)
> + if (!force_nocache && (flags & IORESOURCE_CACHEABLE))
> return ioremap(start, len);
> return ioremap_nocache(start, len);
> }
>
ioremap
2014 Dec 15
6
[PATCH RFC 0/5] virtio pci: virtio 1.0 support
This is on top of 3.19 master + my bugfix patches, and adds virtio 1.0 support
to virtio pci.
This is 3.20 material I think.
Would like to get feedback on s390 change as it's untested.
Michael S Tsirkin (2):
pci: add pci_iomap_range
s390: add pci_iomap_range
Michael S. Tsirkin (2):
virtio_pci: modern driver
virtio_pci: macros for PCI layout offsets.
Rusty Russell (1):
virtio-pci: define layout for virtio 1.0
arch/s390/include/asm/pci_io.h | 1 +
drivers/virtio/virtio_pci_common.h | 29 +-
include/asm-generic...
2014 Dec 15
6
[PATCH RFC 0/5] virtio pci: virtio 1.0 support
This is on top of 3.19 master + my bugfix patches, and adds virtio 1.0 support
to virtio pci.
This is 3.20 material I think.
Would like to get feedback on s390 change as it's untested.
Michael S Tsirkin (2):
pci: add pci_iomap_range
s390: add pci_iomap_range
Michael S. Tsirkin (2):
virtio_pci: modern driver
virtio_pci: macros for PCI layout offsets.
Rusty Russell (1):
virtio-pci: define layout for virtio 1.0
arch/s390/include/asm/pci_io.h | 1 +
drivers/virtio/virtio_pci_common.h | 29 +-
include/asm-generic...
2011 Nov 14
2
[PATCHv2 RFC] virtio-pci: flexible configuration layout
...off >>= VIRTIO_PCI_CAP_CFG_OFF_SHIFT;
+ off &= VIRTIO_PCI_CAP_CFG_OFF_MASK;
+ /* Align offset appropriately */
+ off &= ~(align - 1);
+
+ /* It's possible for a device to supply a huge config space,
+ * but we'll never need to map more than a page ATM. */
+ p = pci_iomap_range(dev, bir, offset, size, PAGE_SIZE);
+ if (!p)
+ dev_err(&vp_dev->vdev.dev, "Unable to map virtio pci memory");
+ return p;
+err:
+ dev_err(&vp_dev->vdev.dev, "Unable to parse virtio pci capability");
+ return NULL;
+}
+
+static void virtio_pci_iounmap(struct virti...
2011 Nov 14
2
[PATCHv2 RFC] virtio-pci: flexible configuration layout
...off >>= VIRTIO_PCI_CAP_CFG_OFF_SHIFT;
+ off &= VIRTIO_PCI_CAP_CFG_OFF_MASK;
+ /* Align offset appropriately */
+ off &= ~(align - 1);
+
+ /* It's possible for a device to supply a huge config space,
+ * but we'll never need to map more than a page ATM. */
+ p = pci_iomap_range(dev, bir, offset, size, PAGE_SIZE);
+ if (!p)
+ dev_err(&vp_dev->vdev.dev, "Unable to map virtio pci memory");
+ return p;
+err:
+ dev_err(&vp_dev->vdev.dev, "Unable to parse virtio pci capability");
+ return NULL;
+}
+
+static void virtio_pci_iounmap(struct virti...