diff for duplicates of <000101d37a7a$fb7209f0$f2561dd0$@gmail.com> diff --git a/a/1.txt b/N1/1.txt index b436d8d..c3c8ab5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,9 @@ On Wednesday, December 20, 2017 2:18 PM, Joao Pinto wrote: ->=20 +> > Hi, ->=20 -> =C3=80s 11:29 PM de 12/19/2017, Niklas Cassel escreveu: -> > Previously, dw_pcie_ep_set_msi() wrote all bits in the Message = -Control +> +> Às 11:29 PM de 12/19/2017, Niklas Cassel escreveu: +> > Previously, dw_pcie_ep_set_msi() wrote all bits in the Message Control > > register, thus overwriting the PCI_MSI_FLAGS_64BIT bit. > > By clearing the PCI_MSI_FLAGS_64BIT bit, we break MSI > > on systems where the RC has set a 64 bit MSI address. @@ -21,21 +20,19 @@ Control > > index d53d5f168363..c92ab87fd660 100644 > > --- a/drivers/pci/dwc/pcie-designware-ep.c > > +++ b/drivers/pci/dwc/pcie-designware-ep.c -> > @@ -220,7 +220,9 @@ static int dw_pcie_ep_set_msi(struct pci_epc = -*epc, +> > @@ -220,7 +220,9 @@ static int dw_pcie_ep_set_msi(struct pci_epc *epc, > u8 encode_int) -> > struct dw_pcie_ep *ep =3D epc_get_drvdata(epc); -> > struct dw_pcie *pci =3D to_dw_pcie_from_ep(ep); +> > struct dw_pcie_ep *ep = epc_get_drvdata(epc); +> > struct dw_pcie *pci = to_dw_pcie_from_ep(ep); > > -> > - val =3D (encode_int << MSI_CAP_MMC_SHIFT); -> > + val =3D dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL); -> > + val &=3D ~MSI_CAP_MMC_MASK; -> > + val |=3D (encode_int << MSI_CAP_MMC_SHIFT) & MSI_CAP_MMC_MASK; +> > - val = (encode_int << MSI_CAP_MMC_SHIFT); +> > + val = dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL); +> > + val &= ~MSI_CAP_MMC_MASK; +> > + val |= (encode_int << MSI_CAP_MMC_SHIFT) & MSI_CAP_MMC_MASK; > > dw_pcie_writew_dbi(pci, MSI_MESSAGE_CONTROL, val); > > > > return 0; -> > diff --git a/drivers/pci/dwc/pcie-designware.h = -b/drivers/pci/dwc/pcie- +> > diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie- > designware.h > > index ecdede68522a..9aaf0cd04dd6 100644 > > --- a/drivers/pci/dwc/pcie-designware.h @@ -49,7 +46,7 @@ b/drivers/pci/dwc/pcie- > > #define MSI_CAP_MME_MASK (7 << MSI_CAP_MME_SHIFT) > > #define MSI_MESSAGE_ADDR_L32 0x54 > > ->=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 f41076c..1eabbb3 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -14,12 +14,11 @@ "\00:1\0" "b\0" "On Wednesday, December 20, 2017 2:18 PM, Joao Pinto wrote:\n" - ">=20\n" + "> \n" "> Hi,\n" - ">=20\n" - "> =C3=80s 11:29 PM de 12/19/2017, Niklas Cassel escreveu:\n" - "> > Previously, dw_pcie_ep_set_msi() wrote all bits in the Message =\n" - "Control\n" + "> \n" + "> \303\200s 11:29 PM de 12/19/2017, Niklas Cassel escreveu:\n" + "> > Previously, dw_pcie_ep_set_msi() wrote all bits in the Message Control\n" "> > register, thus overwriting the PCI_MSI_FLAGS_64BIT bit.\n" "> > By clearing the PCI_MSI_FLAGS_64BIT bit, we break MSI\n" "> > on systems where the RC has set a 64 bit MSI address.\n" @@ -36,21 +35,19 @@ "> > index d53d5f168363..c92ab87fd660 100644\n" "> > --- a/drivers/pci/dwc/pcie-designware-ep.c\n" "> > +++ b/drivers/pci/dwc/pcie-designware-ep.c\n" - "> > @@ -220,7 +220,9 @@ static int dw_pcie_ep_set_msi(struct pci_epc =\n" - "*epc,\n" + "> > @@ -220,7 +220,9 @@ static int dw_pcie_ep_set_msi(struct pci_epc *epc,\n" "> u8 encode_int)\n" - "> > \tstruct dw_pcie_ep *ep =3D epc_get_drvdata(epc);\n" - "> > \tstruct dw_pcie *pci =3D to_dw_pcie_from_ep(ep);\n" + "> > \tstruct dw_pcie_ep *ep = epc_get_drvdata(epc);\n" + "> > \tstruct dw_pcie *pci = to_dw_pcie_from_ep(ep);\n" "> >\n" - "> > -\tval =3D (encode_int << MSI_CAP_MMC_SHIFT);\n" - "> > +\tval =3D dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL);\n" - "> > +\tval &=3D ~MSI_CAP_MMC_MASK;\n" - "> > +\tval |=3D (encode_int << MSI_CAP_MMC_SHIFT) & MSI_CAP_MMC_MASK;\n" + "> > -\tval = (encode_int << MSI_CAP_MMC_SHIFT);\n" + "> > +\tval = dw_pcie_readw_dbi(pci, MSI_MESSAGE_CONTROL);\n" + "> > +\tval &= ~MSI_CAP_MMC_MASK;\n" + "> > +\tval |= (encode_int << MSI_CAP_MMC_SHIFT) & MSI_CAP_MMC_MASK;\n" "> > \tdw_pcie_writew_dbi(pci, MSI_MESSAGE_CONTROL, val);\n" "> >\n" "> > \treturn 0;\n" - "> > diff --git a/drivers/pci/dwc/pcie-designware.h =\n" - "b/drivers/pci/dwc/pcie-\n" + "> > diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-\n" "> designware.h\n" "> > index ecdede68522a..9aaf0cd04dd6 100644\n" "> > --- a/drivers/pci/dwc/pcie-designware.h\n" @@ -64,7 +61,7 @@ "> > #define MSI_CAP_MME_MASK\t\t(7 << MSI_CAP_MME_SHIFT)\n" "> > #define MSI_MESSAGE_ADDR_L32\t\t0x54\n" "> >\n" - ">=20\n" + "> \n" "> Acked-by: Joao Pinto <jpinto@synopsys.com>\n" "\n" "Acked-by: Jingoo Han <jingoohan1@gmail.com>\n" @@ -72,4 +69,4 @@ "Best regards,\n" Jingoo Han -120e283506fc4ba7553dfe6cdf60034250ebf88671744641223bb26872517f6e +ed35ca4b60748e272506c1f8454a6a6ed1352b9e6d85abeeafc4ce85a91b4179
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.