mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
bitmap-for-6.18-rc2
- rust: bitmap: clean Rust 1.92.0 `unused_unsafe` warning (Miguel); - FIELD_PREP_WM16() rework leftover (Nicolas). -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEi8GdvG6xMhdgpu/4sUSA/TofvsgFAmjvuUIACgkQsUSA/Tof vshJcgv9Hf2YD5QP5QJiwRIrusTQF/jq8OcNMF3dzpIZQTXWQSA16y/GPNRcRwCB 4B5RQbqy4wfOZZFDFoOKeyW7clN06XTPH8BNELX+IjGmPDBLXBS0X1fooC2JSUpY +Othx4vvay/KtUhfbeN1qw6H3IT2BS3WEgB8ke+P/bOJBbBnDzoDM1SqYbwnOWZ6 5ZBKix1QOCIzUhGijevQmkT3kBmR1lFM/DTmXo3P5kqp87jmMhIibKhp6+xsWbkN gA9iCCJdpqCT9M4EaYLliCv18GuagfXSQzLspQl8V4I9SRlei0f33Ylwv0uAI1OD ShZN4b8ARkxDQdaFOnSKSDAh1XpNGfUC0HLwwW9om/NrBT5ikgdG04WWat96xsvl N54qT/8yreQPcCJZvkjbqxmI0Ga4pscAbeo+HQ9sWoMRxwtEsyln/RutH2Pa8DRA rNaQP1oRc3CbxCtcPMDaj1e2rF1J0eZnseJggLEOi6kL6uI1vi65fY5ALf+zcaSd 2Wofwg0s =kLaJ -----END PGP SIGNATURE----- Merge tag 'bitmap-for-v6.18-rc2' of https://github.com/norov/linux Pull bitmap fixes from Yury Norov: "A "unnecessary `unsafe`" warning fix for bitmap/rust, and one leftover patch for FIELD_PREP_WM16() conversion. - rust: bitmap: clean Rust 1.92.0 `unused_unsafe` warning (Miguel) - FIELD_PREP_WM16() rework leftover (Nicolas)" * tag 'bitmap-for-v6.18-rc2' of https://github.com/norov/linux: PM / devfreq: rockchip-dfi: switch to FIELD_PREP_WM16 macro rust: bitmap: clean Rust 1.92.0 `unused_unsafe` warning
This commit is contained in:
commit
5a6f65d150
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/hw_bitfield.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/perf_event.h>
|
||||
|
||||
|
|
@ -30,8 +31,6 @@
|
|||
|
||||
#define DMC_MAX_CHANNELS 4
|
||||
|
||||
#define HIWORD_UPDATE(val, mask) ((val) | (mask) << 16)
|
||||
|
||||
/* DDRMON_CTRL */
|
||||
#define DDRMON_CTRL 0x04
|
||||
#define DDRMON_CTRL_LPDDR5 BIT(6)
|
||||
|
|
@ -41,10 +40,6 @@
|
|||
#define DDRMON_CTRL_LPDDR23 BIT(2)
|
||||
#define DDRMON_CTRL_SOFTWARE_EN BIT(1)
|
||||
#define DDRMON_CTRL_TIMER_CNT_EN BIT(0)
|
||||
#define DDRMON_CTRL_DDR_TYPE_MASK (DDRMON_CTRL_LPDDR5 | \
|
||||
DDRMON_CTRL_DDR4 | \
|
||||
DDRMON_CTRL_LPDDR4 | \
|
||||
DDRMON_CTRL_LPDDR23)
|
||||
#define DDRMON_CTRL_LP5_BANK_MODE_MASK GENMASK(8, 7)
|
||||
|
||||
#define DDRMON_CH0_WR_NUM 0x20
|
||||
|
|
@ -124,27 +119,31 @@ struct rockchip_dfi {
|
|||
unsigned int count_multiplier; /* number of data clocks per count */
|
||||
};
|
||||
|
||||
static int rockchip_dfi_ddrtype_to_ctrl(struct rockchip_dfi *dfi, u32 *ctrl,
|
||||
u32 *mask)
|
||||
static int rockchip_dfi_ddrtype_to_ctrl(struct rockchip_dfi *dfi, u32 *ctrl)
|
||||
{
|
||||
u32 ddrmon_ver;
|
||||
|
||||
*mask = DDRMON_CTRL_DDR_TYPE_MASK;
|
||||
|
||||
switch (dfi->ddr_type) {
|
||||
case ROCKCHIP_DDRTYPE_LPDDR2:
|
||||
case ROCKCHIP_DDRTYPE_LPDDR3:
|
||||
*ctrl = DDRMON_CTRL_LPDDR23;
|
||||
*ctrl = FIELD_PREP_WM16(DDRMON_CTRL_LPDDR23, 1) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR4, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR5, 0);
|
||||
break;
|
||||
case ROCKCHIP_DDRTYPE_LPDDR4:
|
||||
case ROCKCHIP_DDRTYPE_LPDDR4X:
|
||||
*ctrl = DDRMON_CTRL_LPDDR4;
|
||||
*ctrl = FIELD_PREP_WM16(DDRMON_CTRL_LPDDR23, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR4, 1) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR5, 0);
|
||||
break;
|
||||
case ROCKCHIP_DDRTYPE_LPDDR5:
|
||||
ddrmon_ver = readl_relaxed(dfi->regs);
|
||||
if (ddrmon_ver < 0x40) {
|
||||
*ctrl = DDRMON_CTRL_LPDDR5 | dfi->lp5_bank_mode;
|
||||
*mask |= DDRMON_CTRL_LP5_BANK_MODE_MASK;
|
||||
*ctrl = FIELD_PREP_WM16(DDRMON_CTRL_LPDDR23, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR4, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LPDDR5, 1) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_LP5_BANK_MODE_MASK,
|
||||
dfi->lp5_bank_mode);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -172,7 +171,6 @@ static int rockchip_dfi_enable(struct rockchip_dfi *dfi)
|
|||
void __iomem *dfi_regs = dfi->regs;
|
||||
int i, ret = 0;
|
||||
u32 ctrl;
|
||||
u32 ctrl_mask;
|
||||
|
||||
mutex_lock(&dfi->mutex);
|
||||
|
||||
|
|
@ -186,7 +184,7 @@ static int rockchip_dfi_enable(struct rockchip_dfi *dfi)
|
|||
goto out;
|
||||
}
|
||||
|
||||
ret = rockchip_dfi_ddrtype_to_ctrl(dfi, &ctrl, &ctrl_mask);
|
||||
ret = rockchip_dfi_ddrtype_to_ctrl(dfi, &ctrl);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
|
|
@ -196,15 +194,16 @@ static int rockchip_dfi_enable(struct rockchip_dfi *dfi)
|
|||
continue;
|
||||
|
||||
/* clear DDRMON_CTRL setting */
|
||||
writel_relaxed(HIWORD_UPDATE(0, DDRMON_CTRL_TIMER_CNT_EN |
|
||||
DDRMON_CTRL_SOFTWARE_EN | DDRMON_CTRL_HARDWARE_EN),
|
||||
writel_relaxed(FIELD_PREP_WM16(DDRMON_CTRL_TIMER_CNT_EN, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_SOFTWARE_EN, 0) |
|
||||
FIELD_PREP_WM16(DDRMON_CTRL_HARDWARE_EN, 0),
|
||||
dfi_regs + i * dfi->ddrmon_stride + DDRMON_CTRL);
|
||||
|
||||
writel_relaxed(HIWORD_UPDATE(ctrl, ctrl_mask),
|
||||
dfi_regs + i * dfi->ddrmon_stride + DDRMON_CTRL);
|
||||
writel_relaxed(ctrl, dfi_regs + i * dfi->ddrmon_stride +
|
||||
DDRMON_CTRL);
|
||||
|
||||
/* enable count, use software mode */
|
||||
writel_relaxed(HIWORD_UPDATE(DDRMON_CTRL_SOFTWARE_EN, DDRMON_CTRL_SOFTWARE_EN),
|
||||
writel_relaxed(FIELD_PREP_WM16(DDRMON_CTRL_SOFTWARE_EN, 1),
|
||||
dfi_regs + i * dfi->ddrmon_stride + DDRMON_CTRL);
|
||||
|
||||
if (dfi->ddrmon_ctrl_single)
|
||||
|
|
@ -234,8 +233,8 @@ static void rockchip_dfi_disable(struct rockchip_dfi *dfi)
|
|||
if (!(dfi->channel_mask & BIT(i)))
|
||||
continue;
|
||||
|
||||
writel_relaxed(HIWORD_UPDATE(0, DDRMON_CTRL_SOFTWARE_EN),
|
||||
dfi_regs + i * dfi->ddrmon_stride + DDRMON_CTRL);
|
||||
writel_relaxed(FIELD_PREP_WM16(DDRMON_CTRL_SOFTWARE_EN, 0),
|
||||
dfi_regs + i * dfi->ddrmon_stride + DDRMON_CTRL);
|
||||
|
||||
if (dfi->ddrmon_ctrl_single)
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ impl core::ops::Deref for BitmapVec {
|
|||
fn deref(&self) -> &Bitmap {
|
||||
let ptr = if self.nbits <= BITS_PER_LONG {
|
||||
// SAFETY: Bitmap is represented inline.
|
||||
#[allow(unused_unsafe, reason = "Safe since Rust 1.92.0")]
|
||||
unsafe { core::ptr::addr_of!(self.repr.bitmap) }
|
||||
} else {
|
||||
// SAFETY: Bitmap is represented as array of `unsigned long`.
|
||||
|
|
@ -182,6 +183,7 @@ impl core::ops::DerefMut for BitmapVec {
|
|||
fn deref_mut(&mut self) -> &mut Bitmap {
|
||||
let ptr = if self.nbits <= BITS_PER_LONG {
|
||||
// SAFETY: Bitmap is represented inline.
|
||||
#[allow(unused_unsafe, reason = "Safe since Rust 1.92.0")]
|
||||
unsafe { core::ptr::addr_of_mut!(self.repr.bitmap) }
|
||||
} else {
|
||||
// SAFETY: Bitmap is represented as array of `unsigned long`.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user