/*
* Copyright ( C ) 2010 Francisco Jerez .
* All Rights Reserved .
*
* Permission is hereby granted , free of charge , to any person obtaining
* a copy of this software and associated documentation files ( the
* " Software " ) , to deal in the Software without restriction , including
* without limitation the rights to use , copy , modify , merge , publish ,
* distribute , sublicense , and / or sell copies of the Software , and to
* permit persons to whom the Software is furnished to do so , subject to
* the following conditions :
*
* The above copyright notice and this permission notice ( including the
* next paragraph ) shall be included in all copies or substantial
* portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND ,
* EXPRESS OR IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY , FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT .
* IN NO EVENT SHALL THE COPYRIGHT OWNER ( S ) AND / OR ITS SUPPLIERS BE
* LIABLE FOR ANY CLAIM , DAMAGES OR OTHER LIABILITY , WHETHER IN AN ACTION
* OF CONTRACT , TORT OR OTHERWISE , ARISING FROM , OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE .
*
*/
#include <subdev/fb/regsnv04.h>
#define NV04_PFB_DEBUG_0 0 x00100080
# define NV04_PFB_DEBUG_0_PAGE_MODE 0 x00000001
# define NV04_PFB_DEBUG_0_REFRESH_OFF 0 x00000010
# define NV04_PFB_DEBUG_0_REFRESH_COUNTX64 0 x00003f00
# define NV04_PFB_DEBUG_0_REFRESH_SLOW_CLK 0 x00004000
# define NV04_PFB_DEBUG_0_SAFE_MODE 0 x00008000
# define NV04_PFB_DEBUG_0_ALOM_ENABLE 0 x00010000
# define NV04_PFB_DEBUG_0_CASOE 0 x00100000
# define NV04_PFB_DEBUG_0_CKE_INVERT 0 x10000000
# define NV04_PFB_DEBUG_0_REFINC 0 x20000000
# define NV04_PFB_DEBUG_0_SAVE_POWER_OFF 0 x40000000
#define NV04_PFB_CFG0 0 x00100200
# define NV04_PFB_CFG0_SCRAMBLE 0 x20000000
#define NV04_PFB_CFG1 0 x00100204
#define NV04_PFB_SCRAMBLE(i) (0 x00100400 + 4 * (i))
#define NV10_PFB_REFCTRL 0 x00100210
# define NV10_PFB_REFCTRL_VALID_1 (1 << 31 )
static inline struct io_mapping *
fbmem_init(struct nvkm_device *dev)
{
return io_mapping_create_wc(dev->func->resource_addr(dev, NVKM_BAR1_FB),
dev->func->resource_size(dev, NVKM_BAR1_FB));
}
static inline void
fbmem_fini(struct io_mapping *fb)
{
io_mapping_free(fb);
}
static inline u32
fbmem_peek(struct io_mapping *fb, u32 off)
{
u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK);
u32 val = ioread32(p + (off & ~PAGE_MASK));
io_mapping_unmap_atomic(p);
return val;
}
static inline void
fbmem_poke(struct io_mapping *fb, u32 off, u32 val)
{
u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK);
iowrite32(val, p + (off & ~PAGE_MASK));
wmb();
io_mapping_unmap_atomic(p);
}
static inline bool
fbmem_readback(struct io_mapping *fb, u32 off, u32 val)
{
fbmem_poke(fb, off, val);
return val == fbmem_peek(fb, off);
}
Messung V0.5 in Prozent C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-10-07)
¤
*© Formatika GbR, Deutschland