gpu: host1x: Fix MLOCK's debug info
PATCH 1/1 gpu: host1x: Fix MLOCK's debug info
MLOCK's debug info, spewed on CDMA timeout, contains meaningless MLOCK owner channel ID because HOST1X_SYNC_MLOCK_OWNER_CHID_F() returns shifted value, while unshifted should be used. Fix it by changing '_F' to '_V'.
--- drivers/gpu/host1x/hw/debug_hw.c | 2 +- drivers/gpu/host1x/hw/hw_host1x01_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x02_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x04_sync.h | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-)
drivers/gpu/host1x/hw/debug_hw.c +1 -1
@@ -298,7 +298,7 @@ static void host1x_debug_show_mlocks(struct host1x *host, struct output *o)host1x_sync_readl (host,HOST1X_SYNC_MLOCK_OWNER (i));if (HOST1X_SYNC_MLOCK_OWNER_CH_OWNS_V (owner))host1x_debug_output (o,"%d: locked by channel %d\n" , - i,HOST1X_SYNC_MLOCK_OWNER_CHID_F (owner)); + i,HOST1X_SYNC_MLOCK_OWNER_CHID_V (owner));else if (HOST1X_SYNC_MLOCK_OWNER_CPU_OWNS_V (owner))host1x_debug_output (o,"%d: locked by cpu\n" , i);else
drivers/gpu/host1x/hw/hw_host1x01_sync.h +4 -4
@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) { -return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;
drivers/gpu/host1x/hw/hw_host1x02_sync.h +4 -4
@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) { -return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;
drivers/gpu/host1x/hw/hw_host1x04_sync.h +4 -4
@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) { -return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;
Signature · 1 line
2.4.4
Quoted 17 lines · Dmitry Osipenko
MLOCK's debug info, spewed on CDMA timeout, contains meaningless MLOCK owner channel ID because
HOST1X_SYNC_MLOCK_OWNER_CHID_F()returns shifted value, while unshifted should be used. Fix it by changing '_F' to '_V'.Signed-off-by Dmitry Osipenko <[email protected]>--- drivers/gpu/host1x/hw/debug_hw.c | 2 +- drivers/gpu/host1x/hw/hw_host1x01_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x02_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x04_sync.h | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-)drivers/gpu/host1x/hw/debug_hw.c +0
-0
drivers/gpu/host1x/hw/debug_hw.c static void host1x_debug_show_mlocks(struct host1x *host, struct output *o) · line 304
Quoted 8 lines
drivers/gpu/host1x/hw/debug_hw.c +1
-1@@ -298,7 +298,7 @@ static void host1x_debug_show_mlocks(struct host1x *host, struct output *o)host1x_sync_readl (host,HOST1X_SYNC_MLOCK_OWNER (i));if (HOST1X_SYNC_MLOCK_OWNER_CH_OWNS_V (owner))host1x_debug_output (o,"%d: locked by channel %d\n" , - i,HOST1X_SYNC_MLOCK_OWNER_CHID_F (owner)); + i,HOST1X_SYNC_MLOCK_OWNER_CHID_V (owner));else if (HOST1X_SYNC_MLOCK_OWNER_CPU_OWNS_V (owner))host1x_debug_output (o,"%d: locked by cpu\n" , i);else
(...)
Looks good, and fixes a bad gotcha.
Terje
_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel
28.06.2015 22:27, Dmitry Osipenko пишет:
Quoted 79 lines
MLOCK's debug info, spewed on CDMA timeout, contains meaningless MLOCK owner channel ID because
HOST1X_SYNC_MLOCK_OWNER_CHID_F()returns shifted value, while unshifted should be used. Fix it by changing '_F' to '_V'.Signed-off-by Dmitry Osipenko <[email protected]>--- drivers/gpu/host1x/hw/debug_hw.c | 2 +- drivers/gpu/host1x/hw/hw_host1x01_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x02_sync.h | 8 ++++---- drivers/gpu/host1x/hw/hw_host1x04_sync.h | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-)drivers/gpu/host1x/hw/debug_hw.c +1
-1@@ -298,7 +298,7 @@ static void host1x_debug_show_mlocks(struct host1x *host, struct output *o)host1x_sync_readl (host,HOST1X_SYNC_MLOCK_OWNER (i));if (HOST1X_SYNC_MLOCK_OWNER_CH_OWNS_V (owner))host1x_debug_output (o,"%d: locked by channel %d\n" , - i,HOST1X_SYNC_MLOCK_OWNER_CHID_F (owner)); + i,HOST1X_SYNC_MLOCK_OWNER_CHID_V (owner));else if (HOST1X_SYNC_MLOCK_OWNER_CPU_OWNS_V (owner))host1x_debug_output (o,"%d: locked by cpu\n" , i);else drivers/gpu/host1x/hw/hw_host1x01_sync.h +4
-4@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) { -return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;drivers/gpu/host1x/hw/hw_host1x02_sync.h +4
-4@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) { -return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;drivers/gpu/host1x/hw/hw_host1x04_sync.h +1
-1@@ -131,12 +131,12 @@ static inline u32 host1x_sync_mlock_owner_r(unsigned int id) }#define HOST1X_SYNC_MLOCK_OWNER (id) \ host1x_sync_mlock_owner_r(id) -static inline u32 host1x_sync_mlock_owner_chid_f (u32 v) +static inline u32 host1x_sync_mlock_owner_chid_v (u32 v) {
drivers/gpu/host1x/hw/hw_host1x04_sync.h static inline u32 host1x_sync_mlock_owner_r(unsigned int id) · line 142
Quoted 10 lines
drivers/gpu/host1x/hw/hw_host1x04_sync.h +3
-3-return (v &0xf ) <<8 ; +return (v >>8 ) &0xf ; } -#define HOST1X_SYNC_MLOCK_OWNER_CHID_F (v) \ - host1x_sync_mlock_owner_chid_f(v) +#define HOST1X_SYNC_MLOCK_OWNER_CHID_V (v) \ + host1x_sync_mlock_owner_chid_v(v)static inline u32 host1x_sync_mlock_owner_cpu_owns_v (u32 r) {return (r >>1 ) &0x1 ;
Ping Thierry
Signature · 1 line
Dmitry