Prev: [PATCH v2.1 3/4] IPVS: make FTP work with full NAT support
Next: Staging: dream: pmem: code style fixes
From: Greg KH on 4 May 2010 16:40 On Tue, May 04, 2010 at 03:02:35PM -0500, H Hartley Sweeten wrote: > On Tuesday, May 04, 2010 12:07 PM, Joe Perches wrote: > > On Mon, 2010-05-03 at 19:54 -0700, Greg KH wrote: > >>> git push? > >> I have, and they look to be there to me: > >> http://git.kernel.org/?p=linux/kernel/git/gregkh/staging-next-2.6.git;a=commit;h=4f923d004396ef272600d381a365cac9d832486d > >> So something must be odd on your side. > > > > Yup, sorry, my mistake. > > > > staging-next is the name of your repository as well as > > a branch within your repository and git after git clone > > doesn't by default show all remote branches. > > > > $ git clone --reference=linux-2.6 \ > > git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-next-2.6.git > > > > $ git branch -r > > origin/HEAD -> origin/master > > origin/master > > origin/staging-next > > > > I needed to add a git checkout origin/staging-next > > That tree is still missing a couple commits that are in Linus' tree: > > commit 6536560cabab170ed2969b005bf69a496e9c45bf > Staging: dt3155: fix 50Hz configuration > > commit 74a920139a0f1119c5a604cef0ce5d6f591dc782 > staging: fix dt3155 build Yes, if you look, the staging-next branch starts on Linus's tree as of April 8 (just after 2.6.34-rc3). I don't merge back to Linus's tree a bunch, because that is not how it should be done. When I am going to push these to Linus, then I will merge and handle any fixups if needed. > Which would probably explain the conflict that occurs in linux-next for > dt3155_drv.c. Yes. And how easy it is to fix up :) > commit 9e1bd9a6f8c6ad8b461294a365c49b19212178d9 > Merge: 5382319 e595eea > Author: Stephen Rothwell <sfr(a)canb.auug.org.au> > Date: Tue May 4 15:42:20 2010 +1000 > > Merge remote branch 'staging-next/staging-next' > > Conflicts: > drivers/staging/arlan/arlan-main.c > drivers/staging/comedi/drivers/cb_das16_cs.c > drivers/staging/cx25821/cx25821-alsa.c > drivers/staging/dt3155/dt3155_drv.c > drivers/staging/netwave/netwave_cs.c That doesn't explain how you aren't seeing the correct stuff to base your patches off of though. Are you _sure_ you have the 'staging-next' branch of the tree checked out? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: H Hartley Sweeten on 4 May 2010 17:00 On Tuesday, May 04, 2010 1:12 PM, Greg KH wrote: >>> I needed to add a git checkout origin/staging-next >> >> That tree is still missing a couple commits that are in Linus' tree: >> >> commit 6536560cabab170ed2969b005bf69a496e9c45bf >> Staging: dt3155: fix 50Hz configuration >> >> commit 74a920139a0f1119c5a604cef0ce5d6f591dc782 >> staging: fix dt3155 build > > Yes, if you look, the staging-next branch starts on Linus's tree as of > April 8 (just after 2.6.34-rc3). I don't merge back to Linus's tree a > bunch, because that is not how it should be done. When I am going to > push these to Linus, then I will merge and handle any fixups if needed. Ok. >> Which would probably explain the conflict that occurs in linux-next for >> dt3155_drv.c. > > Yes. And how easy it is to fix up :) Ok. >> commit 9e1bd9a6f8c6ad8b461294a365c49b19212178d9 >> Merge: 5382319 e595eea >> Author: Stephen Rothwell <sfr(a)canb.auug.org.au> >> Date: Tue May 4 15:42:20 2010 +1000 >> >> Merge remote branch 'staging-next/staging-next' >> >> Conflicts: >> drivers/staging/arlan/arlan-main.c >> drivers/staging/comedi/drivers/cb_das16_cs.c >> drivers/staging/cx25821/cx25821-alsa.c >> drivers/staging/dt3155/dt3155_drv.c >> drivers/staging/netwave/netwave_cs.c > > That doesn't explain how you aren't seeing the correct stuff to base > your patches off of though. I may be seeing the correct stuff now in your staging-next tree just not in linux-next due to the two commits above. > Are you _sure_ you have the 'staging-next' branch of the tree checked > out? Am I _sure_... No... Do I _think_ so... Yes... ;-) Would you like me to rebase the patch to staging-next to see? But, will this run into a similar problem with the two commits already in Linus' tree? If so I can just hold off again until everything catches up. Regards, Hartley-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Greg KH on 4 May 2010 17:10 On Tue, May 04, 2010 at 03:53:10PM -0500, H Hartley Sweeten wrote: > On Tuesday, May 04, 2010 1:12 PM, Greg KH wrote: > >>> I needed to add a git checkout origin/staging-next > >> > >> That tree is still missing a couple commits that are in Linus' tree: > >> > >> commit 6536560cabab170ed2969b005bf69a496e9c45bf > >> Staging: dt3155: fix 50Hz configuration > >> > >> commit 74a920139a0f1119c5a604cef0ce5d6f591dc782 > >> staging: fix dt3155 build > > > > Yes, if you look, the staging-next branch starts on Linus's tree as of > > April 8 (just after 2.6.34-rc3). I don't merge back to Linus's tree a > > bunch, because that is not how it should be done. When I am going to > > push these to Linus, then I will merge and handle any fixups if needed. > > Ok. > > >> Which would probably explain the conflict that occurs in linux-next for > >> dt3155_drv.c. > > > > Yes. And how easy it is to fix up :) > > Ok. > > >> commit 9e1bd9a6f8c6ad8b461294a365c49b19212178d9 > >> Merge: 5382319 e595eea > >> Author: Stephen Rothwell <sfr(a)canb.auug.org.au> > >> Date: Tue May 4 15:42:20 2010 +1000 > >> > >> Merge remote branch 'staging-next/staging-next' > >> > >> Conflicts: > >> drivers/staging/arlan/arlan-main.c > >> drivers/staging/comedi/drivers/cb_das16_cs.c > >> drivers/staging/cx25821/cx25821-alsa.c > >> drivers/staging/dt3155/dt3155_drv.c > >> drivers/staging/netwave/netwave_cs.c > > > > That doesn't explain how you aren't seeing the correct stuff to base > > your patches off of though. > > I may be seeing the correct stuff now in your staging-next tree just not > in linux-next due to the two commits above. > > > Are you _sure_ you have the 'staging-next' branch of the tree checked > > out? > > Am I _sure_... No... Do I _think_ so... Yes... ;-) Ah, ok, the issue is the merge is causing your patch to not apply to my staging-next tree. Sorry, now I get it :) > Would you like me to rebase the patch to staging-next to see? Your patches, yes, I would :) > But, will this run into a similar problem with the two commits already in > Linus' tree? If so I can just hold off again until everything catches up. No, I can handle that merge when it happens, quite fine. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: H Hartley Sweeten on 4 May 2010 17:30 The macros ReadMReg and WriteMReg are really just private versions of the kernel's readl and writel functions. Use the kernel's functions instead. And since ioremap returns a (void __iomem *) not a (u8 *), change all the uses of dt3155_lbase to reflect this. While here, make dt3155_lbase static since it is only used in the dt3155_drv.c file. Also, remove the global variable dt3155_bbase since it is not used anywhere in the code. Where is makes sense, create a local 'mmio' variable instead of using dt3155_lbase[minor] to make the code more readable. This change also affects the {Read|Write}I2C functions so they are also modified as needed. Signed-off-by: H Hartley Sweeten <hsweeten(a)visionengravers.com> Cc: Greg Kroah-Hartman <gregkh(a)suse.de> Cc: Scott Smedley <ss(a)aao.gov.au> --- Greg, here is the patch rebased to your staging-next tree. The main issue I can see is a conflict with: commit 6536560cabab170ed2969b005bf69a496e9c45bf Staging: dt3155: fix 50Hz configuration This patch modifies the same two lines that were changed by that patch. diff --git a/drivers/staging/dt3155/dt3155_drv.c b/drivers/staging/dt3155/dt3155_drv.c index 993ed2f..8ebfe14 100644 --- a/drivers/staging/dt3155/dt3155_drv.c +++ b/drivers/staging/dt3155/dt3155_drv.c @@ -75,8 +75,8 @@ MODULE_LICENSE("GPL"); #include <linux/poll.h> #include <linux/sched.h> #include <linux/smp_lock.h> +#include <linux/io.h> -#include <asm/io.h> #include <asm/uaccess.h> #include "dt3155.h" @@ -123,14 +123,12 @@ int dt3155_major = 0; struct dt3155_status dt3155_status[MAXBOARDS]; /* kernel logical address of the board */ -u8 *dt3155_lbase[MAXBOARDS] = { NULL +static void __iomem *dt3155_lbase[MAXBOARDS] = { NULL #if MAXBOARDS == 2 , NULL #endif }; -/* DT3155 registers */ -u8 *dt3155_bbase = NULL; /* kernel logical address of the * - * buffer region */ + u32 dt3155_dev_open[MAXBOARDS] = {0 #if MAXBOARDS == 2 , 0 @@ -150,11 +148,13 @@ static void quick_stop (int minor) { // TODO: scott was here #if 1 - ReadMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + void __iomem *mmio = dt3155_lbase[minor]; + + int_csr_r.reg = readl(mmio + INT_CSR); /* disable interrupts */ int_csr_r.fld.FLD_END_EVE_EN = 0; int_csr_r.fld.FLD_END_ODD_EN = 0; - WriteMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, mmio + INT_CSR); dt3155_status[minor].state &= ~(DT3155_STATE_STOP|0xff); /* mark the system stopped: */ @@ -182,6 +182,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) int index; unsigned long flags; u32 buffer_addr; + void __iomem *mmio; /* find out who issued the interrupt */ for (index = 0; index < ndevices; index++) { @@ -198,8 +199,10 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) return; } + mmio = dt3155_lbase[minor]; + /* Check for corruption and set a flag if so */ - ReadMReg((dt3155_lbase[minor] + CSR1), csr1_r.reg); + csr1_r.reg = readl(mmio + CSR1); if ((csr1_r.fld.FLD_CRPT_EVE) || (csr1_r.fld.FLD_CRPT_ODD)) { @@ -211,7 +214,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) return; } - ReadMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + int_csr_r.reg = readl(mmio + INT_CSR); /* Handle the even field ... */ if (int_csr_r.fld.FLD_END_EVE) @@ -222,7 +225,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) dt3155_fbuffer[minor]->frame_count++; } - ReadI2C(dt3155_lbase[minor], EVEN_CSR, &i2c_even_csr.reg); + ReadI2C(mmio, EVEN_CSR, &i2c_even_csr.reg); /* Clear the interrupt? */ int_csr_r.fld.FLD_END_EVE = 1; @@ -242,7 +245,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) } } - WriteMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, mmio + INT_CSR); /* Set up next DMA if we are doing FIELDS */ if ((dt3155_status[minor].state & DT3155_STATE_MODE) == @@ -260,7 +263,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) /* Set up the DMA address for the next field */ local_irq_restore(flags); - WriteMReg((dt3155_lbase[minor] + ODD_DMA_START), buffer_addr); + writel(buffer_addr, mmio + ODD_DMA_START); } /* Check for errors. */ @@ -268,7 +271,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) if (i2c_even_csr.fld.ERROR_EVE) dt3155_errno = DT_ERR_OVERRUN; - WriteI2C(dt3155_lbase[minor], EVEN_CSR, i2c_even_csr.reg); + WriteI2C(mmio, EVEN_CSR, i2c_even_csr.reg); /* Note that we actually saw an even field meaning */ /* that subsequent odd field complete the frame */ @@ -285,7 +288,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) /* ... now handle the odd field */ if (int_csr_r.fld.FLD_END_ODD) { - ReadI2C(dt3155_lbase[minor], ODD_CSR, &i2c_odd_csr.reg); + ReadI2C(mmio, ODD_CSR, &i2c_odd_csr.reg); /* Clear the interrupt? */ int_csr_r.fld.FLD_END_ODD = 1; @@ -321,7 +324,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) } } - WriteMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, mmio + INT_CSR); /* if the odd field has been acquired, then */ /* change the next dma location for both fields */ @@ -398,14 +401,14 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) if ((dt3155_status[minor].state & DT3155_STATE_MODE) == DT3155_STATE_FLD) { - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_START), buffer_addr); + writel(buffer_addr, mmio + EVEN_DMA_START); } else { - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_START), buffer_addr); + writel(buffer_addr, mmio + EVEN_DMA_START); - WriteMReg((dt3155_lbase[minor] + ODD_DMA_START), buffer_addr - + dt3155_status[minor].config.cols); + writel(buffer_addr + dt3155_status[minor].config.cols, + mmio + ODD_DMA_START); } /* Do error checking */ @@ -413,7 +416,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) if (i2c_odd_csr.fld.ERROR_ODD) dt3155_errno = DT_ERR_OVERRUN; - WriteI2C(dt3155_lbase[minor], ODD_CSR, i2c_odd_csr.reg); + WriteI2C(mmio, ODD_CSR, i2c_odd_csr.reg); return; } @@ -430,6 +433,7 @@ static void dt3155_isr(int irq, void *dev_id, struct pt_regs *regs) static void dt3155_init_isr(int minor) { const u32 stride = dt3155_status[minor].config.cols; + void __iomem *mmio = dt3155_lbase[minor]; switch (dt3155_status[minor].state & DT3155_STATE_MODE) { @@ -440,12 +444,9 @@ static void dt3155_init_isr(int minor) even_dma_stride_r = 0; odd_dma_stride_r = 0; - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_START), - even_dma_start_r); - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_STRIDE), - even_dma_stride_r); - WriteMReg((dt3155_lbase[minor] + ODD_DMA_STRIDE), - odd_dma_stride_r); + writel(even_dma_start_r, mmio + EVEN_DMA_START); + writel(even_dma_stride_r, mmio + EVEN_DMA_STRIDE); + writel(odd_dma_stride_r, mmio + ODD_DMA_STRIDE); break; } @@ -458,14 +459,10 @@ static void dt3155_init_isr(int minor) even_dma_stride_r = stride; odd_dma_stride_r = stride; - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_START), - even_dma_start_r); - WriteMReg((dt3155_lbase[minor] + ODD_DMA_START), - odd_dma_start_r); - WriteMReg((dt3155_lbase[minor] + EVEN_DMA_STRIDE), - even_dma_stride_r); - WriteMReg((dt3155_lbase[minor] + ODD_DMA_STRIDE), - odd_dma_stride_r); + writel(even_dma_start_r, mmio + EVEN_DMA_START); + writel(odd_dma_start_r, mmio + ODD_DMA_START); + writel(even_dma_stride_r, mmio + EVEN_DMA_STRIDE); + writel(odd_dma_stride_r, mmio + ODD_DMA_STRIDE); break; } } @@ -473,9 +470,9 @@ static void dt3155_init_isr(int minor) /* 50/60 Hz should be set before this point but let's make sure it is */ /* right anyway */ - ReadI2C(dt3155_lbase[minor], CONFIG, &i2c_csr2.reg); + ReadI2C(mmio, CSR2, &i2c_csr2.reg); i2c_csr2.fld.HZ50 = FORMAT50HZ; - WriteI2C(dt3155_lbase[minor], CONFIG, i2c_config.reg); + WriteI2C(mmio, CSR2, i2c_csr2.reg); /* enable busmaster chip, clear flags */ @@ -495,7 +492,7 @@ static void dt3155_init_isr(int minor) csr1_r.fld.FLD_CRPT_EVE = 1; /* writing a 1 clears flags */ csr1_r.fld.FLD_CRPT_ODD = 1; - WriteMReg((dt3155_lbase[minor] + CSR1),csr1_r.reg); + writel(csr1_r.reg, mmio + CSR1); /* Enable interrupts at the end of each field */ @@ -504,14 +501,14 @@ static void dt3155_init_isr(int minor) int_csr_r.fld.FLD_END_ODD_EN = 1; int_csr_r.fld.FLD_START_EN = 0; - WriteMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, mmio + INT_CSR); /* start internal BUSY bits */ - ReadI2C(dt3155_lbase[minor], CSR2, &i2c_csr2.reg); + ReadI2C(mmio, CSR2, &i2c_csr2.reg); i2c_csr2.fld.BUSY_ODD = 1; i2c_csr2.fld.BUSY_EVE = 1; - WriteI2C(dt3155_lbase[minor], CSR2, i2c_csr2.reg); + WriteI2C(mmio, CSR2, i2c_csr2.reg); /* Now its up to the interrupt routine!! */ @@ -693,6 +690,8 @@ static int dt3155_mmap (struct file * file, struct vm_area_struct * vma) static int dt3155_open(struct inode* inode, struct file* filep) { int minor = MINOR(inode->i_rdev); /* what device are we opening? */ + void __iomem *mmio = dt3155_lbase[minor]; + if (dt3155_dev_open[minor]) { printk ("DT3155: Already opened by another process.\n"); return -EBUSY; @@ -719,7 +718,7 @@ static int dt3155_open(struct inode* inode, struct file* filep) /* Disable ALL interrupts */ int_csr_r.reg = 0; - WriteMReg((dt3155_lbase[minor] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, mmio + INT_CSR); init_waitqueue_head(&(dt3155_read_wait_queue[minor])); @@ -921,7 +920,7 @@ static int find_PCI (void) /* Remap the base address to a logical address through which we * can access it. */ - dt3155_lbase[pci_index - 1] = ioremap(base,PCI_PAGE_SIZE); + dt3155_lbase[pci_index - 1] = ioremap(base, PCI_PAGE_SIZE); dt3155_status[pci_index - 1].reg_addr = base; DT_3155_DEBUG_MSG("DT3155: New logical address is %p \n", dt3155_lbase[pci_index-1]); @@ -1046,7 +1045,7 @@ int init_module(void) int_csr_r.reg = 0; for( index = 0; index < ndevices; index++) { - WriteMReg((dt3155_lbase[index] + INT_CSR), int_csr_r.reg); + writel(int_csr_r.reg, dt3155_lbase[index] + INT_CSR); if(dt3155_status[index].device_installed) { /* diff --git a/drivers/staging/dt3155/dt3155_drv.h b/drivers/staging/dt3155/dt3155_drv.h index 95e68c3..c447c61 100644 --- a/drivers/staging/dt3155/dt3155_drv.h +++ b/drivers/staging/dt3155/dt3155_drv.h @@ -24,12 +24,6 @@ MA 02111-1307 USA #ifndef DT3155_DRV_INC #define DT3155_DRV_INC -/* kernel logical address of the frame grabbers */ -extern u8 *dt3155_lbase[MAXBOARDS]; - -/* kernel logical address of ram buffer */ -extern u8 *dt3155_bbase; - #ifdef __KERNEL__ #include <linux/wait.h> diff --git a/drivers/staging/dt3155/dt3155_io.c b/drivers/staging/dt3155/dt3155_io.c index 7792e71..c99bd57 100644 --- a/drivers/staging/dt3155/dt3155_io.c +++ b/drivers/staging/dt3155/dt3155_io.c @@ -21,6 +21,8 @@ */ #include <linux/delay.h> +#include <linux/io.h> + #include "dt3155.h" #include "dt3155_io.h" #include "dt3155_drv.h" @@ -75,13 +77,13 @@ u8 i2c_pm_lut_data; * * This function handles read/write timing and r/w timeout error */ -static int wait_ibsyclr(u8 *lpReg) +static int wait_ibsyclr(void __iomem *mmio) { /* wait 100 microseconds */ udelay(100L); /* __delay(loops_per_sec/10000); */ - ReadMReg(lpReg + IIC_CSR2, iic_csr2_r.reg); + iic_csr2_r.reg = readl(mmio + IIC_CSR2); if (iic_csr2_r.fld.NEW_CYCLE) { /* if NEW_CYCLE didn't clear */ /* TIMEOUT ERROR */ @@ -101,11 +103,10 @@ static int wait_ibsyclr(u8 *lpReg) * 2nd parameter is reg. index; * 3rd is value to be written */ -int WriteI2C(u8 *lpReg, u_short wIregIndex, u8 byVal) +int WriteI2C(void __iomem *mmio, u_short wIregIndex, u8 byVal) { /* read 32 bit IIC_CSR2 register data into union */ - - ReadMReg((lpReg + IIC_CSR2), iic_csr2_r.reg); + iic_csr2_r.reg = readl(mmio + IIC_CSR2); /* for write operation */ iic_csr2_r.fld.DIR_RD = 0; @@ -117,10 +118,10 @@ int WriteI2C(u8 *lpReg, u_short wIregIndex, u8 byVal) iic_csr2_r.fld.NEW_CYCLE = 1; /* xfer union data into 32 bit IIC_CSR2 register */ - WriteMReg((lpReg + IIC_CSR2), iic_csr2_r.reg); + writel(iic_csr2_r.reg, mmio + IIC_CSR2); /* wait for IIC cycle to finish */ - return wait_ibsyclr(lpReg); + return wait_ibsyclr(mmio); } /* @@ -132,12 +133,12 @@ int WriteI2C(u8 *lpReg, u_short wIregIndex, u8 byVal) * 2nd parameter is reg. index; * 3rd is adrs of value to be read */ -int ReadI2C(u8 *lpReg, u_short wIregIndex, u8 *byVal) +int ReadI2C(void __iomem *mmio, u_short wIregIndex, u8 *byVal) { int writestat; /* status for return */ /* read 32 bit IIC_CSR2 register data into union */ - ReadMReg((lpReg + IIC_CSR2), iic_csr2_r.reg); + iic_csr2_r.reg = readl(mmio + IIC_CSR2); /* for read operation */ iic_csr2_r.fld.DIR_RD = 1; @@ -149,14 +150,14 @@ int ReadI2C(u8 *lpReg, u_short wIregIndex, u8 *byVal) iic_csr2_r.fld.NEW_CYCLE = 1; /* xfer union's data into 32 bit IIC_CSR2 register */ - WriteMReg((lpReg + IIC_CSR2), iic_csr2_r.reg); + writel(iic_csr2_r.reg, mmio + IIC_CSR2); /* wait for IIC cycle to finish */ - writestat = wait_ibsyclr(lpReg); + writestat = wait_ibsyclr(mmio); /* Next 2 commands read 32 bit IIC_CSR1 register's data into union */ /* first read data is in IIC_CSR1 */ - ReadMReg((lpReg + IIC_CSR1), iic_csr1_r.reg); + iic_csr1_r.reg = readl(mmio + IIC_CSR1); /* now get data u8 out of register */ *byVal = (u8) iic_csr1_r.fld.RD_DATA; diff --git a/drivers/staging/dt3155/dt3155_io.h b/drivers/staging/dt3155/dt3155_io.h index d1a2510..1445082 100644 --- a/drivers/staging/dt3155/dt3155_io.h +++ b/drivers/staging/dt3155/dt3155_io.h @@ -34,11 +34,6 @@ MA 02111-1307 USA #ifndef DT3155_IO_INC #define DT3155_IO_INC -/* macros to access registers */ - -#define WriteMReg(Address, Data) (*((u32 *)(Address)) = Data) -#define ReadMReg(Address, Data) (Data = *((u32 *)(Address))) - /***************** 32 bit register globals **************/ /* offsets for 32-bit memory mapped registers */ @@ -351,8 +346,7 @@ extern u8 i2c_pm_lut_data; /* Functions for Global use */ /* access 8-bit IIC registers */ - -extern int ReadI2C(u8 *lpReg, u_short wIregIndex, u8 *byVal); -extern int WriteI2C(u8 *lpReg, u_short wIregIndex, u8 byVal); +extern int ReadI2C(void __iomem *mmio, u_short wIregIndex, u8 *byVal); +extern int WriteI2C(void __iomem *mmio, u_short wIregIndex, u8 byVal); #endif -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: H Hartley Sweeten on 6 May 2010 13:00 On Tuesday, May 04, 2010 2:23 PM, H Hartley Sweeten wrote: > > The macros ReadMReg and WriteMReg are really just private versions of > the kernel's readl and writel functions. Use the kernel's functions > instead. And since ioremap returns a (void __iomem *) not a (u8 *), > change all the uses of dt3155_lbase to reflect this. > > While here, make dt3155_lbase static since it is only used in the > dt3155_drv.c file. Also, remove the global variable dt3155_bbase > since it is not used anywhere in the code. > > Where is makes sense, create a local 'mmio' variable instead of using > dt3155_lbase[minor] to make the code more readable. > > This change also affects the {Read|Write}I2C functions so they are > also modified as needed. > > Signed-off-by: H Hartley Sweeten <hsweeten(a)visionengravers.com> > Cc: Greg Kroah-Hartman <gregkh(a)suse.de> > Cc: Scott Smedley <ss(a)aao.gov.au> > Greg, Did this patch fair any better when trying to merge it? If there is still an issue I will wait until Linus' tree, linux-next, and your staging-next branch appear to be more in sync. Regards, Hartley-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 4 5 Prev: [PATCH v2.1 3/4] IPVS: make FTP work with full NAT support Next: Staging: dream: pmem: code style fixes |