diff for duplicates of <1476969404.2882.26.camel@synopsys.com> diff --git a/a/1.txt b/N1/1.txt index 5ed4085..31e90d1 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,5 +1,5 @@ -On Thu, 2016-10-20@13:48 +0300, Andy Shevchenko wrote: -> On Thu, 2016-09-15@16:14 +0300, Eugeniy Paltsev wrote: +On Thu, 2016-10-20 at 13:48 +0300, Andy Shevchenko wrote: +> On Thu, 2016-09-15 at 16:14 +0300, Eugeniy Paltsev wrote: > > > > This patch is to address a proposal by Andy in this thread: > > http://www.spinics.net/lists/dmaengine/msg10754.html @@ -14,38 +14,38 @@ On Thu, 2016-10-20@13:48 +0300, Andy Shevchenko wrote: No problems. > > > -> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev at synopsys.com> +> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> > > --- -> > ?drivers/dma/dw/core.c????????????????| 31 +++++++++++++++--------- +> > drivers/dma/dw/core.c | 31 +++++++++++++++--------- > > -- -> > ?drivers/dma/dw/platform.c????????????| 42 +++++++++++++++++++++--- +> > drivers/dma/dw/platform.c | 42 +++++++++++++++++++++--- > > - > > ----------- -> > ?include/linux/platform_data/dma-dw.h | 20 +++++++++++------ -> > ?3 files changed, 57 insertions(+), 36 deletions(-) +> > include/linux/platform_data/dma-dw.h | 20 +++++++++++------ +> > 3 files changed, 57 insertions(+), 36 deletions(-) > > > > diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c > > index c2c0a61..9352735 100644 > > --- a/drivers/dma/dw/core.c > > +++ b/drivers/dma/dw/core.c > > @@ -1451,10 +1451,25 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? -> > ? dw->regs = chip->regs; -> > ? chip->dw = dw; +> > +> > dw->regs = chip->regs; +> > chip->dw = dw; > + empty line. > > > > > + /* Reassign the platform data pointer */ > > + pdata = dw->pdata; -> > ? -> > ? pm_runtime_get_sync(chip->dev); -> > ? +> > +> > pm_runtime_get_sync(chip->dev); +> > > > - if (!chip->pdata) { > > + if ((!chip->pdata) || -> > + ???(chip->pdata && test_bit(QUIRKS_ONLY_USED, &chip- +> > + (chip->pdata && test_bit(QUIRKS_ONLY_USED, &chip- > > >pdata- > I don't think you need atomic test / set of those bits. -I don't need?atomic bit operations here, I just used standard bit API +I don't need atomic bit operations here, I just used standard bit API to make code more clear. > > @@ -53,15 +53,15 @@ to make code more clear. > > > quirks))) { > > + > > + /* -> > + ?* Fill quirks with the default values in case of +> > + * Fill quirks with the default values in case of > > pdata absence > /* -> ?* Multi-line comments should include full sentences -> ?* (punctuation matters). -> ?*/ +> * Multi-line comments should include full sentences +> * (punctuation matters). +> */ > > > -> > + ?*/ +> > + */ > > + if (!chip->pdata) { > > + set_bit(QUIRKS_IS_PRIVATE, &pdata- > > >quirks); @@ -71,60 +71,60 @@ to make code more clear. > > + pdata->quirks = chip->pdata->quirks; > > + } > > + -> > ? dw_params = dma_readl(dw, DW_PARAMS); -> > ? dev_dbg(chip->dev, "DW_PARAMS: 0x%08x\n", +> > dw_params = dma_readl(dw, DW_PARAMS); +> > dev_dbg(chip->dev, "DW_PARAMS: 0x%08x\n", > > dw_params); -> > ? +> > > > @@ -1464,9 +1479,6 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? goto err_pdata; -> > ? } -> > ? +> > goto err_pdata; +> > } +> > > > - /* Reassign the platform data pointer */ > > - pdata = dw->pdata; > > - -> > ? /* Get hardware configuration parameters */ -> > ? pdata->nr_channels = (dw_params >> +> > /* Get hardware configuration parameters */ +> > pdata->nr_channels = (dw_params >> > > DW_PARAMS_NR_CHAN > > & 7) + 1; -> > ? pdata->nr_masters = (dw_params >> +> > pdata->nr_masters = (dw_params >> > > DW_PARAMS_NR_MASTER > > & 3) + 1; > > @@ -1477,8 +1489,6 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? pdata->block_size = dma_readl(dw, MAX_BLK_SIZE); -> > ? -> > ? /* Fill platform data with the default values */ +> > pdata->block_size = dma_readl(dw, MAX_BLK_SIZE); +> > +> > /* Fill platform data with the default values */ > > - pdata->is_private = true; > > - pdata->is_memcpy = true; -> > ? pdata->chan_allocation_order = +> > pdata->chan_allocation_order = > > CHAN_ALLOCATION_ASCENDING; -> > ? pdata->chan_priority = CHAN_PRIORITY_ASCENDING; -> > ? } else if (chip->pdata->nr_channels > +> > pdata->chan_priority = CHAN_PRIORITY_ASCENDING; +> > } else if (chip->pdata->nr_channels > > > DW_DMA_MAX_NR_CHANNELS) > > { > > @@ -1486,9 +1496,6 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? goto err_pdata; -> > ? } else { -> > ? memcpy(dw->pdata, chip->pdata, sizeof(*dw- +> > goto err_pdata; +> > } else { +> > memcpy(dw->pdata, chip->pdata, sizeof(*dw- > > >pdata)); > > - > > - /* Reassign the platform data pointer */ > > - pdata = dw->pdata; -> > ? } -> > ? -> > ? dw->chan = devm_kcalloc(chip->dev, pdata->nr_channels, +> > } +> > +> > dw->chan = devm_kcalloc(chip->dev, pdata->nr_channels, > > sizeof(*dw->chan), > > @@ -1569,7 +1576,7 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? (dwc_params >> DWC_PARAMS_MBLK_EN +> > (dwc_params >> DWC_PARAMS_MBLK_EN > > & > > 0x1) == 0; -> > ? } else { -> > ? dwc->block_size = pdata->block_size; +> > } else { +> > dwc->block_size = pdata->block_size; > > - dwc->nollp = pdata->is_nollp; > > + dwc->nollp = test_bit(QUIRKS_IS_NOLLP, > > &pdata->quirks); > Perhaps you need another patch which actually moves nollp to dwc- > >flags. -As I can see, we already have?DW_DMA_IS_SOFT_LLP flag in "dwc->flags" +As I can see, we already have DW_DMA_IS_SOFT_LLP flag in "dwc->flags" with same functionality, which is set if "dwc->nollp" is true. Probably we can use this flag and get rid of "dwc->nollp". But I'm a bit confused why we clear DW_DMA_IS_SOFT_LLP bit in @@ -132,37 +132,37 @@ But I'm a bit confused why we clear DW_DMA_IS_SOFT_LLP bit in Any ideas about that? > > -> > ? } -> > ? } -> > ? +> > } +> > } +> > > > @@ -1582,9 +1589,9 @@ int dw_dma_probe(struct dw_dma_chip *chip) -> > ? -> > ? /* Set capabilities */ -> > ? dma_cap_set(DMA_SLAVE, dw->dma.cap_mask); +> > +> > /* Set capabilities */ +> > dma_cap_set(DMA_SLAVE, dw->dma.cap_mask); > > - if (pdata->is_private) > > + if (test_bit(QUIRKS_IS_PRIVATE, &pdata->quirks)) -> > ? dma_cap_set(DMA_PRIVATE, dw->dma.cap_mask); +> > dma_cap_set(DMA_PRIVATE, dw->dma.cap_mask); > > - if (pdata->is_memcpy) > > + if (test_bit(QUIRKS_IS_MEMCPY, &pdata->quirks)) -> > ? dma_cap_set(DMA_MEMCPY, dw->dma.cap_mask); -> > ? -> > ? dw->dma.dev = chip->dev; +> > dma_cap_set(DMA_MEMCPY, dw->dma.cap_mask); +> > +> > dw->dma.dev = chip->dev; > > diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c > > index 5bda0eb..308b977 100644 > > --- a/drivers/dma/dw/platform.c > > +++ b/drivers/dma/dw/platform.c > > @@ -12,6 +12,7 @@ -> > ? * published by the Free Software Foundation. -> > ? */ -> > ? +> > * published by the Free Software Foundation. +> > */ +> > > > +#include <linux/bitops.h> -> > ?#include <linux/module.h> -> > ?#include <linux/device.h> -> > ?#include <linux/clk.h> +> > #include <linux/module.h> +> > #include <linux/device.h> +> > #include <linux/clk.h> > > @@ -111,41 +112,48 @@ dw_dma_parse_dt(struct platform_device *pdev) -> > ? return NULL; -> > ? } -> > ? +> > return NULL; +> > } +> > > > - if (of_property_read_u32(np, "dma-masters", &nr_masters)) > > - return NULL; > > - if (nr_masters < 1 || nr_masters > DW_DMA_MAX_NR_MASTERS) @@ -172,11 +172,11 @@ Any ideas about that? > > &nr_channels)) > > - return NULL; > > - -> > ? pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), +> > pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), > > GFP_KERNEL); -> > ? if (!pdata) -> > ? return NULL; -> > ? +> > if (!pdata) +> > return NULL; +> > > > + set_bit(QUIRKS_ONLY_USED, &pdata->quirks); > > + > > + if (of_property_read_bool(np, "is-private")) @@ -198,57 +198,57 @@ I'll do that. > > + if (nr_masters < 1 || nr_masters > DW_DMA_MAX_NR_MASTERS) > > + return pdata; > > + -> > ? pdata->nr_masters = nr_masters; +> > pdata->nr_masters = nr_masters; > > - pdata->nr_channels = nr_channels; -> > ? +> > > > - if (of_property_read_bool(np, "is_private")) > > - pdata->is_private = true; > > + if (of_property_read_u32(np, "dma-channels", > > &nr_channels)) > > + return pdata; -> > ? +> > > > - if (!of_property_read_u32(np, "chan_allocation_order", > > &tmp)) > > + pdata->nr_channels = nr_channels; > > + > > + if (!of_property_read_u32(np, "chan-allocation-order", > > &tmp)) -> > ? pdata->chan_allocation_order = (unsigned char)tmp; -> > ? +> > pdata->chan_allocation_order = (unsigned char)tmp; +> > > > - if (!of_property_read_u32(np, "chan_priority", &tmp)) > > + if (!of_property_read_u32(np, "chan-priority", &tmp)) -> > ? pdata->chan_priority = tmp; -> > ? +> > pdata->chan_priority = tmp; +> > > > - if (!of_property_read_u32(np, "block_size", &tmp)) > > + if (!of_property_read_u32(np, "block-size", &tmp)) -> > ? pdata->block_size = tmp; -> > ? -> > ? if (!of_property_read_u32_array(np, "data-width", arr, +> > pdata->block_size = tmp; +> > +> > if (!of_property_read_u32_array(np, "data-width", arr, > > nr_masters)) { -> > ? for (tmp = 0; tmp < nr_masters; tmp++) -> > ? pdata->data_width[tmp] = arr[tmp]; +> > for (tmp = 0; tmp < nr_masters; tmp++) +> > pdata->data_width[tmp] = arr[tmp]; > > - } else if (!of_property_read_u32_array(np, "data_width", > > arr, > > nr_masters)) { > > - for (tmp = 0; tmp < nr_masters; tmp++) > > - pdata->data_width[tmp] = BIT(arr[tmp] & > > 0x07); -> > ? } -> > ? +> > } +> > > > + clear_bit(QUIRKS_ONLY_USED, &pdata->quirks); -> > ? return pdata; -> > ?} -> > ?#else +> > return pdata; +> > } +> > #else > > diff --git a/include/linux/platform_data/dma-dw.h > > b/include/linux/platform_data/dma-dw.h > > index 5f0e11e..9cd8199 100644 > > --- a/include/linux/platform_data/dma-dw.h > > +++ b/include/linux/platform_data/dma-dw.h > > @@ -37,10 +37,7 @@ struct dw_dma_slave { -> > ?/** -> > ? * struct dw_dma_platform_data - Controller configuration +> > /** +> > * struct dw_dma_platform_data - Controller configuration > > parameters -> > ? * @nr_channels: Number of channels supported by hardware (max 8) +> > * @nr_channels: Number of channels supported by hardware (max 8) > > - * @is_private: The device channels should be marked as private > > and > > not for @@ -258,15 +258,15 @@ I'll do that. > > - * @is_nollp: The device channels does not support multi block > > transfers. > > + * @quirks: Bit field with platform quirks -> > ? * @chan_allocation_order: Allocate channels starting from 0 or 7 -> > ? * @chan_priority: Set channel priority increasing from 0 to 7 or +> > * @chan_allocation_order: Allocate channels starting from 0 or 7 +> > * @chan_priority: Set channel priority increasing from 0 to 7 or > > 7 > > to 0. -> > ? * @block_size: Maximum block size supported by the controller +> > * @block_size: Maximum block size supported by the controller > > @@ -50,9 +47,18 @@ struct dw_dma_slave { -> > ? */ -> > ?struct dw_dma_platform_data { -> > ? unsigned int nr_channels; +> > */ +> > struct dw_dma_platform_data { +> > unsigned int nr_channels; > > - bool is_private; > > - bool is_memcpy; > > - bool is_nollp; @@ -288,11 +288,11 @@ Good idea. > > > > + unsigned long quirks; -> > ?#define CHAN_ALLOCATION_ASCENDING 0 /* zero to seven +> > #define CHAN_ALLOCATION_ASCENDING 0 /* zero to seven > > */ -> > ?#define CHAN_ALLOCATION_DESCENDING 1 /* seven to +> > #define CHAN_ALLOCATION_DESCENDING 1 /* seven to > > zero > > */ -> > ? unsigned char chan_allocation_order; +> > unsigned char chan_allocation_order; -- -?Paltsev Eugeniy + Paltsev Eugeniy diff --git a/a/content_digest b/N1/content_digest index 0f968a4..3ab6c3e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,13 +1,20 @@ "ref\01473945253-16649-1-git-send-email-Eugeniy.Paltsev@synopsys.com\0" "ref\01476960501.3693.19.camel@linux.intel.com\0" - "From\0Eugeniy.Paltsev@synopsys.com (Eugeniy Paltsev)\0" - "Subject\0[PATCH] dmaengine: DW DMAC: split pdata to hardware properties and platform quirks\0" + "From\0Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>\0" + "Subject\0Re: [PATCH] dmaengine: DW DMAC: split pdata to hardware properties and platform quirks\0" "Date\0Thu, 20 Oct 2016 13:16:44 +0000\0" - "To\0linux-snps-arc@lists.infradead.org\0" + "To\0andriy.shevchenko@linux.intel.com <andriy.shevchenko@linux.intel.com>\0" + "Cc\0dan.j.williams@intel.com <dan.j.williams@intel.com>" + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + Eugeniy.Paltsev@synopsys.com <Eugeniy.Paltsev@synopsys.com> + vireshk@kernel.org <vireshk@kernel.org> + vinod.koul@intel.com <vinod.koul@intel.com> + linux-snps-arc@lists.infradead.org <linux-snps-arc@lists.infradead.org> + " dmaengine@vger.kernel.org <dmaengine@vger.kernel.org>\0" "\00:1\0" "b\0" - "On Thu, 2016-10-20@13:48 +0300, Andy Shevchenko wrote:\n" - "> On Thu, 2016-09-15@16:14 +0300, Eugeniy Paltsev wrote:\n" + "On Thu, 2016-10-20 at 13:48 +0300, Andy Shevchenko wrote:\n" + "> On Thu, 2016-09-15 at 16:14 +0300, Eugeniy Paltsev wrote:\n" "> > \n" "> > This patch is to address a proposal by Andy in this thread:\n" "> > http://www.spinics.net/lists/dmaengine/msg10754.html\n" @@ -22,38 +29,38 @@ "No problems.\n" "> \n" "> > \n" - "> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev at synopsys.com>\n" + "> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>\n" "> > ---\n" - "> > ?drivers/dma/dw/core.c????????????????| 31 +++++++++++++++---------\n" + "> > \302\240drivers/dma/dw/core.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 31 +++++++++++++++---------\n" "> > --\n" - "> > ?drivers/dma/dw/platform.c????????????| 42 +++++++++++++++++++++---\n" + "> > \302\240drivers/dma/dw/platform.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 42 +++++++++++++++++++++---\n" "> > -\n" "> > -----------\n" - "> > ?include/linux/platform_data/dma-dw.h | 20 +++++++++++------\n" - "> > ?3 files changed, 57 insertions(+), 36 deletions(-)\n" + "> > \302\240include/linux/platform_data/dma-dw.h | 20 +++++++++++------\n" + "> > \302\2403 files changed, 57 insertions(+), 36 deletions(-)\n" "> > \n" "> > diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c\n" "> > index c2c0a61..9352735 100644\n" "> > --- a/drivers/dma/dw/core.c\n" "> > +++ b/drivers/dma/dw/core.c\n" "> > @@ -1451,10 +1451,25 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\n" - "> > ?\tdw->regs = chip->regs;\n" - "> > ?\tchip->dw = dw;\n" + "> > \302\240\n" + "> > \302\240\tdw->regs = chip->regs;\n" + "> > \302\240\tchip->dw = dw;\n" "> + empty line.\n" "> \n" "> > \n" "> > +\t/* Reassign the platform data pointer */\n" "> > +\tpdata = dw->pdata;\n" - "> > ?\n" - "> > ?\tpm_runtime_get_sync(chip->dev);\n" - "> > ?\n" + "> > \302\240\n" + "> > \302\240\tpm_runtime_get_sync(chip->dev);\n" + "> > \302\240\n" "> > -\tif (!chip->pdata) {\n" "> > +\tif ((!chip->pdata) ||\n" - "> > +\t???(chip->pdata && test_bit(QUIRKS_ONLY_USED, &chip-\n" + "> > +\t\302\240\302\240\302\240(chip->pdata && test_bit(QUIRKS_ONLY_USED, &chip-\n" "> > >pdata-\n" "> I don't think you need atomic test / set of those bits.\n" - "I don't need?atomic bit operations here, I just used standard bit API\n" + "I don't need\302\240atomic bit operations here, I just used standard bit API\n" "to make code more clear.\n" "\n" "> > \n" @@ -61,15 +68,15 @@ "> > > quirks))) {\n" "> > +\n" "> > +\t\t/*\n" - "> > +\t\t?* Fill quirks with the default values in case of\n" + "> > +\t\t\302\240* Fill quirks with the default values in case of\n" "> > pdata absence\n" "> /*\n" - "> ?* Multi-line comments should include full sentences\n" - "> ?* (punctuation matters).\n" - "> ?*/\n" + "> \302\240* Multi-line comments should include full sentences\n" + "> \302\240* (punctuation matters).\n" + "> \302\240*/\n" "> \n" "> > \n" - "> > +\t\t?*/\n" + "> > +\t\t\302\240*/\n" "> > +\t\tif (!chip->pdata) {\n" "> > +\t\t\tset_bit(QUIRKS_IS_PRIVATE, &pdata-\n" "> > >quirks);\n" @@ -79,60 +86,60 @@ "> > +\t\t\tpdata->quirks = chip->pdata->quirks;\n" "> > +\t\t}\n" "> > +\n" - "> > ?\t\tdw_params = dma_readl(dw, DW_PARAMS);\n" - "> > ?\t\tdev_dbg(chip->dev, \"DW_PARAMS: 0x%08x\\n\",\n" + "> > \302\240\t\tdw_params = dma_readl(dw, DW_PARAMS);\n" + "> > \302\240\t\tdev_dbg(chip->dev, \"DW_PARAMS: 0x%08x\\n\",\n" "> > dw_params);\n" - "> > ?\n" + "> > \302\240\n" "> > @@ -1464,9 +1479,6 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\t\t\tgoto err_pdata;\n" - "> > ?\t\t}\n" - "> > ?\n" + "> > \302\240\t\t\tgoto err_pdata;\n" + "> > \302\240\t\t}\n" + "> > \302\240\n" "> > -\t\t/* Reassign the platform data pointer */\n" "> > -\t\tpdata = dw->pdata;\n" "> > -\n" - "> > ?\t\t/* Get hardware configuration parameters */\n" - "> > ?\t\tpdata->nr_channels = (dw_params >>\n" + "> > \302\240\t\t/* Get hardware configuration parameters */\n" + "> > \302\240\t\tpdata->nr_channels = (dw_params >>\n" "> > DW_PARAMS_NR_CHAN\n" "> > & 7) + 1;\n" - "> > ?\t\tpdata->nr_masters = (dw_params >>\n" + "> > \302\240\t\tpdata->nr_masters = (dw_params >>\n" "> > DW_PARAMS_NR_MASTER\n" "> > & 3) + 1;\n" "> > @@ -1477,8 +1489,6 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\t\tpdata->block_size = dma_readl(dw, MAX_BLK_SIZE);\n" - "> > ?\n" - "> > ?\t\t/* Fill platform data with the default values */\n" + "> > \302\240\t\tpdata->block_size = dma_readl(dw, MAX_BLK_SIZE);\n" + "> > \302\240\n" + "> > \302\240\t\t/* Fill platform data with the default values */\n" "> > -\t\tpdata->is_private = true;\n" "> > -\t\tpdata->is_memcpy = true;\n" - "> > ?\t\tpdata->chan_allocation_order =\n" + "> > \302\240\t\tpdata->chan_allocation_order =\n" "> > CHAN_ALLOCATION_ASCENDING;\n" - "> > ?\t\tpdata->chan_priority = CHAN_PRIORITY_ASCENDING;\n" - "> > ?\t} else if (chip->pdata->nr_channels >\n" + "> > \302\240\t\tpdata->chan_priority = CHAN_PRIORITY_ASCENDING;\n" + "> > \302\240\t} else if (chip->pdata->nr_channels >\n" "> > DW_DMA_MAX_NR_CHANNELS)\n" "> > {\n" "> > @@ -1486,9 +1496,6 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\t\tgoto err_pdata;\n" - "> > ?\t} else {\n" - "> > ?\t\tmemcpy(dw->pdata, chip->pdata, sizeof(*dw-\n" + "> > \302\240\t\tgoto err_pdata;\n" + "> > \302\240\t} else {\n" + "> > \302\240\t\tmemcpy(dw->pdata, chip->pdata, sizeof(*dw-\n" "> > >pdata));\n" "> > -\n" "> > -\t\t/* Reassign the platform data pointer */\n" "> > -\t\tpdata = dw->pdata;\n" - "> > ?\t}\n" - "> > ?\n" - "> > ?\tdw->chan = devm_kcalloc(chip->dev, pdata->nr_channels,\n" + "> > \302\240\t}\n" + "> > \302\240\n" + "> > \302\240\tdw->chan = devm_kcalloc(chip->dev, pdata->nr_channels,\n" "> > sizeof(*dw->chan),\n" "> > @@ -1569,7 +1576,7 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\t\t\t\t(dwc_params >> DWC_PARAMS_MBLK_EN\n" + "> > \302\240\t\t\t\t(dwc_params >> DWC_PARAMS_MBLK_EN\n" "> > &\n" "> > 0x1) == 0;\n" - "> > ?\t\t} else {\n" - "> > ?\t\t\tdwc->block_size = pdata->block_size;\n" + "> > \302\240\t\t} else {\n" + "> > \302\240\t\t\tdwc->block_size = pdata->block_size;\n" "> > -\t\t\tdwc->nollp = pdata->is_nollp;\n" "> > +\t\t\tdwc->nollp = test_bit(QUIRKS_IS_NOLLP,\n" "> > &pdata->quirks);\n" "> Perhaps you need another patch which actually moves nollp to dwc-\n" "> >flags.\n" - "As I can see, we already have?DW_DMA_IS_SOFT_LLP flag in \"dwc->flags\"\n" + "As I can see, we already have\302\240DW_DMA_IS_SOFT_LLP flag in \"dwc->flags\"\n" "with same functionality, which is set if \"dwc->nollp\" is true. Probably\n" "we can use this flag and get rid of \"dwc->nollp\".\n" "But I'm a bit confused why we clear DW_DMA_IS_SOFT_LLP bit in\n" @@ -140,37 +147,37 @@ "Any ideas about that?\n" "\n" "> > \n" - "> > ?\t\t}\n" - "> > ?\t}\n" - "> > ?\n" + "> > \302\240\t\t}\n" + "> > \302\240\t}\n" + "> > \302\240\n" "> > @@ -1582,9 +1589,9 @@ int dw_dma_probe(struct dw_dma_chip *chip)\n" - "> > ?\n" - "> > ?\t/* Set capabilities */\n" - "> > ?\tdma_cap_set(DMA_SLAVE, dw->dma.cap_mask);\n" + "> > \302\240\n" + "> > \302\240\t/* Set capabilities */\n" + "> > \302\240\tdma_cap_set(DMA_SLAVE, dw->dma.cap_mask);\n" "> > -\tif (pdata->is_private)\n" "> > +\tif (test_bit(QUIRKS_IS_PRIVATE, &pdata->quirks))\n" - "> > ?\t\tdma_cap_set(DMA_PRIVATE, dw->dma.cap_mask);\n" + "> > \302\240\t\tdma_cap_set(DMA_PRIVATE, dw->dma.cap_mask);\n" "> > -\tif (pdata->is_memcpy)\n" "> > +\tif (test_bit(QUIRKS_IS_MEMCPY, &pdata->quirks))\n" - "> > ?\t\tdma_cap_set(DMA_MEMCPY, dw->dma.cap_mask);\n" - "> > ?\n" - "> > ?\tdw->dma.dev = chip->dev;\n" + "> > \302\240\t\tdma_cap_set(DMA_MEMCPY, dw->dma.cap_mask);\n" + "> > \302\240\n" + "> > \302\240\tdw->dma.dev = chip->dev;\n" "> > diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c\n" "> > index 5bda0eb..308b977 100644\n" "> > --- a/drivers/dma/dw/platform.c\n" "> > +++ b/drivers/dma/dw/platform.c\n" "> > @@ -12,6 +12,7 @@\n" - "> > ? * published by the Free Software Foundation.\n" - "> > ? */\n" - "> > ?\n" + "> > \302\240 * published by the Free Software Foundation.\n" + "> > \302\240 */\n" + "> > \302\240\n" "> > +#include <linux/bitops.h>\n" - "> > ?#include <linux/module.h>\n" - "> > ?#include <linux/device.h>\n" - "> > ?#include <linux/clk.h>\n" + "> > \302\240#include <linux/module.h>\n" + "> > \302\240#include <linux/device.h>\n" + "> > \302\240#include <linux/clk.h>\n" "> > @@ -111,41 +112,48 @@ dw_dma_parse_dt(struct platform_device *pdev)\n" - "> > ?\t\treturn NULL;\n" - "> > ?\t}\n" - "> > ?\n" + "> > \302\240\t\treturn NULL;\n" + "> > \302\240\t}\n" + "> > \302\240\n" "> > -\tif (of_property_read_u32(np, \"dma-masters\", &nr_masters))\n" "> > -\t\treturn NULL;\n" "> > -\tif (nr_masters < 1 || nr_masters > DW_DMA_MAX_NR_MASTERS)\n" @@ -180,11 +187,11 @@ "> > &nr_channels))\n" "> > -\t\treturn NULL;\n" "> > -\n" - "> > ?\tpdata = devm_kzalloc(&pdev->dev, sizeof(*pdata),\n" + "> > \302\240\tpdata = devm_kzalloc(&pdev->dev, sizeof(*pdata),\n" "> > GFP_KERNEL);\n" - "> > ?\tif (!pdata)\n" - "> > ?\t\treturn NULL;\n" - "> > ?\n" + "> > \302\240\tif (!pdata)\n" + "> > \302\240\t\treturn NULL;\n" + "> > \302\240\n" "> > +\tset_bit(QUIRKS_ONLY_USED, &pdata->quirks);\n" "> > +\n" "> > +\tif (of_property_read_bool(np, \"is-private\"))\n" @@ -206,57 +213,57 @@ "> > +\tif (nr_masters < 1 || nr_masters > DW_DMA_MAX_NR_MASTERS)\n" "> > +\t\treturn pdata;\n" "> > +\n" - "> > ?\tpdata->nr_masters = nr_masters;\n" + "> > \302\240\tpdata->nr_masters = nr_masters;\n" "> > -\tpdata->nr_channels = nr_channels;\n" - "> > ?\n" + "> > \302\240\n" "> > -\tif (of_property_read_bool(np, \"is_private\"))\n" "> > -\t\tpdata->is_private = true;\n" "> > +\tif (of_property_read_u32(np, \"dma-channels\",\n" "> > &nr_channels))\n" "> > +\t\treturn pdata;\n" - "> > ?\n" + "> > \302\240\n" "> > -\tif (!of_property_read_u32(np, \"chan_allocation_order\",\n" "> > &tmp))\n" "> > +\tpdata->nr_channels = nr_channels;\n" "> > +\n" "> > +\tif (!of_property_read_u32(np, \"chan-allocation-order\",\n" "> > &tmp))\n" - "> > ?\t\tpdata->chan_allocation_order = (unsigned char)tmp;\n" - "> > ?\n" + "> > \302\240\t\tpdata->chan_allocation_order = (unsigned char)tmp;\n" + "> > \302\240\n" "> > -\tif (!of_property_read_u32(np, \"chan_priority\", &tmp))\n" "> > +\tif (!of_property_read_u32(np, \"chan-priority\", &tmp))\n" - "> > ?\t\tpdata->chan_priority = tmp;\n" - "> > ?\n" + "> > \302\240\t\tpdata->chan_priority = tmp;\n" + "> > \302\240\n" "> > -\tif (!of_property_read_u32(np, \"block_size\", &tmp))\n" "> > +\tif (!of_property_read_u32(np, \"block-size\", &tmp))\n" - "> > ?\t\tpdata->block_size = tmp;\n" - "> > ?\n" - "> > ?\tif (!of_property_read_u32_array(np, \"data-width\", arr,\n" + "> > \302\240\t\tpdata->block_size = tmp;\n" + "> > \302\240\n" + "> > \302\240\tif (!of_property_read_u32_array(np, \"data-width\", arr,\n" "> > nr_masters)) {\n" - "> > ?\t\tfor (tmp = 0; tmp < nr_masters; tmp++)\n" - "> > ?\t\t\tpdata->data_width[tmp] = arr[tmp];\n" + "> > \302\240\t\tfor (tmp = 0; tmp < nr_masters; tmp++)\n" + "> > \302\240\t\t\tpdata->data_width[tmp] = arr[tmp];\n" "> > -\t} else if (!of_property_read_u32_array(np, \"data_width\",\n" "> > arr,\n" "> > nr_masters)) {\n" "> > -\t\tfor (tmp = 0; tmp < nr_masters; tmp++)\n" "> > -\t\t\tpdata->data_width[tmp] = BIT(arr[tmp] &\n" "> > 0x07);\n" - "> > ?\t}\n" - "> > ?\n" + "> > \302\240\t}\n" + "> > \302\240\n" "> > +\tclear_bit(QUIRKS_ONLY_USED, &pdata->quirks);\n" - "> > ?\treturn pdata;\n" - "> > ?}\n" - "> > ?#else\n" + "> > \302\240\treturn pdata;\n" + "> > \302\240}\n" + "> > \302\240#else\n" "> > diff --git a/include/linux/platform_data/dma-dw.h\n" "> > b/include/linux/platform_data/dma-dw.h\n" "> > index 5f0e11e..9cd8199 100644\n" "> > --- a/include/linux/platform_data/dma-dw.h\n" "> > +++ b/include/linux/platform_data/dma-dw.h\n" "> > @@ -37,10 +37,7 @@ struct dw_dma_slave {\n" - "> > ?/**\n" - "> > ? * struct dw_dma_platform_data - Controller configuration\n" + "> > \302\240/**\n" + "> > \302\240 * struct dw_dma_platform_data - Controller configuration\n" "> > parameters\n" - "> > ? * @nr_channels: Number of channels supported by hardware (max 8)\n" + "> > \302\240 * @nr_channels: Number of channels supported by hardware (max 8)\n" "> > - * @is_private: The device channels should be marked as private\n" "> > and\n" "> > not for\n" @@ -266,15 +273,15 @@ "> > - * @is_nollp: The device channels does not support multi block\n" "> > transfers.\n" "> > + * @quirks: Bit field with platform quirks\n" - "> > ? * @chan_allocation_order: Allocate channels starting from 0 or 7\n" - "> > ? * @chan_priority: Set channel priority increasing from 0 to 7 or\n" + "> > \302\240 * @chan_allocation_order: Allocate channels starting from 0 or 7\n" + "> > \302\240 * @chan_priority: Set channel priority increasing from 0 to 7 or\n" "> > 7\n" "> > to 0.\n" - "> > ? * @block_size: Maximum block size supported by the controller\n" + "> > \302\240 * @block_size: Maximum block size supported by the controller\n" "> > @@ -50,9 +47,18 @@ struct dw_dma_slave {\n" - "> > ? */\n" - "> > ?struct dw_dma_platform_data {\n" - "> > ?\tunsigned int\tnr_channels;\n" + "> > \302\240 */\n" + "> > \302\240struct dw_dma_platform_data {\n" + "> > \302\240\tunsigned int\tnr_channels;\n" "> > -\tbool\t\tis_private;\n" "> > -\tbool\t\tis_memcpy;\n" "> > -\tbool\t\tis_nollp;\n" @@ -296,13 +303,13 @@ "\n" "> > \n" "> > +\tunsigned long\tquirks;\n" - "> > ?#define CHAN_ALLOCATION_ASCENDING\t0\t/* zero to seven\n" + "> > \302\240#define CHAN_ALLOCATION_ASCENDING\t0\t/* zero to seven\n" "> > */\n" - "> > ?#define CHAN_ALLOCATION_DESCENDING\t1\t/* seven to\n" + "> > \302\240#define CHAN_ALLOCATION_DESCENDING\t1\t/* seven to\n" "> > zero\n" "> > */\n" - "> > ?\tunsigned char\tchan_allocation_order;\n" + "> > \302\240\tunsigned char\tchan_allocation_order;\n" "-- \n" - ?Paltsev Eugeniy + "\302\240Paltsev Eugeniy" -34b870206e19d1d0dc19bd9ffa85be96a611c30c11007958fdd076230b5191d6 +917238c503c7de5c897642f641451df8197e8a0a5acc074d3dcbe6cafdcdfbeb
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.