All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <000001d37a7a$ddc3c5b0$994b5110$@gmail.com>

diff --git a/a/1.txt b/N1/1.txt
index b2af181..0ccc245 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,25 +1,21 @@
 On Wednesday, December 20, 2017 2:10 PM, Joao Pinto wrote:
->=20
+> 
 > Hi Niklas,
->=20
-> =C3=80s 11:29 PM de 12/19/2017, Niklas Cassel escreveu:
-> > Use the DMA-API to get the MSI address. This address will be written =
-to
+> 
+> Às 11:29 PM de 12/19/2017, Niklas Cassel escreveu:
+> > Use the DMA-API to get the MSI address. This address will be written to
 > > our PCI config space and to the register which determines which AXI
 > > address the DWC IP will spoof for incoming MSI irqs.
 > >
 > > Since it is a PCIe endpoint device, rather than the CPU, that is
 > supposed
-> > to write to the MSI address, the proper way to get the MSI address =
-is by
+> > to write to the MSI address, the proper way to get the MSI address is by
 > > using the DMA API, not by using virt_to_phys().
 > >
-> > Using virt_to_phys() might work on some systems, but using the DMA =
-API
+> > Using virt_to_phys() might work on some systems, but using the DMA API
 > > should work on all systems.
 > >
-> > This is essentially the same thing as allocating a buffer in a =
-driver
+> > This is essentially the same thing as allocating a buffer in a driver
 > > to which the endpoint will write to. To do this, we use the DMA API.
 > >
 > > Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
@@ -33,43 +29,40 @@ driver
 > > index 81e2157a7cfb..bf558df5b7b3 100644
 > > --- a/drivers/pci/dwc/pcie-designware-host.c
 > > +++ b/drivers/pci/dwc/pcie-designware-host.c
-> > @@ -83,10 +83,19 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port =
-*pp)
+> > @@ -83,10 +83,19 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
 > >
 > >  void dw_pcie_msi_init(struct pcie_port *pp)
 > >  {
-> > +	struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp);
-> > +	struct device *dev =3D pci->dev;
+> > +	struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
+> > +	struct device *dev = pci->dev;
 > > +	struct page *page;
 > >  	u64 msi_target;
 > >
-> > -	pp->msi_data =3D __get_free_pages(GFP_KERNEL, 0);
-> > -	msi_target =3D virt_to_phys((void *)pp->msi_data);
-> > +	page =3D alloc_page(GFP_KERNEL);
-> > +	pp->msi_data =3D dma_map_page(dev, page, 0, PAGE_SIZE,
+> > -	pp->msi_data = __get_free_pages(GFP_KERNEL, 0);
+> > -	msi_target = virt_to_phys((void *)pp->msi_data);
+> > +	page = alloc_page(GFP_KERNEL);
+> > +	pp->msi_data = dma_map_page(dev, page, 0, PAGE_SIZE,
 > DMA_FROM_DEVICE);
 > > +	if (dma_mapping_error(dev, pp->msi_data)) {
 > > +		dev_err(dev, "failed to map MSI data\n");
 > > +		__free_page(page);
 > > +		return;
 > > +	}
-> > +	msi_target =3D (u64)pp->msi_data;
+> > +	msi_target = (u64)pp->msi_data;
 > >
 > >  	/* program the msi_data */
 > >  	dw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4,
-> > @@ -187,7 +196,7 @@ static void dw_msi_setup_msg(struct pcie_port =
-*pp,
+> > @@ -187,7 +196,7 @@ static void dw_msi_setup_msg(struct pcie_port *pp,
 > unsigned int irq, u32 pos)
 > >  	if (pp->ops->get_msi_addr)
-> >  		msi_target =3D pp->ops->get_msi_addr(pp);
+> >  		msi_target = pp->ops->get_msi_addr(pp);
 > >  	else
-> > -		msi_target =3D virt_to_phys((void *)pp->msi_data);
-> > +		msi_target =3D (u64)pp->msi_data;
+> > -		msi_target = virt_to_phys((void *)pp->msi_data);
+> > +		msi_target = (u64)pp->msi_data;
 > >
-> >  	msg.address_lo =3D (u32)(msi_target & 0xffffffff);
-> >  	msg.address_hi =3D (u32)(msi_target >> 32 & 0xffffffff);
-> > diff --git a/drivers/pci/dwc/pcie-designware.h =
-b/drivers/pci/dwc/pcie-
+> >  	msg.address_lo = (u32)(msi_target & 0xffffffff);
+> >  	msg.address_hi = (u32)(msi_target >> 32 & 0xffffffff);
+> > diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-
 > designware.h
 > > index e5d9d77b778e..ecdede68522a 100644
 > > --- a/drivers/pci/dwc/pcie-designware.h
@@ -92,9 +85,9 @@ b/drivers/pci/dwc/pcie-
 > >  };
 > >
 > >
->=20
+> 
 > Makes total sense! Thanks.
->=20
+> 
 > Acked-by: Joao Pinto <jpinto@synopsys.com>
 
 Acked-by: Jingoo Han <jingoohan1@gmail.com>
diff --git a/a/content_digest b/N1/content_digest
index a66ab41..632ccec 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -14,27 +14,23 @@
  "\00:1\0"
  "b\0"
  "On Wednesday, December 20, 2017 2:10 PM, Joao Pinto wrote:\n"
- ">=20\n"
+ "> \n"
  "> Hi Niklas,\n"
- ">=20\n"
- "> =C3=80s 11:29 PM de 12/19/2017, Niklas Cassel escreveu:\n"
- "> > Use the DMA-API to get the MSI address. This address will be written =\n"
- "to\n"
+ "> \n"
+ "> \303\200s 11:29 PM de 12/19/2017, Niklas Cassel escreveu:\n"
+ "> > Use the DMA-API to get the MSI address. This address will be written to\n"
  "> > our PCI config space and to the register which determines which AXI\n"
  "> > address the DWC IP will spoof for incoming MSI irqs.\n"
  "> >\n"
  "> > Since it is a PCIe endpoint device, rather than the CPU, that is\n"
  "> supposed\n"
- "> > to write to the MSI address, the proper way to get the MSI address =\n"
- "is by\n"
+ "> > to write to the MSI address, the proper way to get the MSI address is by\n"
  "> > using the DMA API, not by using virt_to_phys().\n"
  "> >\n"
- "> > Using virt_to_phys() might work on some systems, but using the DMA =\n"
- "API\n"
+ "> > Using virt_to_phys() might work on some systems, but using the DMA API\n"
  "> > should work on all systems.\n"
  "> >\n"
- "> > This is essentially the same thing as allocating a buffer in a =\n"
- "driver\n"
+ "> > This is essentially the same thing as allocating a buffer in a driver\n"
  "> > to which the endpoint will write to. To do this, we use the DMA API.\n"
  "> >\n"
  "> > Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>\n"
@@ -48,43 +44,40 @@
  "> > index 81e2157a7cfb..bf558df5b7b3 100644\n"
  "> > --- a/drivers/pci/dwc/pcie-designware-host.c\n"
  "> > +++ b/drivers/pci/dwc/pcie-designware-host.c\n"
- "> > @@ -83,10 +83,19 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port =\n"
- "*pp)\n"
+ "> > @@ -83,10 +83,19 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)\n"
  "> >\n"
  "> >  void dw_pcie_msi_init(struct pcie_port *pp)\n"
  "> >  {\n"
- "> > +\tstruct dw_pcie *pci =3D to_dw_pcie_from_pp(pp);\n"
- "> > +\tstruct device *dev =3D pci->dev;\n"
+ "> > +\tstruct dw_pcie *pci = to_dw_pcie_from_pp(pp);\n"
+ "> > +\tstruct device *dev = pci->dev;\n"
  "> > +\tstruct page *page;\n"
  "> >  \tu64 msi_target;\n"
  "> >\n"
- "> > -\tpp->msi_data =3D __get_free_pages(GFP_KERNEL, 0);\n"
- "> > -\tmsi_target =3D virt_to_phys((void *)pp->msi_data);\n"
- "> > +\tpage =3D alloc_page(GFP_KERNEL);\n"
- "> > +\tpp->msi_data =3D dma_map_page(dev, page, 0, PAGE_SIZE,\n"
+ "> > -\tpp->msi_data = __get_free_pages(GFP_KERNEL, 0);\n"
+ "> > -\tmsi_target = virt_to_phys((void *)pp->msi_data);\n"
+ "> > +\tpage = alloc_page(GFP_KERNEL);\n"
+ "> > +\tpp->msi_data = dma_map_page(dev, page, 0, PAGE_SIZE,\n"
  "> DMA_FROM_DEVICE);\n"
  "> > +\tif (dma_mapping_error(dev, pp->msi_data)) {\n"
  "> > +\t\tdev_err(dev, \"failed to map MSI data\\n\");\n"
  "> > +\t\t__free_page(page);\n"
  "> > +\t\treturn;\n"
  "> > +\t}\n"
- "> > +\tmsi_target =3D (u64)pp->msi_data;\n"
+ "> > +\tmsi_target = (u64)pp->msi_data;\n"
  "> >\n"
  "> >  \t/* program the msi_data */\n"
  "> >  \tdw_pcie_wr_own_conf(pp, PCIE_MSI_ADDR_LO, 4,\n"
- "> > @@ -187,7 +196,7 @@ static void dw_msi_setup_msg(struct pcie_port =\n"
- "*pp,\n"
+ "> > @@ -187,7 +196,7 @@ static void dw_msi_setup_msg(struct pcie_port *pp,\n"
  "> unsigned int irq, u32 pos)\n"
  "> >  \tif (pp->ops->get_msi_addr)\n"
- "> >  \t\tmsi_target =3D pp->ops->get_msi_addr(pp);\n"
+ "> >  \t\tmsi_target = pp->ops->get_msi_addr(pp);\n"
  "> >  \telse\n"
- "> > -\t\tmsi_target =3D virt_to_phys((void *)pp->msi_data);\n"
- "> > +\t\tmsi_target =3D (u64)pp->msi_data;\n"
+ "> > -\t\tmsi_target = virt_to_phys((void *)pp->msi_data);\n"
+ "> > +\t\tmsi_target = (u64)pp->msi_data;\n"
  "> >\n"
- "> >  \tmsg.address_lo =3D (u32)(msi_target & 0xffffffff);\n"
- "> >  \tmsg.address_hi =3D (u32)(msi_target >> 32 & 0xffffffff);\n"
- "> > diff --git a/drivers/pci/dwc/pcie-designware.h =\n"
- "b/drivers/pci/dwc/pcie-\n"
+ "> >  \tmsg.address_lo = (u32)(msi_target & 0xffffffff);\n"
+ "> >  \tmsg.address_hi = (u32)(msi_target >> 32 & 0xffffffff);\n"
+ "> > diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-\n"
  "> designware.h\n"
  "> > index e5d9d77b778e..ecdede68522a 100644\n"
  "> > --- a/drivers/pci/dwc/pcie-designware.h\n"
@@ -107,9 +100,9 @@
  "> >  };\n"
  "> >\n"
  "> >\n"
- ">=20\n"
+ "> \n"
  "> Makes total sense! Thanks.\n"
- ">=20\n"
+ "> \n"
  "> Acked-by: Joao Pinto <jpinto@synopsys.com>\n"
  "\n"
  "Acked-by: Jingoo Han <jingoohan1@gmail.com>\n"
@@ -117,4 +110,4 @@
  "Best regards,\n"
  Jingoo Han
 
-9eaf420c1779a7f3c010b944c2c92952df6b03782e36b9e715831c18a1c86b9f
+2f0583b882c84a9fb2ea325f5e6a7e6b3e51ee47b4d10ed1ee852a3323581894

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.