All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1481069081.7840.3.camel@aj.id.au>

diff --git a/a/1.txt b/N1/1.txt
index ad598e9..c6594a9 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,5 +1,5 @@
-On Tue, 2016-12-06 at 16:02 +0100, C?dric Le Goater wrote:
-> [ this is a resend bc of some mailing list issues]?
+On Tue, 2016-12-06 at 16:02 +0100, Cédric Le Goater wrote:
+> [ this is a resend bc of some mailing list issues] 
 
 Thanks for resending.
 
@@ -22,7 +22,7 @@ Thanks for resending.
 > > 
 > > Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
 > 
-> It would be nice to have an example of the associated binding.?
+> It would be nice to have an example of the associated binding. 
 > I did not see it.
 
 Essentially because the approach of the patch means there's no required
@@ -30,7 +30,7 @@ change to the bindings documentation. So, pulling together the various
 patches I've sent out, a partial devicetree using the new bindings
 might look something like:
 
-lpc: lpc at 1e789000 {
+lpc: lpc@1e789000 {
 	compatible = "aspeed,ast2500-lpc", "simple-mfd";
 	reg = <0x1e789000 0x1000>;
 
@@ -38,13 +38,13 @@ lpc: lpc at 1e789000 {
 	#size-cells = <1>;
 	ranges = <0 0x1e789000 0x1000>;
 
-	lpc_bmc: lpc-bmc at 0 {
+	lpc_bmc: lpc-bmc@0 {
 		compatible = "aspeed,ast2500-lpc-bmc";
 		reg = <0x0 0x80>;
 		reg-io-width = <1>;
 	};
 
-	lpc_host: lpc-host at 80 {
+	lpc_host: lpc-host@80 {
 		compatible = "aspeed,ast2500-lpc-host", "simple-mfd", "syscon";
 		reg = <0x80 0x1e0>;
 
@@ -54,7 +54,7 @@ lpc: lpc at 1e789000 {
 
 		reg-io-width = <4>;
 
-		ibt: ibt at c0 {
+		ibt: ibt@c0 {
 			compatible = "aspeed,ast2400-bt-bmc";
 			reg = <0xc0 0x18>;
 			interrupts = <8>;
@@ -72,69 +72,69 @@ Andrew
 
 >  A part from that :
 > 
-> > Reviewed-by: C?dric Le Goater <clg@kaod.org>
+> > Reviewed-by: Cédric Le Goater <clg@kaod.org>
 > 
 > Thanks,
 > 
 > C.
 > 
 > > ---
-> > ?drivers/char/ipmi/Kconfig??|??1 +
-> > ?drivers/char/ipmi/bt-bmc.c | 82 ++++++++++++++++++++++++++++++++++------------
-> > ?2 files changed, 62 insertions(+), 21 deletions(-)
+> >  drivers/char/ipmi/Kconfig  |  1 +
+> >  drivers/char/ipmi/bt-bmc.c | 82 ++++++++++++++++++++++++++++++++++------------
+> >  2 files changed, 62 insertions(+), 21 deletions(-)
 > > 
 > > diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig
 > > index 7f816655cbbf..b5d48d9af124 100644
 > > --- a/drivers/char/ipmi/Kconfig
 > > +++ b/drivers/char/ipmi/Kconfig
 > > @@ -79,6 +79,7 @@ endif # IPMI_HANDLER
-> > ?
-> > ?config ASPEED_BT_IPMI_BMC
-> > > > ?	depends on ARCH_ASPEED
-> > +????????depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
-> > > > ?	tristate "BT IPMI bmc driver"
-> > > > ?	help
-> > > > ?	??Provides a driver for the BT (Block Transfer) IPMI interface
+> >  
+> >  config ASPEED_BT_IPMI_BMC
+> > > >  	depends on ARCH_ASPEED
+> > +        depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
+> > > >  	tristate "BT IPMI bmc driver"
+> > > >  	help
+> > > >  	  Provides a driver for the BT (Block Transfer) IPMI interface
 > > diff --git a/drivers/char/ipmi/bt-bmc.c b/drivers/char/ipmi/bt-bmc.c
 > > index fc9e8891eae3..ca1e20f6c6c5 100644
 > > --- a/drivers/char/ipmi/bt-bmc.c
 > > +++ b/drivers/char/ipmi/bt-bmc.c
 > > @@ -12,10 +12,13 @@
-> > ?#include <linux/errno.h>
-> > ?#include <linux/interrupt.h>
-> > ?#include <linux/io.h>
+> >  #include <linux/errno.h>
+> >  #include <linux/interrupt.h>
+> >  #include <linux/io.h>
 > > +#include <linux/mfd/syscon.h>
-> > ?#include <linux/miscdevice.h>
-> > ?#include <linux/module.h>
+> >  #include <linux/miscdevice.h>
+> >  #include <linux/module.h>
 > > +#include <linux/of.h>
-> > ?#include <linux/platform_device.h>
-> > ?#include <linux/poll.h>
+> >  #include <linux/platform_device.h>
+> >  #include <linux/poll.h>
 > > +#include <linux/regmap.h>
-> > ?#include <linux/sched.h>
-> > ?#include <linux/timer.h>
-> > ?
+> >  #include <linux/sched.h>
+> >  #include <linux/timer.h>
+> >  
 > > @@ -60,7 +63,8 @@
-> > ?struct bt_bmc {
-> > > > > > ?	struct device		dev;
-> > > > > > ?	struct miscdevice	miscdev;
+> >  struct bt_bmc {
+> > > > > >  	struct device		dev;
+> > > > > >  	struct miscdevice	miscdev;
 > > > > > > -	void __iomem		*base;
 > > > > > > +	struct regmap		*map;
 > > > > > > +	int			offset;
-> > > > > > ?	int			irq;
-> > > > > > ?	wait_queue_head_t	queue;
-> > > > > > ?	struct timer_list	poll_timer;
+> > > > > >  	int			irq;
+> > > > > >  	wait_queue_head_t	queue;
+> > > > > >  	struct timer_list	poll_timer;
 > > @@ -69,14 +73,31 @@ struct bt_bmc {
-> > ?
-> > ?static atomic_t open_count = ATOMIC_INIT(0);
-> > ?
+> >  
+> >  static atomic_t open_count = ATOMIC_INIT(0);
+> >  
 > > +static struct regmap_config bt_regmap_cfg = {
 > > > > +	.reg_bits = 32,
 > > > > +	.val_bits = 32,
 > > > > +	.reg_stride = 4,
 > > +};
 > > +
-> > ?static u8 bt_inb(struct bt_bmc *bt_bmc, int reg)
-> > ?{
+> >  static u8 bt_inb(struct bt_bmc *bt_bmc, int reg)
+> >  {
 > > > > -	return ioread8(bt_bmc->base + reg);
 > > > > +	uint32_t val = 0;
 > > > > +	int rc;
@@ -144,75 +144,75 @@ Andrew
 > > > > +			__FILE__, __LINE__, rc);
 > > +
 > > > > +	return rc == 0 ? (u8) val : 0;
-> > ?}
-> > ?
-> > ?static void bt_outb(struct bt_bmc *bt_bmc, u8 data, int reg)
-> > ?{
+> >  }
+> >  
+> >  static void bt_outb(struct bt_bmc *bt_bmc, u8 data, int reg)
+> >  {
 > > > > -	iowrite8(data, bt_bmc->base + reg);
 > > > > +	int rc;
 > > +
 > > > > +	rc = regmap_write(bt_bmc->map, bt_bmc->offset + reg, data);
 > > > > +	WARN(rc != 0, "%s:%d: regmap_write() failed: %d\n",
 > > > > +			__FILE__, __LINE__, rc);
-> > ?}
-> > ?
-> > ?static void clr_rd_ptr(struct bt_bmc *bt_bmc)
+> >  }
+> >  
+> >  static void clr_rd_ptr(struct bt_bmc *bt_bmc)
 > > @@ -367,14 +388,18 @@ static irqreturn_t bt_bmc_irq(int irq, void *arg)
-> > ?{
-> > > > ?	struct bt_bmc *bt_bmc = arg;
-> > > > ?	u32 reg;
+> >  {
+> > > >  	struct bt_bmc *bt_bmc = arg;
+> > > >  	u32 reg;
 > > > > +	int rc;
 > > +
 > > > > +	rc = regmap_read(bt_bmc->map, bt_bmc->offset + BT_CR2, &reg);
 > > > > +	if (rc)
 > > > > +		return IRQ_NONE;
-> > ?
+> >  
 > > > > -	reg = ioread32(bt_bmc->base + BT_CR2);
-> > > > ?	reg &= BT_CR2_IRQ_H2B | BT_CR2_IRQ_HBUSY;
-> > > > ?	if (!reg)
-> > > > ?		return IRQ_NONE;
-> > ?
-> > > > ?	/* ack pending IRQs */
+> > > >  	reg &= BT_CR2_IRQ_H2B | BT_CR2_IRQ_HBUSY;
+> > > >  	if (!reg)
+> > > >  		return IRQ_NONE;
+> >  
+> > > >  	/* ack pending IRQs */
 > > > > -	iowrite32(reg, bt_bmc->base + BT_CR2);
 > > > > +	regmap_write(bt_bmc->map, bt_bmc->offset + BT_CR2, reg);
-> > ?
-> > > > ?	wake_up(&bt_bmc->queue);
-> > > > ?	return IRQ_HANDLED;
+> >  
+> > > >  	wake_up(&bt_bmc->queue);
+> > > >  	return IRQ_HANDLED;
 > > @@ -384,7 +409,6 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,
-> > > > ?			?????struct platform_device *pdev)
-> > ?{
-> > > > ?	struct device *dev = &pdev->dev;
+> > > >  			     struct platform_device *pdev)
+> >  {
+> > > >  	struct device *dev = &pdev->dev;
 > > > > -	u32 reg;
-> > > > ?	int rc;
-> > ?
-> > > > ?	bt_bmc->irq = platform_get_irq(pdev, 0);
+> > > >  	int rc;
+> >  
+> > > >  	bt_bmc->irq = platform_get_irq(pdev, 0);
 > > @@ -405,18 +429,17 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,
-> > > > ?	?* will be cleared (along with B2H) when we can write the next
-> > > > ?	?* message to the BT buffer
-> > > > ?	?*/
+> > > >  	 * will be cleared (along with B2H) when we can write the next
+> > > >  	 * message to the BT buffer
+> > > >  	 */
 > > > > -	reg = ioread32(bt_bmc->base + BT_CR1);
 > > > > -	reg |= BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY;
 > > > > -	iowrite32(reg, bt_bmc->base + BT_CR1);
 > > > > +	rc = regmap_update_bits(bt_bmc->map, bt_bmc->offset + BT_CR1,
 > > > > +				(BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY),
 > > > > +				(BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY));
-> > ?
+> >  
 > > > > -	return 0;
 > > > > +	return rc;
-> > ?}
-> > ?
-> > ?static int bt_bmc_probe(struct platform_device *pdev)
-> > ?{
-> > > > ?	struct bt_bmc *bt_bmc;
-> > > > ?	struct device *dev;
+> >  }
+> >  
+> >  static int bt_bmc_probe(struct platform_device *pdev)
+> >  {
+> > > >  	struct bt_bmc *bt_bmc;
+> > > >  	struct device *dev;
 > > > > -	struct resource *res;
-> > > > ?	int rc;
-> > ?
-> > > > ?	if (!pdev || !pdev->dev.of_node)
+> > > >  	int rc;
+> >  
+> > > >  	if (!pdev || !pdev->dev.of_node)
 > > @@ -431,10 +454,27 @@ static int bt_bmc_probe(struct platform_device *pdev)
-> > ?
-> > > > ?	dev_set_drvdata(&pdev->dev, bt_bmc);
-> > ?
+> >  
+> > > >  	dev_set_drvdata(&pdev->dev, bt_bmc);
+> >  
 > > > > -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 > > > > -	bt_bmc->base = devm_ioremap_resource(&pdev->dev, res);
 > > > > -	if (IS_ERR(bt_bmc->base))
@@ -223,9 +223,9 @@ Andrew
 > > > > +		void __iomem *base;
 > > +
 > > > > +		/*
-> > > > +		?* Assume it's not the MFD-based devicetree description, in
-> > > > +		?* which case generate a regmap ourselves
-> > > > +		?*/
+> > > > +		 * Assume it's not the MFD-based devicetree description, in
+> > > > +		 * which case generate a regmap ourselves
+> > > > +		 */
 > > > > +		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 > > > > +		base = devm_ioremap_resource(&pdev->dev, res);
 > > > > +		if (IS_ERR(base))
@@ -238,35 +238,28 @@ Andrew
 > > > > +		if (rc)
 > > > > +			return rc;
 > > > > +	}
-> > ?
-> > > > ?	mutex_init(&bt_bmc->mutex);
-> > > > ?	init_waitqueue_head(&bt_bmc->queue);
+> >  
+> > > >  	mutex_init(&bt_bmc->mutex);
+> > > >  	init_waitqueue_head(&bt_bmc->queue);
 > > @@ -461,12 +501,12 @@ static int bt_bmc_probe(struct platform_device *pdev)
-> > > > ?		add_timer(&bt_bmc->poll_timer);
-> > > > ?	}
-> > ?
+> > > >  		add_timer(&bt_bmc->poll_timer);
+> > > >  	}
+> >  
 > > > > -	iowrite32((BT_IO_BASE << BT_CR0_IO_BASE) |
-> > > > -		??(BT_IRQ << BT_CR0_IRQ) |
-> > > > -		??BT_CR0_EN_CLR_SLV_RDP |
-> > > > -		??BT_CR0_EN_CLR_SLV_WRP |
-> > > > -		??BT_CR0_ENABLE_IBT,
-> > > > -		??bt_bmc->base + BT_CR0);
+> > > > -		  (BT_IRQ << BT_CR0_IRQ) |
+> > > > -		  BT_CR0_EN_CLR_SLV_RDP |
+> > > > -		  BT_CR0_EN_CLR_SLV_WRP |
+> > > > -		  BT_CR0_ENABLE_IBT,
+> > > > -		  bt_bmc->base + BT_CR0);
 > > > > +	regmap_write(bt_bmc->map, bt_bmc->offset + BT_CR0,
-> > > > +		?????(BT_IO_BASE << BT_CR0_IO_BASE) |
-> > > > +		?????(BT_IRQ << BT_CR0_IRQ) |
-> > > > +		?????BT_CR0_EN_CLR_SLV_RDP |
-> > > > +		?????BT_CR0_EN_CLR_SLV_WRP |
-> > > > +		?????BT_CR0_ENABLE_IBT);
-> > ?
-> > > > ?	clr_b_busy(bt_bmc);
-> > ?
+> > > > +		     (BT_IO_BASE << BT_CR0_IO_BASE) |
+> > > > +		     (BT_IRQ << BT_CR0_IRQ) |
+> > > > +		     BT_CR0_EN_CLR_SLV_RDP |
+> > > > +		     BT_CR0_EN_CLR_SLV_WRP |
+> > > > +		     BT_CR0_ENABLE_IBT);
+> >  
+> > > >  	clr_b_busy(bt_bmc);
+> >  
 > > 
 > 
-> 
--------------- next part --------------
-A non-text attachment was scrubbed...
-Name: signature.asc
-Type: application/pgp-signature
-Size: 801 bytes
-Desc: This is a digitally signed message part
-URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161207/5506c9cf/attachment-0001.sig>
+>
diff --git a/N1/2.bin b/N1/2.bin
new file mode 100644
index 0000000..b62f095
--- /dev/null
+++ b/N1/2.bin
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIcBAABCgAGBQJYR1IZAAoJEJ0dnzgO5LT5FEgP/R4DwNs/P67UZftn2wdYgzT+
+zQ0/qxM9ajgTAcCmDIftp8bGzmk6vPSMtfXcWcqtQT0RmbM2UhHAJ9GUYV2nY8n0
+rXOS8RvaWK2zNJmMRaFXGFAYz1D/GhsSWD+9/VVyeJ4DTDTTqE4YLJqSv7mTiAGH
+FG5F58aqUB3ltb8M8HLEyThlEwCy9x9jSHch9CFvBdXMJG2860EN3qWoVozUJmEO
+XpYd9vpkQKMIl1n7EdvWgCuodfwygkoLS0afiwFjfs5yVfVqpzhGNxGw8jPDdMNr
+yzPH7pHQkff6IQZi0Z/bfTwRI9qHbTw5GMLjlk1ZsJnn2jCUn8kgeJishiH0Q9Cm
+4YyzZW6bvLKCgM4+s8fIr6eJmq+KmaXTgHC05ZwUquxuU3FTPbI8CMtI1gjd/3PE
+GgjmktecutW8J3YxbW0dgZjqZOPsHntvIvrPMFzPlGw/mPwWMVA8tur8HyZAwKEP
+VI361OjukVMBxDXUTgKtfjUdH+yvysrUmQTlhZEvXQdmTOWe8isweEyfsP2U2dEJ
+aW5qoK6cHMgmo31Vey8+NXuqZwBpG4E0KG0NfTFyRQpcfhzQRQsPH+haq9B/GgkB
+UZVngo3oqMtbJ7aHmxpcjYq5XYacyk734o/izOOkbh7IW2Lq3scBReacYP1SPcS/
+t6VMqkqpu9AsOE5LOlL0
+=eWQm
+-----END PGP SIGNATURE-----
diff --git a/N1/2.hdr b/N1/2.hdr
new file mode 100644
index 0000000..da6d245
--- /dev/null
+++ b/N1/2.hdr
@@ -0,0 +1,3 @@
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: This is a digitally signed message part
+Content-Transfer-Encoding: 7bit
diff --git a/a/content_digest b/N1/content_digest
index da907bd..c052e19 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,13 +1,18 @@
  "ref\020161206025715.2002-1-andrew@aj.id.au\0"
  "ref\036014e0c-82f8-eeaf-ee2a-6c1e413b957d@kaod.org\0"
- "From\0andrew@aj.id.au (Andrew Jeffery)\0"
- "Subject\0[PATCH] ipmi: bt-bmc: Use a regmap for register access\0"
+ "From\0Andrew Jeffery <andrew@aj.id.au>\0"
+ "Subject\0Re: [PATCH] ipmi: bt-bmc: Use a regmap for register access\0"
  "Date\0Wed, 07 Dec 2016 11:04:41 +1100\0"
- "To\0linux-arm-kernel@lists.infradead.org\0"
- "\00:1\0"
+ "To\0C\303\251dric Le Goater <clg@kaod.org>"
+ " Corey Minyard <minyard@acm.org>\0"
+ "Cc\0Joel Stanley <joel@jms.id.au>"
+  openipmi-developer@lists.sourceforge.net
+  linux-arm-kernel@lists.infradead.org
+ " linux-kernel@vger.kernel.org\0"
+ "\01:1\0"
  "b\0"
- "On Tue, 2016-12-06 at 16:02 +0100, C?dric Le Goater wrote:\n"
- "> [ this is a resend bc of some mailing list issues]?\n"
+ "On Tue, 2016-12-06 at 16:02 +0100, C\303\251dric Le Goater wrote:\n"
+ "> [ this is a resend bc of some mailing list issues]\302\240\n"
  "\n"
  "Thanks for resending.\n"
  "\n"
@@ -30,7 +35,7 @@
  "> > \n"
  "> > Signed-off-by: Andrew Jeffery <andrew@aj.id.au>\n"
  "> \n"
- "> It would be nice to have an example of the associated binding.?\n"
+ "> It would be nice to have an example of the associated binding.\302\240\n"
  "> I did not see it.\n"
  "\n"
  "Essentially because the approach of the patch means there's no required\n"
@@ -38,7 +43,7 @@
  "patches I've sent out, a partial devicetree using the new bindings\n"
  "might look something like:\n"
  "\n"
- "lpc: lpc at 1e789000 {\n"
+ "lpc: lpc@1e789000 {\n"
  "\tcompatible = \"aspeed,ast2500-lpc\", \"simple-mfd\";\n"
  "\treg = <0x1e789000 0x1000>;\n"
  "\n"
@@ -46,13 +51,13 @@
  "\t#size-cells = <1>;\n"
  "\tranges = <0 0x1e789000 0x1000>;\n"
  "\n"
- "\tlpc_bmc: lpc-bmc at 0 {\n"
+ "\tlpc_bmc: lpc-bmc@0 {\n"
  "\t\tcompatible = \"aspeed,ast2500-lpc-bmc\";\n"
  "\t\treg = <0x0 0x80>;\n"
  "\t\treg-io-width = <1>;\n"
  "\t};\n"
  "\n"
- "\tlpc_host: lpc-host at 80 {\n"
+ "\tlpc_host: lpc-host@80 {\n"
  "\t\tcompatible = \"aspeed,ast2500-lpc-host\", \"simple-mfd\", \"syscon\";\n"
  "\t\treg = <0x80 0x1e0>;\n"
  "\n"
@@ -62,7 +67,7 @@
  "\n"
  "\t\treg-io-width = <4>;\n"
  "\n"
- "\t\tibt: ibt at c0 {\n"
+ "\t\tibt: ibt@c0 {\n"
  "\t\t\tcompatible = \"aspeed,ast2400-bt-bmc\";\n"
  "\t\t\treg = <0xc0 0x18>;\n"
  "\t\t\tinterrupts = <8>;\n"
@@ -80,69 +85,69 @@
  "\n"
  ">  A part from that :\n"
  "> \n"
- "> > Reviewed-by: C?dric Le Goater <clg@kaod.org>\n"
+ "> > Reviewed-by: C\303\251dric Le Goater <clg@kaod.org>\n"
  "> \n"
  "> Thanks,\n"
  "> \n"
  "> C.\n"
  "> \n"
  "> > ---\n"
- "> > ?drivers/char/ipmi/Kconfig??|??1 +\n"
- "> > ?drivers/char/ipmi/bt-bmc.c | 82 ++++++++++++++++++++++++++++++++++------------\n"
- "> > ?2 files changed, 62 insertions(+), 21 deletions(-)\n"
+ "> > \302\240drivers/char/ipmi/Kconfig\302\240\302\240|\302\240\302\2401 +\n"
+ "> > \302\240drivers/char/ipmi/bt-bmc.c | 82 ++++++++++++++++++++++++++++++++++------------\n"
+ "> > \302\2402 files changed, 62 insertions(+), 21 deletions(-)\n"
  "> > \n"
  "> > diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig\n"
  "> > index 7f816655cbbf..b5d48d9af124 100644\n"
  "> > --- a/drivers/char/ipmi/Kconfig\n"
  "> > +++ b/drivers/char/ipmi/Kconfig\n"
  "> > @@ -79,6 +79,7 @@ endif # IPMI_HANDLER\n"
- "> > ?\n"
- "> > ?config ASPEED_BT_IPMI_BMC\n"
- "> > > > ?\tdepends on ARCH_ASPEED\n"
- "> > +????????depends on REGMAP && REGMAP_MMIO && MFD_SYSCON\n"
- "> > > > ?\ttristate \"BT IPMI bmc driver\"\n"
- "> > > > ?\thelp\n"
- "> > > > ?\t??Provides a driver for the BT (Block Transfer) IPMI interface\n"
+ "> > \302\240\n"
+ "> > \302\240config ASPEED_BT_IPMI_BMC\n"
+ "> > > > \302\240\tdepends on ARCH_ASPEED\n"
+ "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240depends on REGMAP && REGMAP_MMIO && MFD_SYSCON\n"
+ "> > > > \302\240\ttristate \"BT IPMI bmc driver\"\n"
+ "> > > > \302\240\thelp\n"
+ "> > > > \302\240\t\302\240\302\240Provides a driver for the BT (Block Transfer) IPMI interface\n"
  "> > diff --git a/drivers/char/ipmi/bt-bmc.c b/drivers/char/ipmi/bt-bmc.c\n"
  "> > index fc9e8891eae3..ca1e20f6c6c5 100644\n"
  "> > --- a/drivers/char/ipmi/bt-bmc.c\n"
  "> > +++ b/drivers/char/ipmi/bt-bmc.c\n"
  "> > @@ -12,10 +12,13 @@\n"
- "> > ?#include <linux/errno.h>\n"
- "> > ?#include <linux/interrupt.h>\n"
- "> > ?#include <linux/io.h>\n"
+ "> > \302\240#include <linux/errno.h>\n"
+ "> > \302\240#include <linux/interrupt.h>\n"
+ "> > \302\240#include <linux/io.h>\n"
  "> > +#include <linux/mfd/syscon.h>\n"
- "> > ?#include <linux/miscdevice.h>\n"
- "> > ?#include <linux/module.h>\n"
+ "> > \302\240#include <linux/miscdevice.h>\n"
+ "> > \302\240#include <linux/module.h>\n"
  "> > +#include <linux/of.h>\n"
- "> > ?#include <linux/platform_device.h>\n"
- "> > ?#include <linux/poll.h>\n"
+ "> > \302\240#include <linux/platform_device.h>\n"
+ "> > \302\240#include <linux/poll.h>\n"
  "> > +#include <linux/regmap.h>\n"
- "> > ?#include <linux/sched.h>\n"
- "> > ?#include <linux/timer.h>\n"
- "> > ?\n"
+ "> > \302\240#include <linux/sched.h>\n"
+ "> > \302\240#include <linux/timer.h>\n"
+ "> > \302\240\n"
  "> > @@ -60,7 +63,8 @@\n"
- "> > ?struct bt_bmc {\n"
- "> > > > > > ?\tstruct device\t\tdev;\n"
- "> > > > > > ?\tstruct miscdevice\tmiscdev;\n"
+ "> > \302\240struct bt_bmc {\n"
+ "> > > > > > \302\240\tstruct device\t\tdev;\n"
+ "> > > > > > \302\240\tstruct miscdevice\tmiscdev;\n"
  "> > > > > > -\tvoid __iomem\t\t*base;\n"
  "> > > > > > +\tstruct regmap\t\t*map;\n"
  "> > > > > > +\tint\t\t\toffset;\n"
- "> > > > > > ?\tint\t\t\tirq;\n"
- "> > > > > > ?\twait_queue_head_t\tqueue;\n"
- "> > > > > > ?\tstruct timer_list\tpoll_timer;\n"
+ "> > > > > > \302\240\tint\t\t\tirq;\n"
+ "> > > > > > \302\240\twait_queue_head_t\tqueue;\n"
+ "> > > > > > \302\240\tstruct timer_list\tpoll_timer;\n"
  "> > @@ -69,14 +73,31 @@ struct bt_bmc {\n"
- "> > ?\n"
- "> > ?static atomic_t open_count = ATOMIC_INIT(0);\n"
- "> > ?\n"
+ "> > \302\240\n"
+ "> > \302\240static atomic_t open_count = ATOMIC_INIT(0);\n"
+ "> > \302\240\n"
  "> > +static struct regmap_config bt_regmap_cfg = {\n"
  "> > > > +\t.reg_bits = 32,\n"
  "> > > > +\t.val_bits = 32,\n"
  "> > > > +\t.reg_stride = 4,\n"
  "> > +};\n"
  "> > +\n"
- "> > ?static u8 bt_inb(struct bt_bmc *bt_bmc, int reg)\n"
- "> > ?{\n"
+ "> > \302\240static u8 bt_inb(struct bt_bmc *bt_bmc, int reg)\n"
+ "> > \302\240{\n"
  "> > > > -\treturn ioread8(bt_bmc->base + reg);\n"
  "> > > > +\tuint32_t val = 0;\n"
  "> > > > +\tint rc;\n"
@@ -152,75 +157,75 @@
  "> > > > +\t\t\t__FILE__, __LINE__, rc);\n"
  "> > +\n"
  "> > > > +\treturn rc == 0 ? (u8) val : 0;\n"
- "> > ?}\n"
- "> > ?\n"
- "> > ?static void bt_outb(struct bt_bmc *bt_bmc, u8 data, int reg)\n"
- "> > ?{\n"
+ "> > \302\240}\n"
+ "> > \302\240\n"
+ "> > \302\240static void bt_outb(struct bt_bmc *bt_bmc, u8 data, int reg)\n"
+ "> > \302\240{\n"
  "> > > > -\tiowrite8(data, bt_bmc->base + reg);\n"
  "> > > > +\tint rc;\n"
  "> > +\n"
  "> > > > +\trc = regmap_write(bt_bmc->map, bt_bmc->offset + reg, data);\n"
  "> > > > +\tWARN(rc != 0, \"%s:%d: regmap_write() failed: %d\\n\",\n"
  "> > > > +\t\t\t__FILE__, __LINE__, rc);\n"
- "> > ?}\n"
- "> > ?\n"
- "> > ?static void clr_rd_ptr(struct bt_bmc *bt_bmc)\n"
+ "> > \302\240}\n"
+ "> > \302\240\n"
+ "> > \302\240static void clr_rd_ptr(struct bt_bmc *bt_bmc)\n"
  "> > @@ -367,14 +388,18 @@ static irqreturn_t bt_bmc_irq(int irq, void *arg)\n"
- "> > ?{\n"
- "> > > > ?\tstruct bt_bmc *bt_bmc = arg;\n"
- "> > > > ?\tu32 reg;\n"
+ "> > \302\240{\n"
+ "> > > > \302\240\tstruct bt_bmc *bt_bmc = arg;\n"
+ "> > > > \302\240\tu32 reg;\n"
  "> > > > +\tint rc;\n"
  "> > +\n"
  "> > > > +\trc = regmap_read(bt_bmc->map, bt_bmc->offset + BT_CR2, &reg);\n"
  "> > > > +\tif (rc)\n"
  "> > > > +\t\treturn IRQ_NONE;\n"
- "> > ?\n"
+ "> > \302\240\n"
  "> > > > -\treg = ioread32(bt_bmc->base + BT_CR2);\n"
- "> > > > ?\treg &= BT_CR2_IRQ_H2B | BT_CR2_IRQ_HBUSY;\n"
- "> > > > ?\tif (!reg)\n"
- "> > > > ?\t\treturn IRQ_NONE;\n"
- "> > ?\n"
- "> > > > ?\t/* ack pending IRQs */\n"
+ "> > > > \302\240\treg &= BT_CR2_IRQ_H2B | BT_CR2_IRQ_HBUSY;\n"
+ "> > > > \302\240\tif (!reg)\n"
+ "> > > > \302\240\t\treturn IRQ_NONE;\n"
+ "> > \302\240\n"
+ "> > > > \302\240\t/* ack pending IRQs */\n"
  "> > > > -\tiowrite32(reg, bt_bmc->base + BT_CR2);\n"
  "> > > > +\tregmap_write(bt_bmc->map, bt_bmc->offset + BT_CR2, reg);\n"
- "> > ?\n"
- "> > > > ?\twake_up(&bt_bmc->queue);\n"
- "> > > > ?\treturn IRQ_HANDLED;\n"
+ "> > \302\240\n"
+ "> > > > \302\240\twake_up(&bt_bmc->queue);\n"
+ "> > > > \302\240\treturn IRQ_HANDLED;\n"
  "> > @@ -384,7 +409,6 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,\n"
- "> > > > ?\t\t\t?????struct platform_device *pdev)\n"
- "> > ?{\n"
- "> > > > ?\tstruct device *dev = &pdev->dev;\n"
+ "> > > > \302\240\t\t\t\302\240\302\240\302\240\302\240\302\240struct platform_device *pdev)\n"
+ "> > \302\240{\n"
+ "> > > > \302\240\tstruct device *dev = &pdev->dev;\n"
  "> > > > -\tu32 reg;\n"
- "> > > > ?\tint rc;\n"
- "> > ?\n"
- "> > > > ?\tbt_bmc->irq = platform_get_irq(pdev, 0);\n"
+ "> > > > \302\240\tint rc;\n"
+ "> > \302\240\n"
+ "> > > > \302\240\tbt_bmc->irq = platform_get_irq(pdev, 0);\n"
  "> > @@ -405,18 +429,17 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,\n"
- "> > > > ?\t?* will be cleared (along with B2H) when we can write the next\n"
- "> > > > ?\t?* message to the BT buffer\n"
- "> > > > ?\t?*/\n"
+ "> > > > \302\240\t\302\240* will be cleared (along with B2H) when we can write the next\n"
+ "> > > > \302\240\t\302\240* message to the BT buffer\n"
+ "> > > > \302\240\t\302\240*/\n"
  "> > > > -\treg = ioread32(bt_bmc->base + BT_CR1);\n"
  "> > > > -\treg |= BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY;\n"
  "> > > > -\tiowrite32(reg, bt_bmc->base + BT_CR1);\n"
  "> > > > +\trc = regmap_update_bits(bt_bmc->map, bt_bmc->offset + BT_CR1,\n"
  "> > > > +\t\t\t\t(BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY),\n"
  "> > > > +\t\t\t\t(BT_CR1_IRQ_H2B | BT_CR1_IRQ_HBUSY));\n"
- "> > ?\n"
+ "> > \302\240\n"
  "> > > > -\treturn 0;\n"
  "> > > > +\treturn rc;\n"
- "> > ?}\n"
- "> > ?\n"
- "> > ?static int bt_bmc_probe(struct platform_device *pdev)\n"
- "> > ?{\n"
- "> > > > ?\tstruct bt_bmc *bt_bmc;\n"
- "> > > > ?\tstruct device *dev;\n"
+ "> > \302\240}\n"
+ "> > \302\240\n"
+ "> > \302\240static int bt_bmc_probe(struct platform_device *pdev)\n"
+ "> > \302\240{\n"
+ "> > > > \302\240\tstruct bt_bmc *bt_bmc;\n"
+ "> > > > \302\240\tstruct device *dev;\n"
  "> > > > -\tstruct resource *res;\n"
- "> > > > ?\tint rc;\n"
- "> > ?\n"
- "> > > > ?\tif (!pdev || !pdev->dev.of_node)\n"
+ "> > > > \302\240\tint rc;\n"
+ "> > \302\240\n"
+ "> > > > \302\240\tif (!pdev || !pdev->dev.of_node)\n"
  "> > @@ -431,10 +454,27 @@ static int bt_bmc_probe(struct platform_device *pdev)\n"
- "> > ?\n"
- "> > > > ?\tdev_set_drvdata(&pdev->dev, bt_bmc);\n"
- "> > ?\n"
+ "> > \302\240\n"
+ "> > > > \302\240\tdev_set_drvdata(&pdev->dev, bt_bmc);\n"
+ "> > \302\240\n"
  "> > > > -\tres = platform_get_resource(pdev, IORESOURCE_MEM, 0);\n"
  "> > > > -\tbt_bmc->base = devm_ioremap_resource(&pdev->dev, res);\n"
  "> > > > -\tif (IS_ERR(bt_bmc->base))\n"
@@ -231,9 +236,9 @@
  "> > > > +\t\tvoid __iomem *base;\n"
  "> > +\n"
  "> > > > +\t\t/*\n"
- "> > > > +\t\t?* Assume it's not the MFD-based devicetree description, in\n"
- "> > > > +\t\t?* which case generate a regmap ourselves\n"
- "> > > > +\t\t?*/\n"
+ "> > > > +\t\t\302\240* Assume it's not the MFD-based devicetree description, in\n"
+ "> > > > +\t\t\302\240* which case generate a regmap ourselves\n"
+ "> > > > +\t\t\302\240*/\n"
  "> > > > +\t\tres = platform_get_resource(pdev, IORESOURCE_MEM, 0);\n"
  "> > > > +\t\tbase = devm_ioremap_resource(&pdev->dev, res);\n"
  "> > > > +\t\tif (IS_ERR(base))\n"
@@ -246,37 +251,50 @@
  "> > > > +\t\tif (rc)\n"
  "> > > > +\t\t\treturn rc;\n"
  "> > > > +\t}\n"
- "> > ?\n"
- "> > > > ?\tmutex_init(&bt_bmc->mutex);\n"
- "> > > > ?\tinit_waitqueue_head(&bt_bmc->queue);\n"
+ "> > \302\240\n"
+ "> > > > \302\240\tmutex_init(&bt_bmc->mutex);\n"
+ "> > > > \302\240\tinit_waitqueue_head(&bt_bmc->queue);\n"
  "> > @@ -461,12 +501,12 @@ static int bt_bmc_probe(struct platform_device *pdev)\n"
- "> > > > ?\t\tadd_timer(&bt_bmc->poll_timer);\n"
- "> > > > ?\t}\n"
- "> > ?\n"
+ "> > > > \302\240\t\tadd_timer(&bt_bmc->poll_timer);\n"
+ "> > > > \302\240\t}\n"
+ "> > \302\240\n"
  "> > > > -\tiowrite32((BT_IO_BASE << BT_CR0_IO_BASE) |\n"
- "> > > > -\t\t??(BT_IRQ << BT_CR0_IRQ) |\n"
- "> > > > -\t\t??BT_CR0_EN_CLR_SLV_RDP |\n"
- "> > > > -\t\t??BT_CR0_EN_CLR_SLV_WRP |\n"
- "> > > > -\t\t??BT_CR0_ENABLE_IBT,\n"
- "> > > > -\t\t??bt_bmc->base + BT_CR0);\n"
+ "> > > > -\t\t\302\240\302\240(BT_IRQ << BT_CR0_IRQ) |\n"
+ "> > > > -\t\t\302\240\302\240BT_CR0_EN_CLR_SLV_RDP |\n"
+ "> > > > -\t\t\302\240\302\240BT_CR0_EN_CLR_SLV_WRP |\n"
+ "> > > > -\t\t\302\240\302\240BT_CR0_ENABLE_IBT,\n"
+ "> > > > -\t\t\302\240\302\240bt_bmc->base + BT_CR0);\n"
  "> > > > +\tregmap_write(bt_bmc->map, bt_bmc->offset + BT_CR0,\n"
- "> > > > +\t\t?????(BT_IO_BASE << BT_CR0_IO_BASE) |\n"
- "> > > > +\t\t?????(BT_IRQ << BT_CR0_IRQ) |\n"
- "> > > > +\t\t?????BT_CR0_EN_CLR_SLV_RDP |\n"
- "> > > > +\t\t?????BT_CR0_EN_CLR_SLV_WRP |\n"
- "> > > > +\t\t?????BT_CR0_ENABLE_IBT);\n"
- "> > ?\n"
- "> > > > ?\tclr_b_busy(bt_bmc);\n"
- "> > ?\n"
+ "> > > > +\t\t\302\240\302\240\302\240\302\240\302\240(BT_IO_BASE << BT_CR0_IO_BASE) |\n"
+ "> > > > +\t\t\302\240\302\240\302\240\302\240\302\240(BT_IRQ << BT_CR0_IRQ) |\n"
+ "> > > > +\t\t\302\240\302\240\302\240\302\240\302\240BT_CR0_EN_CLR_SLV_RDP |\n"
+ "> > > > +\t\t\302\240\302\240\302\240\302\240\302\240BT_CR0_EN_CLR_SLV_WRP |\n"
+ "> > > > +\t\t\302\240\302\240\302\240\302\240\302\240BT_CR0_ENABLE_IBT);\n"
+ "> > \302\240\n"
+ "> > > > \302\240\tclr_b_busy(bt_bmc);\n"
+ "> > \302\240\n"
  "> > \n"
  "> \n"
- "> \n"
- "-------------- next part --------------\n"
- "A non-text attachment was scrubbed...\n"
- "Name: signature.asc\n"
- "Type: application/pgp-signature\n"
- "Size: 801 bytes\n"
- "Desc: This is a digitally signed message part\n"
- URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161207/5506c9cf/attachment-0001.sig>
+ >
+ "\01:2\0"
+ "fn\0signature.asc\0"
+ "d\0This is a digitally signed message part\0"
+ "b\0"
+ "-----BEGIN PGP SIGNATURE-----\n"
+ "\n"
+ "iQIcBAABCgAGBQJYR1IZAAoJEJ0dnzgO5LT5FEgP/R4DwNs/P67UZftn2wdYgzT+\n"
+ "zQ0/qxM9ajgTAcCmDIftp8bGzmk6vPSMtfXcWcqtQT0RmbM2UhHAJ9GUYV2nY8n0\n"
+ "rXOS8RvaWK2zNJmMRaFXGFAYz1D/GhsSWD+9/VVyeJ4DTDTTqE4YLJqSv7mTiAGH\n"
+ "FG5F58aqUB3ltb8M8HLEyThlEwCy9x9jSHch9CFvBdXMJG2860EN3qWoVozUJmEO\n"
+ "XpYd9vpkQKMIl1n7EdvWgCuodfwygkoLS0afiwFjfs5yVfVqpzhGNxGw8jPDdMNr\n"
+ "yzPH7pHQkff6IQZi0Z/bfTwRI9qHbTw5GMLjlk1ZsJnn2jCUn8kgeJishiH0Q9Cm\n"
+ "4YyzZW6bvLKCgM4+s8fIr6eJmq+KmaXTgHC05ZwUquxuU3FTPbI8CMtI1gjd/3PE\n"
+ "GgjmktecutW8J3YxbW0dgZjqZOPsHntvIvrPMFzPlGw/mPwWMVA8tur8HyZAwKEP\n"
+ "VI361OjukVMBxDXUTgKtfjUdH+yvysrUmQTlhZEvXQdmTOWe8isweEyfsP2U2dEJ\n"
+ "aW5qoK6cHMgmo31Vey8+NXuqZwBpG4E0KG0NfTFyRQpcfhzQRQsPH+haq9B/GgkB\n"
+ "UZVngo3oqMtbJ7aHmxpcjYq5XYacyk734o/izOOkbh7IW2Lq3scBReacYP1SPcS/\n"
+ "t6VMqkqpu9AsOE5LOlL0\n"
+ "=eWQm\n"
+ "-----END PGP SIGNATURE-----\n"
 
-586086c318db4611e0c19173ec317e8caba7508774582fd6eb3339571688c9f4
+ed054fd3a6038b13da5bb34e0e6d4c1baeb4fe8965a927bdcd219a05aaf61805

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.