All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
To: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org,
	Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH 2/6] i2c: davinci: Remove MOD_REG_BIT and IO_ADDRESS usage
Date: Fri, 29 Jan 2010 11:46:11 -0800	[thread overview]
Message-ID: <87ockcpud8.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20100127150518.GB6090-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org> (Ben Dooks's message of "Wed\, 27 Jan 2010 15\:05\:18 +0000")

Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org> writes:

> On Tue, Jan 26, 2010 at 03:41:29PM -0800, Kevin Hilman wrote:
>> From: Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
>> 
>> Cleanup the DaVinci I2C driver. Remove MOD_REG_BIT macro.
>> Also use ioremap instead of IO_ADDRESS macro.
>
> would have been nicer to do each of these seperately.

ok, good to note for next time.  Can this version go through 
through as is.

Kevin

>> Signed-off-by: Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
>> Acked-by: Kevin Hilman <khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
>> ---
>>  drivers/i2c/busses/i2c-davinci.c |   77 +++++++++++++++++++-------------------
>>  1 files changed, 38 insertions(+), 39 deletions(-)
>> 
>> diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
>> index 444a9f2..34a48d0 100644
>> --- a/drivers/i2c/busses/i2c-davinci.c
>> +++ b/drivers/i2c/busses/i2c-davinci.c
>> @@ -37,7 +37,6 @@
>>  #include <linux/io.h>
>>  
>>  #include <mach/hardware.h>
>> -
>>  #include <mach/i2c.h>
>>  
>>  /* ----- global defines ----------------------------------------------- */
>> @@ -71,37 +70,29 @@
>>  #define DAVINCI_I2C_IVR_NACK	0x02
>>  #define DAVINCI_I2C_IVR_AL	0x01
>>  
>> -#define DAVINCI_I2C_STR_BB	(1 << 12)
>> -#define DAVINCI_I2C_STR_RSFULL	(1 << 11)
>> -#define DAVINCI_I2C_STR_SCD	(1 << 5)
>> -#define DAVINCI_I2C_STR_ARDY	(1 << 2)
>> -#define DAVINCI_I2C_STR_NACK	(1 << 1)
>> -#define DAVINCI_I2C_STR_AL	(1 << 0)
>> -
>> -#define DAVINCI_I2C_MDR_NACK	(1 << 15)
>> -#define DAVINCI_I2C_MDR_STT	(1 << 13)
>> -#define DAVINCI_I2C_MDR_STP	(1 << 11)
>> -#define DAVINCI_I2C_MDR_MST	(1 << 10)
>> -#define DAVINCI_I2C_MDR_TRX	(1 << 9)
>> -#define DAVINCI_I2C_MDR_XA	(1 << 8)
>> -#define DAVINCI_I2C_MDR_RM	(1 << 7)
>> -#define DAVINCI_I2C_MDR_IRS	(1 << 5)
>> -
>> -#define DAVINCI_I2C_IMR_AAS	(1 << 6)
>> -#define DAVINCI_I2C_IMR_SCD	(1 << 5)
>> -#define DAVINCI_I2C_IMR_XRDY	(1 << 4)
>> -#define DAVINCI_I2C_IMR_RRDY	(1 << 3)
>> -#define DAVINCI_I2C_IMR_ARDY	(1 << 2)
>> -#define DAVINCI_I2C_IMR_NACK	(1 << 1)
>> -#define DAVINCI_I2C_IMR_AL	(1 << 0)
>> -
>> -#define MOD_REG_BIT(val, mask, set) do { \
>> -	if (set) { \
>> -		val |= mask; \
>> -	} else { \
>> -		val &= ~mask; \
>> -	} \
>> -} while (0)
>> +#define DAVINCI_I2C_STR_BB	BIT(12)
>> +#define DAVINCI_I2C_STR_RSFULL	BIT(11)
>> +#define DAVINCI_I2C_STR_SCD	BIT(5)
>> +#define DAVINCI_I2C_STR_ARDY	BIT(2)
>> +#define DAVINCI_I2C_STR_NACK	BIT(1)
>> +#define DAVINCI_I2C_STR_AL	BIT(0)
>> +
>> +#define DAVINCI_I2C_MDR_NACK	BIT(15)
>> +#define DAVINCI_I2C_MDR_STT	BIT(13)
>> +#define DAVINCI_I2C_MDR_STP	BIT(11)
>> +#define DAVINCI_I2C_MDR_MST	BIT(10)
>> +#define DAVINCI_I2C_MDR_TRX	BIT(9)
>> +#define DAVINCI_I2C_MDR_XA	BIT(8)
>> +#define DAVINCI_I2C_MDR_RM	BIT(7)
>> +#define DAVINCI_I2C_MDR_IRS	BIT(5)
>> +
>> +#define DAVINCI_I2C_IMR_AAS	BIT(6)
>> +#define DAVINCI_I2C_IMR_SCD	BIT(5)
>> +#define DAVINCI_I2C_IMR_XRDY	BIT(4)
>> +#define DAVINCI_I2C_IMR_RRDY	BIT(3)
>> +#define DAVINCI_I2C_IMR_ARDY	BIT(2)
>> +#define DAVINCI_I2C_IMR_NACK	BIT(1)
>> +#define DAVINCI_I2C_IMR_AL	BIT(0)
>
> surely 1 << x isn't too difficult to understand??
>   
>>  struct davinci_i2c_dev {
>>  	struct device           *dev;
>> @@ -155,7 +146,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>>  
>>  	/* put I2C into reset */
>>  	w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> -	MOD_REG_BIT(w, DAVINCI_I2C_MDR_IRS, 0);
>> +	w &= ~DAVINCI_I2C_MDR_IRS;
>>  	davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>>  
>>  	/* NOTE: I2C Clock divider programming info
>> @@ -205,7 +196,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>>  
>>  	/* Take the I2C module out of reset: */
>>  	w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> -	MOD_REG_BIT(w, DAVINCI_I2C_MDR_IRS, 1);
>> +	w |= DAVINCI_I2C_MDR_IRS;
>>  	davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>>  
>>  	/* Enable interrupts */
>> @@ -287,9 +278,9 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
>>  	/* Enable receive or transmit interrupts */
>>  	w = davinci_i2c_read_reg(dev, DAVINCI_I2C_IMR_REG);
>>  	if (msg->flags & I2C_M_RD)
>> -		MOD_REG_BIT(w, DAVINCI_I2C_IMR_RRDY, 1);
>> +		w |= DAVINCI_I2C_IMR_RRDY;
>>  	else
>> -		MOD_REG_BIT(w, DAVINCI_I2C_IMR_XRDY, 1);
>> +		w |= DAVINCI_I2C_IMR_XRDY;
>>  	davinci_i2c_write_reg(dev, DAVINCI_I2C_IMR_REG, w);
>>  
>>  	dev->terminate = 0;
>> @@ -346,7 +337,7 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
>>  			return msg->len;
>>  		if (stop) {
>>  			w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> -			MOD_REG_BIT(w, DAVINCI_I2C_MDR_STP, 1);
>> +			w |= DAVINCI_I2C_MDR_STP;
>>  			davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>>  		}
>>  		return -EREMOTEIO;
>> @@ -482,7 +473,7 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id)
>>  
>>  				w = davinci_i2c_read_reg(dev,
>>  							 DAVINCI_I2C_IMR_REG);
>> -				MOD_REG_BIT(w, DAVINCI_I2C_IMR_XRDY, 0);
>> +				w &= ~DAVINCI_I2C_IMR_XRDY;
>>  				davinci_i2c_write_reg(dev,
>>  						      DAVINCI_I2C_IMR_REG,
>>  						      w);
>> @@ -561,7 +552,12 @@ static int davinci_i2c_probe(struct platform_device *pdev)
>>  	}
>>  	clk_enable(dev->clk);
>>  
>> -	dev->base = (void __iomem *)IO_ADDRESS(mem->start);
>> +	dev->base = ioremap(mem->start, resource_size(mem));
>> +	if (!dev->base) {
>> +		r = -EBUSY;
>> +		goto err_mem_ioremap;
>> +	}
>> +
>
> this looks like you've got >1 change per patch?
>
>>  	i2c_davinci_init(dev);
>>  
>>  	r = request_irq(dev->irq, i2c_davinci_isr, 0, pdev->name, dev);
>> @@ -591,6 +587,8 @@ static int davinci_i2c_probe(struct platform_device *pdev)
>>  err_free_irq:
>>  	free_irq(dev->irq, dev);
>>  err_unuse_clocks:
>> +	iounmap(dev->base);
>> +err_mem_ioremap:
>>  	clk_disable(dev->clk);
>>  	clk_put(dev->clk);
>>  	dev->clk = NULL;
>> @@ -619,6 +617,7 @@ static int davinci_i2c_remove(struct platform_device *pdev)
>>  
>>  	davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0);
>>  	free_irq(IRQ_I2C, dev);
>> +	iounmap(dev->base);
>>  	kfree(dev);
>>  
>>  	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> -- 
>> 1.6.6
>> 
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> -- 
> Ben (ben-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, http://www.fluff.org/)
>
>   'a smiley only costs 4 bytes'

  parent reply	other threads:[~2010-01-29 19:46 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26 23:41 [PATCH 0/6] davinci i2c updates for 2.6.34 Kevin Hilman
     [not found] ` <1264549293-25556-1-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-26 23:41   ` [PATCH 1/6] i2c: davinci: Fix smbus Oops with AIC33 usage Kevin Hilman
     [not found]     ` <026601ca9f54$17a18110$46e48330$@raj@ti.com>
     [not found]       ` <026601ca9f54$17a18110$46e48330$@raj-l0cyMroinI0@public.gmane.org>
2010-01-27 14:50         ` Kevin Hilman
     [not found]           ` <87k4v3y53z.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-28  4:05             ` Sudhakar Rajashekhara
2010-01-28  8:46             ` Sudhakar Rajashekhara
     [not found]           ` <02ee01ca9ff6$53cf0d90$fb6d28b0$@raj@ti.com>
     [not found]             ` <02ee01ca9ff6$53cf0d90$fb6d28b0$@raj-l0cyMroinI0@public.gmane.org>
2010-01-28 14:45               ` Kevin Hilman
     [not found]     ` <1264549293-25556-2-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-27 13:24       ` Sudhakar Rajashekhara
2010-01-27 15:03       ` Ben Dooks
2010-01-26 23:41   ` [PATCH 2/6] i2c: davinci: Remove MOD_REG_BIT and IO_ADDRESS usage Kevin Hilman
     [not found]     ` <1264549293-25556-3-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-27 15:05       ` Ben Dooks
     [not found]         ` <20100127150518.GB6090-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2010-01-29 19:46           ` Kevin Hilman [this message]
2010-01-26 23:41   ` [PATCH 3/6] i2c: davinci: Add helper functions Kevin Hilman
2010-01-26 23:41   ` [PATCH 4/6] i2c: davinci: Add suspend/resume support Kevin Hilman
2010-01-26 23:41   ` [PATCH 5/6] i2c: davinci: Add cpufreq support Kevin Hilman
2010-01-26 23:41   ` [PATCH 6/6] i2c: davinci: bus recovery procedure to clear the bus Kevin Hilman
     [not found]     ` <1264549293-25556-7-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-02-01  5:57       ` Nori, Sekhar
     [not found]         ` <B85A65D85D7EB246BE421B3FB0FBB59301E235A3C2-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-01 19:40           ` Kevin Hilman
2010-02-05 13:53           ` Philby John
     [not found]             ` <225d086e1002050553tc1a696avce827cc115f56b1c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-08 10:35               ` Nori, Sekhar
     [not found]                 ` <B85A65D85D7EB246BE421B3FB0FBB59301E2639AD8-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-08 10:50                   ` Philby John
2010-02-08 15:13                   ` Philby John
     [not found]                     ` <4B702A17.3070104-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-02-08 16:03                       ` Nori, Sekhar
     [not found]                         ` <B85A65D85D7EB246BE421B3FB0FBB59301E2639D67-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-09 10:15                           ` Philby John
     [not found]                             ` <4B7135B3.9080104-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-02-09 10:52                               ` Nori, Sekhar
     [not found]                                 ` <B85A65D85D7EB246BE421B3FB0FBB59301E263A447-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-05 15:20                                   ` Griffis, Brad
     [not found]                                     ` <F8C55F6A02E92D48BDDFC6048552C6F14E6D9F3F-lTKHBJngVwKIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-08 13:37                                       ` Philby John
     [not found]                                         ` <4B94FD84.3060100-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-11 16:28                                           ` Griffis, Brad
2010-03-08 13:36                   ` Philby John
     [not found]                     ` <4B94FD6F.7050603-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-16 20:50                       ` Kevin Hilman
     [not found]                         ` <87d3z4xa7m.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-03-17 11:28                           ` Philby John
     [not found]                             ` <4BA0BCEC.8040209-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-17 13:18                               ` Nori, Sekhar
     [not found]                                 ` <B85A65D85D7EB246BE421B3FB0FBB59301E6328944-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-17 13:46                                   ` Philby John
2010-09-13 14:23       ` Pablo Bitton
     [not found]         ` <AANLkTimqT=xgoxycjFAwEr6LPTeK21-FB1F-7kP5baPE-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-27 12:40           ` Philby John

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ockcpud8.fsf@deeprootsystems.com \
    --to=khilman-1d3hcaltpluheniveurvkkeocmrvltnr@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=chaithrika-l0cyMroinI0@public.gmane.org \
    --cc=davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.