mei: kill cached host and me csr values
Kill host_hw_status and me_hw_state from me hw structure that used to cache host and me csr values. We do not use the cached values across the function calls anymore Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c380b862ba
commit
18caeb70f3
@ -270,10 +270,10 @@ static int mei_me_hw_reset(struct mei_device *dev, bool intr_enable)
|
|||||||
static void mei_me_host_set_ready(struct mei_device *dev)
|
static void mei_me_host_set_ready(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
struct mei_me_hw *hw = to_me_hw(dev);
|
struct mei_me_hw *hw = to_me_hw(dev);
|
||||||
|
u32 hcsr = mei_hcsr_read(hw);
|
||||||
|
|
||||||
hw->host_hw_state = mei_hcsr_read(hw);
|
hcsr |= H_IE | H_IG | H_RDY;
|
||||||
hw->host_hw_state |= H_IE | H_IG | H_RDY;
|
mei_hcsr_set(hw, hcsr);
|
||||||
mei_hcsr_set(hw, hw->host_hw_state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -285,9 +285,9 @@ static void mei_me_host_set_ready(struct mei_device *dev)
|
|||||||
static bool mei_me_host_is_ready(struct mei_device *dev)
|
static bool mei_me_host_is_ready(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
struct mei_me_hw *hw = to_me_hw(dev);
|
struct mei_me_hw *hw = to_me_hw(dev);
|
||||||
|
u32 hcsr = mei_hcsr_read(hw);
|
||||||
|
|
||||||
hw->host_hw_state = mei_hcsr_read(hw);
|
return (hcsr & H_RDY) == H_RDY;
|
||||||
return (hw->host_hw_state & H_RDY) == H_RDY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -299,9 +299,9 @@ static bool mei_me_host_is_ready(struct mei_device *dev)
|
|||||||
static bool mei_me_hw_is_ready(struct mei_device *dev)
|
static bool mei_me_hw_is_ready(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
struct mei_me_hw *hw = to_me_hw(dev);
|
struct mei_me_hw *hw = to_me_hw(dev);
|
||||||
|
u32 mecsr = mei_me_mecsr_read(hw);
|
||||||
|
|
||||||
hw->me_hw_state = mei_me_mecsr_read(hw);
|
return (mecsr & ME_RDY_HRA) == ME_RDY_HRA;
|
||||||
return (hw->me_hw_state & ME_RDY_HRA) == ME_RDY_HRA;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -356,12 +356,13 @@ static int mei_me_hw_start(struct mei_device *dev)
|
|||||||
static unsigned char mei_hbuf_filled_slots(struct mei_device *dev)
|
static unsigned char mei_hbuf_filled_slots(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
struct mei_me_hw *hw = to_me_hw(dev);
|
struct mei_me_hw *hw = to_me_hw(dev);
|
||||||
|
u32 hcsr;
|
||||||
char read_ptr, write_ptr;
|
char read_ptr, write_ptr;
|
||||||
|
|
||||||
hw->host_hw_state = mei_hcsr_read(hw);
|
hcsr = mei_hcsr_read(hw);
|
||||||
|
|
||||||
read_ptr = (char) ((hw->host_hw_state & H_CBRP) >> 8);
|
read_ptr = (char) ((hcsr & H_CBRP) >> 8);
|
||||||
write_ptr = (char) ((hw->host_hw_state & H_CBWP) >> 16);
|
write_ptr = (char) ((hcsr & H_CBWP) >> 16);
|
||||||
|
|
||||||
return (unsigned char) (write_ptr - read_ptr);
|
return (unsigned char) (write_ptr - read_ptr);
|
||||||
}
|
}
|
||||||
@ -474,13 +475,14 @@ static int mei_me_write_message(struct mei_device *dev,
|
|||||||
static int mei_me_count_full_read_slots(struct mei_device *dev)
|
static int mei_me_count_full_read_slots(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
struct mei_me_hw *hw = to_me_hw(dev);
|
struct mei_me_hw *hw = to_me_hw(dev);
|
||||||
|
u32 me_csr;
|
||||||
char read_ptr, write_ptr;
|
char read_ptr, write_ptr;
|
||||||
unsigned char buffer_depth, filled_slots;
|
unsigned char buffer_depth, filled_slots;
|
||||||
|
|
||||||
hw->me_hw_state = mei_me_mecsr_read(hw);
|
me_csr = mei_me_mecsr_read(hw);
|
||||||
buffer_depth = (unsigned char)((hw->me_hw_state & ME_CBD_HRA) >> 24);
|
buffer_depth = (unsigned char)((me_csr & ME_CBD_HRA) >> 24);
|
||||||
read_ptr = (char) ((hw->me_hw_state & ME_CBRP_HRA) >> 8);
|
read_ptr = (char) ((me_csr & ME_CBRP_HRA) >> 8);
|
||||||
write_ptr = (char) ((hw->me_hw_state & ME_CBWP_HRA) >> 16);
|
write_ptr = (char) ((me_csr & ME_CBWP_HRA) >> 16);
|
||||||
filled_slots = (unsigned char) (write_ptr - read_ptr);
|
filled_slots = (unsigned char) (write_ptr - read_ptr);
|
||||||
|
|
||||||
/* check for overflow */
|
/* check for overflow */
|
||||||
|
@ -51,18 +51,11 @@ struct mei_cfg {
|
|||||||
*
|
*
|
||||||
* @cfg: per device generation config and ops
|
* @cfg: per device generation config and ops
|
||||||
* @mem_addr: io memory address
|
* @mem_addr: io memory address
|
||||||
* @host_hw_state: cached host state
|
|
||||||
* @me_hw_state: cached me (fw) state
|
|
||||||
* @pg_state: power gating state
|
* @pg_state: power gating state
|
||||||
*/
|
*/
|
||||||
struct mei_me_hw {
|
struct mei_me_hw {
|
||||||
const struct mei_cfg *cfg;
|
const struct mei_cfg *cfg;
|
||||||
void __iomem *mem_addr;
|
void __iomem *mem_addr;
|
||||||
/*
|
|
||||||
* hw states of host and fw(ME)
|
|
||||||
*/
|
|
||||||
u32 host_hw_state;
|
|
||||||
u32 me_hw_state;
|
|
||||||
enum mei_pg_state pg_state;
|
enum mei_pg_state pg_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user