FILE
vlv_sideband.h
File preview with syntax highlighting.
linux-6.19.14/drivers/gpu/drm/i915/display/vlv_sideband.h
1/* SPDX-License-Identifier: MIT */ 2/* Copyright © 2025 Intel Corporation */ 3 4#ifndef _VLV_SIDEBAND_H_ 5#define _VLV_SIDEBAND_H_ 6 7#include <linux/bitops.h> 8#include <linux/types.h> 9 10#include "vlv_iosf_sb.h" 11#include "vlv_iosf_sb_reg.h" 12 13enum dpio_phy; 14struct drm_device; 15 16static inline void vlv_bunit_get(struct drm_device *drm) 17{ 18 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_BUNIT)); 19} 20 21static inline u32 vlv_bunit_read(struct drm_device *drm, u32 reg) 22{ 23 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_BUNIT, reg); 24} 25 26static inline void vlv_bunit_write(struct drm_device *drm, u32 reg, u32 val) 27{ 28 vlv_iosf_sb_write(drm, VLV_IOSF_SB_BUNIT, reg, val); 29} 30 31static inline void vlv_bunit_put(struct drm_device *drm) 32{ 33 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_BUNIT)); 34} 35 36static inline void vlv_cck_get(struct drm_device *drm) 37{ 38 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_CCK)); 39} 40 41static inline u32 vlv_cck_read(struct drm_device *drm, u32 reg) 42{ 43 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_CCK, reg); 44} 45 46static inline void vlv_cck_write(struct drm_device *drm, u32 reg, u32 val) 47{ 48 vlv_iosf_sb_write(drm, VLV_IOSF_SB_CCK, reg, val); 49} 50 51static inline void vlv_cck_put(struct drm_device *drm) 52{ 53 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_CCK)); 54} 55 56static inline void vlv_ccu_get(struct drm_device *drm) 57{ 58 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_CCU)); 59} 60 61static inline u32 vlv_ccu_read(struct drm_device *drm, u32 reg) 62{ 63 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_CCU, reg); 64} 65 66static inline void vlv_ccu_write(struct drm_device *drm, u32 reg, u32 val) 67{ 68 vlv_iosf_sb_write(drm, VLV_IOSF_SB_CCU, reg, val); 69} 70 71static inline void vlv_ccu_put(struct drm_device *drm) 72{ 73 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_CCU)); 74} 75 76static inline void vlv_dpio_get(struct drm_device *drm) 77{ 78 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_DPIO) | BIT(VLV_IOSF_SB_DPIO_2)); 79} 80 81#ifdef I915 82u32 vlv_dpio_read(struct drm_device *drm, enum dpio_phy phy, int reg); 83void vlv_dpio_write(struct drm_device *drm, 84 enum dpio_phy phy, int reg, u32 val); 85#else 86static inline u32 vlv_dpio_read(struct drm_device *drm, int phy, int reg) 87{ 88 return 0; 89} 90static inline void vlv_dpio_write(struct drm_device *drm, 91 int phy, int reg, u32 val) 92{ 93} 94#endif 95 96static inline void vlv_dpio_put(struct drm_device *drm) 97{ 98 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_DPIO) | BIT(VLV_IOSF_SB_DPIO_2)); 99} 100 101static inline void vlv_flisdsi_get(struct drm_device *drm) 102{ 103 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_FLISDSI)); 104} 105 106static inline u32 vlv_flisdsi_read(struct drm_device *drm, u32 reg) 107{ 108 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_FLISDSI, reg); 109} 110 111static inline void vlv_flisdsi_write(struct drm_device *drm, u32 reg, u32 val) 112{ 113 vlv_iosf_sb_write(drm, VLV_IOSF_SB_FLISDSI, reg, val); 114} 115 116static inline void vlv_flisdsi_put(struct drm_device *drm) 117{ 118 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_FLISDSI)); 119} 120 121static inline void vlv_nc_get(struct drm_device *drm) 122{ 123 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_NC)); 124} 125 126static inline u32 vlv_nc_read(struct drm_device *drm, u8 addr) 127{ 128 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_NC, addr); 129} 130 131static inline void vlv_nc_put(struct drm_device *drm) 132{ 133 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_NC)); 134} 135 136static inline void vlv_punit_get(struct drm_device *drm) 137{ 138 vlv_iosf_sb_get(drm, BIT(VLV_IOSF_SB_PUNIT)); 139} 140 141static inline u32 vlv_punit_read(struct drm_device *drm, u32 addr) 142{ 143 return vlv_iosf_sb_read(drm, VLV_IOSF_SB_PUNIT, addr); 144} 145 146static inline int vlv_punit_write(struct drm_device *drm, u32 addr, u32 val) 147{ 148 return vlv_iosf_sb_write(drm, VLV_IOSF_SB_PUNIT, addr, val); 149} 150 151static inline void vlv_punit_put(struct drm_device *drm) 152{ 153 vlv_iosf_sb_put(drm, BIT(VLV_IOSF_SB_PUNIT)); 154} 155 156#endif /* _VLV_SIDEBAND_H_ */
~/
Read-only file preview.