On Thu, Apr 10, 2025, at 09:30, Geert Uytterhoeven wrote: > On Wed, 9 Apr 2025 at 21:07, Arnd Bergmann <a...@arndb.de> wrote: >> On Wed, Apr 9, 2025, at 19:07, Geert Uytterhoeven wrote: >> > On Wed, 9 Apr 2025 at 16:48, Miguel Ojeda > >> In theory we could go through all the old drivers and >> also remove the 'volatile' markers from struct members that >> store __iomem pointers, but there is no practical benefit to >> that. > > Most drivers must have been fixed already, as m68k allmodconfig > does not complain. Still, I guess I should update m68k to match the > others, right? (FTR, that also builds fine) >
Right, it's even rarer than I expected. According to my randconfig builds, these re the ones that actually have the extra volatile annotations: drivers/media/pci/bt8xx/bt878.c | 2 +- drivers/media/pci/bt8xx/bt878.h | 2 +- drivers/media/pci/ivtv/ivtv-driver.h | 8 +- drivers/media/pci/ivtv/ivtv-firmware.c | 10 +- drivers/mtd/devices/spear_smi.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 5 +- drivers/scsi/aacraid/aacraid.h | 5 +- drivers/scsi/aacraid/rx.c | 2 +- drivers/scsi/megaraid/megaraid_sas.h | 2 +- drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/smartpqi/smartpqi_init.c | 2 +- drivers/video/fbdev/imsttfb.c | 4 +- drivers/video/fbdev/kyro/STG4000InitDevice.c | 4 +- drivers/video/fbdev/kyro/STG4000Interface.h | 26 +- drivers/video/fbdev/kyro/STG4000OverlayDevice.c | 10 +- drivers/video/fbdev/kyro/STG4000Ramdac.c | 6 +- drivers/video/fbdev/kyro/STG4000Reg.h | 376 ++++++++++++------------ drivers/video/fbdev/kyro/STG4000VTG.c | 8 +- drivers/video/fbdev/nvidia/nv_type.h | 38 +-- drivers/video/fbdev/nvidia/nvidia.c | 9 +- drivers/video/fbdev/riva/fbdev.c | 2 +- drivers/video/fbdev/riva/nv_driver.c | 26 +- drivers/video/fbdev/riva/riva_hw.h | 60 ++-- include/asm-generic/io.h | 136 ++++----- include/asm-generic/video.h | 22 +- include/linux/io-64-nonatomic-hi-lo.h | 12 +- include/linux/io-64-nonatomic-lo-hi.h | 12 +- include/linux/io.h | 2 +- lib/check_signature.c | 2 +- lib/iomem_copy.c | 6 +- lib/trace_readwrite.c | 8 +- mm/ioremap.c | 4 +- 33 files changed, 404 insertions(+), 413 deletions(-) diff --git a/drivers/media/pci/bt8xx/bt878.c b/drivers/media/pci/bt8xx/bt878.c index 62a6c4a80bed..dc4885d03838 100644 --- a/drivers/media/pci/bt8xx/bt878.c +++ b/drivers/media/pci/bt8xx/bt878.c @@ -442,7 +442,7 @@ static int bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) bt->irq, lat, bt->bt878_adr); #ifdef __sparc__ - bt->bt878_mem = (unsigned char *) bt->bt878_adr; + bt->bt878_mem = (unsigned char __iomem *) bt->bt878_adr; #else bt->bt878_mem = ioremap(bt->bt878_adr, 0x1000); #endif diff --git a/drivers/media/pci/bt8xx/bt878.h b/drivers/media/pci/bt8xx/bt878.h index 5b1c7f56e553..1f03019af187 100644 --- a/drivers/media/pci/bt8xx/bt878.h +++ b/drivers/media/pci/bt8xx/bt878.h @@ -103,7 +103,7 @@ struct bt878 { unsigned char revision; unsigned int irq; unsigned long bt878_adr; - volatile void __iomem *bt878_mem; /* function 1 */ + void __iomem *bt878_mem; /* function 1 */ volatile u32 finished_block; volatile u32 last_block; diff --git a/drivers/media/pci/ivtv/ivtv-driver.h b/drivers/media/pci/ivtv/ivtv-driver.h index a6ffa99e16bc..24225b4ecbf3 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.h +++ b/drivers/media/pci/ivtv/ivtv-driver.h @@ -210,7 +210,7 @@ struct ivtv_api_cache { }; struct ivtv_mailbox_data { - volatile struct ivtv_mailbox __iomem *mbox; + struct ivtv_mailbox __iomem *mbox; /* Bits 0-2 are for the encoder mailboxes, 0-1 are for the decoder mailboxes. If the bit is set, then the corresponding mailbox is in use by the driver. */ unsigned long busy; @@ -623,9 +623,9 @@ struct ivtv { struct v4l2_subdev *sd_audio; /* controlling audio subdev */ struct v4l2_subdev *sd_muxer; /* controlling audio muxer subdev */ resource_size_t base_addr; /* PCI resource base address */ - volatile void __iomem *enc_mem; /* pointer to mapped encoder memory */ - volatile void __iomem *dec_mem; /* pointer to mapped decoder memory */ - volatile void __iomem *reg_mem; /* pointer to mapped registers */ + void __iomem *enc_mem; /* pointer to mapped encoder memory */ + void __iomem *dec_mem; /* pointer to mapped decoder memory */ + void __iomem *reg_mem; /* pointer to mapped registers */ struct ivtv_options options; /* user options */ struct v4l2_device v4l2_dev; diff --git a/drivers/media/pci/ivtv/ivtv-firmware.c b/drivers/media/pci/ivtv/ivtv-firmware.c index 56b25255faf5..abac1fa5a1ab 100644 --- a/drivers/media/pci/ivtv/ivtv-firmware.c +++ b/drivers/media/pci/ivtv/ivtv-firmware.c @@ -37,7 +37,7 @@ #define IVTV_FW_ENC_SIZE (376836) #define IVTV_FW_DEC_SIZE (256*1024) -static int load_fw_direct(const char *fn, volatile u8 __iomem *mem, struct ivtv *itv, long size) +static int load_fw_direct(const char *fn, u8 __iomem *mem, struct ivtv *itv, long size) { const struct firmware *fw = NULL; int retries = 3; @@ -45,7 +45,7 @@ static int load_fw_direct(const char *fn, volatile u8 __iomem *mem, struct ivtv retry: if (retries && request_firmware(&fw, fn, &itv->pdev->dev) == 0) { int i; - volatile u32 __iomem *dst = (volatile u32 __iomem *)mem; + u32 __iomem *dst = (u32 __iomem *)mem; const u32 *src = (const u32 *)fw->data; if (fw->size != size) { @@ -163,7 +163,7 @@ static int ivtv_firmware_copy(struct ivtv *itv) return 0; } -static volatile struct ivtv_mailbox __iomem *ivtv_search_mailbox(const volatile u8 __iomem *mem, u32 size) +static struct ivtv_mailbox __iomem *ivtv_search_mailbox(const u8 __iomem *mem, u32 size) { int i; @@ -174,7 +174,7 @@ static volatile struct ivtv_mailbox __iomem *ivtv_search_mailbox(const volatile readl(mem + i + 4) == 0x34567812 && readl(mem + i + 8) == 0x56781234 && readl(mem + i + 12) == 0x78123456) { - return (volatile struct ivtv_mailbox __iomem *)(mem + i + 16); + return (struct ivtv_mailbox __iomem *)(mem + i + 16); } } return NULL; @@ -233,7 +233,7 @@ void ivtv_init_mpeg_decoder(struct ivtv *itv) { u32 data[CX2341X_MBOX_MAX_DATA]; long readbytes; - volatile u8 __iomem *mem_offset; + u8 __iomem *mem_offset; data[0] = 0; data[1] = itv->cxhdl.width; /* YUV source width */ diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c index f02f96bff450..f6d6795dcdfd 100644 --- a/drivers/mtd/devices/spear_smi.c +++ b/drivers/mtd/devices/spear_smi.c @@ -599,7 +599,7 @@ static int spear_mtd_read(struct mtd_info *mtd, loff_t from, size_t len, * implementation detail and not part of the API. Not mentioning the comment * stating that _memcpy_toio() should be optimized. */ -static void spear_smi_memcpy_toio_b(volatile void __iomem *dest, +static void spear_smi_memcpy_toio_b(void __iomem *dest, const void *src, size_t len) { const unsigned char *from = src; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index 21726cf56586..b9d77bdc4369 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -2804,8 +2804,7 @@ static inline u32 bnxt_tx_avail(struct bnxt *bp, return bp->tx_ring_size - (used & bp->tx_ring_mask); } -static inline void bnxt_writeq(struct bnxt *bp, u64 val, - volatile void __iomem *addr) +static inline void bnxt_writeq(struct bnxt *bp, u64 val, void __iomem *addr) { #if BITS_PER_LONG == 32 spin_lock(&bp->db_lock); @@ -2817,7 +2816,7 @@ static inline void bnxt_writeq(struct bnxt *bp, u64 val, } static inline void bnxt_writeq_relaxed(struct bnxt *bp, u64 val, - volatile void __iomem *addr) + void __iomem *addr) { #if BITS_PER_LONG == 32 spin_lock(&bp->db_lock); diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 8c384c25dca1..6385483a4a70 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h @@ -1627,8 +1627,9 @@ struct aac_dev char __iomem *bar1; } src; } regs; - volatile void __iomem *base, *dbg_base_mapped; - volatile struct rx_inbound __iomem *IndexRegs; + void __iomem *base; + void __iomem *dbg_base_mapped; + struct rx_inbound __iomem *IndexRegs; u32 OIMR; /* Mask Register Cache */ /* * AIF thread states diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c index e06ff83b69ce..60abddaa2f87 100644 --- a/drivers/scsi/aacraid/rx.c +++ b/drivers/scsi/aacraid/rx.c @@ -423,7 +423,7 @@ static int aac_rx_deliver_message(struct fib * fib) struct aac_queue *q = &dev->queues->queue[AdapNormCmdQueue]; u32 Index; u64 addr; - volatile void __iomem *device; + void __iomem *device; unsigned long count = 10000000L; /* 50 seconds */ atomic_inc(&q->numpending); diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 8ee2bfe47571..319ed4518d5c 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -2741,7 +2741,7 @@ int megasas_adp_reset_wait_for_ready(struct megasas_instance *instance, int megasas_irqpoll(struct irq_poll *irqpoll, int budget); void megasas_dump_fusion_io(struct scsi_cmnd *scmd); u32 megasas_readl(struct megasas_instance *instance, - const volatile void __iomem *addr); + const void __iomem *addr); struct megasas_cmd *megasas_get_cmd(struct megasas_instance *instance); void megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd); diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 5e33d411fa3d..de6ff8542b7d 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -254,7 +254,7 @@ static inline void megasas_init_ctrl_params(struct megasas_instance *instance); u32 megasas_readl(struct megasas_instance *instance, - const volatile void __iomem *addr) + const void __iomem *addr) { u32 i = 0, ret_val; /* diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index 9bbc7cb98ca3..bf272dd69d23 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -1185,7 +1185,7 @@ struct mpi3mr_ioc { char name[MPI3MR_NAME_LENGTH]; char driver_name[MPI3MR_NAME_LENGTH]; - volatile struct mpi3_sysif_registers __iomem *sysif_regs; + struct mpi3_sysif_registers __iomem *sysif_regs; resource_size_t sysif_regs_phys; int bars; u64 dma_mask; diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 8a26eca4fdc9..02aebbbfc081 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -3933,7 +3933,7 @@ static inline void pqi_configure_legacy_intx(struct pqi_ctrl_info *ctrl_info, bo { u32 intx_mask; struct pqi_device_registers __iomem *pqi_registers; - volatile void __iomem *register_addr; + void __iomem *register_addr; pqi_registers = ctrl_info->pqi_registers; diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index dc4e659e06af..0434367120ba 100644 --- a/drivers/video/fbdev/imsttfb.c +++ b/drivers/video/fbdev/imsttfb.c @@ -402,7 +402,7 @@ static void imsttfb_remove(struct pci_dev *pdev); /* * Register access */ -static inline u32 read_reg_le32(volatile u32 __iomem *base, int regindex) +static inline u32 read_reg_le32(u32 __iomem *base, int regindex) { #ifdef __powerpc__ return in_le32(base + regindex); @@ -411,7 +411,7 @@ static inline u32 read_reg_le32(volatile u32 __iomem *base, int regindex) #endif } -static inline void write_reg_le32(volatile u32 __iomem *base, int regindex, u32 val) +static inline void write_reg_le32(u32 __iomem *base, int regindex, u32 val) { #ifdef __powerpc__ out_le32(base + regindex, val); diff --git a/drivers/video/fbdev/kyro/STG4000InitDevice.c b/drivers/video/fbdev/kyro/STG4000InitDevice.c index 79886a246638..94ebf10668de 100644 --- a/drivers/video/fbdev/kyro/STG4000InitDevice.c +++ b/drivers/video/fbdev/kyro/STG4000InitDevice.c @@ -80,7 +80,7 @@ volatile u32 i,count=0; \ for(i=0;i<X;i++) count++; \ } -static u32 InitSDRAMRegisters(volatile STG4000REG __iomem *pSTGReg, +static u32 InitSDRAMRegisters(STG4000REG __iomem *pSTGReg, u32 dwSubSysID, u32 dwRevID) { static const u8 adwSDRAMArgCfg0[] = { 0xa0, 0x80, 0xa0, 0xa0, 0xa0 }; @@ -238,7 +238,7 @@ u32 ProgramClock(u32 refClock, return (ulBestClk); } -int SetCoreClockPLL(volatile STG4000REG __iomem *pSTGReg, struct pci_dev *pDev) +int SetCoreClockPLL(STG4000REG __iomem *pSTGReg, struct pci_dev *pDev) { u32 F, R, P; u16 core_pll = 0, sub; diff --git a/drivers/video/fbdev/kyro/STG4000Interface.h b/drivers/video/fbdev/kyro/STG4000Interface.h index b7c83d5dfb13..1caa9a8ed85b 100644 --- a/drivers/video/fbdev/kyro/STG4000Interface.h +++ b/drivers/video/fbdev/kyro/STG4000Interface.h @@ -17,45 +17,45 @@ /* * Ramdac Setup */ -extern int InitialiseRamdac(volatile STG4000REG __iomem *pSTGReg, u32 displayDepth, +extern int InitialiseRamdac(STG4000REG __iomem *pSTGReg, u32 displayDepth, u32 displayWidth, u32 displayHeight, s32 HSyncPolarity, s32 VSyncPolarity, u32 *pixelClock); -extern void DisableRamdacOutput(volatile STG4000REG __iomem *pSTGReg); -extern void EnableRamdacOutput(volatile STG4000REG __iomem *pSTGReg); +extern void DisableRamdacOutput(STG4000REG __iomem *pSTGReg); +extern void EnableRamdacOutput(STG4000REG __iomem *pSTGReg); /* * Timing generator setup */ -extern void DisableVGA(volatile STG4000REG __iomem *pSTGReg); -extern void StopVTG(volatile STG4000REG __iomem *pSTGReg); -extern void StartVTG(volatile STG4000REG __iomem *pSTGReg); -extern void SetupVTG(volatile STG4000REG __iomem *pSTGReg, +extern void DisableVGA(STG4000REG __iomem *pSTGReg); +extern void StopVTG(STG4000REG __iomem *pSTGReg); +extern void StartVTG(STG4000REG __iomem *pSTGReg); +extern void SetupVTG(STG4000REG __iomem *pSTGReg, const struct kyrofb_info * pTiming); extern u32 ProgramClock(u32 refClock, u32 coreClock, u32 *FOut, u32 *ROut, u32 *POut); -extern int SetCoreClockPLL(volatile STG4000REG __iomem *pSTGReg, struct pci_dev *pDev); +extern int SetCoreClockPLL(STG4000REG __iomem *pSTGReg, struct pci_dev *pDev); /* * Overlay setup */ -extern void ResetOverlayRegisters(volatile STG4000REG __iomem *pSTGReg); +extern void ResetOverlayRegisters(STG4000REG __iomem *pSTGReg); -extern int CreateOverlaySurface(volatile STG4000REG __iomem *pSTGReg, +extern int CreateOverlaySurface(STG4000REG __iomem *pSTGReg, u32 ulWidth, u32 ulHeight, int bLinear, u32 ulOverlayOffset, u32 * retStride, u32 * retUVStride); -extern int SetOverlayBlendMode(volatile STG4000REG __iomem *pSTGReg, +extern int SetOverlayBlendMode(STG4000REG __iomem *pSTGReg, OVRL_BLEND_MODE mode, u32 ulAlpha, u32 ulColorKey); -extern int SetOverlayViewPort(volatile STG4000REG __iomem *pSTGReg, +extern int SetOverlayViewPort(STG4000REG __iomem *pSTGReg, u32 left, u32 top, u32 right, u32 bottom); -extern void EnableOverlayPlane(volatile STG4000REG __iomem *pSTGReg); +extern void EnableOverlayPlane(STG4000REG __iomem *pSTGReg); #endif /* _STG4000INTERFACE_H */ diff --git a/drivers/video/fbdev/kyro/STG4000OverlayDevice.c b/drivers/video/fbdev/kyro/STG4000OverlayDevice.c index 9fde0e3b69ec..0971aa857ee5 100644 --- a/drivers/video/fbdev/kyro/STG4000OverlayDevice.c +++ b/drivers/video/fbdev/kyro/STG4000OverlayDevice.c @@ -76,7 +76,7 @@ typedef struct _OVRL_SRC_DEST { static u32 ovlWidth, ovlHeight, ovlStride; static int ovlLinear; -void ResetOverlayRegisters(volatile STG4000REG __iomem *pSTGReg) +void ResetOverlayRegisters(STG4000REG __iomem *pSTGReg) { u32 tmp; @@ -137,7 +137,7 @@ void ResetOverlayRegisters(volatile STG4000REG __iomem *pSTGReg) } -int CreateOverlaySurface(volatile STG4000REG __iomem *pSTGReg, +int CreateOverlaySurface(STG4000REG __iomem *pSTGReg, u32 inWidth, u32 inHeight, int bLinear, @@ -239,7 +239,7 @@ int CreateOverlaySurface(volatile STG4000REG __iomem *pSTGReg, return 0; } -int SetOverlayBlendMode(volatile STG4000REG __iomem *pSTGReg, +int SetOverlayBlendMode(STG4000REG __iomem *pSTGReg, OVRL_BLEND_MODE mode, u32 ulAlpha, u32 ulColorKey) { @@ -285,7 +285,7 @@ int SetOverlayBlendMode(volatile STG4000REG __iomem *pSTGReg, return 0; } -void EnableOverlayPlane(volatile STG4000REG __iomem *pSTGReg) +void EnableOverlayPlane(STG4000REG __iomem *pSTGReg) { u32 tmp; /* Enable Overlay */ @@ -314,7 +314,7 @@ static u32 Overlap(u32 ulBits, u32 ulPattern) } -int SetOverlayViewPort(volatile STG4000REG __iomem *pSTGReg, +int SetOverlayViewPort(STG4000REG __iomem *pSTGReg, u32 left, u32 top, u32 right, u32 bottom) { diff --git a/drivers/video/fbdev/kyro/STG4000Ramdac.c b/drivers/video/fbdev/kyro/STG4000Ramdac.c index e6ad037e4396..fb974cb13c19 100644 --- a/drivers/video/fbdev/kyro/STG4000Ramdac.c +++ b/drivers/video/fbdev/kyro/STG4000Ramdac.c @@ -19,7 +19,7 @@ static u32 STG_PIXEL_BUS_WIDTH = 128; /* 128 bit bus width */ static u32 REF_CLOCK = 14318; -int InitialiseRamdac(volatile STG4000REG __iomem * pSTGReg, +int InitialiseRamdac(STG4000REG __iomem * pSTGReg, u32 displayDepth, u32 displayWidth, u32 displayHeight, @@ -144,7 +144,7 @@ int InitialiseRamdac(volatile STG4000REG __iomem * pSTGReg, } /* Ramdac control, turning output to the screen on and off */ -void DisableRamdacOutput(volatile STG4000REG __iomem * pSTGReg) +void DisableRamdacOutput(STG4000REG __iomem * pSTGReg) { u32 tmp; @@ -153,7 +153,7 @@ void DisableRamdacOutput(volatile STG4000REG __iomem * pSTGReg) STG_WRITE_REG(DACStreamCtrl, tmp); } -void EnableRamdacOutput(volatile STG4000REG __iomem * pSTGReg) +void EnableRamdacOutput(STG4000REG __iomem * pSTGReg) { u32 tmp; diff --git a/drivers/video/fbdev/kyro/STG4000Reg.h b/drivers/video/fbdev/kyro/STG4000Reg.h index 50f4670e9252..c470e92d5b8d 100644 --- a/drivers/video/fbdev/kyro/STG4000Reg.h +++ b/drivers/video/fbdev/kyro/STG4000Reg.h @@ -73,210 +73,210 @@ typedef enum _OVRL_PIX_FORMAT { /* Register Table */ typedef struct { /* 0h */ - volatile u32 Thread0Enable; /* 0x0000 */ - volatile u32 Thread1Enable; /* 0x0004 */ - volatile u32 Thread0Recover; /* 0x0008 */ - volatile u32 Thread1Recover; /* 0x000C */ - volatile u32 Thread0Step; /* 0x0010 */ - volatile u32 Thread1Step; /* 0x0014 */ - volatile u32 VideoInStatus; /* 0x0018 */ - volatile u32 Core2InSignStart; /* 0x001C */ - volatile u32 Core1ResetVector; /* 0x0020 */ - volatile u32 Core1ROMOffset; /* 0x0024 */ - volatile u32 Core1ArbiterPriority; /* 0x0028 */ - volatile u32 VideoInControl; /* 0x002C */ - volatile u32 VideoInReg0CtrlA; /* 0x0030 */ - volatile u32 VideoInReg0CtrlB; /* 0x0034 */ - volatile u32 VideoInReg1CtrlA; /* 0x0038 */ - volatile u32 VideoInReg1CtrlB; /* 0x003C */ - volatile u32 Thread0Kicker; /* 0x0040 */ - volatile u32 Core2InputSign; /* 0x0044 */ - volatile u32 Thread0ProgCtr; /* 0x0048 */ - volatile u32 Thread1ProgCtr; /* 0x004C */ - volatile u32 Thread1Kicker; /* 0x0050 */ - volatile u32 GPRegister1; /* 0x0054 */ - volatile u32 GPRegister2; /* 0x0058 */ - volatile u32 GPRegister3; /* 0x005C */ - volatile u32 GPRegister4; /* 0x0060 */ - volatile u32 SerialIntA; /* 0x0064 */ - - volatile u32 Fill0[6]; /* GAP 0x0068 - 0x007C */ - - volatile u32 SoftwareReset; /* 0x0080 */ - volatile u32 SerialIntB; /* 0x0084 */ - - volatile u32 Fill1[37]; /* GAP 0x0088 - 0x011C */ - - volatile u32 ROMELQV; /* 0x011C */ - volatile u32 WLWH; /* 0x0120 */ - volatile u32 ROMELWL; /* 0x0124 */ - - volatile u32 dwFill_1; /* GAP 0x0128 */ - - volatile u32 IntStatus; /* 0x012C */ - volatile u32 IntMask; /* 0x0130 */ - volatile u32 IntClear; /* 0x0134 */ - - volatile u32 Fill2[6]; /* GAP 0x0138 - 0x014C */ - - volatile u32 ROMGPIOA; /* 0x0150 */ - volatile u32 ROMGPIOB; /* 0x0154 */ - volatile u32 ROMGPIOC; /* 0x0158 */ - volatile u32 ROMGPIOD; /* 0x015C */ - - volatile u32 Fill3[2]; /* GAP 0x0160 - 0x0168 */ - - volatile u32 AGPIntID; /* 0x0168 */ - volatile u32 AGPIntClassCode; /* 0x016C */ - volatile u32 AGPIntBIST; /* 0x0170 */ - volatile u32 AGPIntSSID; /* 0x0174 */ - volatile u32 AGPIntPMCSR; /* 0x0178 */ - volatile u32 VGAFrameBufBase; /* 0x017C */ - volatile u32 VGANotify; /* 0x0180 */ - volatile u32 DACPLLMode; /* 0x0184 */ - volatile u32 Core1VideoClockDiv; /* 0x0188 */ - volatile u32 AGPIntStat; /* 0x018C */ + u32 Thread0Enable; /* 0x0000 */ + u32 Thread1Enable; /* 0x0004 */ + u32 Thread0Recover; /* 0x0008 */ + u32 Thread1Recover; /* 0x000C */ + u32 Thread0Step; /* 0x0010 */ + u32 Thread1Step; /* 0x0014 */ + u32 VideoInStatus; /* 0x0018 */ + u32 Core2InSignStart; /* 0x001C */ + u32 Core1ResetVector; /* 0x0020 */ + u32 Core1ROMOffset; /* 0x0024 */ + u32 Core1ArbiterPriority;/* 0x0028 */ + u32 VideoInControl; /* 0x002C */ + u32 VideoInReg0CtrlA; /* 0x0030 */ + u32 VideoInReg0CtrlB; /* 0x0034 */ + u32 VideoInReg1CtrlA; /* 0x0038 */ + u32 VideoInReg1CtrlB; /* 0x003C */ + u32 Thread0Kicker; /* 0x0040 */ + u32 Core2InputSign; /* 0x0044 */ + u32 Thread0ProgCtr; /* 0x0048 */ + u32 Thread1ProgCtr; /* 0x004C */ + u32 Thread1Kicker; /* 0x0050 */ + u32 GPRegister1; /* 0x0054 */ + u32 GPRegister2; /* 0x0058 */ + u32 GPRegister3; /* 0x005C */ + u32 GPRegister4; /* 0x0060 */ + u32 SerialIntA; /* 0x0064 */ + + u32 Fill0[6]; /* GAP 0x0068 - 0x007C */ + + u32 SoftwareReset; /* 0x0080 */ + u32 SerialIntB; /* 0x0084 */ + + u32 Fill1[37]; /* GAP 0x0088 - 0x011C */ + + u32 ROMELQV; /* 0x011C */ + u32 WLWH; /* 0x0120 */ + u32 ROMELWL; /* 0x0124 */ + + u32 dwFill_1; /* GAP 0x0128 */ + + u32 IntStatus; /* 0x012C */ + u32 IntMask; /* 0x0130 */ + u32 IntClear; /* 0x0134 */ + + u32 Fill2[6]; /* GAP 0x0138 - 0x014C */ + + u32 ROMGPIOA; /* 0x0150 */ + u32 ROMGPIOB; /* 0x0154 */ + u32 ROMGPIOC; /* 0x0158 */ + u32 ROMGPIOD; /* 0x015C */ + + u32 Fill3[2]; /* GAP 0x0160 - 0x0168 */ + + u32 AGPIntID; /* 0x0168 */ + u32 AGPIntClassCode; /* 0x016C */ + u32 AGPIntBIST; /* 0x0170 */ + u32 AGPIntSSID; /* 0x0174 */ + u32 AGPIntPMCSR; /* 0x0178 */ + u32 VGAFrameBufBase; /* 0x017C */ + u32 VGANotify; /* 0x0180 */ + u32 DACPLLMode; /* 0x0184 */ + u32 Core1VideoClockDiv; /* 0x0188 */ + u32 AGPIntStat; /* 0x018C */ /* - volatile u32 Fill4[0x0400/4 - 0x0190/4]; //GAP 0x0190 - 0x0400 - volatile u32 Fill5[0x05FC/4 - 0x0400/4]; //GAP 0x0400 - 0x05FC Fog Table - volatile u32 Fill6[0x0604/4 - 0x0600/4]; //GAP 0x0600 - 0x0604 - volatile u32 Fill7[0x0680/4 - 0x0608/4]; //GAP 0x0608 - 0x0680 - volatile u32 Fill8[0x07FC/4 - 0x0684/4]; //GAP 0x0684 - 0x07FC + u32 Fill4[0x0400/4 - 0x0190/4]; //GAP 0x0190 - 0x0400 + u32 Fill5[0x05FC/4 - 0x0400/4]; //GAP 0x0400 - 0x05FC Fog Table + u32 Fill6[0x0604/4 - 0x0600/4]; //GAP 0x0600 - 0x0604 + u32 Fill7[0x0680/4 - 0x0608/4]; //GAP 0x0608 - 0x0680 + u32 Fill8[0x07FC/4 - 0x0684/4]; //GAP 0x0684 - 0x07FC */ - volatile u32 Fill4[412]; /* 0x0190 - 0x07FC */ - - volatile u32 TACtrlStreamBase; /* 0x0800 */ - volatile u32 TAObjDataBase; /* 0x0804 */ - volatile u32 TAPtrDataBase; /* 0x0808 */ - volatile u32 TARegionDataBase; /* 0x080C */ - volatile u32 TATailPtrBase; /* 0x0810 */ - volatile u32 TAPtrRegionSize; /* 0x0814 */ - volatile u32 TAConfiguration; /* 0x0818 */ - volatile u32 TAObjDataStartAddr; /* 0x081C */ - volatile u32 TAObjDataEndAddr; /* 0x0820 */ - volatile u32 TAXScreenClip; /* 0x0824 */ - volatile u32 TAYScreenClip; /* 0x0828 */ - volatile u32 TARHWClamp; /* 0x082C */ - volatile u32 TARHWCompare; /* 0x0830 */ - volatile u32 TAStart; /* 0x0834 */ - volatile u32 TAObjReStart; /* 0x0838 */ - volatile u32 TAPtrReStart; /* 0x083C */ - volatile u32 TAStatus1; /* 0x0840 */ - volatile u32 TAStatus2; /* 0x0844 */ - volatile u32 TAIntStatus; /* 0x0848 */ - volatile u32 TAIntMask; /* 0x084C */ - - volatile u32 Fill5[235]; /* GAP 0x0850 - 0x0BF8 */ - - volatile u32 TextureAddrThresh; /* 0x0BFC */ - volatile u32 Core1Translation; /* 0x0C00 */ - volatile u32 TextureAddrReMap; /* 0x0C04 */ - volatile u32 RenderOutAGPRemap; /* 0x0C08 */ - volatile u32 _3DRegionReadTrans; /* 0x0C0C */ - volatile u32 _3DPtrReadTrans; /* 0x0C10 */ - volatile u32 _3DParamReadTrans; /* 0x0C14 */ - volatile u32 _3DRegionReadThresh; /* 0x0C18 */ - volatile u32 _3DPtrReadThresh; /* 0x0C1C */ - volatile u32 _3DParamReadThresh; /* 0x0C20 */ - volatile u32 _3DRegionReadAGPRemap; /* 0x0C24 */ - volatile u32 _3DPtrReadAGPRemap; /* 0x0C28 */ - volatile u32 _3DParamReadAGPRemap; /* 0x0C2C */ - volatile u32 ZBufferAGPRemap; /* 0x0C30 */ - volatile u32 TAIndexAGPRemap; /* 0x0C34 */ - volatile u32 TAVertexAGPRemap; /* 0x0C38 */ - volatile u32 TAUVAddrTrans; /* 0x0C3C */ - volatile u32 TATailPtrCacheTrans; /* 0x0C40 */ - volatile u32 TAParamWriteTrans; /* 0x0C44 */ - volatile u32 TAPtrWriteTrans; /* 0x0C48 */ - volatile u32 TAParamWriteThresh; /* 0x0C4C */ - volatile u32 TAPtrWriteThresh; /* 0x0C50 */ - volatile u32 TATailPtrCacheAGPRe; /* 0x0C54 */ - volatile u32 TAParamWriteAGPRe; /* 0x0C58 */ - volatile u32 TAPtrWriteAGPRe; /* 0x0C5C */ - volatile u32 SDRAMArbiterConf; /* 0x0C60 */ - volatile u32 SDRAMConf0; /* 0x0C64 */ - volatile u32 SDRAMConf1; /* 0x0C68 */ - volatile u32 SDRAMConf2; /* 0x0C6C */ - volatile u32 SDRAMRefresh; /* 0x0C70 */ - volatile u32 SDRAMPowerStat; /* 0x0C74 */ - - volatile u32 Fill6[2]; /* GAP 0x0C78 - 0x0C7C */ - - volatile u32 RAMBistData; /* 0x0C80 */ - volatile u32 RAMBistCtrl; /* 0x0C84 */ - volatile u32 FIFOBistKey; /* 0x0C88 */ - volatile u32 RAMBistResult; /* 0x0C8C */ - volatile u32 FIFOBistResult; /* 0x0C90 */ + u32 Fill4[412]; /* 0x0190 - 0x07FC */ + + u32 TACtrlStreamBase; /* 0x0800 */ + u32 TAObjDataBase; /* 0x0804 */ + u32 TAPtrDataBase; /* 0x0808 */ + u32 TARegionDataBase; /* 0x080C */ + u32 TATailPtrBase; /* 0x0810 */ + u32 TAPtrRegionSize; /* 0x0814 */ + u32 TAConfiguration; /* 0x0818 */ + u32 TAObjDataStartAddr; /* 0x081C */ + u32 TAObjDataEndAddr; /* 0x0820 */ + u32 TAXScreenClip; /* 0x0824 */ + u32 TAYScreenClip; /* 0x0828 */ + u32 TARHWClamp; /* 0x082C */ + u32 TARHWCompare; /* 0x0830 */ + u32 TAStart; /* 0x0834 */ + u32 TAObjReStart; /* 0x0838 */ + u32 TAPtrReStart; /* 0x083C */ + u32 TAStatus1; /* 0x0840 */ + u32 TAStatus2; /* 0x0844 */ + u32 TAIntStatus; /* 0x0848 */ + u32 TAIntMask; /* 0x084C */ + + u32 Fill5[235]; /* GAP 0x0850 - 0x0BF8 */ + + u32 TextureAddrThresh; /* 0x0BFC */ + u32 Core1Translation; /* 0x0C00 */ + u32 TextureAddrReMap; /* 0x0C04 */ + u32 RenderOutAGPRemap; /* 0x0C08 */ + u32 _3DRegionReadTrans; /* 0x0C0C */ + u32 _3DPtrReadTrans; /* 0x0C10 */ + u32 _3DParamReadTrans; /* 0x0C14 */ + u32 _3DRegionReadThresh;/* 0x0C18 */ + u32 _3DPtrReadThresh; /* 0x0C1C */ + u32 _3DParamReadThresh; /* 0x0C20 */ + u32 _3DRegionReadAGPRemap;/* 0x0C24 */ + u32 _3DPtrReadAGPRemap; /* 0x0C28 */ + u32 _3DParamReadAGPRemap;/* 0x0C2C */ + u32 ZBufferAGPRemap; /* 0x0C30 */ + u32 TAIndexAGPRemap; /* 0x0C34 */ + u32 TAVertexAGPRemap; /* 0x0C38 */ + u32 TAUVAddrTrans; /* 0x0C3C */ + u32 TATailPtrCacheTrans;/* 0x0C40 */ + u32 TAParamWriteTrans; /* 0x0C44 */ + u32 TAPtrWriteTrans; /* 0x0C48 */ + u32 TAParamWriteThresh; /* 0x0C4C */ + u32 TAPtrWriteThresh; /* 0x0C50 */ + u32 TATailPtrCacheAGPRe;/* 0x0C54 */ + u32 TAParamWriteAGPRe; /* 0x0C58 */ + u32 TAPtrWriteAGPRe; /* 0x0C5C */ + u32 SDRAMArbiterConf; /* 0x0C60 */ + u32 SDRAMConf0; /* 0x0C64 */ + u32 SDRAMConf1; /* 0x0C68 */ + u32 SDRAMConf2; /* 0x0C6C */ + u32 SDRAMRefresh; /* 0x0C70 */ + u32 SDRAMPowerStat; /* 0x0C74 */ + + u32 Fill6[2]; /* GAP 0x0C78 - 0x0C7C */ + + u32 RAMBistData; /* 0x0C80 */ + u32 RAMBistCtrl; /* 0x0C84 */ + u32 FIFOBistKey; /* 0x0C88 */ + u32 RAMBistResult; /* 0x0C8C */ + u32 FIFOBistResult; /* 0x0C90 */ /* - volatile u32 Fill11[0x0CBC/4 - 0x0C94/4]; //GAP 0x0C94 - 0x0CBC - volatile u32 Fill12[0x0CD0/4 - 0x0CC0/4]; //GAP 0x0CC0 - 0x0CD0 3DRegisters + u32 Fill11[0x0CBC/4 - 0x0C94/4]; //GAP 0x0C94 - 0x0CBC + u32 Fill12[0x0CD0/4 - 0x0CC0/4]; //GAP 0x0CC0 - 0x0CD0 3DRegisters */ - volatile u32 Fill7[16]; /* 0x0c94 - 0x0cd0 */ + u32 Fill7[16]; /* 0x0c94 - 0x0cd0 */ - volatile u32 SDRAMAddrSign; /* 0x0CD4 */ - volatile u32 SDRAMDataSign; /* 0x0CD8 */ - volatile u32 SDRAMSignConf; /* 0x0CDC */ + u32 SDRAMAddrSign; /* 0x0CD4 */ + u32 SDRAMDataSign; /* 0x0CD8 */ + u32 SDRAMSignConf; /* 0x0CDC */ /* DWFILL; //GAP 0x0CE0 */ - volatile u32 dwFill_2; - - volatile u32 ISPSignature; /* 0x0CE4 */ - - volatile u32 Fill8[454]; /*GAP 0x0CE8 - 0x13FC */ - - volatile u32 DACPrimAddress; /* 0x1400 */ - volatile u32 DACPrimSize; /* 0x1404 */ - volatile u32 DACCursorAddr; /* 0x1408 */ - volatile u32 DACCursorCtrl; /* 0x140C */ - volatile u32 DACOverlayAddr; /* 0x1410 */ - volatile u32 DACOverlayUAddr; /* 0x1414 */ - volatile u32 DACOverlayVAddr; /* 0x1418 */ - volatile u32 DACOverlaySize; /* 0x141C */ - volatile u32 DACOverlayVtDec; /* 0x1420 */ - - volatile u32 Fill9[9]; /* GAP 0x1424 - 0x1444 */ - - volatile u32 DACVerticalScal; /* 0x1448 */ - volatile u32 DACPixelFormat; /* 0x144C */ - volatile u32 DACHorizontalScal; /* 0x1450 */ - volatile u32 DACVidWinStart; /* 0x1454 */ - volatile u32 DACVidWinEnd; /* 0x1458 */ - volatile u32 DACBlendCtrl; /* 0x145C */ - volatile u32 DACHorTim1; /* 0x1460 */ - volatile u32 DACHorTim2; /* 0x1464 */ - volatile u32 DACHorTim3; /* 0x1468 */ - volatile u32 DACVerTim1; /* 0x146C */ - volatile u32 DACVerTim2; /* 0x1470 */ - volatile u32 DACVerTim3; /* 0x1474 */ - volatile u32 DACBorderColor; /* 0x1478 */ - volatile u32 DACSyncCtrl; /* 0x147C */ - volatile u32 DACStreamCtrl; /* 0x1480 */ - volatile u32 DACLUTAddress; /* 0x1484 */ - volatile u32 DACLUTData; /* 0x1488 */ - volatile u32 DACBurstCtrl; /* 0x148C */ - volatile u32 DACCrcTrigger; /* 0x1490 */ - volatile u32 DACCrcDone; /* 0x1494 */ - volatile u32 DACCrcResult1; /* 0x1498 */ - volatile u32 DACCrcResult2; /* 0x149C */ - volatile u32 DACLinecount; /* 0x14A0 */ - - volatile u32 Fill10[151]; /*GAP 0x14A4 - 0x16FC */ - - volatile u32 DigVidPortCtrl; /* 0x1700 */ - volatile u32 DigVidPortStat; /* 0x1704 */ + u32 dwFill_2; + + u32 ISPSignature; /* 0x0CE4 */ + + u32 Fill8[454]; /*GAP 0x0CE8 - 0x13FC */ + + u32 DACPrimAddress; /* 0x1400 */ + u32 DACPrimSize; /* 0x1404 */ + u32 DACCursorAddr; /* 0x1408 */ + u32 DACCursorCtrl; /* 0x140C */ + u32 DACOverlayAddr; /* 0x1410 */ + u32 DACOverlayUAddr; /* 0x1414 */ + u32 DACOverlayVAddr; /* 0x1418 */ + u32 DACOverlaySize; /* 0x141C */ + u32 DACOverlayVtDec; /* 0x1420 */ + + u32 Fill9[9]; /* GAP 0x1424 - 0x1444 */ + + u32 DACVerticalScal; /* 0x1448 */ + u32 DACPixelFormat; /* 0x144C */ + u32 DACHorizontalScal; /* 0x1450 */ + u32 DACVidWinStart; /* 0x1454 */ + u32 DACVidWinEnd; /* 0x1458 */ + u32 DACBlendCtrl; /* 0x145C */ + u32 DACHorTim1; /* 0x1460 */ + u32 DACHorTim2; /* 0x1464 */ + u32 DACHorTim3; /* 0x1468 */ + u32 DACVerTim1; /* 0x146C */ + u32 DACVerTim2; /* 0x1470 */ + u32 DACVerTim3; /* 0x1474 */ + u32 DACBorderColor; /* 0x1478 */ + u32 DACSyncCtrl; /* 0x147C */ + u32 DACStreamCtrl; /* 0x1480 */ + u32 DACLUTAddress; /* 0x1484 */ + u32 DACLUTData; /* 0x1488 */ + u32 DACBurstCtrl; /* 0x148C */ + u32 DACCrcTrigger; /* 0x1490 */ + u32 DACCrcDone; /* 0x1494 */ + u32 DACCrcResult1; /* 0x1498 */ + u32 DACCrcResult2; /* 0x149C */ + u32 DACLinecount; /* 0x14A0 */ + + u32 Fill10[151]; /*GAP 0x14A4 - 0x16FC */ + + u32 DigVidPortCtrl; /* 0x1700 */ + u32 DigVidPortStat; /* 0x1704 */ /* - volatile u32 Fill11[0x1FFC/4 - 0x1708/4]; //GAP 0x1708 - 0x1FFC - volatile u32 Fill17[0x3000/4 - 0x2FFC/4]; //GAP 0x2000 - 0x2FFC ALUT + u32 Fill11[0x1FFC/4 - 0x1708/4]; //GAP 0x1708 - 0x1FFC + u32 Fill17[0x3000/4 - 0x2FFC/4]; //GAP 0x2000 - 0x2FFC ALUT */ - volatile u32 Fill11[1598]; + u32 Fill11[1598]; /* DWFILL; //GAP 0x3000 ALUT 256MB offset */ - volatile u32 Fill_3; + u32 Fill_3; } STG4000REG; diff --git a/drivers/video/fbdev/kyro/STG4000VTG.c b/drivers/video/fbdev/kyro/STG4000VTG.c index bd389709d234..6780a441c765 100644 --- a/drivers/video/fbdev/kyro/STG4000VTG.c +++ b/drivers/video/fbdev/kyro/STG4000VTG.c @@ -14,7 +14,7 @@ #include "STG4000Reg.h" #include "STG4000Interface.h" -void DisableVGA(volatile STG4000REG __iomem *pSTGReg) +void DisableVGA(STG4000REG __iomem *pSTGReg) { u32 tmp; volatile u32 count = 0, i; @@ -35,7 +35,7 @@ void DisableVGA(volatile STG4000REG __iomem *pSTGReg) STG_WRITE_REG(SoftwareReset, tmp); } -void StopVTG(volatile STG4000REG __iomem *pSTGReg) +void StopVTG(STG4000REG __iomem *pSTGReg) { u32 tmp = 0; @@ -45,7 +45,7 @@ void StopVTG(volatile STG4000REG __iomem *pSTGReg) STG_WRITE_REG(DACSyncCtrl, tmp); } -void StartVTG(volatile STG4000REG __iomem *pSTGReg) +void StartVTG(STG4000REG __iomem *pSTGReg) { u32 tmp = 0; @@ -56,7 +56,7 @@ void StartVTG(volatile STG4000REG __iomem *pSTGReg) STG_WRITE_REG(DACSyncCtrl, tmp); } -void SetupVTG(volatile STG4000REG __iomem *pSTGReg, +void SetupVTG(STG4000REG __iomem *pSTGReg, const struct kyrofb_info * pTiming) { u32 tmp = 0; diff --git a/drivers/video/fbdev/nvidia/nv_type.h b/drivers/video/fbdev/nvidia/nv_type.h index d7a1d4363d5f..15a857dcde5a 100644 --- a/drivers/video/fbdev/nvidia/nv_type.h +++ b/drivers/video/fbdev/nvidia/nv_type.h @@ -152,25 +152,25 @@ struct nvidia_par { int wc_cookie; struct nvidia_i2c_chan chan[3]; - volatile u32 __iomem *REGS; - volatile u32 __iomem *PCRTC0; - volatile u32 __iomem *PCRTC; - volatile u32 __iomem *PRAMDAC0; - volatile u32 __iomem *PFB; - volatile u32 __iomem *PFIFO; - volatile u32 __iomem *PGRAPH; - volatile u32 __iomem *PEXTDEV; - volatile u32 __iomem *PTIMER; - volatile u32 __iomem *PMC; - volatile u32 __iomem *PRAMIN; - volatile u32 __iomem *FIFO; - volatile u32 __iomem *CURSOR; - volatile u8 __iomem *PCIO0; - volatile u8 __iomem *PCIO; - volatile u8 __iomem *PVIO; - volatile u8 __iomem *PDIO0; - volatile u8 __iomem *PDIO; - volatile u32 __iomem *PRAMDAC; + u32 __iomem *REGS; + u32 __iomem *PCRTC0; + u32 __iomem *PCRTC; + u32 __iomem *PRAMDAC0; + u32 __iomem *PFB; + u32 __iomem *PFIFO; + u32 __iomem *PGRAPH; + u32 __iomem *PEXTDEV; + u32 __iomem *PTIMER; + u32 __iomem *PMC; + u32 __iomem *PRAMIN; + u32 __iomem *FIFO; + u32 __iomem *CURSOR; + u8 __iomem *PCIO0; + u8 __iomem *PCIO; + u8 __iomem *PVIO; + u8 __iomem *PDIO0; + u8 __iomem *PDIO; + u32 __iomem *PRAMDAC; }; #endif /* __NV_TYPE_H__ */ diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index 8900f181f195..53d72abbd0a3 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -395,8 +395,8 @@ static int nvidia_calc_regs(struct fb_info *info) i = 32; if (par->Architecture >= NV_ARCH_10) - par->CURSOR = (volatile u32 __iomem *)(info->screen_base + - par->CursorStart); + par->CURSOR = (u32 __iomem *)(info->screen_base + + par->CursorStart); if (info->var.sync & FB_SYNC_HOR_HIGH_ACT) state->misc_output &= ~0x40; @@ -1201,8 +1201,7 @@ static int nvidia_set_fbinfo(struct fb_info *info) return nvidiafb_check_var(&info->var, info); } -static u32 nvidia_get_chipset(struct pci_dev *pci_dev, - volatile u32 __iomem *REGS) +static u32 nvidia_get_chipset(struct pci_dev *pci_dev, u32 __iomem *REGS) { u32 id = (pci_dev->vendor << 16) | pci_dev->device; @@ -1281,7 +1280,7 @@ static int nvidiafb_probe(struct pci_dev *pd, const struct pci_device_id *ent) struct fb_info *info; unsigned short cmd; int ret; - volatile u32 __iomem *REGS; + u32 __iomem *REGS; int Chipset; u32 Architecture; diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index 1e377b2ec089..f8998fc3ac5f 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -1487,7 +1487,7 @@ static void rivafb_imageblit(struct fb_info *info, struct riva_par *par = info->par; u32 fgx = 0, bgx = 0, width, tmp; u8 *cdat = (u8 *) image->data; - volatile u32 __iomem *d; + u32 __iomem *d; int i, size; if ((info->flags & FBINFO_HWACCEL_DISABLED) || image->depth != 1) { diff --git a/drivers/video/fbdev/riva/nv_driver.c b/drivers/video/fbdev/riva/nv_driver.c index a3d9c66973ad..48e15aef6c13 100644 --- a/drivers/video/fbdev/riva/nv_driver.c +++ b/drivers/video/fbdev/riva/nv_driver.c @@ -51,7 +51,7 @@ static inline unsigned char MISCin(struct riva_par *par) static Bool riva_is_connected(struct riva_par *par, Bool second) { - volatile U032 __iomem *PRAMDAC = par->riva.PRAMDAC0; + U032 __iomem *PRAMDAC = par->riva.PRAMDAC0; U032 reg52C, reg608; Bool present; @@ -315,22 +315,14 @@ void riva_common_setup(struct riva_par *par) { par->riva.EnableIRQ = 0; - par->riva.PRAMDAC0 = - (volatile U032 __iomem *)(par->ctrl_base + 0x00680000); - par->riva.PFB = - (volatile U032 __iomem *)(par->ctrl_base + 0x00100000); - par->riva.PFIFO = - (volatile U032 __iomem *)(par->ctrl_base + 0x00002000); - par->riva.PGRAPH = - (volatile U032 __iomem *)(par->ctrl_base + 0x00400000); - par->riva.PEXTDEV = - (volatile U032 __iomem *)(par->ctrl_base + 0x00101000); - par->riva.PTIMER = - (volatile U032 __iomem *)(par->ctrl_base + 0x00009000); - par->riva.PMC = - (volatile U032 __iomem *)(par->ctrl_base + 0x00000000); - par->riva.FIFO = - (volatile U032 __iomem *)(par->ctrl_base + 0x00800000); + par->riva.PRAMDAC0 = (U032 __iomem *)(par->ctrl_base + 0x00680000); + par->riva.PFB = (U032 __iomem *)(par->ctrl_base + 0x00100000); + par->riva.PFIFO = (U032 __iomem *)(par->ctrl_base + 0x00002000); + par->riva.PGRAPH = (U032 __iomem *)(par->ctrl_base + 0x00400000); + par->riva.PEXTDEV = (U032 __iomem *)(par->ctrl_base + 0x00101000); + par->riva.PTIMER = (U032 __iomem *)(par->ctrl_base + 0x00009000); + par->riva.PMC = (U032 __iomem *)(par->ctrl_base + 0x00000000); + par->riva.FIFO = (U032 __iomem *)(par->ctrl_base + 0x00800000); par->riva.PCIO0 = par->ctrl_base + 0x00601000; par->riva.PDIO0 = par->ctrl_base + 0x00681000; par->riva.PVIO = par->ctrl_base + 0x000C0000; diff --git a/drivers/video/fbdev/riva/riva_hw.h b/drivers/video/fbdev/riva/riva_hw.h index 5e7b35466b00..d9f3f4c7888c 100644 --- a/drivers/video/fbdev/riva/riva_hw.h +++ b/drivers/video/fbdev/riva/riva_hw.h @@ -104,7 +104,7 @@ typedef unsigned int U032; /* * Raster OPeration. Windows style ROP3. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -119,7 +119,7 @@ typedef volatile struct /* * 8X8 Monochrome pattern. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -138,7 +138,7 @@ typedef volatile struct /* * Scissor clip rectangle. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -154,7 +154,7 @@ typedef volatile struct /* * 2D filled rectangle. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -172,7 +172,7 @@ typedef volatile struct /* * 2D screen-screen BLT. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -189,7 +189,7 @@ typedef volatile struct /* * 2D pixel BLT. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -208,7 +208,7 @@ typedef volatile struct /* * Filled rectangle combined with monochrome expand. Useful for glyphs. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -274,7 +274,7 @@ typedef volatile struct /* * 3D textured, Z buffered triangle. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -304,7 +304,7 @@ typedef volatile struct float TextureS; float TextureT; } RivaTexturedTriangle03; -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -342,7 +342,7 @@ typedef volatile struct /* * 2D line. */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -377,7 +377,7 @@ typedef volatile struct /* * 2D/3D surfaces */ -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -389,7 +389,7 @@ typedef volatile struct U032 reserved01[0x0BE]; U032 Offset; } RivaSurface; -typedef volatile struct +typedef struct { U032 reserved00[4]; #ifdef __BIG_ENDIAN @@ -441,24 +441,24 @@ typedef struct _riva_hw_inst /* * Non-FIFO registers. */ - volatile U032 __iomem *PCRTC0; - volatile U032 __iomem *PCRTC; - volatile U032 __iomem *PRAMDAC0; - volatile U032 __iomem *PFB; - volatile U032 __iomem *PFIFO; - volatile U032 __iomem *PGRAPH; - volatile U032 __iomem *PEXTDEV; - volatile U032 __iomem *PTIMER; - volatile U032 __iomem *PMC; - volatile U032 __iomem *PRAMIN; - volatile U032 __iomem *FIFO; - volatile U032 __iomem *CURSOR; - volatile U008 __iomem *PCIO0; - volatile U008 __iomem *PCIO; - volatile U008 __iomem *PVIO; - volatile U008 __iomem *PDIO0; - volatile U008 __iomem *PDIO; - volatile U032 __iomem *PRAMDAC; + U032 __iomem *PCRTC0; + U032 __iomem *PCRTC; + U032 __iomem *PRAMDAC0; + U032 __iomem *PFB; + U032 __iomem *PFIFO; + U032 __iomem *PGRAPH; + U032 __iomem *PEXTDEV; + U032 __iomem *PTIMER; + U032 __iomem *PMC; + U032 __iomem *PRAMIN; + U032 __iomem *FIFO; + U032 __iomem *CURSOR; + U008 __iomem *PCIO0; + U008 __iomem *PCIO; + U008 __iomem *PVIO; + U008 __iomem *PDIO0; + U008 __iomem *PDIO; + U032 __iomem *PRAMDAC; /* * Common chip functions. */ diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index e22e5ece063f..75ad78a68d43 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -80,24 +80,24 @@ DECLARE_TRACEPOINT(rwmmio_post_write); DECLARE_TRACEPOINT(rwmmio_read); DECLARE_TRACEPOINT(rwmmio_post_read); -void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +void log_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0); -void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +void log_post_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0); -void log_read_mmio(u8 width, const volatile void __iomem *addr, +void log_read_mmio(u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0); -void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr, +void log_post_read_mmio(u64 val, u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0); #else -static inline void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +static inline void log_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) {} -static inline void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +static inline void log_post_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) {} -static inline void log_read_mmio(u8 width, const volatile void __iomem *addr, +static inline void log_read_mmio(u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) {} -static inline void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr, +static inline void log_post_read_mmio(u64 val, u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) {} #endif /* CONFIG_TRACE_MMIO_ACCESS */ @@ -112,7 +112,7 @@ static inline void log_post_read_mmio(u64 val, u8 width, const volatile void __i #ifndef __raw_readb #define __raw_readb __raw_readb -static inline u8 __raw_readb(const volatile void __iomem *addr) +static inline u8 __raw_readb(const void __iomem *addr) { return *(const volatile u8 __force *)addr; } @@ -120,7 +120,7 @@ static inline u8 __raw_readb(const volatile void __iomem *addr) #ifndef __raw_readw #define __raw_readw __raw_readw -static inline u16 __raw_readw(const volatile void __iomem *addr) +static inline u16 __raw_readw(const void __iomem *addr) { return *(const volatile u16 __force *)addr; } @@ -128,7 +128,7 @@ static inline u16 __raw_readw(const volatile void __iomem *addr) #ifndef __raw_readl #define __raw_readl __raw_readl -static inline u32 __raw_readl(const volatile void __iomem *addr) +static inline u32 __raw_readl(const void __iomem *addr) { return *(const volatile u32 __force *)addr; } @@ -137,7 +137,7 @@ static inline u32 __raw_readl(const volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef __raw_readq #define __raw_readq __raw_readq -static inline u64 __raw_readq(const volatile void __iomem *addr) +static inline u64 __raw_readq(const void __iomem *addr) { return *(const volatile u64 __force *)addr; } @@ -146,7 +146,7 @@ static inline u64 __raw_readq(const volatile void __iomem *addr) #ifndef __raw_writeb #define __raw_writeb __raw_writeb -static inline void __raw_writeb(u8 value, volatile void __iomem *addr) +static inline void __raw_writeb(u8 value, void __iomem *addr) { *(volatile u8 __force *)addr = value; } @@ -154,7 +154,7 @@ static inline void __raw_writeb(u8 value, volatile void __iomem *addr) #ifndef __raw_writew #define __raw_writew __raw_writew -static inline void __raw_writew(u16 value, volatile void __iomem *addr) +static inline void __raw_writew(u16 value, void __iomem *addr) { *(volatile u16 __force *)addr = value; } @@ -162,7 +162,7 @@ static inline void __raw_writew(u16 value, volatile void __iomem *addr) #ifndef __raw_writel #define __raw_writel __raw_writel -static inline void __raw_writel(u32 value, volatile void __iomem *addr) +static inline void __raw_writel(u32 value, void __iomem *addr) { *(volatile u32 __force *)addr = value; } @@ -171,7 +171,7 @@ static inline void __raw_writel(u32 value, volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef __raw_writeq #define __raw_writeq __raw_writeq -static inline void __raw_writeq(u64 value, volatile void __iomem *addr) +static inline void __raw_writeq(u64 value, void __iomem *addr) { *(volatile u64 __force *)addr = value; } @@ -185,7 +185,7 @@ static inline void __raw_writeq(u64 value, volatile void __iomem *addr) #ifndef readb #define readb readb -static inline u8 readb(const volatile void __iomem *addr) +static inline u8 readb(const void __iomem *addr) { u8 val; @@ -200,7 +200,7 @@ static inline u8 readb(const volatile void __iomem *addr) #ifndef readw #define readw readw -static inline u16 readw(const volatile void __iomem *addr) +static inline u16 readw(const void __iomem *addr) { u16 val; @@ -215,7 +215,7 @@ static inline u16 readw(const volatile void __iomem *addr) #ifndef readl #define readl readl -static inline u32 readl(const volatile void __iomem *addr) +static inline u32 readl(const void __iomem *addr) { u32 val; @@ -231,7 +231,7 @@ static inline u32 readl(const volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef readq #define readq readq -static inline u64 readq(const volatile void __iomem *addr) +static inline u64 readq(const void __iomem *addr) { u64 val; @@ -247,7 +247,7 @@ static inline u64 readq(const volatile void __iomem *addr) #ifndef writeb #define writeb writeb -static inline void writeb(u8 value, volatile void __iomem *addr) +static inline void writeb(u8 value, void __iomem *addr) { log_write_mmio(value, 8, addr, _THIS_IP_, _RET_IP_); __io_bw(); @@ -259,7 +259,7 @@ static inline void writeb(u8 value, volatile void __iomem *addr) #ifndef writew #define writew writew -static inline void writew(u16 value, volatile void __iomem *addr) +static inline void writew(u16 value, void __iomem *addr) { log_write_mmio(value, 16, addr, _THIS_IP_, _RET_IP_); __io_bw(); @@ -271,7 +271,7 @@ static inline void writew(u16 value, volatile void __iomem *addr) #ifndef writel #define writel writel -static inline void writel(u32 value, volatile void __iomem *addr) +static inline void writel(u32 value, void __iomem *addr) { log_write_mmio(value, 32, addr, _THIS_IP_, _RET_IP_); __io_bw(); @@ -284,7 +284,7 @@ static inline void writel(u32 value, volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef writeq #define writeq writeq -static inline void writeq(u64 value, volatile void __iomem *addr) +static inline void writeq(u64 value, void __iomem *addr) { log_write_mmio(value, 64, addr, _THIS_IP_, _RET_IP_); __io_bw(); @@ -302,7 +302,7 @@ static inline void writeq(u64 value, volatile void __iomem *addr) */ #ifndef readb_relaxed #define readb_relaxed readb_relaxed -static inline u8 readb_relaxed(const volatile void __iomem *addr) +static inline u8 readb_relaxed(const void __iomem *addr) { u8 val; @@ -315,7 +315,7 @@ static inline u8 readb_relaxed(const volatile void __iomem *addr) #ifndef readw_relaxed #define readw_relaxed readw_relaxed -static inline u16 readw_relaxed(const volatile void __iomem *addr) +static inline u16 readw_relaxed(const void __iomem *addr) { u16 val; @@ -328,7 +328,7 @@ static inline u16 readw_relaxed(const volatile void __iomem *addr) #ifndef readl_relaxed #define readl_relaxed readl_relaxed -static inline u32 readl_relaxed(const volatile void __iomem *addr) +static inline u32 readl_relaxed(const void __iomem *addr) { u32 val; @@ -341,7 +341,7 @@ static inline u32 readl_relaxed(const volatile void __iomem *addr) #if defined(readq) && !defined(readq_relaxed) #define readq_relaxed readq_relaxed -static inline u64 readq_relaxed(const volatile void __iomem *addr) +static inline u64 readq_relaxed(const void __iomem *addr) { u64 val; @@ -354,7 +354,7 @@ static inline u64 readq_relaxed(const volatile void __iomem *addr) #ifndef writeb_relaxed #define writeb_relaxed writeb_relaxed -static inline void writeb_relaxed(u8 value, volatile void __iomem *addr) +static inline void writeb_relaxed(u8 value, void __iomem *addr) { log_write_mmio(value, 8, addr, _THIS_IP_, _RET_IP_); __raw_writeb(value, addr); @@ -364,7 +364,7 @@ static inline void writeb_relaxed(u8 value, volatile void __iomem *addr) #ifndef writew_relaxed #define writew_relaxed writew_relaxed -static inline void writew_relaxed(u16 value, volatile void __iomem *addr) +static inline void writew_relaxed(u16 value, void __iomem *addr) { log_write_mmio(value, 16, addr, _THIS_IP_, _RET_IP_); __raw_writew((u16 __force)cpu_to_le16(value), addr); @@ -374,7 +374,7 @@ static inline void writew_relaxed(u16 value, volatile void __iomem *addr) #ifndef writel_relaxed #define writel_relaxed writel_relaxed -static inline void writel_relaxed(u32 value, volatile void __iomem *addr) +static inline void writel_relaxed(u32 value, void __iomem *addr) { log_write_mmio(value, 32, addr, _THIS_IP_, _RET_IP_); __raw_writel((u32 __force)__cpu_to_le32(value), addr); @@ -384,7 +384,7 @@ static inline void writel_relaxed(u32 value, volatile void __iomem *addr) #if defined(writeq) && !defined(writeq_relaxed) #define writeq_relaxed writeq_relaxed -static inline void writeq_relaxed(u64 value, volatile void __iomem *addr) +static inline void writeq_relaxed(u64 value, void __iomem *addr) { log_write_mmio(value, 64, addr, _THIS_IP_, _RET_IP_); __raw_writeq((u64 __force)__cpu_to_le64(value), addr); @@ -398,7 +398,7 @@ static inline void writeq_relaxed(u64 value, volatile void __iomem *addr) */ #ifndef readsb #define readsb readsb -static inline void readsb(const volatile void __iomem *addr, void *buffer, +static inline void readsb(const void __iomem *addr, void *buffer, unsigned int count) { if (count) { @@ -414,7 +414,7 @@ static inline void readsb(const volatile void __iomem *addr, void *buffer, #ifndef readsw #define readsw readsw -static inline void readsw(const volatile void __iomem *addr, void *buffer, +static inline void readsw(const void __iomem *addr, void *buffer, unsigned int count) { if (count) { @@ -430,7 +430,7 @@ static inline void readsw(const volatile void __iomem *addr, void *buffer, #ifndef readsl #define readsl readsl -static inline void readsl(const volatile void __iomem *addr, void *buffer, +static inline void readsl(const void __iomem *addr, void *buffer, unsigned int count) { if (count) { @@ -447,7 +447,7 @@ static inline void readsl(const volatile void __iomem *addr, void *buffer, #ifdef CONFIG_64BIT #ifndef readsq #define readsq readsq -static inline void readsq(const volatile void __iomem *addr, void *buffer, +static inline void readsq(const void __iomem *addr, void *buffer, unsigned int count) { if (count) { @@ -464,7 +464,7 @@ static inline void readsq(const volatile void __iomem *addr, void *buffer, #ifndef writesb #define writesb writesb -static inline void writesb(volatile void __iomem *addr, const void *buffer, +static inline void writesb(void __iomem *addr, const void *buffer, unsigned int count) { if (count) { @@ -479,7 +479,7 @@ static inline void writesb(volatile void __iomem *addr, const void *buffer, #ifndef writesw #define writesw writesw -static inline void writesw(volatile void __iomem *addr, const void *buffer, +static inline void writesw(void __iomem *addr, const void *buffer, unsigned int count) { if (count) { @@ -494,7 +494,7 @@ static inline void writesw(volatile void __iomem *addr, const void *buffer, #ifndef writesl #define writesl writesl -static inline void writesl(volatile void __iomem *addr, const void *buffer, +static inline void writesl(void __iomem *addr, const void *buffer, unsigned int count) { if (count) { @@ -510,7 +510,7 @@ static inline void writesl(volatile void __iomem *addr, const void *buffer, #ifdef CONFIG_64BIT #ifndef writesq #define writesq writesq -static inline void writesq(volatile void __iomem *addr, const void *buffer, +static inline void writesq(void __iomem *addr, const void *buffer, unsigned int count) { if (count) { @@ -851,7 +851,7 @@ static inline void outsl_p(unsigned long addr, const void *buffer, #ifndef CONFIG_GENERIC_IOMAP #ifndef ioread8 #define ioread8 ioread8 -static inline u8 ioread8(const volatile void __iomem *addr) +static inline u8 ioread8(const void __iomem *addr) { return readb(addr); } @@ -859,7 +859,7 @@ static inline u8 ioread8(const volatile void __iomem *addr) #ifndef ioread16 #define ioread16 ioread16 -static inline u16 ioread16(const volatile void __iomem *addr) +static inline u16 ioread16(const void __iomem *addr) { return readw(addr); } @@ -867,7 +867,7 @@ static inline u16 ioread16(const volatile void __iomem *addr) #ifndef ioread32 #define ioread32 ioread32 -static inline u32 ioread32(const volatile void __iomem *addr) +static inline u32 ioread32(const void __iomem *addr) { return readl(addr); } @@ -876,7 +876,7 @@ static inline u32 ioread32(const volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef ioread64 #define ioread64 ioread64 -static inline u64 ioread64(const volatile void __iomem *addr) +static inline u64 ioread64(const void __iomem *addr) { return readq(addr); } @@ -885,7 +885,7 @@ static inline u64 ioread64(const volatile void __iomem *addr) #ifndef iowrite8 #define iowrite8 iowrite8 -static inline void iowrite8(u8 value, volatile void __iomem *addr) +static inline void iowrite8(u8 value, void __iomem *addr) { writeb(value, addr); } @@ -893,7 +893,7 @@ static inline void iowrite8(u8 value, volatile void __iomem *addr) #ifndef iowrite16 #define iowrite16 iowrite16 -static inline void iowrite16(u16 value, volatile void __iomem *addr) +static inline void iowrite16(u16 value, void __iomem *addr) { writew(value, addr); } @@ -901,7 +901,7 @@ static inline void iowrite16(u16 value, volatile void __iomem *addr) #ifndef iowrite32 #define iowrite32 iowrite32 -static inline void iowrite32(u32 value, volatile void __iomem *addr) +static inline void iowrite32(u32 value, void __iomem *addr) { writel(value, addr); } @@ -910,7 +910,7 @@ static inline void iowrite32(u32 value, volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef iowrite64 #define iowrite64 iowrite64 -static inline void iowrite64(u64 value, volatile void __iomem *addr) +static inline void iowrite64(u64 value, void __iomem *addr) { writeq(value, addr); } @@ -919,7 +919,7 @@ static inline void iowrite64(u64 value, volatile void __iomem *addr) #ifndef ioread16be #define ioread16be ioread16be -static inline u16 ioread16be(const volatile void __iomem *addr) +static inline u16 ioread16be(const void __iomem *addr) { return swab16(readw(addr)); } @@ -927,7 +927,7 @@ static inline u16 ioread16be(const volatile void __iomem *addr) #ifndef ioread32be #define ioread32be ioread32be -static inline u32 ioread32be(const volatile void __iomem *addr) +static inline u32 ioread32be(const void __iomem *addr) { return swab32(readl(addr)); } @@ -936,7 +936,7 @@ static inline u32 ioread32be(const volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef ioread64be #define ioread64be ioread64be -static inline u64 ioread64be(const volatile void __iomem *addr) +static inline u64 ioread64be(const void __iomem *addr) { return swab64(readq(addr)); } @@ -945,7 +945,7 @@ static inline u64 ioread64be(const volatile void __iomem *addr) #ifndef iowrite16be #define iowrite16be iowrite16be -static inline void iowrite16be(u16 value, void volatile __iomem *addr) +static inline void iowrite16be(u16 value, void __iomem *addr) { writew(swab16(value), addr); } @@ -953,7 +953,7 @@ static inline void iowrite16be(u16 value, void volatile __iomem *addr) #ifndef iowrite32be #define iowrite32be iowrite32be -static inline void iowrite32be(u32 value, volatile void __iomem *addr) +static inline void iowrite32be(u32 value, void __iomem *addr) { writel(swab32(value), addr); } @@ -962,7 +962,7 @@ static inline void iowrite32be(u32 value, volatile void __iomem *addr) #ifdef CONFIG_64BIT #ifndef iowrite64be #define iowrite64be iowrite64be -static inline void iowrite64be(u64 value, volatile void __iomem *addr) +static inline void iowrite64be(u64 value, void __iomem *addr) { writeq(swab64(value), addr); } @@ -971,7 +971,7 @@ static inline void iowrite64be(u64 value, volatile void __iomem *addr) #ifndef ioread8_rep #define ioread8_rep ioread8_rep -static inline void ioread8_rep(const volatile void __iomem *addr, void *buffer, +static inline void ioread8_rep(const void __iomem *addr, void *buffer, unsigned int count) { readsb(addr, buffer, count); @@ -980,7 +980,7 @@ static inline void ioread8_rep(const volatile void __iomem *addr, void *buffer, #ifndef ioread16_rep #define ioread16_rep ioread16_rep -static inline void ioread16_rep(const volatile void __iomem *addr, +static inline void ioread16_rep(const void __iomem *addr, void *buffer, unsigned int count) { readsw(addr, buffer, count); @@ -989,7 +989,7 @@ static inline void ioread16_rep(const volatile void __iomem *addr, #ifndef ioread32_rep #define ioread32_rep ioread32_rep -static inline void ioread32_rep(const volatile void __iomem *addr, +static inline void ioread32_rep(const void __iomem *addr, void *buffer, unsigned int count) { readsl(addr, buffer, count); @@ -999,7 +999,7 @@ static inline void ioread32_rep(const volatile void __iomem *addr, #ifdef CONFIG_64BIT #ifndef ioread64_rep #define ioread64_rep ioread64_rep -static inline void ioread64_rep(const volatile void __iomem *addr, +static inline void ioread64_rep(const void __iomem *addr, void *buffer, unsigned int count) { readsq(addr, buffer, count); @@ -1009,7 +1009,7 @@ static inline void ioread64_rep(const volatile void __iomem *addr, #ifndef iowrite8_rep #define iowrite8_rep iowrite8_rep -static inline void iowrite8_rep(volatile void __iomem *addr, +static inline void iowrite8_rep(void __iomem *addr, const void *buffer, unsigned int count) { @@ -1019,7 +1019,7 @@ static inline void iowrite8_rep(volatile void __iomem *addr, #ifndef iowrite16_rep #define iowrite16_rep iowrite16_rep -static inline void iowrite16_rep(volatile void __iomem *addr, +static inline void iowrite16_rep(void __iomem *addr, const void *buffer, unsigned int count) { @@ -1029,7 +1029,7 @@ static inline void iowrite16_rep(volatile void __iomem *addr, #ifndef iowrite32_rep #define iowrite32_rep iowrite32_rep -static inline void iowrite32_rep(volatile void __iomem *addr, +static inline void iowrite32_rep(void __iomem *addr, const void *buffer, unsigned int count) { @@ -1040,7 +1040,7 @@ static inline void iowrite32_rep(volatile void __iomem *addr, #ifdef CONFIG_64BIT #ifndef iowrite64_rep #define iowrite64_rep iowrite64_rep -static inline void iowrite64_rep(volatile void __iomem *addr, +static inline void iowrite64_rep(void __iomem *addr, const void *buffer, unsigned int count) { @@ -1078,7 +1078,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, size_t size) #ifndef iounmap #define iounmap iounmap -static inline void iounmap(volatile void __iomem *addr) +static inline void iounmap(void __iomem *addr) { } #endif @@ -1088,8 +1088,8 @@ void __iomem *generic_ioremap_prot(phys_addr_t phys_addr, size_t size, void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, pgprot_t prot); -void iounmap(volatile void __iomem *addr); -void generic_iounmap(volatile void __iomem *addr); +void iounmap(void __iomem *addr); +void generic_iounmap(void __iomem *addr); #ifndef ioremap void __iomem *ioremap(phys_addr_t addr, size_t size); #endif @@ -1174,7 +1174,7 @@ extern void ioport_unmap(void __iomem *p); * * Set a range of I/O memory to a given value. */ -void memset_io(volatile void __iomem *addr, int val, size_t count); +void memset_io(void __iomem *addr, int val, size_t count); #endif #ifndef memcpy_fromio @@ -1186,7 +1186,7 @@ void memset_io(volatile void __iomem *addr, int val, size_t count); * * Copy a block of data from I/O memory. */ -void memcpy_fromio(void *dst, const volatile void __iomem *src, size_t count); +void memcpy_fromio(void *dst, const void __iomem *src, size_t count); #endif #ifndef memcpy_toio @@ -1198,7 +1198,7 @@ void memcpy_fromio(void *dst, const volatile void __iomem *src, size_t count); * * Copy a block of data to I/O memory. */ -void memcpy_toio(volatile void __iomem *dst, const void *src, size_t count); +void memcpy_toio(void __iomem *dst, const void *src, size_t count); #endif extern int devmem_is_allowed(unsigned long pfn); diff --git a/include/asm-generic/video.h b/include/asm-generic/video.h index b1da2309d943..22c1a945f2a7 100644 --- a/include/asm-generic/video.h +++ b/include/asm-generic/video.h @@ -42,7 +42,7 @@ static inline bool video_is_primary_device(struct device *dev) */ #ifndef fb_readb -static inline u8 fb_readb(const volatile void __iomem *addr) +static inline u8 fb_readb(const void __iomem *addr) { return __raw_readb(addr); } @@ -50,7 +50,7 @@ static inline u8 fb_readb(const volatile void __iomem *addr) #endif #ifndef fb_readw -static inline u16 fb_readw(const volatile void __iomem *addr) +static inline u16 fb_readw(const void __iomem *addr) { return __raw_readw(addr); } @@ -58,7 +58,7 @@ static inline u16 fb_readw(const volatile void __iomem *addr) #endif #ifndef fb_readl -static inline u32 fb_readl(const volatile void __iomem *addr) +static inline u32 fb_readl(const void __iomem *addr) { return __raw_readl(addr); } @@ -67,7 +67,7 @@ static inline u32 fb_readl(const volatile void __iomem *addr) #ifndef fb_readq #if defined(__raw_readq) -static inline u64 fb_readq(const volatile void __iomem *addr) +static inline u64 fb_readq(const void __iomem *addr) { return __raw_readq(addr); } @@ -76,7 +76,7 @@ static inline u64 fb_readq(const volatile void __iomem *addr) #endif #ifndef fb_writeb -static inline void fb_writeb(u8 b, volatile void __iomem *addr) +static inline void fb_writeb(u8 b, void __iomem *addr) { __raw_writeb(b, addr); } @@ -84,7 +84,7 @@ static inline void fb_writeb(u8 b, volatile void __iomem *addr) #endif #ifndef fb_writew -static inline void fb_writew(u16 b, volatile void __iomem *addr) +static inline void fb_writew(u16 b, void __iomem *addr) { __raw_writew(b, addr); } @@ -92,7 +92,7 @@ static inline void fb_writew(u16 b, volatile void __iomem *addr) #endif #ifndef fb_writel -static inline void fb_writel(u32 b, volatile void __iomem *addr) +static inline void fb_writel(u32 b, void __iomem *addr) { __raw_writel(b, addr); } @@ -101,7 +101,7 @@ static inline void fb_writel(u32 b, volatile void __iomem *addr) #ifndef fb_writeq #if defined(__raw_writeq) -static inline void fb_writeq(u64 b, volatile void __iomem *addr) +static inline void fb_writeq(u64 b, void __iomem *addr) { __raw_writeq(b, addr); } @@ -110,7 +110,7 @@ static inline void fb_writeq(u64 b, volatile void __iomem *addr) #endif #ifndef fb_memcpy_fromio -static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) +static inline void fb_memcpy_fromio(void *to, const void __iomem *from, size_t n) { memcpy_fromio(to, from, n); } @@ -118,7 +118,7 @@ static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, #endif #ifndef fb_memcpy_toio -static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) +static inline void fb_memcpy_toio(void __iomem *to, const void *from, size_t n) { memcpy_toio(to, from, n); } @@ -126,7 +126,7 @@ static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, s #endif #ifndef fb_memset -static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) +static inline void fb_memset_io(void __iomem *addr, int c, size_t n) { memset_io(addr, c, n); } diff --git a/include/linux/io-64-nonatomic-hi-lo.h b/include/linux/io-64-nonatomic-hi-lo.h index d3eade7cf663..111b8063a9d9 100644 --- a/include/linux/io-64-nonatomic-hi-lo.h +++ b/include/linux/io-64-nonatomic-hi-lo.h @@ -5,9 +5,9 @@ #include <linux/io.h> #include <asm-generic/int-ll64.h> -static inline __u64 hi_lo_readq(const volatile void __iomem *addr) +static inline __u64 hi_lo_readq(const void __iomem *addr) { - const volatile u32 __iomem *p = addr; + const u32 __iomem *p = addr; u32 low, high; high = readl(p + 1); @@ -16,15 +16,15 @@ static inline __u64 hi_lo_readq(const volatile void __iomem *addr) return low + ((u64)high << 32); } -static inline void hi_lo_writeq(__u64 val, volatile void __iomem *addr) +static inline void hi_lo_writeq(__u64 val, void __iomem *addr) { writel(val >> 32, addr + 4); writel(val, addr); } -static inline __u64 hi_lo_readq_relaxed(const volatile void __iomem *addr) +static inline __u64 hi_lo_readq_relaxed(const void __iomem *addr) { - const volatile u32 __iomem *p = addr; + const u32 __iomem *p = addr; u32 low, high; high = readl_relaxed(p + 1); @@ -33,7 +33,7 @@ static inline __u64 hi_lo_readq_relaxed(const volatile void __iomem *addr) return low + ((u64)high << 32); } -static inline void hi_lo_writeq_relaxed(__u64 val, volatile void __iomem *addr) +static inline void hi_lo_writeq_relaxed(__u64 val, void __iomem *addr) { writel_relaxed(val >> 32, addr + 4); writel_relaxed(val, addr); diff --git a/include/linux/io-64-nonatomic-lo-hi.h b/include/linux/io-64-nonatomic-lo-hi.h index 94e676ec3d3f..259615fe39d4 100644 --- a/include/linux/io-64-nonatomic-lo-hi.h +++ b/include/linux/io-64-nonatomic-lo-hi.h @@ -5,9 +5,9 @@ #include <linux/io.h> #include <asm-generic/int-ll64.h> -static inline __u64 lo_hi_readq(const volatile void __iomem *addr) +static inline __u64 lo_hi_readq(const void __iomem *addr) { - const volatile u32 __iomem *p = addr; + const u32 __iomem *p = addr; u32 low, high; low = readl(p); @@ -16,15 +16,15 @@ static inline __u64 lo_hi_readq(const volatile void __iomem *addr) return low + ((u64)high << 32); } -static inline void lo_hi_writeq(__u64 val, volatile void __iomem *addr) +static inline void lo_hi_writeq(__u64 val, void __iomem *addr) { writel(val, addr); writel(val >> 32, addr + 4); } -static inline __u64 lo_hi_readq_relaxed(const volatile void __iomem *addr) +static inline __u64 lo_hi_readq_relaxed(const void __iomem *addr) { - const volatile u32 __iomem *p = addr; + const u32 __iomem *p = addr; u32 low, high; low = readl_relaxed(p); @@ -33,7 +33,7 @@ static inline __u64 lo_hi_readq_relaxed(const volatile void __iomem *addr) return low + ((u64)high << 32); } -static inline void lo_hi_writeq_relaxed(__u64 val, volatile void __iomem *addr) +static inline void lo_hi_writeq_relaxed(__u64 val, void __iomem *addr) { writel_relaxed(val, addr); writel_relaxed(val >> 32, addr + 4); diff --git a/include/linux/io.h b/include/linux/io.h index 5a430d1f845e..8c0a8e8b6066 100644 --- a/include/linux/io.h +++ b/include/linux/io.h @@ -68,7 +68,7 @@ void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset, void __iomem *devm_ioremap_wc(struct device *dev, resource_size_t offset, resource_size_t size); void devm_iounmap(struct device *dev, void __iomem *addr); -int check_signature(const volatile void __iomem *io_addr, +int check_signature(const void __iomem *io_addr, const unsigned char *signature, int length); void devm_ioremap_release(struct device *dev, void *res); diff --git a/lib/check_signature.c b/lib/check_signature.c index 43a7301da7ab..9d8132d433b5 100644 --- a/lib/check_signature.c +++ b/lib/check_signature.c @@ -13,7 +13,7 @@ * Returns 1 on a match. */ -int check_signature(const volatile void __iomem *io_addr, +int check_signature(const void __iomem *io_addr, const unsigned char *signature, int length) { while (length--) { diff --git a/lib/iomem_copy.c b/lib/iomem_copy.c index dec7eaea60e0..614c499f196d 100644 --- a/lib/iomem_copy.c +++ b/lib/iomem_copy.c @@ -18,7 +18,7 @@ * * Set a range of I/O memory to a given value. */ -void memset_io(volatile void __iomem *addr, int val, size_t count) +void memset_io(void __iomem *addr, int val, size_t count) { long qc = (u8)val; @@ -59,7 +59,7 @@ EXPORT_SYMBOL(memset_io); * * Copy a block of data from I/O memory. */ -void memcpy_fromio(void *dst, const volatile void __iomem *src, size_t count) +void memcpy_fromio(void *dst, const void __iomem *src, size_t count) { while (count && !IS_ALIGNED((long)src, sizeof(long))) { *(u8 *)dst = __raw_readb(src); @@ -101,7 +101,7 @@ EXPORT_SYMBOL(memcpy_fromio); * * Copy a block of data to I/O memory. */ -void memcpy_toio(volatile void __iomem *dst, const void *src, size_t count) +void memcpy_toio(void __iomem *dst, const void *src, size_t count) { while (count && !IS_ALIGNED((long)dst, sizeof(long))) { __raw_writeb(*(u8 *)src, dst); diff --git a/lib/trace_readwrite.c b/lib/trace_readwrite.c index a94cd56a1e4c..9c85cdd98a5e 100644 --- a/lib/trace_readwrite.c +++ b/lib/trace_readwrite.c @@ -13,7 +13,7 @@ #include <trace/events/rwmmio.h> #ifdef CONFIG_TRACE_MMIO_ACCESS -void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +void log_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) { trace_rwmmio_write(caller_addr, caller_addr0, val, width, addr); @@ -21,7 +21,7 @@ void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr, EXPORT_SYMBOL_GPL(log_write_mmio); EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_write); -void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr, +void log_post_write_mmio(u64 val, u8 width, void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) { trace_rwmmio_post_write(caller_addr, caller_addr0, val, width, addr); @@ -29,7 +29,7 @@ void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr, EXPORT_SYMBOL_GPL(log_post_write_mmio); EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_write); -void log_read_mmio(u8 width, const volatile void __iomem *addr, +void log_read_mmio(u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) { trace_rwmmio_read(caller_addr, caller_addr0, width, addr); @@ -37,7 +37,7 @@ void log_read_mmio(u8 width, const volatile void __iomem *addr, EXPORT_SYMBOL_GPL(log_read_mmio); EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_read); -void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr, +void log_post_read_mmio(u64 val, u8 width, const void __iomem *addr, unsigned long caller_addr, unsigned long caller_addr0) { trace_rwmmio_post_read(caller_addr, caller_addr0, val, width, addr); diff --git a/mm/ioremap.c b/mm/ioremap.c index 5cae72004a16..3f5e00d206ec 100644 --- a/mm/ioremap.c +++ b/mm/ioremap.c @@ -65,7 +65,7 @@ void __iomem *ioremap(phys_addr_t phys_addr, size_t size) EXPORT_SYMBOL(ioremap); #endif -void generic_iounmap(volatile void __iomem *addr) +void generic_iounmap(void __iomem *addr) { void *vaddr = (void *)((unsigned long)addr & PAGE_MASK); @@ -74,7 +74,7 @@ void generic_iounmap(volatile void __iomem *addr) } #ifndef iounmap -void iounmap(volatile void __iomem *addr) +void iounmap(void __iomem *addr) { generic_iounmap(addr); }